]> git.ipfire.org Git - people/arne_f/kernel.git/blame - drivers/gpu/drm/nouveau/include/nvif/notify.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[people/arne_f/kernel.git] / drivers / gpu / drm / nouveau / include / nvif / notify.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
a04d0423
BS
2#ifndef __NVIF_NOTIFY_H__
3#define __NVIF_NOTIFY_H__
4
5struct nvif_notify {
6 struct nvif_object *object;
7 int index;
8
9#define NVIF_NOTIFY_USER 0
10#define NVIF_NOTIFY_WORK 1
11 unsigned long flags;
12 atomic_t putcnt;
13 void (*dtor)(struct nvif_notify *);
14#define NVIF_NOTIFY_DROP 0
15#define NVIF_NOTIFY_KEEP 1
16 int (*func)(struct nvif_notify *);
17
18 /* this is const for a *very* good reason - the data might be on the
19 * stack from an irq handler. if you're not nvif/notify.c then you
20 * should probably think twice before casting it away...
21 */
22 const void *data;
23 u32 size;
24 struct work_struct work;
25};
26
a01ca78c
BS
27int nvif_notify_init(struct nvif_object *, int (*func)(struct nvif_notify *),
28 bool work, u8 type, void *data, u32 size, u32 reply,
29 struct nvif_notify *);
a04d0423
BS
30int nvif_notify_fini(struct nvif_notify *);
31int nvif_notify_get(struct nvif_notify *);
32int nvif_notify_put(struct nvif_notify *);
33int nvif_notify(const void *, u32, const void *, u32);
a04d0423 34#endif