28 #if !defined(__critsec_h__) 31 #if defined(__cplusplus) 37 #if defined(CONF_TM) && defined(CONF_CRITICAL_SECTIONS) 41 #ifndef DOXYGEN_SHOULD_SKIP_INTERNALS 52 #endif // DOXYGEN_SHOULD_SKIP_INTERNALS 60 #define locked_decrement(counter) atomic_dec(counter) 79 #define initialize_critical_section(cs) (cs)->count=0 101 #define leave_critical_section(cs) atomic_dec(&(cs)->count) 111 #define destroy_critical_section(cs) 113 #endif // CONF_TM && CONF_CRITICAL_SECTIONS 115 #if defined(__cplusplus) 117 #endif // __cplusplus 119 #endif // __critsec_h__ kernel configuration file
volatile unsigned char atomic_t
The data type that allows for atomic count operations.
Internal Interface: task management.
unsigned long wakeup_t
wakeup data area type
Interface: critical section management.
critical section data structure
int enter_critical_section(critsec_t *cs)
enter critical section
wakeup_t wait_critical_section(wakeup_t data)
wakeup when critical section is available