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

vmm.h (904B)


      1#ifndef __NVIF_VMM_H__
      2#define __NVIF_VMM_H__
      3#include <nvif/object.h>
      4struct nvif_mem;
      5struct nvif_mmu;
      6
      7enum nvif_vmm_get {
      8	ADDR,
      9	PTES,
     10	LAZY
     11};
     12
     13struct nvif_vma {
     14	u64 addr;
     15	u64 size;
     16};
     17
     18struct nvif_vmm {
     19	struct nvif_object object;
     20	u64 start;
     21	u64 limit;
     22
     23	struct {
     24		u8 shift;
     25		bool sparse:1;
     26		bool vram:1;
     27		bool host:1;
     28		bool comp:1;
     29	} *page;
     30	int page_nr;
     31};
     32
     33int nvif_vmm_ctor(struct nvif_mmu *, const char *name, s32 oclass, bool managed,
     34		  u64 addr, u64 size, void *argv, u32 argc, struct nvif_vmm *);
     35void nvif_vmm_dtor(struct nvif_vmm *);
     36int nvif_vmm_get(struct nvif_vmm *, enum nvif_vmm_get, bool sparse,
     37		 u8 page, u8 align, u64 size, struct nvif_vma *);
     38void nvif_vmm_put(struct nvif_vmm *, struct nvif_vma *);
     39int nvif_vmm_map(struct nvif_vmm *, u64 addr, u64 size, void *argv, u32 argc,
     40		 struct nvif_mem *, u64 offset);
     41int nvif_vmm_unmap(struct nvif_vmm *, u64);
     42#endif