70 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
| #ifndef __SYS_LOCK_H__
 | |
| #define __SYS_LOCK_H__
 | |
| 
 | |
| /* dummy lock routines for single-threaded aps */
 | |
| 
 | |
| #include <newlib.h>
 | |
| #include <_ansi.h>
 | |
| 
 | |
| #if !defined(_RETARGETABLE_LOCKING)
 | |
| 
 | |
| typedef int _LOCK_T;
 | |
| typedef int _LOCK_RECURSIVE_T;
 | |
| 
 | |
| #define __LOCK_INIT(class,lock) static int lock = 0;
 | |
| #define __LOCK_INIT_RECURSIVE(class,lock) static int lock = 0;
 | |
| #define __lock_init(lock) ((void) 0)
 | |
| #define __lock_init_recursive(lock) ((void) 0)
 | |
| #define __lock_close(lock) ((void) 0)
 | |
| #define __lock_close_recursive(lock) ((void) 0)
 | |
| #define __lock_acquire(lock) ((void) 0)
 | |
| #define __lock_acquire_recursive(lock) ((void) 0)
 | |
| #define __lock_try_acquire(lock) ((void) 0)
 | |
| #define __lock_try_acquire_recursive(lock) ((void) 0)
 | |
| #define __lock_release(lock) ((void) 0)
 | |
| #define __lock_release_recursive(lock) ((void) 0)
 | |
| 
 | |
| #else
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| struct __lock;
 | |
| typedef struct __lock * _LOCK_T;
 | |
| #define _LOCK_RECURSIVE_T _LOCK_T
 | |
| 
 | |
| #define __LOCK_INIT(class,lock) extern struct __lock __lock_ ## lock; \
 | |
| 	class _LOCK_T lock = &__lock_ ## lock
 | |
| #define __LOCK_INIT_RECURSIVE(class,lock) __LOCK_INIT(class,lock)
 | |
| 
 | |
| extern void __retarget_lock_init(_LOCK_T *lock);
 | |
| #define __lock_init(lock) __retarget_lock_init(&lock)
 | |
| extern void __retarget_lock_init_recursive(_LOCK_T *lock);
 | |
| #define __lock_init_recursive(lock) __retarget_lock_init_recursive(&lock)
 | |
| extern void __retarget_lock_close(_LOCK_T lock);
 | |
| #define __lock_close(lock) __retarget_lock_close(lock)
 | |
| extern void __retarget_lock_close_recursive(_LOCK_T lock);
 | |
| #define __lock_close_recursive(lock) __retarget_lock_close_recursive(lock)
 | |
| extern void __retarget_lock_acquire(_LOCK_T lock);
 | |
| #define __lock_acquire(lock) __retarget_lock_acquire(lock)
 | |
| extern void __retarget_lock_acquire_recursive(_LOCK_T lock);
 | |
| #define __lock_acquire_recursive(lock) __retarget_lock_acquire_recursive(lock)
 | |
| extern int __retarget_lock_try_acquire(_LOCK_T lock);
 | |
| #define __lock_try_acquire(lock) __retarget_lock_try_acquire(lock)
 | |
| extern int __retarget_lock_try_acquire_recursive(_LOCK_T lock);
 | |
| #define __lock_try_acquire_recursive(lock) \
 | |
|   __retarget_lock_try_acquire_recursive(lock)
 | |
| extern void __retarget_lock_release(_LOCK_T lock);
 | |
| #define __lock_release(lock) __retarget_lock_release(lock)
 | |
| extern void __retarget_lock_release_recursive(_LOCK_T lock);
 | |
| #define __lock_release_recursive(lock) __retarget_lock_release_recursive(lock)
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* !defined(_RETARGETABLE_LOCKING) */
 | |
| 
 | |
| #endif /* __SYS_LOCK_H__ */
 |