35 lines
		
	
	
		
			837 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			837 B
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /*
 | ||
|  |  * Copyright (c) 2006-2023, RT-Thread Development Team | ||
|  |  * | ||
|  |  * SPDX-License-Identifier: Apache-2.0 | ||
|  |  * | ||
|  |  * Change Logs: | ||
|  |  * Date           Author       Notes | ||
|  |  * 2023-12-07     Shell        First version | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef  __RID_BITMAP_H__
 | ||
|  | #define  __RID_BITMAP_H__
 | ||
|  | 
 | ||
|  | #include <rthw.h>
 | ||
|  | #include <rtthread.h>
 | ||
|  | #include <bitmap.h>
 | ||
|  | 
 | ||
|  | #define RESOURCE_ID_INIT {0}
 | ||
|  | 
 | ||
|  | typedef struct rid_bitmap | ||
|  | { | ||
|  |     struct rt_mutex *id_lock; | ||
|  |     long min_id; | ||
|  |     long total_id_count; | ||
|  |     rt_bitmap_t *bitset; | ||
|  | } *rid_bitmap_t; | ||
|  | 
 | ||
|  | void rid_bitmap_init(rid_bitmap_t mgr, int min_id, int total_id_count, | ||
|  |                      rt_bitmap_t *set, struct rt_mutex *id_lock); | ||
|  | long rid_bitmap_get(rid_bitmap_t mgr); | ||
|  | long rid_bitmap_get_named(rid_bitmap_t mgr, long no); | ||
|  | void rid_bitmap_put(rid_bitmap_t mgr, long no); | ||
|  | 
 | ||
|  | #endif  /* __RID_BITMAP_H__ */
 |