Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 95984f62c9b0bf6d89ef4f514b1afe73623481de 74 lines 1.7 kB view raw
1#ifndef _DMA_ATTR_H 2#define _DMA_ATTR_H 3 4#include <linux/bitmap.h> 5#include <linux/bitops.h> 6#include <linux/bug.h> 7 8/** 9 * an enum dma_attr represents an attribute associated with a DMA 10 * mapping. The semantics of each attribute should be defined in 11 * Documentation/DMA-attributes.txt. 12 */ 13enum dma_attr { 14 DMA_ATTR_WRITE_BARRIER, 15 DMA_ATTR_MAX, 16}; 17 18#define __DMA_ATTRS_LONGS BITS_TO_LONGS(DMA_ATTR_MAX) 19 20/** 21 * struct dma_attrs - an opaque container for DMA attributes 22 * @flags - bitmask representing a collection of enum dma_attr 23 */ 24struct dma_attrs { 25 unsigned long flags[__DMA_ATTRS_LONGS]; 26}; 27 28#define DEFINE_DMA_ATTRS(x) \ 29 struct dma_attrs x = { \ 30 .flags = { [0 ... __DMA_ATTRS_LONGS-1] = 0 }, \ 31 } 32 33static inline void init_dma_attrs(struct dma_attrs *attrs) 34{ 35 bitmap_zero(attrs->flags, __DMA_ATTRS_LONGS); 36} 37 38#ifdef CONFIG_HAVE_DMA_ATTRS 39/** 40 * dma_set_attr - set a specific attribute 41 * @attr: attribute to set 42 * @attrs: struct dma_attrs (may be NULL) 43 */ 44static inline void dma_set_attr(enum dma_attr attr, struct dma_attrs *attrs) 45{ 46 if (attrs == NULL) 47 return; 48 BUG_ON(attr >= DMA_ATTR_MAX); 49 __set_bit(attr, attrs->flags); 50} 51 52/** 53 * dma_get_attr - check for a specific attribute 54 * @attr: attribute to set 55 * @attrs: struct dma_attrs (may be NULL) 56 */ 57static inline int dma_get_attr(enum dma_attr attr, struct dma_attrs *attrs) 58{ 59 if (attrs == NULL) 60 return 0; 61 BUG_ON(attr >= DMA_ATTR_MAX); 62 return test_bit(attr, attrs->flags); 63} 64#else /* !CONFIG_HAVE_DMA_ATTRS */ 65static inline void dma_set_attr(enum dma_attr attr, struct dma_attrs *attrs) 66{ 67} 68 69static inline int dma_get_attr(enum dma_attr attr, struct dma_attrs *attrs) 70{ 71 return 0; 72} 73#endif /* CONFIG_HAVE_DMA_ATTRS */ 74#endif /* _DMA_ATTR_H */