1
#ifndef _PCILIB_TYPES_H
2
#define _PCILIB_TYPES_H
4
#define KMEM_REF_HW 0x80000000 /**< Special reference to indicate hardware access */
5
#define KMEM_REF_COUNT 0x0FFFFFFF /**< Mask of reference counter (mmap/munmap), couting in mmaped memory pages */
7
#define KMEM_MODE_REUSABLE 0x80000000 /**< Indicates reusable buffer */
8
#define KMEM_MODE_EXCLUSIVE 0x40000000 /**< Only a single process is allowed to mmap the buffer */
9
#define KMEM_MODE_PERSISTENT 0x20000000 /**< Persistent mode instructs kmem_free to preserve buffer in memory */
10
#define KMEM_MODE_COUNT 0x0FFFFFFF /**< Mask of reuse counter (alloc/free) */
12
#define PCILIB_KMEM_TYPE_MASK 0xFFFF0000
15
PCILIB_KMEM_TYPE_CONSISTENT = 0x00000,
16
PCILIB_KMEM_TYPE_PAGE = 0x10000,
17
PCILIB_KMEM_TYPE_DMA_S2C_PAGE = 0x10001,
18
PCILIB_KMEM_TYPE_DMA_C2S_PAGE = 0x10002,
19
PCILIB_KMEM_TYPE_REGION = 0x20000,
20
PCILIB_KMEM_TYPE_REGION_S2C = 0x20001,
21
PCILIB_KMEM_TYPE_REGION_C2S = 0x20002
25
PCILIB_KMEM_USE_STANDARD = 0,
26
PCILIB_KMEM_USE_DMA_RING = 1,
27
PCILIB_KMEM_USE_DMA_PAGES = 2,
28
PCILIB_KMEM_USE_USER = 0x10
32
PCILIB_KMEM_SYNC_BIDIRECTIONAL = 0,
33
PCILIB_KMEM_SYNC_TODEVICE = 1,
34
PCILIB_KMEM_SYNC_FROMDEVICE = 2
35
} pcilib_kmem_sync_direction_t;
38
#define PCILIB_KMEM_USE(type, subtype) (((type) << 16)|(subtype))
41
//pcilib_alloc_kmem_buffer(pcilib_t *ctx, size_t size, size_t alignment)
44
#endif /* _PCILIB_TYPES_H */