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

ioctl.h (3397B)


      1/* SPDX-License-Identifier: MIT */
      2#ifndef __NVIF_IOCTL_H__
      3#define __NVIF_IOCTL_H__
      4
      5#define NVIF_VERSION_LATEST                               0x0000000000000100ULL
      6
      7struct nvif_ioctl_v0 {
      8	__u8  version;
      9#define NVIF_IOCTL_V0_NOP                                                  0x00
     10#define NVIF_IOCTL_V0_SCLASS                                               0x01
     11#define NVIF_IOCTL_V0_NEW                                                  0x02
     12#define NVIF_IOCTL_V0_DEL                                                  0x03
     13#define NVIF_IOCTL_V0_MTHD                                                 0x04
     14#define NVIF_IOCTL_V0_RD                                                   0x05
     15#define NVIF_IOCTL_V0_WR                                                   0x06
     16#define NVIF_IOCTL_V0_MAP                                                  0x07
     17#define NVIF_IOCTL_V0_UNMAP                                                0x08
     18#define NVIF_IOCTL_V0_NTFY_NEW                                             0x09
     19#define NVIF_IOCTL_V0_NTFY_DEL                                             0x0a
     20#define NVIF_IOCTL_V0_NTFY_GET                                             0x0b
     21#define NVIF_IOCTL_V0_NTFY_PUT                                             0x0c
     22	__u8  type;
     23	__u8  pad02[4];
     24#define NVIF_IOCTL_V0_OWNER_NVIF                                           0x00
     25#define NVIF_IOCTL_V0_OWNER_ANY                                            0xff
     26	__u8  owner;
     27#define NVIF_IOCTL_V0_ROUTE_NVIF                                           0x00
     28#define NVIF_IOCTL_V0_ROUTE_HIDDEN                                         0xff
     29	__u8  route;
     30	__u64 token;
     31	__u64 object;
     32	__u8  data[];		/* ioctl data (below) */
     33};
     34
     35struct nvif_ioctl_nop_v0 {
     36	__u64 version;
     37};
     38
     39struct nvif_ioctl_sclass_v0 {
     40	/* nvif_ioctl ... */
     41	__u8  version;
     42	__u8  count;
     43	__u8  pad02[6];
     44	struct nvif_ioctl_sclass_oclass_v0 {
     45		__s32 oclass;
     46		__s16 minver;
     47		__s16 maxver;
     48	} oclass[];
     49};
     50
     51struct nvif_ioctl_new_v0 {
     52	/* nvif_ioctl ... */
     53	__u8  version;
     54	__u8  pad01[6];
     55	__u8  route;
     56	__u64 token;
     57	__u64 object;
     58	__u32 handle;
     59	__s32 oclass;
     60	__u8  data[];		/* class data (class.h) */
     61};
     62
     63struct nvif_ioctl_del {
     64};
     65
     66struct nvif_ioctl_rd_v0 {
     67	/* nvif_ioctl ... */
     68	__u8  version;
     69	__u8  size;
     70	__u8  pad02[2];
     71	__u32 data;
     72	__u64 addr;
     73};
     74
     75struct nvif_ioctl_wr_v0 {
     76	/* nvif_ioctl ... */
     77	__u8  version;
     78	__u8  size;
     79	__u8  pad02[2];
     80	__u32 data;
     81	__u64 addr;
     82};
     83
     84struct nvif_ioctl_map_v0 {
     85	/* nvif_ioctl ... */
     86	__u8  version;
     87#define NVIF_IOCTL_MAP_V0_IO                                               0x00
     88#define NVIF_IOCTL_MAP_V0_VA                                               0x01
     89	__u8  type;
     90	__u8  pad02[6];
     91	__u64 handle;
     92	__u64 length;
     93	__u8  data[];
     94};
     95
     96struct nvif_ioctl_unmap {
     97};
     98
     99struct nvif_ioctl_ntfy_new_v0 {
    100	/* nvif_ioctl ... */
    101	__u8  version;
    102	__u8  event;
    103	__u8  index;
    104	__u8  pad03[5];
    105	__u8  data[];		/* event request data (event.h) */
    106};
    107
    108struct nvif_ioctl_ntfy_del_v0 {
    109	/* nvif_ioctl ... */
    110	__u8  version;
    111	__u8  index;
    112	__u8  pad02[6];
    113};
    114
    115struct nvif_ioctl_ntfy_get_v0 {
    116	/* nvif_ioctl ... */
    117	__u8  version;
    118	__u8  index;
    119	__u8  pad02[6];
    120};
    121
    122struct nvif_ioctl_ntfy_put_v0 {
    123	/* nvif_ioctl ... */
    124	__u8  version;
    125	__u8  index;
    126	__u8  pad02[6];
    127};
    128
    129struct nvif_ioctl_mthd_v0 {
    130	/* nvif_ioctl ... */
    131	__u8  version;
    132	__u8  method;
    133	__u8  pad02[6];
    134	__u8  data[];		/* method data (class.h) */
    135};
    136
    137#endif