Blame radeon/radeon_cs_int.h

Packit Service 103f6b
Packit Service 103f6b
#ifndef _RADEON_CS_INT_H_
Packit Service 103f6b
#define _RADEON_CS_INT_H_
Packit Service 103f6b
Packit Service 103f6b
struct radeon_cs_space_check {
Packit Service 103f6b
    struct radeon_bo_int *bo;
Packit Service 103f6b
    uint32_t read_domains;
Packit Service 103f6b
    uint32_t write_domain;
Packit Service 103f6b
    uint32_t new_accounted;
Packit Service 103f6b
};
Packit Service 103f6b
Packit Service 103f6b
struct radeon_cs_int {
Packit Service 103f6b
    /* keep first two in same place */
Packit Service 103f6b
    uint32_t                    *packets;    
Packit Service 103f6b
    unsigned                    cdw;
Packit Service 103f6b
    unsigned                    ndw;
Packit Service 103f6b
    unsigned                    section_ndw;
Packit Service 103f6b
    unsigned                    section_cdw;
Packit Service 103f6b
    /* private members */
Packit Service 103f6b
    struct radeon_cs_manager    *csm;
Packit Service 103f6b
    void                        *relocs;
Packit Service 103f6b
    unsigned                    crelocs;
Packit Service 103f6b
    unsigned                    relocs_total_size;
Packit Service 103f6b
    const char                  *section_file;
Packit Service 103f6b
    const char                  *section_func;
Packit Service 103f6b
    int                         section_line;
Packit Service 103f6b
    struct radeon_cs_space_check bos[MAX_SPACE_BOS];
Packit Service 103f6b
    int                         bo_count;
Packit Service 103f6b
    void                        (*space_flush_fn)(void *);
Packit Service 103f6b
    void                        *space_flush_data;
Packit Service 103f6b
    uint32_t                    id;
Packit Service 103f6b
};
Packit Service 103f6b
Packit Service 103f6b
/* cs functions */
Packit Service 103f6b
struct radeon_cs_funcs {
Packit Service 103f6b
    struct radeon_cs_int *(*cs_create)(struct radeon_cs_manager *csm,
Packit Service 103f6b
                                   uint32_t ndw);
Packit Service 103f6b
    int (*cs_write_reloc)(struct radeon_cs_int *cs,
Packit Service 103f6b
                          struct radeon_bo *bo,
Packit Service 103f6b
                          uint32_t read_domain,
Packit Service 103f6b
                          uint32_t write_domain,
Packit Service 103f6b
                          uint32_t flags);
Packit Service 103f6b
    int (*cs_begin)(struct radeon_cs_int *cs,
Packit Service 103f6b
                    uint32_t ndw,
Packit Service 103f6b
		    const char *file,
Packit Service 103f6b
		    const char *func,
Packit Service 103f6b
		    int line);
Packit Service 103f6b
    int (*cs_end)(struct radeon_cs_int *cs,
Packit Service 103f6b
		  const char *file, const char *func,
Packit Service 103f6b
		  int line);
Packit Service 103f6b
Packit Service 103f6b
Packit Service 103f6b
    int (*cs_emit)(struct radeon_cs_int *cs);
Packit Service 103f6b
    int (*cs_destroy)(struct radeon_cs_int *cs);
Packit Service 103f6b
    int (*cs_erase)(struct radeon_cs_int *cs);
Packit Service 103f6b
    int (*cs_need_flush)(struct radeon_cs_int *cs);
Packit Service 103f6b
    void (*cs_print)(struct radeon_cs_int *cs, FILE *file);
Packit Service 103f6b
};
Packit Service 103f6b
Packit Service 103f6b
struct radeon_cs_manager {
Packit Service 103f6b
    const struct radeon_cs_funcs  *funcs;
Packit Service 103f6b
    int                     fd;
Packit Service 103f6b
    int32_t vram_limit, gart_limit;
Packit Service 103f6b
    int32_t vram_write_used, gart_write_used;
Packit Service 103f6b
    int32_t read_used;
Packit Service 103f6b
};
Packit Service 103f6b
#endif