linux/drivers/gpu/drm/nouveau/include/nvif/if000c.h
<<
>>
Prefs
   1#ifndef __NVIF_IF000C_H__
   2#define __NVIF_IF000C_H__
   3struct nvif_vmm_v0 {
   4        __u8  version;
   5        __u8  page_nr;
   6        __u8  managed;
   7        __u8  pad03[5];
   8        __u64 addr;
   9        __u64 size;
  10        __u8  data[];
  11};
  12
  13#define NVIF_VMM_V0_PAGE                                                   0x00
  14#define NVIF_VMM_V0_GET                                                    0x01
  15#define NVIF_VMM_V0_PUT                                                    0x02
  16#define NVIF_VMM_V0_MAP                                                    0x03
  17#define NVIF_VMM_V0_UNMAP                                                  0x04
  18#define NVIF_VMM_V0_PFNMAP                                                 0x05
  19#define NVIF_VMM_V0_PFNCLR                                                 0x06
  20#define NVIF_VMM_V0_MTHD(i)                                         ((i) + 0x80)
  21
  22struct nvif_vmm_page_v0 {
  23        __u8  version;
  24        __u8  index;
  25        __u8  shift;
  26        __u8  sparse;
  27        __u8  vram;
  28        __u8  host;
  29        __u8  comp;
  30        __u8  pad07[1];
  31};
  32
  33struct nvif_vmm_get_v0 {
  34        __u8  version;
  35#define NVIF_VMM_GET_V0_ADDR                                               0x00
  36#define NVIF_VMM_GET_V0_PTES                                               0x01
  37#define NVIF_VMM_GET_V0_LAZY                                               0x02
  38        __u8  type;
  39        __u8  sparse;
  40        __u8  page;
  41        __u8  align;
  42        __u8  pad05[3];
  43        __u64 size;
  44        __u64 addr;
  45};
  46
  47struct nvif_vmm_put_v0 {
  48        __u8  version;
  49        __u8  pad01[7];
  50        __u64 addr;
  51};
  52
  53struct nvif_vmm_map_v0 {
  54        __u8  version;
  55        __u8  pad01[7];
  56        __u64 addr;
  57        __u64 size;
  58        __u64 memory;
  59        __u64 offset;
  60        __u8  data[];
  61};
  62
  63struct nvif_vmm_unmap_v0 {
  64        __u8  version;
  65        __u8  pad01[7];
  66        __u64 addr;
  67};
  68
  69struct nvif_vmm_pfnmap_v0 {
  70        __u8  version;
  71        __u8  page;
  72        __u8  pad02[6];
  73        __u64 addr;
  74        __u64 size;
  75#define NVIF_VMM_PFNMAP_V0_ADDR                           0xfffffffffffff000ULL
  76#define NVIF_VMM_PFNMAP_V0_ADDR_SHIFT                                        12
  77#define NVIF_VMM_PFNMAP_V0_APER                           0x00000000000000f0ULL
  78#define NVIF_VMM_PFNMAP_V0_HOST                           0x0000000000000000ULL
  79#define NVIF_VMM_PFNMAP_V0_VRAM                           0x0000000000000010ULL
  80#define NVIF_VMM_PFNMAP_V0_A                              0x0000000000000004ULL
  81#define NVIF_VMM_PFNMAP_V0_W                              0x0000000000000002ULL
  82#define NVIF_VMM_PFNMAP_V0_V                              0x0000000000000001ULL
  83#define NVIF_VMM_PFNMAP_V0_NONE                           0x0000000000000000ULL
  84        __u64 phys[];
  85};
  86
  87struct nvif_vmm_pfnclr_v0 {
  88        __u8  version;
  89        __u8  pad01[7];
  90        __u64 addr;
  91        __u64 size;
  92};
  93#endif
  94