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 *, void (*dtor)(struct nvif_notify *),
  27                      int (*func)(struct nvif_notify *), bool work, u8 type,
  28                      void *data, u32 size, u32 reply, 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
  34int  nvif_notify_new(struct nvif_object *, int (*func)(struct nvif_notify *),
  35                     bool work, u8 type, void *data, u32 size, u32 reply,
  36                     struct nvif_notify **);
  37void nvif_notify_ref(struct nvif_notify *, struct nvif_notify **);
  38
  39#endif
  40