radeon_bo_int.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef RADEON_BO_INT
  2. #define RADEON_BO_INT
  3. struct radeon_bo_manager {
  4. const struct radeon_bo_funcs *funcs;
  5. int fd;
  6. };
  7. struct radeon_bo_int {
  8. void *ptr;
  9. uint32_t flags;
  10. uint32_t handle;
  11. uint32_t size;
  12. /* private members */
  13. uint32_t alignment;
  14. uint32_t domains;
  15. unsigned cref;
  16. struct radeon_bo_manager *bom;
  17. uint32_t space_accounted;
  18. uint32_t referenced_in_cs;
  19. };
  20. /* bo functions */
  21. struct radeon_bo_funcs {
  22. struct radeon_bo *(*bo_open)(struct radeon_bo_manager *bom,
  23. uint32_t handle,
  24. uint32_t size,
  25. uint32_t alignment,
  26. uint32_t domains,
  27. uint32_t flags);
  28. void (*bo_ref)(struct radeon_bo_int *bo);
  29. struct radeon_bo *(*bo_unref)(struct radeon_bo_int *bo);
  30. int (*bo_map)(struct radeon_bo_int *bo, int write);
  31. int (*bo_unmap)(struct radeon_bo_int *bo);
  32. int (*bo_wait)(struct radeon_bo_int *bo);
  33. int (*bo_is_static)(struct radeon_bo_int *bo);
  34. int (*bo_set_tiling)(struct radeon_bo_int *bo, uint32_t tiling_flags,
  35. uint32_t pitch);
  36. int (*bo_get_tiling)(struct radeon_bo_int *bo, uint32_t *tiling_flags,
  37. uint32_t *pitch);
  38. int (*bo_is_busy)(struct radeon_bo_int *bo, uint32_t *domain);
  39. int (*bo_is_referenced_by_cs)(struct radeon_bo_int *bo, struct radeon_cs *cs);
  40. };
  41. #endif