Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
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[];       /* ioctl data (below) */
0033 };
0034 
0035 struct nvif_ioctl_nop_v0 {
0036     __u64 version;
0037 };
0038 
0039 struct nvif_ioctl_sclass_v0 {
0040     /* nvif_ioctl ... */
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     /* nvif_ioctl ... */
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[];       /* class data (class.h) */
0061 };
0062 
0063 struct nvif_ioctl_del {
0064 };
0065 
0066 struct nvif_ioctl_rd_v0 {
0067     /* nvif_ioctl ... */
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     /* nvif_ioctl ... */
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     /* nvif_ioctl ... */
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     /* nvif_ioctl ... */
0101     __u8  version;
0102     __u8  event;
0103     __u8  index;
0104     __u8  pad03[5];
0105     __u8  data[];       /* event request data (event.h) */
0106 };
0107 
0108 struct nvif_ioctl_ntfy_del_v0 {
0109     /* nvif_ioctl ... */
0110     __u8  version;
0111     __u8  index;
0112     __u8  pad02[6];
0113 };
0114 
0115 struct nvif_ioctl_ntfy_get_v0 {
0116     /* nvif_ioctl ... */
0117     __u8  version;
0118     __u8  index;
0119     __u8  pad02[6];
0120 };
0121 
0122 struct nvif_ioctl_ntfy_put_v0 {
0123     /* nvif_ioctl ... */
0124     __u8  version;
0125     __u8  index;
0126     __u8  pad02[6];
0127 };
0128 
0129 struct nvif_ioctl_mthd_v0 {
0130     /* nvif_ioctl ... */
0131     __u8  version;
0132     __u8  method;
0133     __u8  pad02[6];
0134     __u8  data[];       /* method data (class.h) */
0135 };
0136 
0137 #endif