cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

if000c.h (2547B)


      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