Back to home page

OSCL-LXR

 
 

    


0001 #ifndef __NVIF_IF000C_H__
0002 #define __NVIF_IF000C_H__
0003 struct nvif_vmm_v0 {
0004     __u8  version;
0005     __u8  page_nr;
0006     __u8  managed;
0007     __u8  pad03[5];
0008     __u64 addr;
0009     __u64 size;
0010     __u8  data[];
0011 };
0012 
0013 #define NVIF_VMM_V0_PAGE                                                   0x00
0014 #define NVIF_VMM_V0_GET                                                    0x01
0015 #define NVIF_VMM_V0_PUT                                                    0x02
0016 #define NVIF_VMM_V0_MAP                                                    0x03
0017 #define NVIF_VMM_V0_UNMAP                                                  0x04
0018 #define NVIF_VMM_V0_PFNMAP                                                 0x05
0019 #define NVIF_VMM_V0_PFNCLR                                                 0x06
0020 #define NVIF_VMM_V0_MTHD(i)                                         ((i) + 0x80)
0021 
0022 struct nvif_vmm_page_v0 {
0023     __u8  version;
0024     __u8  index;
0025     __u8  shift;
0026     __u8  sparse;
0027     __u8  vram;
0028     __u8  host;
0029     __u8  comp;
0030     __u8  pad07[1];
0031 };
0032 
0033 struct nvif_vmm_get_v0 {
0034     __u8  version;
0035 #define NVIF_VMM_GET_V0_ADDR                                               0x00
0036 #define NVIF_VMM_GET_V0_PTES                                               0x01
0037 #define NVIF_VMM_GET_V0_LAZY                                               0x02
0038     __u8  type;
0039     __u8  sparse;
0040     __u8  page;
0041     __u8  align;
0042     __u8  pad05[3];
0043     __u64 size;
0044     __u64 addr;
0045 };
0046 
0047 struct nvif_vmm_put_v0 {
0048     __u8  version;
0049     __u8  pad01[7];
0050     __u64 addr;
0051 };
0052 
0053 struct nvif_vmm_map_v0 {
0054     __u8  version;
0055     __u8  pad01[7];
0056     __u64 addr;
0057     __u64 size;
0058     __u64 memory;
0059     __u64 offset;
0060     __u8  data[];
0061 };
0062 
0063 struct nvif_vmm_unmap_v0 {
0064     __u8  version;
0065     __u8  pad01[7];
0066     __u64 addr;
0067 };
0068 
0069 struct nvif_vmm_pfnmap_v0 {
0070     __u8  version;
0071     __u8  page;
0072     __u8  pad02[6];
0073     __u64 addr;
0074     __u64 size;
0075 #define NVIF_VMM_PFNMAP_V0_ADDR                           0xfffffffffffff000ULL
0076 #define NVIF_VMM_PFNMAP_V0_ADDR_SHIFT                                        12
0077 #define NVIF_VMM_PFNMAP_V0_APER                           0x00000000000000f0ULL
0078 #define NVIF_VMM_PFNMAP_V0_HOST                           0x0000000000000000ULL
0079 #define NVIF_VMM_PFNMAP_V0_VRAM                           0x0000000000000010ULL
0080 #define NVIF_VMM_PFNMAP_V0_A                  0x0000000000000004ULL
0081 #define NVIF_VMM_PFNMAP_V0_W                              0x0000000000000002ULL
0082 #define NVIF_VMM_PFNMAP_V0_V                              0x0000000000000001ULL
0083 #define NVIF_VMM_PFNMAP_V0_NONE                           0x0000000000000000ULL
0084     __u64 phys[];
0085 };
0086 
0087 struct nvif_vmm_pfnclr_v0 {
0088     __u8  version;
0089     __u8  pad01[7];
0090     __u64 addr;
0091     __u64 size;
0092 };
0093 #endif