25#define drmm_add_action(dev, action, data) \
26 __drmm_add_action(dev, action, data, #action)
41#define drmm_add_action_or_reset(dev, action, data) \
42 __drmm_add_action_or_reset(dev, action, data, #action)
125#define drmm_mutex_init(dev, lock) ({ \
127 drmm_add_action_or_reset(dev, __drmm_mutex_release, lock); \
144#define drmm_alloc_ordered_workqueue(dev, fmt, flags, args...) \
146 struct workqueue_struct *wq = alloc_ordered_workqueue(fmt, flags, ##args); \
148 int ret = drmm_add_action_or_reset(dev, __drmm_workqueue_release, wq); \
149 ret ? ERR_PTR(ret) : wq; \
150 }) : ERR_PTR(-ENOMEM); \
uint8_t flags
Definition virtio.h:0
#define NULL
Definition actypes.h:561
#define unlikely(x)
Definition compiler.h:30
#define __must_check
Definition compiler.h:114
#define __malloc
Definition compiler_attributes.h:171
size_t size
Definition drm_bridge.h:1299
struct drm_crtc struct drm_plane struct drm_plane const struct drm_crtc_funcs const char * name
Definition drm_crtc.h:1242
char * drmm_kstrdup(struct drm_device *dev, const char *s, gfp_t gfp)
void drmm_kfree(struct drm_device *dev, void *data)
void(* drmres_release_t)(struct drm_device *dev, void *res)
Definition drm_managed.h:13
void drmm_release_action(struct drm_device *dev, drmres_release_t action, void *data)
int __must_check __drmm_add_action(struct drm_device *dev, drmres_release_t action, void *data, const char *name)
void __drmm_mutex_release(struct drm_device *dev, void *res)
void __drmm_workqueue_release(struct drm_device *device, void *wq)
int __must_check __drmm_add_action_or_reset(struct drm_device *dev, drmres_release_t action, void *data, const char *name)
void * drmm_kmalloc(struct drm_device *dev, size_t size, gfp_t gfp) __malloc
const struct device * dev
Definition drm_print.h:519
#define __GFP_ZERO
Definition gfp_types.h:290
void * data
Definition kthread.h:30
unsigned int gfp_t
Definition kernel.h:56
#define check_mul_overflow(a, b, d)
Definition overflow.h:153
Definition drm_device.h:75