0001
0002 #ifndef __NVIF_IOCTL_H__
0003 #define __NVIF_IOCTL_H__
0004
0005 #define NVIF_VERSION_LATEST 0x0000000000000100ULL
0006
0007 struct nvif_ioctl_v0 {
0008 __u8 version;
0009 #define NVIF_IOCTL_V0_NOP 0x00
0010 #define NVIF_IOCTL_V0_SCLASS 0x01
0011 #define NVIF_IOCTL_V0_NEW 0x02
0012 #define NVIF_IOCTL_V0_DEL 0x03
0013 #define NVIF_IOCTL_V0_MTHD 0x04
0014 #define NVIF_IOCTL_V0_RD 0x05
0015 #define NVIF_IOCTL_V0_WR 0x06
0016 #define NVIF_IOCTL_V0_MAP 0x07
0017 #define NVIF_IOCTL_V0_UNMAP 0x08
0018 #define NVIF_IOCTL_V0_NTFY_NEW 0x09
0019 #define NVIF_IOCTL_V0_NTFY_DEL 0x0a
0020 #define NVIF_IOCTL_V0_NTFY_GET 0x0b
0021 #define NVIF_IOCTL_V0_NTFY_PUT 0x0c
0022 __u8 type;
0023 __u8 pad02[4];
0024 #define NVIF_IOCTL_V0_OWNER_NVIF 0x00
0025 #define NVIF_IOCTL_V0_OWNER_ANY 0xff
0026 __u8 owner;
0027 #define NVIF_IOCTL_V0_ROUTE_NVIF 0x00
0028 #define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff
0029 __u8 route;
0030 __u64 token;
0031 __u64 object;
0032 __u8 data[];
0033 };
0034
0035 struct nvif_ioctl_nop_v0 {
0036 __u64 version;
0037 };
0038
0039 struct nvif_ioctl_sclass_v0 {
0040
0041 __u8 version;
0042 __u8 count;
0043 __u8 pad02[6];
0044 struct nvif_ioctl_sclass_oclass_v0 {
0045 __s32 oclass;
0046 __s16 minver;
0047 __s16 maxver;
0048 } oclass[];
0049 };
0050
0051 struct nvif_ioctl_new_v0 {
0052
0053 __u8 version;
0054 __u8 pad01[6];
0055 __u8 route;
0056 __u64 token;
0057 __u64 object;
0058 __u32 handle;
0059 __s32 oclass;
0060 __u8 data[];
0061 };
0062
0063 struct nvif_ioctl_del {
0064 };
0065
0066 struct nvif_ioctl_rd_v0 {
0067
0068 __u8 version;
0069 __u8 size;
0070 __u8 pad02[2];
0071 __u32 data;
0072 __u64 addr;
0073 };
0074
0075 struct nvif_ioctl_wr_v0 {
0076
0077 __u8 version;
0078 __u8 size;
0079 __u8 pad02[2];
0080 __u32 data;
0081 __u64 addr;
0082 };
0083
0084 struct nvif_ioctl_map_v0 {
0085
0086 __u8 version;
0087 #define NVIF_IOCTL_MAP_V0_IO 0x00
0088 #define NVIF_IOCTL_MAP_V0_VA 0x01
0089 __u8 type;
0090 __u8 pad02[6];
0091 __u64 handle;
0092 __u64 length;
0093 __u8 data[];
0094 };
0095
0096 struct nvif_ioctl_unmap {
0097 };
0098
0099 struct nvif_ioctl_ntfy_new_v0 {
0100
0101 __u8 version;
0102 __u8 event;
0103 __u8 index;
0104 __u8 pad03[5];
0105 __u8 data[];
0106 };
0107
0108 struct nvif_ioctl_ntfy_del_v0 {
0109
0110 __u8 version;
0111 __u8 index;
0112 __u8 pad02[6];
0113 };
0114
0115 struct nvif_ioctl_ntfy_get_v0 {
0116
0117 __u8 version;
0118 __u8 index;
0119 __u8 pad02[6];
0120 };
0121
0122 struct nvif_ioctl_ntfy_put_v0 {
0123
0124 __u8 version;
0125 __u8 index;
0126 __u8 pad02[6];
0127 };
0128
0129 struct nvif_ioctl_mthd_v0 {
0130
0131 __u8 version;
0132 __u8 method;
0133 __u8 pad02[6];
0134 __u8 data[];
0135 };
0136
0137 #endif