brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · a070ee0 Raw
44 lines · c
1#ifndef __NOUVEAU_MEM_H__2#define __NOUVEAU_MEM_H__3#include <drm/ttm/ttm_bo.h>4struct ttm_tt;5 6#include <nvif/mem.h>7#include <nvif/vmm.h>8 9struct nouveau_mem {10	struct ttm_resource base;11	struct nouveau_drm *drm;12	u8 kind;13	u8 comp;14	struct nvif_mem mem;15	struct nvif_vma vma[2];16};17 18static inline struct nouveau_mem *19nouveau_mem(struct ttm_resource *reg)20{21	return container_of(reg, struct nouveau_mem, base);22}23 24int nouveau_mem_new(struct nouveau_drm *, u8 kind, u8 comp,25		    struct ttm_resource **);26void nouveau_mem_del(struct ttm_resource_manager *man,27		     struct ttm_resource *);28bool nouveau_mem_intersects(struct ttm_resource *res,29			    const struct ttm_place *place,30			    size_t size);31bool nouveau_mem_compatible(struct ttm_resource *res,32			    const struct ttm_place *place,33			    size_t size);34int nouveau_mem_vram(struct ttm_resource *, bool contig, u8 page);35int nouveau_mem_host(struct ttm_resource *, struct ttm_tt *);36void nouveau_mem_fini(struct nouveau_mem *);37int nouveau_mem_map(struct nouveau_mem *, struct nvif_vmm *, struct nvif_vma *);38int39nouveau_mem_map_fixed(struct nouveau_mem *mem,40		      struct nvif_vmm *vmm,41		      u8 kind, u64 addr,42		      u64 offset, u64 range);43#endif44