diff options
Diffstat (limited to 'kmem.h')
-rw-r--r-- | kmem.h | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -4,15 +4,21 @@ #include "pcilib.h" typedef enum { - PCILIB_KMEM_FLAG_REUSE = 1, /**< Try to reuse buffers on alloc and only unmap non-reused buffers on free (reused are freed only if FORCE flag is specified) */ + PCILIB_KMEM_FLAG_REUSE = KMEM_FLAG_REUSE, + PCILIB_KMEM_FLAG_EXCLUSIVE = KMEM_FLAG_EXCLUSIVE, + PCILIB_KMEM_FLAG_PERSISTENT = KMEM_FLAG_PERSISTENT, + PCILIB_KMEM_FLAG_HARDWARE = KMEM_FLAG_HW // PCILIB_KMEM_FLAG_FORCE = 2 /**< Force buffer } pcilib_kmem_flags_t; typedef enum { - PCILIB_KMEM_REUSE_ALLOCATED = 0, - PCILIB_KMEM_REUSE_PARTIAL = 1, - PCILIB_KMEM_REUSE_REUSED = 2 -} pcilib_kmem_reuse_t; + PCILIB_KMEM_REUSE_REUSED = PCILIB_TRISTATE_YES, + PCILIB_KMEM_REUSE_ALLOCATED = PCILIB_TRISTATE_NO, + PCILIB_KMEM_REUSE_PARTIAL = PCILIB_TRISTATE_PARTIAL, + PCILIB_KMEM_REUSE_PERSISTENT = 0x100, + PCILIB_KMEM_REUSE_HARDWARE = 0x200 +} pcilib_kmem_reuse_state_t; + typedef struct { int handle_id; @@ -33,7 +39,8 @@ typedef struct { */ typedef struct { pcilib_kmem_addr_t addr; - pcilib_kmem_reuse_t reuse; + + pcilib_kmem_reuse_state_t reused; size_t n_blocks; pcilib_kmem_addr_t blocks[]; @@ -57,6 +64,6 @@ uintptr_t pcilib_kmem_get_pa(pcilib_t *ctx, pcilib_kmem_handle_t *k); void *pcilib_kmem_get_block_ua(pcilib_t *ctx, pcilib_kmem_handle_t *k, size_t block); uintptr_t pcilib_kmem_get_block_pa(pcilib_t *ctx, pcilib_kmem_handle_t *k, size_t block); size_t pcilib_kmem_get_block_size(pcilib_t *ctx, pcilib_kmem_handle_t *k, size_t block); -pcilib_kmem_reuse_t pcilib_kmem_is_reused(pcilib_t *ctx, pcilib_kmem_handle_t *k); +pcilib_kmem_reuse_state_t pcilib_kmem_is_reused(pcilib_t *ctx, pcilib_kmem_handle_t *k); #endif /* _PCILIB_KMEM_H */ |