Lines Matching refs:ida
63 int rt_dm_ida_alloc(struct rt_dm_ida *ida) in rt_dm_ida_alloc() argument
66 RT_ASSERT(ida != RT_NULL); in rt_dm_ida_alloc()
68 rt_spin_lock(&ida->lock); in rt_dm_ida_alloc()
70 id = rt_bitmap_next_clear_bit(ida->map, 0, RT_DM_IDA_NUM); in rt_dm_ida_alloc()
74 rt_bitmap_set_bit(ida->map, id); in rt_dm_ida_alloc()
77 rt_spin_unlock(&ida->lock); in rt_dm_ida_alloc()
96 rt_bool_t rt_dm_ida_take(struct rt_dm_ida *ida, int id) in rt_dm_ida_take() argument
98 RT_ASSERT(ida != RT_NULL); in rt_dm_ida_take()
101 rt_spin_lock(&ida->lock); in rt_dm_ida_take()
103 if (!rt_bitmap_test_bit(ida->map, id)) in rt_dm_ida_take()
105 rt_bitmap_set_bit(ida->map, id); in rt_dm_ida_take()
112 rt_spin_unlock(&ida->lock); in rt_dm_ida_take()
124 void rt_dm_ida_free(struct rt_dm_ida *ida, int id) in rt_dm_ida_free() argument
126 RT_ASSERT(ida != RT_NULL); in rt_dm_ida_free()
129 rt_spin_lock(&ida->lock); in rt_dm_ida_free()
131 rt_bitmap_clear_bit(ida->map, id); in rt_dm_ida_free()
133 rt_spin_unlock(&ida->lock); in rt_dm_ida_free()