radeon_cs.c revision 22944501
122944501Smrg 222944501Smrg#include <stdio.h> 322944501Smrg#include "radeon_cs.h" 422944501Smrg#include "radeon_cs_int.h" 522944501Smrg 622944501Smrgstruct radeon_cs *radeon_cs_create(struct radeon_cs_manager *csm, uint32_t ndw) 722944501Smrg{ 822944501Smrg struct radeon_cs_int *csi = csm->funcs->cs_create(csm, ndw); 922944501Smrg return (struct radeon_cs *)csi; 1022944501Smrg} 1122944501Smrg 1222944501Smrgint radeon_cs_write_reloc(struct radeon_cs *cs, 1322944501Smrg struct radeon_bo *bo, 1422944501Smrg uint32_t read_domain, 1522944501Smrg uint32_t write_domain, 1622944501Smrg uint32_t flags) 1722944501Smrg{ 1822944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 1922944501Smrg 2022944501Smrg return csi->csm->funcs->cs_write_reloc(csi, 2122944501Smrg bo, 2222944501Smrg read_domain, 2322944501Smrg write_domain, 2422944501Smrg flags); 2522944501Smrg} 2622944501Smrg 2722944501Smrgint radeon_cs_begin(struct radeon_cs *cs, 2822944501Smrg uint32_t ndw, 2922944501Smrg const char *file, 3022944501Smrg const char *func, 3122944501Smrg int line) 3222944501Smrg{ 3322944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 3422944501Smrg return csi->csm->funcs->cs_begin(csi, ndw, file, func, line); 3522944501Smrg} 3622944501Smrg 3722944501Smrgint radeon_cs_end(struct radeon_cs *cs, 3822944501Smrg const char *file, 3922944501Smrg const char *func, 4022944501Smrg int line) 4122944501Smrg{ 4222944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 4322944501Smrg return csi->csm->funcs->cs_end(csi, file, func, line); 4422944501Smrg} 4522944501Smrg 4622944501Smrgint radeon_cs_emit(struct radeon_cs *cs) 4722944501Smrg{ 4822944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 4922944501Smrg return csi->csm->funcs->cs_emit(csi); 5022944501Smrg} 5122944501Smrg 5222944501Smrgint radeon_cs_destroy(struct radeon_cs *cs) 5322944501Smrg{ 5422944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 5522944501Smrg return csi->csm->funcs->cs_destroy(csi); 5622944501Smrg} 5722944501Smrg 5822944501Smrgint radeon_cs_erase(struct radeon_cs *cs) 5922944501Smrg{ 6022944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 6122944501Smrg return csi->csm->funcs->cs_erase(csi); 6222944501Smrg} 6322944501Smrg 6422944501Smrgint radeon_cs_need_flush(struct radeon_cs *cs) 6522944501Smrg{ 6622944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 6722944501Smrg return csi->csm->funcs->cs_need_flush(csi); 6822944501Smrg} 6922944501Smrg 7022944501Smrgvoid radeon_cs_print(struct radeon_cs *cs, FILE *file) 7122944501Smrg{ 7222944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 7322944501Smrg csi->csm->funcs->cs_print(csi, file); 7422944501Smrg} 7522944501Smrg 7622944501Smrgvoid radeon_cs_set_limit(struct radeon_cs *cs, uint32_t domain, uint32_t limit) 7722944501Smrg{ 7822944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 7922944501Smrg if (domain == RADEON_GEM_DOMAIN_VRAM) 8022944501Smrg csi->csm->vram_limit = limit; 8122944501Smrg else 8222944501Smrg csi->csm->gart_limit = limit; 8322944501Smrg} 8422944501Smrg 8522944501Smrgvoid radeon_cs_space_set_flush(struct radeon_cs *cs, void (*fn)(void *), void *data) 8622944501Smrg{ 8722944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 8822944501Smrg csi->space_flush_fn = fn; 8922944501Smrg csi->space_flush_data = data; 9022944501Smrg} 9122944501Smrg 9222944501Smrguint32_t radeon_cs_get_id(struct radeon_cs *cs) 9322944501Smrg{ 9422944501Smrg struct radeon_cs_int *csi = (struct radeon_cs_int *)cs; 9522944501Smrg return csi->id; 9622944501Smrg} 97