Public API for userspace code to interface with the kernel.
This API provides access to all services of the CMRX RTOS and covers all callbacks CMRX might have into integrators's code. This API is designed to be cross-platform compatible and from the userspace point of view, it is presented as functions that can be called.
For certain purposes, mainly for customization, CMRX might require integrator to provide some callbacks that CMRX can call. These callbacks are also cross-platform compatible and allow the integrator to customize some basic services such as clock source and power management.
Modules | |
Interrupt Service Routines | |
Kernel services accessible from interrupt service handlers. | |
Mutexes / Futexes | |
CMRX offers mutual exclusive access facilities for userspace processes. | |
Named constants for errors | |
Remote Procedure Calls | |
API to create remote procedure call services and to call them. | |
Shared memory | |
API to declare memory as shared between two processes. | |
Signals | |
API for sending signals and handling incoming signals. | |
Static initialization | |
Mechanisms provided for application designer to statically initialize objects. | |
Threading functions | |
Functions providing support for manipulation of system execution state. | |
Timers | |
Kernel offers mechanism to interrupt, or periodically schedule execution of thread. | |
Timing provider API | |
API providing clock source to the kernel. | |
Macros | |
#define | NULL ((void *) 0) |
Name the null pointer. | |
Typedefs | |
typedef uint8_t | Thread_t |
Data type used for thread IDs. | |
typedef uint8_t | Process_t |
Data type used for process IDs. | |
#define NULL ((void *) 0) |
Name the null pointer.
NULL is not a C name, rather than POSIX one. Introduce it here so we can have a named null pointer rather than a magic constant.
typedef uint8_t Process_t |
Data type used for process IDs.
typedef uint8_t Thread_t |
Data type used for thread IDs.