#ifndef __LIMA_VM_H__
#define __LIMA_VM_H__
#include <drm/drm_mm.h>
#include <linux/kref.h>
#define LIMA_PAGE_SIZE …
#define LIMA_PAGE_MASK …
#define LIMA_PAGE_ENT_NUM …
#define LIMA_VM_NUM_PT_PER_BT_SHIFT …
#define LIMA_VM_NUM_PT_PER_BT …
#define LIMA_VM_NUM_BT …
#define LIMA_VA_RESERVE_START …
#define LIMA_VA_RESERVE_DLBU …
#define LIMA_VA_RESERVE_END …
struct lima_device;
struct lima_vm_page { … };
struct lima_vm { … };
int lima_vm_bo_add(struct lima_vm *vm, struct lima_bo *bo, bool create);
void lima_vm_bo_del(struct lima_vm *vm, struct lima_bo *bo);
u32 lima_vm_get_va(struct lima_vm *vm, struct lima_bo *bo);
struct lima_vm *lima_vm_create(struct lima_device *dev);
void lima_vm_release(struct kref *kref);
static inline struct lima_vm *lima_vm_get(struct lima_vm *vm)
{ … }
static inline void lima_vm_put(struct lima_vm *vm)
{ … }
void lima_vm_print(struct lima_vm *vm);
int lima_vm_map_bo(struct lima_vm *vm, struct lima_bo *bo, int pageoff);
#endif