cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

notify.h (1095B)


      1/* SPDX-License-Identifier: MIT */
      2#ifndef __NVKM_NOTIFY_H__
      3#define __NVKM_NOTIFY_H__
      4#include <core/os.h>
      5struct nvkm_object;
      6
      7struct nvkm_notify {
      8	struct nvkm_event *event;
      9	struct list_head head;
     10#define NVKM_NOTIFY_USER 0
     11#define NVKM_NOTIFY_WORK 1
     12	unsigned long flags;
     13	int block;
     14#define NVKM_NOTIFY_DROP 0
     15#define NVKM_NOTIFY_KEEP 1
     16	int (*func)(struct nvkm_notify *);
     17
     18	/* set by nvkm_event ctor */
     19	u32 types;
     20	int index;
     21	u32 size;
     22
     23	struct work_struct work;
     24	/* this is const for a *very* good reason - the data might be on the
     25	 * stack from an irq handler.  if you're not core/notify.c then you
     26	 * should probably think twice before casting it away...
     27	 */
     28	const void *data;
     29};
     30
     31int  nvkm_notify_init(struct nvkm_object *, struct nvkm_event *,
     32		      int (*func)(struct nvkm_notify *), bool work,
     33		      void *data, u32 size, u32 reply,
     34		      struct nvkm_notify *);
     35void nvkm_notify_fini(struct nvkm_notify *);
     36void nvkm_notify_get(struct nvkm_notify *);
     37void nvkm_notify_put(struct nvkm_notify *);
     38void nvkm_notify_send(struct nvkm_notify *, void *data, u32 size);
     39#endif