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