Home | History | Annotate | Download | only in radeon
      1 #include "libdrm_macros.h"
      2 #include <stdio.h>
      3 #include "radeon_cs.h"
      4 #include "radeon_cs_int.h"
      5 
      6 struct radeon_cs *
      7 radeon_cs_create(struct radeon_cs_manager *csm, uint32_t ndw)
      8 {
      9     struct radeon_cs_int *csi = csm->funcs->cs_create(csm, ndw);
     10     return (struct radeon_cs *)csi;
     11 }
     12 
     13 int
     14 radeon_cs_write_reloc(struct radeon_cs *cs, struct radeon_bo *bo,
     15                       uint32_t read_domain, uint32_t write_domain,
     16                       uint32_t flags)
     17 {
     18     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     19 
     20     return csi->csm->funcs->cs_write_reloc(csi,
     21                                            bo,
     22                                            read_domain,
     23                                            write_domain,
     24                                            flags);
     25 }
     26 
     27 int
     28 radeon_cs_begin(struct radeon_cs *cs, uint32_t ndw,
     29                 const char *file, const char *func, int line)
     30 {
     31     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     32     return csi->csm->funcs->cs_begin(csi, ndw, file, func, line);
     33 }
     34 
     35 int
     36 radeon_cs_end(struct radeon_cs *cs,
     37               const char *file, const char *func, int line)
     38 {
     39     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     40     return csi->csm->funcs->cs_end(csi, file, func, line);
     41 }
     42 
     43 int radeon_cs_emit(struct radeon_cs *cs)
     44 {
     45     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     46     return csi->csm->funcs->cs_emit(csi);
     47 }
     48 
     49 int radeon_cs_destroy(struct radeon_cs *cs)
     50 {
     51     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     52     return csi->csm->funcs->cs_destroy(csi);
     53 }
     54 
     55 int radeon_cs_erase(struct radeon_cs *cs)
     56 {
     57     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     58     return csi->csm->funcs->cs_erase(csi);
     59 }
     60 
     61 int radeon_cs_need_flush(struct radeon_cs *cs)
     62 {
     63     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     64     return csi->csm->funcs->cs_need_flush(csi);
     65 }
     66 
     67 void radeon_cs_print(struct radeon_cs *cs, FILE *file)
     68 {
     69     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     70     csi->csm->funcs->cs_print(csi, file);
     71 }
     72 
     73 void
     74 radeon_cs_set_limit(struct radeon_cs *cs, uint32_t domain, uint32_t limit)
     75 {
     76     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     77     if (domain == RADEON_GEM_DOMAIN_VRAM)
     78         csi->csm->vram_limit = limit;
     79     else
     80         csi->csm->gart_limit = limit;
     81 }
     82 
     83 void radeon_cs_space_set_flush(struct radeon_cs *cs,
     84                                           void (*fn)(void *), void *data)
     85 {
     86     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     87     csi->space_flush_fn = fn;
     88     csi->space_flush_data = data;
     89 }
     90 
     91 uint32_t radeon_cs_get_id(struct radeon_cs *cs)
     92 {
     93     struct radeon_cs_int *csi = (struct radeon_cs_int *)cs;
     94     return csi->id;
     95 }
     96