18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 28c2ecf20Sopenharmony_ci#ifndef __NVIF_IOCTL_H__ 38c2ecf20Sopenharmony_ci#define __NVIF_IOCTL_H__ 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#define NVIF_VERSION_LATEST 0x0000000000000100ULL 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cistruct nvif_ioctl_v0 { 88c2ecf20Sopenharmony_ci __u8 version; 98c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_NOP 0x00 108c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_SCLASS 0x01 118c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_NEW 0x02 128c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_DEL 0x03 138c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_MTHD 0x04 148c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_RD 0x05 158c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_WR 0x06 168c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_MAP 0x07 178c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_UNMAP 0x08 188c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_NTFY_NEW 0x09 198c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_NTFY_DEL 0x0a 208c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_NTFY_GET 0x0b 218c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_NTFY_PUT 0x0c 228c2ecf20Sopenharmony_ci __u8 type; 238c2ecf20Sopenharmony_ci __u8 pad02[4]; 248c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_OWNER_NVIF 0x00 258c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_OWNER_ANY 0xff 268c2ecf20Sopenharmony_ci __u8 owner; 278c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_ROUTE_NVIF 0x00 288c2ecf20Sopenharmony_ci#define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff 298c2ecf20Sopenharmony_ci __u8 route; 308c2ecf20Sopenharmony_ci __u64 token; 318c2ecf20Sopenharmony_ci __u64 object; 328c2ecf20Sopenharmony_ci __u8 data[]; /* ioctl data (below) */ 338c2ecf20Sopenharmony_ci}; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_cistruct nvif_ioctl_nop_v0 { 368c2ecf20Sopenharmony_ci __u64 version; 378c2ecf20Sopenharmony_ci}; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_cistruct nvif_ioctl_sclass_v0 { 408c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 418c2ecf20Sopenharmony_ci __u8 version; 428c2ecf20Sopenharmony_ci __u8 count; 438c2ecf20Sopenharmony_ci __u8 pad02[6]; 448c2ecf20Sopenharmony_ci struct nvif_ioctl_sclass_oclass_v0 { 458c2ecf20Sopenharmony_ci __s32 oclass; 468c2ecf20Sopenharmony_ci __s16 minver; 478c2ecf20Sopenharmony_ci __s16 maxver; 488c2ecf20Sopenharmony_ci } oclass[]; 498c2ecf20Sopenharmony_ci}; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_cistruct nvif_ioctl_new_v0 { 528c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 538c2ecf20Sopenharmony_ci __u8 version; 548c2ecf20Sopenharmony_ci __u8 pad01[6]; 558c2ecf20Sopenharmony_ci __u8 route; 568c2ecf20Sopenharmony_ci __u64 token; 578c2ecf20Sopenharmony_ci __u64 object; 588c2ecf20Sopenharmony_ci __u32 handle; 598c2ecf20Sopenharmony_ci __s32 oclass; 608c2ecf20Sopenharmony_ci __u8 data[]; /* class data (class.h) */ 618c2ecf20Sopenharmony_ci}; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_cistruct nvif_ioctl_del { 648c2ecf20Sopenharmony_ci}; 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_cistruct nvif_ioctl_rd_v0 { 678c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 688c2ecf20Sopenharmony_ci __u8 version; 698c2ecf20Sopenharmony_ci __u8 size; 708c2ecf20Sopenharmony_ci __u8 pad02[2]; 718c2ecf20Sopenharmony_ci __u32 data; 728c2ecf20Sopenharmony_ci __u64 addr; 738c2ecf20Sopenharmony_ci}; 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_cistruct nvif_ioctl_wr_v0 { 768c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 778c2ecf20Sopenharmony_ci __u8 version; 788c2ecf20Sopenharmony_ci __u8 size; 798c2ecf20Sopenharmony_ci __u8 pad02[2]; 808c2ecf20Sopenharmony_ci __u32 data; 818c2ecf20Sopenharmony_ci __u64 addr; 828c2ecf20Sopenharmony_ci}; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_cistruct nvif_ioctl_map_v0 { 858c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 868c2ecf20Sopenharmony_ci __u8 version; 878c2ecf20Sopenharmony_ci#define NVIF_IOCTL_MAP_V0_IO 0x00 888c2ecf20Sopenharmony_ci#define NVIF_IOCTL_MAP_V0_VA 0x01 898c2ecf20Sopenharmony_ci __u8 type; 908c2ecf20Sopenharmony_ci __u8 pad02[6]; 918c2ecf20Sopenharmony_ci __u64 handle; 928c2ecf20Sopenharmony_ci __u64 length; 938c2ecf20Sopenharmony_ci __u8 data[]; 948c2ecf20Sopenharmony_ci}; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_cistruct nvif_ioctl_unmap { 978c2ecf20Sopenharmony_ci}; 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_cistruct nvif_ioctl_ntfy_new_v0 { 1008c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 1018c2ecf20Sopenharmony_ci __u8 version; 1028c2ecf20Sopenharmony_ci __u8 event; 1038c2ecf20Sopenharmony_ci __u8 index; 1048c2ecf20Sopenharmony_ci __u8 pad03[5]; 1058c2ecf20Sopenharmony_ci __u8 data[]; /* event request data (event.h) */ 1068c2ecf20Sopenharmony_ci}; 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_cistruct nvif_ioctl_ntfy_del_v0 { 1098c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 1108c2ecf20Sopenharmony_ci __u8 version; 1118c2ecf20Sopenharmony_ci __u8 index; 1128c2ecf20Sopenharmony_ci __u8 pad02[6]; 1138c2ecf20Sopenharmony_ci}; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_cistruct nvif_ioctl_ntfy_get_v0 { 1168c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 1178c2ecf20Sopenharmony_ci __u8 version; 1188c2ecf20Sopenharmony_ci __u8 index; 1198c2ecf20Sopenharmony_ci __u8 pad02[6]; 1208c2ecf20Sopenharmony_ci}; 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_cistruct nvif_ioctl_ntfy_put_v0 { 1238c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 1248c2ecf20Sopenharmony_ci __u8 version; 1258c2ecf20Sopenharmony_ci __u8 index; 1268c2ecf20Sopenharmony_ci __u8 pad02[6]; 1278c2ecf20Sopenharmony_ci}; 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_cistruct nvif_ioctl_mthd_v0 { 1308c2ecf20Sopenharmony_ci /* nvif_ioctl ... */ 1318c2ecf20Sopenharmony_ci __u8 version; 1328c2ecf20Sopenharmony_ci __u8 method; 1338c2ecf20Sopenharmony_ci __u8 pad02[6]; 1348c2ecf20Sopenharmony_ci __u8 data[]; /* method data (class.h) */ 1358c2ecf20Sopenharmony_ci}; 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci#endif 138