122944501Smrg#ifndef RADEON_BO_INT 222944501Smrg#define RADEON_BO_INT 322944501Smrg 422944501Smrgstruct radeon_bo_manager { 53f012e29Smrg const struct radeon_bo_funcs *funcs; 622944501Smrg int fd; 722944501Smrg}; 822944501Smrg 922944501Smrgstruct radeon_bo_int { 1022944501Smrg void *ptr; 1122944501Smrg uint32_t flags; 1222944501Smrg uint32_t handle; 1322944501Smrg uint32_t size; 1422944501Smrg /* private members */ 1522944501Smrg uint32_t alignment; 1622944501Smrg uint32_t domains; 1722944501Smrg unsigned cref; 1822944501Smrg struct radeon_bo_manager *bom; 1922944501Smrg uint32_t space_accounted; 2022944501Smrg uint32_t referenced_in_cs; 2122944501Smrg}; 2222944501Smrg 2322944501Smrg/* bo functions */ 2422944501Smrgstruct radeon_bo_funcs { 2522944501Smrg struct radeon_bo *(*bo_open)(struct radeon_bo_manager *bom, 2622944501Smrg uint32_t handle, 2722944501Smrg uint32_t size, 2822944501Smrg uint32_t alignment, 2922944501Smrg uint32_t domains, 3022944501Smrg uint32_t flags); 3122944501Smrg void (*bo_ref)(struct radeon_bo_int *bo); 3222944501Smrg struct radeon_bo *(*bo_unref)(struct radeon_bo_int *bo); 3322944501Smrg int (*bo_map)(struct radeon_bo_int *bo, int write); 3422944501Smrg int (*bo_unmap)(struct radeon_bo_int *bo); 3522944501Smrg int (*bo_wait)(struct radeon_bo_int *bo); 3622944501Smrg int (*bo_is_static)(struct radeon_bo_int *bo); 3722944501Smrg int (*bo_set_tiling)(struct radeon_bo_int *bo, uint32_t tiling_flags, 3822944501Smrg uint32_t pitch); 3922944501Smrg int (*bo_get_tiling)(struct radeon_bo_int *bo, uint32_t *tiling_flags, 4022944501Smrg uint32_t *pitch); 4122944501Smrg int (*bo_is_busy)(struct radeon_bo_int *bo, uint32_t *domain); 4222944501Smrg int (*bo_is_referenced_by_cs)(struct radeon_bo_int *bo, struct radeon_cs *cs); 4322944501Smrg}; 4422944501Smrg 4522944501Smrg#endif 46