C API core & scheduler definitions. More...
Macros | |
| #define | os_flags_all 0xFFFFFFFF |
| #define | os_flags_any 0 |
| Special mask to represent any flag. | |
Typedefs | |
| typedef os_port_clock_duration_t | os_clock_duration_t |
| Type of variables holding clock durations. | |
| typedef os_port_clock_offset_t | os_clock_offset_t |
| Type of variables holding clock offsets. | |
| typedef os_port_clock_timestamp_t | os_clock_timestamp_t |
| Type of variables holding clock time stamps. | |
| typedef uint32_t | os_flags_mask_t |
| Type of variables holding flags masks. | |
| typedef uint32_t | os_flags_mode_t |
| Type of variables holding flags modes. | |
| typedef os_port_irq_state_t | os_irq_state_t |
| Type of variables holding interrupts priority values. | |
| typedef void * | os_iterator_t |
| Generic iterator, implemented as a pointer. | |
| typedef uint32_t | os_result_t |
| Type of values returned by RTOS functions. | |
| typedef os_port_scheduler_state_t | os_sched_state_t |
| Type of variables holding scheduler state codes. | |
| typedef uint64_t | os_statistics_counter_t |
| Type of variables holding context switches counters. | |
| typedef uint64_t | os_statistics_duration_t |
| Type of variables holding durations in CPU cycles. | |
Enumerations | |
| enum | { os_flags_mode_all = 1 , os_flags_mode_any = 2 , os_flags_mode_clear = 4 } |
| Bits used to specify the flags modes. More... | |
Return Codes | |
| enum | { os_ok = 0 } |
| Return codes, in addition to POSIX codes. More... | |
Scheduler Functions | |
| os_result_t | os_sched_initialize (void) |
| Initialise the RTOS scheduler. | |
| void | os_sched_start (void) |
| Start the RTOS scheduler. | |
| bool | os_sched_is_started (void) |
| Check if the scheduler was started. | |
| os_sched_state_t | os_sched_lock (void) |
| Lock the scheduler. | |
| os_sched_state_t | os_sched_unlock (void) |
| Unlock the scheduler. | |
| os_sched_state_t | os_sched_set_locked (os_sched_state_t state) |
| Lock/unlock the scheduler. | |
| bool | os_sched_is_locked (void) |
| Check if the scheduler is locked. | |
| bool | os_sched_is_preemptive (void) |
| Check if the scheduler is in preemptive mode. | |
| bool | os_sched_set_preemptive (bool state) |
| Set the scheduler preemptive mode. | |
Scheduler Statistics Functions | |
| os_statistics_counter_t | os_sched_stat_get_context_switches (void) |
| Get the total number of context switches. | |
| os_statistics_duration_t | os_sched_stat_get_cpu_cycles (void) |
| Get the total duration of all threads. | |
Interrupts Functions | |
| bool | os_irq_in_handler_mode (void) |
| Check if the CPU is in handler mode. | |
| os_irq_state_t | os_irq_critical_enter (void) |
| Enter an interrupts critical section. | |
| void | os_irq_critical_exit (os_irq_state_t state) |
| Exit the interrupts critical section. | |
| os_irq_state_t | os_irq_uncritical_enter (void) |
| Enter an interrupts uncritical section. | |
| void | os_irq_uncritical_exit (os_irq_state_t state) |
| Exit the interrupts uncritical section. | |
| os_thread_stack_t * | os_irq_get_stack (void) |
| Get the interrupts stack. | |
| #define os_flags_all 0xFFFFFFFF |
Special mask to represent all flags.
Definition at line 142 of file os-c-decls.h.
| #define os_flags_any 0 |
Definition at line 137 of file os-c-decls.h.
| typedef os_port_clock_duration_t os_clock_duration_t |
A numeric type intended to store a clock duration, either in ticks cycles, or seconds.
Definition at line 196 of file os-c-decls.h.
| typedef os_port_clock_offset_t os_clock_offset_t |
A numeric type intended to store a clock offset (difference to epoch), either in ticks or in seconds.
Definition at line 208 of file os-c-decls.h.
| typedef os_port_clock_timestamp_t os_clock_timestamp_t |
A numeric type intended to store a clock timestamp, either in ticks cycles or seconds.
Definition at line 185 of file os-c-decls.h.
| typedef uint32_t os_flags_mask_t |
An unsigned type large enough to store all the flags, usually 32-bits wide.
Both thread event flags and generic event flags use this definition.
Definition at line 120 of file os-c-decls.h.
| typedef uint32_t os_flags_mode_t |
An unsigned type used to hold the mode bits passed to functions returning flags.
Both thread event flags and generic event flags use this definition.
Definition at line 107 of file os-c-decls.h.
| typedef os_port_irq_state_t os_irq_state_t |
Usually an integer large enough to hold the CPU register where the interrupt priorities are stored.
Used to temporarily store the CPU register during critical sections.
Definition at line 170 of file os-c-decls.h.
| typedef void* os_iterator_t |
To simplify things, the C implementation of iterators includes a single pointer to a C++ object instance. Internally, the functions used to iterate must cast this pointer properly, but this should be transparent for the user.
Definition at line 222 of file os-c-decls.h.
| typedef uint32_t os_result_t |
For error processing reasons, most µOS++ RTOS functions return a numeric result, which, according to POSIX, when the call was successful, must be 0 (os_ok) or an error code defined in <errno.h> otherwise.
Definition at line 94 of file os-c-decls.h.
| typedef os_port_scheduler_state_t os_sched_state_t |
Usually a boolean telling if the scheduler is locked or not, but for recursive locks it might also be a numeric counter.
Definition at line 156 of file os-c-decls.h.
| typedef uint64_t os_statistics_counter_t |
Definition at line 231 of file os-c-decls.h.
| typedef uint64_t os_statistics_duration_t |
Definition at line 238 of file os-c-decls.h.
| anonymous enum |
| Enumerator | |
|---|---|
| os_ok | Function completed; no error or event occurred. |
Definition at line 56 of file os-c-api.h.
| anonymous enum |
| Enumerator | |
|---|---|
| os_flags_mode_all | |
| os_flags_mode_any | |
| os_flags_mode_clear | |
Definition at line 127 of file os-c-decls.h.
| os_irq_state_t os_irq_critical_enter | ( | void | ) |
Definition at line 571 of file os-c-wrapper.cpp.
References os::rtos::interrupts::critical_section::enter().
Referenced by __assert_func().
| void os_irq_critical_exit | ( | os_irq_state_t | state | ) |
| state | The value to restore the interrupts priority register. |
Definition at line 583 of file os-c-wrapper.cpp.
References os::rtos::interrupts::critical_section::exit().
| os_thread_stack_t * os_irq_get_stack | ( | void | ) |
Definition at line 624 of file os-c-wrapper.cpp.
References os::rtos::interrupts::stack().
| bool os_irq_in_handler_mode | ( | void | ) |
| true | Execution is in an exception handler context. |
| false | Execution is in a thread context. |
Definition at line 557 of file os-c-wrapper.cpp.
References os::rtos::interrupts::in_handler_mode().
Referenced by __assert_func().
| os_irq_state_t os_irq_uncritical_enter | ( | void | ) |
Definition at line 597 of file os-c-wrapper.cpp.
References os::rtos::interrupts::uncritical_section::enter().
| void os_irq_uncritical_exit | ( | os_irq_state_t | state | ) |
| state | The value to restore the interrupts priority register. |
Definition at line 609 of file os-c-wrapper.cpp.
References os::rtos::interrupts::uncritical_section::exit().
| os_result_t os_sched_initialize | ( | void | ) |
| os_ok | The scheduler was initialised. |
| EPERM | Cannot be invoked from an Interrupt Service Routines. |
Definition at line 413 of file os-c-wrapper.cpp.
References os::rtos::scheduler::initialize().
| bool os_sched_is_locked | ( | void | ) |
| true | The scheduler is locked. |
| false | The scheduler is switching threads (not locked). |
Definition at line 485 of file os-c-wrapper.cpp.
References os::rtos::scheduler::locked().
| bool os_sched_is_preemptive | ( | void | ) |
| true | The scheduler is in preemptive mode. |
| false | The scheduler is not in preemptive mode. |
Definition at line 497 of file os-c-wrapper.cpp.
References os::rtos::scheduler::preemptive().
| bool os_sched_is_started | ( | void | ) |
| true | The scheduler was started. |
| false | The scheduler was not started. |
Definition at line 437 of file os-c-wrapper.cpp.
References os::rtos::scheduler::started().
| os_sched_state_t os_sched_lock | ( | void | ) |
Definition at line 449 of file os-c-wrapper.cpp.
References os::rtos::scheduler::lock().
| os_sched_state_t os_sched_set_locked | ( | os_sched_state_t | state | ) |
| [in] | state | The new state of the scheduler lock. |
Definition at line 473 of file os-c-wrapper.cpp.
References os::rtos::scheduler::locked().
| bool os_sched_set_preemptive | ( | bool | state | ) |
| [in] | state | The new state of the scheduler preemptive mode. |
Definition at line 509 of file os-c-wrapper.cpp.
References os::rtos::scheduler::preemptive().
| void os_sched_start | ( | void | ) |
Definition at line 425 of file os-c-wrapper.cpp.
References os::rtos::scheduler::start().
| os_statistics_counter_t os_sched_stat_get_context_switches | ( | void | ) |
Definition at line 523 of file os-c-wrapper.cpp.
References os::rtos::scheduler::statistics::context_switches().
| os_statistics_duration_t os_sched_stat_get_cpu_cycles | ( | void | ) |
Definition at line 540 of file os-c-wrapper.cpp.
References os::rtos::scheduler::statistics::cpu_cycles().
| os_sched_state_t os_sched_unlock | ( | void | ) |
Definition at line 461 of file os-c-wrapper.cpp.
References os::rtos::scheduler::unlock().