| #ifndef __R300_MEM_H__ |
| #define __R300_MEM_H__ |
| |
| //#define R300_MEM_PDL 0 |
| #define R300_MEM_UL 1 |
| |
| #define R300_MEM_R 1 |
| #define R300_MEM_W 2 |
| #define R300_MEM_RW (R300_MEM_R | R300_MEM_W) |
| |
| #define R300_MEM_SCRATCH 2 |
| |
| struct r300_memory_manager { |
| struct { |
| void *ptr; |
| uint32_t size; |
| uint32_t age; |
| uint32_t h_pending; |
| int pending; |
| int mapped; |
| } *u_list; |
| int u_head, u_size, u_last; |
| |
| }; |
| |
| extern void r300_mem_init(r300ContextPtr rmesa); |
| extern void r300_mem_destroy(r300ContextPtr rmesa); |
| extern void *r300_mem_ptr(r300ContextPtr rmesa, int id); |
| extern int r300_mem_find(r300ContextPtr rmesa, void *ptr); |
| extern int r300_mem_alloc(r300ContextPtr rmesa, int alignment, int size); |
| extern void r300_mem_use(r300ContextPtr rmesa, int id); |
| extern unsigned long r300_mem_offset(r300ContextPtr rmesa, int id); |
| extern void *r300_mem_map(r300ContextPtr rmesa, int id, int access); |
| extern void r300_mem_unmap(r300ContextPtr rmesa, int id); |
| extern void r300_mem_free(r300ContextPtr rmesa, int id); |
| |
| #endif |