1 /*
2  * Copyright (c) 2006-2023, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2023-12-07     Shell        First version
9  */
10 
11 #ifndef  __RID_BITMAP_H__
12 #define  __RID_BITMAP_H__
13 
14 #include <rthw.h>
15 #include <rtthread.h>
16 #include <bitmap.h>
17 
18 #define RESOURCE_ID_INIT {0}
19 
20 typedef struct rid_bitmap
21 {
22     struct rt_mutex *id_lock;
23     long min_id;
24     long total_id_count;
25     rt_bitmap_t *bitset;
26 } *rid_bitmap_t;
27 
28 void rid_bitmap_init(rid_bitmap_t mgr, int min_id, int total_id_count,
29                      rt_bitmap_t *set, struct rt_mutex *id_lock);
30 long rid_bitmap_get(rid_bitmap_t mgr);
31 long rid_bitmap_get_named(rid_bitmap_t mgr, long no);
32 void rid_bitmap_put(rid_bitmap_t mgr, long no);
33 
34 #endif  /* __RID_BITMAP_H__ */
35