13f012e29Smrg#ifndef __NVIF_IOCTL_H__ 23f012e29Smrg#define __NVIF_IOCTL_H__ 33f012e29Smrg 43f012e29Smrg#define NVIF_VERSION_LATEST 0x0000000000000000ULL 53f012e29Smrg 63f012e29Smrgstruct nvif_ioctl_v0 { 73f012e29Smrg __u8 version; 83f012e29Smrg#define NVIF_IOCTL_V0_NOP 0x00 93f012e29Smrg#define NVIF_IOCTL_V0_SCLASS 0x01 103f012e29Smrg#define NVIF_IOCTL_V0_NEW 0x02 113f012e29Smrg#define NVIF_IOCTL_V0_DEL 0x03 123f012e29Smrg#define NVIF_IOCTL_V0_MTHD 0x04 133f012e29Smrg#define NVIF_IOCTL_V0_RD 0x05 143f012e29Smrg#define NVIF_IOCTL_V0_WR 0x06 153f012e29Smrg#define NVIF_IOCTL_V0_MAP 0x07 163f012e29Smrg#define NVIF_IOCTL_V0_UNMAP 0x08 173f012e29Smrg#define NVIF_IOCTL_V0_NTFY_NEW 0x09 183f012e29Smrg#define NVIF_IOCTL_V0_NTFY_DEL 0x0a 193f012e29Smrg#define NVIF_IOCTL_V0_NTFY_GET 0x0b 203f012e29Smrg#define NVIF_IOCTL_V0_NTFY_PUT 0x0c 213f012e29Smrg __u8 type; 223f012e29Smrg __u8 pad02[4]; 233f012e29Smrg#define NVIF_IOCTL_V0_OWNER_NVIF 0x00 243f012e29Smrg#define NVIF_IOCTL_V0_OWNER_ANY 0xff 253f012e29Smrg __u8 owner; 263f012e29Smrg#define NVIF_IOCTL_V0_ROUTE_NVIF 0x00 273f012e29Smrg#define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff 283f012e29Smrg __u8 route; 293f012e29Smrg __u64 token; 303f012e29Smrg __u64 object; 313f012e29Smrg __u8 data[]; /* ioctl data (below) */ 323f012e29Smrg}; 333f012e29Smrg 343f012e29Smrgstruct nvif_ioctl_nop_v0 { 353f012e29Smrg __u64 version; 363f012e29Smrg}; 373f012e29Smrg 383f012e29Smrgstruct nvif_ioctl_sclass_v0 { 393f012e29Smrg /* nvif_ioctl ... */ 403f012e29Smrg __u8 version; 413f012e29Smrg __u8 count; 423f012e29Smrg __u8 pad02[6]; 433f012e29Smrg struct nvif_ioctl_sclass_oclass_v0 { 443f012e29Smrg __s32 oclass; 453f012e29Smrg __s16 minver; 463f012e29Smrg __s16 maxver; 473f012e29Smrg } oclass[]; 483f012e29Smrg}; 493f012e29Smrg 503f012e29Smrgstruct nvif_ioctl_new_v0 { 513f012e29Smrg /* nvif_ioctl ... */ 523f012e29Smrg __u8 version; 533f012e29Smrg __u8 pad01[6]; 543f012e29Smrg __u8 route; 553f012e29Smrg __u64 token; 563f012e29Smrg __u64 object; 573f012e29Smrg __u32 handle; 583f012e29Smrg __s32 oclass; 593f012e29Smrg __u8 data[]; /* class data (class.h) */ 603f012e29Smrg}; 613f012e29Smrg 623f012e29Smrgstruct nvif_ioctl_del { 633f012e29Smrg}; 643f012e29Smrg 653f012e29Smrgstruct nvif_ioctl_rd_v0 { 663f012e29Smrg /* nvif_ioctl ... */ 673f012e29Smrg __u8 version; 683f012e29Smrg __u8 size; 693f012e29Smrg __u8 pad02[2]; 703f012e29Smrg __u32 data; 713f012e29Smrg __u64 addr; 723f012e29Smrg}; 733f012e29Smrg 743f012e29Smrgstruct nvif_ioctl_wr_v0 { 753f012e29Smrg /* nvif_ioctl ... */ 763f012e29Smrg __u8 version; 773f012e29Smrg __u8 size; 783f012e29Smrg __u8 pad02[2]; 793f012e29Smrg __u32 data; 803f012e29Smrg __u64 addr; 813f012e29Smrg}; 823f012e29Smrg 833f012e29Smrgstruct nvif_ioctl_map_v0 { 843f012e29Smrg /* nvif_ioctl ... */ 853f012e29Smrg __u8 version; 863f012e29Smrg __u8 pad01[3]; 873f012e29Smrg __u32 length; 883f012e29Smrg __u64 handle; 893f012e29Smrg}; 903f012e29Smrg 913f012e29Smrgstruct nvif_ioctl_unmap { 923f012e29Smrg}; 933f012e29Smrg 943f012e29Smrgstruct nvif_ioctl_ntfy_new_v0 { 953f012e29Smrg /* nvif_ioctl ... */ 963f012e29Smrg __u8 version; 973f012e29Smrg __u8 event; 983f012e29Smrg __u8 index; 993f012e29Smrg __u8 pad03[5]; 1003f012e29Smrg __u8 data[]; /* event request data (event.h) */ 1013f012e29Smrg}; 1023f012e29Smrg 1033f012e29Smrgstruct nvif_ioctl_ntfy_del_v0 { 1043f012e29Smrg /* nvif_ioctl ... */ 1053f012e29Smrg __u8 version; 1063f012e29Smrg __u8 index; 1073f012e29Smrg __u8 pad02[6]; 1083f012e29Smrg}; 1093f012e29Smrg 1103f012e29Smrgstruct nvif_ioctl_ntfy_get_v0 { 1113f012e29Smrg /* nvif_ioctl ... */ 1123f012e29Smrg __u8 version; 1133f012e29Smrg __u8 index; 1143f012e29Smrg __u8 pad02[6]; 1153f012e29Smrg}; 1163f012e29Smrg 1173f012e29Smrgstruct nvif_ioctl_ntfy_put_v0 { 1183f012e29Smrg /* nvif_ioctl ... */ 1193f012e29Smrg __u8 version; 1203f012e29Smrg __u8 index; 1213f012e29Smrg __u8 pad02[6]; 1223f012e29Smrg}; 1233f012e29Smrg 1243f012e29Smrgstruct nvif_ioctl_mthd_v0 { 1253f012e29Smrg /* nvif_ioctl ... */ 1263f012e29Smrg __u8 version; 1273f012e29Smrg __u8 method; 1283f012e29Smrg __u8 pad02[6]; 1293f012e29Smrg __u8 data[]; /* method data (class.h) */ 1303f012e29Smrg}; 1313f012e29Smrg 1323f012e29Smrg#endif 133