Lines Matching +full:- +full:i

6  *  Copyright (c) by Abramo Bagnara <abramo@alsa-project.org>
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
36 #define MASK_OFS(i) ((i) >> 5) argument
37 #define MASK_BIT(i) (1U << ((i) & 31)) argument
81 int i; in snd_mask_empty() local
82 for (i = 0; i < SNDRV_MASK_SIZE; i++) in snd_mask_empty()
83 if (mask->bits[i]) in snd_mask_empty()
90 int i; in snd_mask_min() local
91 for (i = 0; i < SNDRV_MASK_SIZE; i++) { in snd_mask_min()
92 if (mask->bits[i]) in snd_mask_min()
93 return ffs(mask->bits[i]) - 1 + (i << 5); in snd_mask_min()
100 int i; in snd_mask_max() local
101 for (i = SNDRV_MASK_SIZE - 1; i >= 0; i--) { in snd_mask_max()
102 if (mask->bits[i]) in snd_mask_max()
103 return ld2(mask->bits[i]) + (i << 5); in snd_mask_max()
110 mask->bits[MASK_OFS(val)] |= MASK_BIT(val); in snd_mask_set()
115 mask->bits[MASK_OFS(val)] &= ~MASK_BIT(val); in snd_mask_reset()
121 unsigned int i; in snd_mask_set_range() local
122 for (i = from; i <= to; i++) in snd_mask_set_range()
123 mask->bits[MASK_OFS(i)] |= MASK_BIT(i); in snd_mask_set_range()
129 unsigned int i; in snd_mask_reset_range() local
130 for (i = from; i <= to; i++) in snd_mask_reset_range()
131 mask->bits[MASK_OFS(i)] &= ~MASK_BIT(i); in snd_mask_reset_range()
137 v = mask->bits[MASK_OFS(val)] & MASK_BIT(val); in snd_mask_leave()
139 mask->bits[MASK_OFS(val)] = v; in snd_mask_leave()
145 int i; in snd_mask_intersect() local
146 for (i = 0; i < SNDRV_MASK_SIZE; i++) in snd_mask_intersect()
147 mask->bits[i] &= v->bits[i]; in snd_mask_intersect()
164 return mask->bits[MASK_OFS(val)] & MASK_BIT(val); in snd_mask_test()
169 int i, c = 0; in snd_mask_single() local
170 for (i = 0; i < SNDRV_MASK_SIZE; i++) { in snd_mask_single()
171 if (! mask->bits[i]) in snd_mask_single()
173 if (mask->bits[i] & (mask->bits[i] - 1)) in snd_mask_single()
189 return -EINVAL; in snd_mask_refine()
213 snd_mask_reset_range(mask, 0, val - 1); in snd_mask_refine_min()
215 return -EINVAL; in snd_mask_refine_min()
225 return -EINVAL; in snd_mask_refine_max()
235 return -EINVAL; in snd_mask_refine_set()
244 static inline void snd_interval_any(struct snd_interval *i) in snd_interval_any() argument
246 i->min = 0; in snd_interval_any()
247 i->openmin = 0; in snd_interval_any()
248 i->max = UINT_MAX; in snd_interval_any()
249 i->openmax = 0; in snd_interval_any()
250 i->integer = 0; in snd_interval_any()
251 i->empty = 0; in snd_interval_any()
254 static inline void snd_interval_none(struct snd_interval *i) in snd_interval_none() argument
256 i->empty = 1; in snd_interval_none()
259 static inline int snd_interval_checkempty(const struct snd_interval *i) in snd_interval_checkempty() argument
261 return (i->min > i->max || in snd_interval_checkempty()
262 (i->min == i->max && (i->openmin || i->openmax))); in snd_interval_checkempty()
265 static inline int snd_interval_empty(const struct snd_interval *i) in snd_interval_empty() argument
267 return i->empty; in snd_interval_empty()
270 static inline int snd_interval_single(const struct snd_interval *i) in snd_interval_single() argument
272 return (i->min == i->max || in snd_interval_single()
273 (i->min + 1 == i->max && i->openmax)); in snd_interval_single()
276 static inline int snd_interval_value(const struct snd_interval *i) in snd_interval_value() argument
278 return i->min; in snd_interval_value()
281 static inline int snd_interval_min(const struct snd_interval *i) in snd_interval_min() argument
283 return i->min; in snd_interval_min()
286 static inline int snd_interval_max(const struct snd_interval *i) in snd_interval_max() argument
289 v = i->max; in snd_interval_max()
290 if (i->openmax) in snd_interval_max()
291 v--; in snd_interval_max()
295 static inline int snd_interval_test(const struct snd_interval *i, unsigned int val) in snd_interval_test() argument
297 return !((i->min > val || (i->min == val && i->openmin) || in snd_interval_test()
298 i->max < val || (i->max == val && i->openmax))); in snd_interval_test()
306 static inline int snd_interval_setinteger(struct snd_interval *i) in snd_interval_setinteger() argument
308 if (i->integer) in snd_interval_setinteger()
310 if (i->openmin && i->openmax && i->min == i->max) in snd_interval_setinteger()
311 return -EINVAL; in snd_interval_setinteger()
312 i->integer = 1; in snd_interval_setinteger()
318 if (i1->empty) in snd_interval_eq()
319 return i2->empty; in snd_interval_eq()
320 if (i2->empty) in snd_interval_eq()
321 return i1->empty; in snd_interval_eq()
322 return i1->min == i2->min && i1->openmin == i2->openmin && in snd_interval_eq()
323 i1->max == i2->max && i1->openmax == i2->openmax; in snd_interval_eq()
328 if (a >= UINT_MAX - b) in add()
336 return a - b; in sub()