Lines Matching +full:long +full:- +full:summary
1 /* SPDX-License-Identifier: GPL-2.0 */
14 #include <linux/dma-mapping.h>
19 u8 *lsi_ptr; /* Local-Summary-Indicator pointer */
20 u8 lsi_mask; /* Local-Summary-Indicator mask */
21 u8 isc; /* Interrupt-subclass */
32 unsigned long *vector; /* Adapter interrupt bit vector */
34 unsigned long *avail; /* Allocation bit mask for the bit vector */
35 unsigned long *bitlock; /* Lock bit mask for the bit vector */
36 unsigned long *ptr; /* Pointer associated with each bit */
38 unsigned long bits; /* Number of bits in the vector */
39 unsigned long end; /* Number of highest allocated bit + 1 */
40 unsigned long flags; /* Allocation flags */
50 struct airq_iv *airq_iv_create(unsigned long bits, unsigned long flags);
52 unsigned long airq_iv_alloc(struct airq_iv *iv, unsigned long num);
53 void airq_iv_free(struct airq_iv *iv, unsigned long bit, unsigned long num);
54 unsigned long airq_iv_scan(struct airq_iv *iv, unsigned long start,
55 unsigned long end);
57 static inline unsigned long airq_iv_alloc_bit(struct airq_iv *iv) in airq_iv_alloc_bit()
62 static inline void airq_iv_free_bit(struct airq_iv *iv, unsigned long bit) in airq_iv_free_bit()
67 static inline unsigned long airq_iv_end(struct airq_iv *iv) in airq_iv_end()
69 return iv->end; in airq_iv_end()
72 static inline void airq_iv_lock(struct airq_iv *iv, unsigned long bit) in airq_iv_lock()
74 const unsigned long be_to_le = BITS_PER_LONG - 1; in airq_iv_lock()
75 bit_spin_lock(bit ^ be_to_le, iv->bitlock); in airq_iv_lock()
78 static inline void airq_iv_unlock(struct airq_iv *iv, unsigned long bit) in airq_iv_unlock()
80 const unsigned long be_to_le = BITS_PER_LONG - 1; in airq_iv_unlock()
81 bit_spin_unlock(bit ^ be_to_le, iv->bitlock); in airq_iv_unlock()
84 static inline void airq_iv_set_data(struct airq_iv *iv, unsigned long bit, in airq_iv_set_data()
87 iv->data[bit] = data; in airq_iv_set_data()
91 unsigned long bit) in airq_iv_get_data()
93 return iv->data[bit]; in airq_iv_get_data()
96 static inline void airq_iv_set_ptr(struct airq_iv *iv, unsigned long bit, in airq_iv_set_ptr()
97 unsigned long ptr) in airq_iv_set_ptr()
99 iv->ptr[bit] = ptr; in airq_iv_set_ptr()
102 static inline unsigned long airq_iv_get_ptr(struct airq_iv *iv, in airq_iv_get_ptr()
103 unsigned long bit) in airq_iv_get_ptr()
105 return iv->ptr[bit]; in airq_iv_get_ptr()