pcilib_types.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef _PCILIB_TYPES_H
  2. #define _PCILIB_TYPES_H
  3. #define KMEM_REF_HW 0x80000000 /**< Special reference to indicate hardware access */
  4. #define KMEM_REF_COUNT 0x0FFFFFFF /**< Mask of reference counter (mmap/munmap), couting in mmaped memory pages */
  5. #define KMEM_MODE_REUSABLE 0x80000000 /**< Indicates reusable buffer */
  6. #define KMEM_MODE_EXCLUSIVE 0x40000000 /**< Only a single process is allowed to mmap the buffer */
  7. #define KMEM_MODE_PERSISTENT 0x20000000 /**< Persistent mode instructs kmem_free to preserve buffer in memory */
  8. #define KMEM_MODE_COUNT 0x0FFFFFFF /**< Mask of reuse counter (alloc/free) */
  9. #define PCILIB_KMEM_TYPE_MASK 0xFFFF0000
  10. typedef enum {
  11. PCILIB_KMEM_TYPE_CONSISTENT = 0x00000,
  12. PCILIB_KMEM_TYPE_PAGE = 0x10000,
  13. PCILIB_KMEM_TYPE_DMA_S2C_PAGE = 0x10001,
  14. PCILIB_KMEM_TYPE_DMA_C2S_PAGE = 0x10002
  15. } pcilib_kmem_type_t;
  16. typedef enum {
  17. PCILIB_KMEM_USE_STANDARD = 0,
  18. PCILIB_KMEM_USE_DMA_RING = 1,
  19. PCILIB_KMEM_USE_DMA_PAGES = 2
  20. } pcilib_kmem_use_t;
  21. typedef enum {
  22. PCILIB_KMEM_SYNC_BIDIRECTIONAL = 0,
  23. PCILIB_KMEM_SYNC_TODEVICE = 1,
  24. PCILIB_KMEM_SYNC_FROMDEVICE = 2
  25. } pcilib_kmem_sync_direction_t;
  26. #define PCILIB_KMEM_USE(type, subtype) (((type) << 16)|(subtype))
  27. //pcilib_alloc_kmem_buffer(pcilib_t *ctx, size_t size, size_t alignment)
  28. #endif /* _PCILIB_TYPES_H */