Commit | Line | Data |
---|---|---|
a04d0423 BS |
1 | #ifndef __NVIF_NOTIFY_H__ |
2 | #define __NVIF_NOTIFY_H__ | |
3 | ||
4 | struct 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 | ||
a01ca78c BS |
26 | int 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 *); | |
a04d0423 BS |
29 | int nvif_notify_fini(struct nvif_notify *); |
30 | int nvif_notify_get(struct nvif_notify *); | |
31 | int nvif_notify_put(struct nvif_notify *); | |
32 | int nvif_notify(const void *, u32, const void *, u32); | |
a04d0423 | 33 | #endif |