|
- #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__ */
|