linux/drivers/gpu/drm/nouveau/include/nvif/notify.h
<<
>>
Prefs
   1#ifndef __NVIF_NOTIFY_H__
   2#define __NVIF_NOTIFY_H__
   3
   4struct nvif_notify {
   5        struct nvif_object *object;
   6        int index;
   7
   8#define NVIF_NOTIFY_USER 0
   9#define NVIF_NOTIFY_WORK 1
  10        unsigned long flags;
  11        atomic_t putcnt;
  12        void (*dtor)(struct nvif_notify *);
  13#define NVIF_NOTIFY_DROP 0
  14#define NVIF_NOTIFY_KEEP 1
  15        int  (*func)(struct nvif_notify *);
  16
  17        /* this is const for a *very* good reason - the data might be on the
  18         * stack from an irq handler.  if you're not nvif/notify.c then you
  19         * should probably think twice before casting it away...
  20         */
  21        const void *data;
  22        u32 size;
  23        struct work_struct work;
  24};
  25
  26int  nvif_notify_init(struct nvif_object *, int (*func)(struct nvif_notify *),
  27                      bool work, u8 type, void *data, u32 size, u32 reply,
  28                      struct nvif_notify *);
  29int  nvif_notify_fini(struct nvif_notify *);
  30int  nvif_notify_get(struct nvif_notify *);
  31int  nvif_notify_put(struct nvif_notify *);
  32int  nvif_notify(const void *, u32, const void *, u32);
  33#endif
  34