|
ICARUS OS (Intelligent Cooperative Architecture for Real-time Unified Systems) 0.1.0
Preemptive Real-Time Operating System for ARM Cortex-M7
|
ICARUS Message Pipe Implementation. More...
Go to the source code of this file.
Functions | |
| bool | __pipe_init (uint8_t pipe_idx, uint16_t pipe_capacity_bytes) |
| Privileged implementation of pipe_init. | |
| bool | __pipe_enqueue (uint8_t pipe_idx, uint8_t *message, uint8_t message_bytes) |
| Privileged implementation of pipe_enqueue. | |
| bool | __pipe_dequeue (uint8_t pipe_idx, uint8_t *message, uint8_t message_bytes) |
| Privileged implementation of pipe_dequeue. | |
| uint16_t | __pipe_get_count (uint8_t pipe_idx) |
| Privileged implementation of pipe_get_count. | |
| uint16_t | __pipe_get_max_count (uint8_t pipe_idx) |
| Privileged implementation of pipe_get_max_count. | |
| bool | __pipe_can_enqueue (uint8_t pipe_idx, uint8_t message_bytes) |
| Privileged call gate: can pipe accept message_bytes bytes? | |
| bool | __pipe_can_dequeue (uint8_t pipe_idx, uint8_t message_bytes) |
| Privileged call gate: can pipe deliver message_bytes bytes? | |
| void | __pipe_write_bytes (uint8_t pipe_idx, uint8_t *message, uint8_t message_bytes) |
| Privileged write gate: write bytes to pipe buffer. | |
| void | __pipe_read_bytes (uint8_t pipe_idx, uint8_t *message, uint8_t message_bytes) |
| Privileged write gate: read bytes from pipe buffer. | |
ICARUS Message Pipe Implementation.
Byte-stream message pipes for inter-task communication.
Definition in file pipe.c.
| bool __pipe_can_dequeue | ( | uint8_t | pipe_idx, |
| uint8_t | message_bytes | ||
| ) |
Privileged call gate: can pipe deliver message_bytes bytes?
Definition at line 163 of file pipe.c.
References icarus_pipe_t::count, ICARUS_MAX_MESSAGE_QUEUES, and message_pipe_list.
Referenced by pipe_can_dequeue(), and SVC_Handler_C().
| bool __pipe_can_enqueue | ( | uint8_t | pipe_idx, |
| uint8_t | message_bytes | ||
| ) |
Privileged call gate: can pipe accept message_bytes bytes?
Definition at line 149 of file pipe.c.
References ICARUS_MAX_MESSAGE_QUEUES, and message_pipe_list.
Referenced by __sb_publish(), pipe_can_enqueue(), and SVC_Handler_C().
| bool __pipe_dequeue | ( | uint8_t | pipe_idx, |
| uint8_t * | message, | ||
| uint8_t | message_bytes | ||
| ) |
Privileged implementation of pipe_dequeue.
Definition at line 94 of file pipe.c.
References ICARUS_MAX_MESSAGE_QUEUES, message_pipe_list, pipe_can_dequeue(), pipe_read_bytes(), and task_active_sleep().
Referenced by pipe_dequeue().
| bool __pipe_enqueue | ( | uint8_t | pipe_idx, |
| uint8_t * | message, | ||
| uint8_t | message_bytes | ||
| ) |
Privileged implementation of pipe_enqueue.
Definition at line 64 of file pipe.c.
References ICARUS_MAX_MESSAGE_QUEUES, message_pipe_list, pipe_can_enqueue(), pipe_write_bytes(), and task_active_sleep().
Referenced by pipe_enqueue().
| uint16_t __pipe_get_count | ( | uint8_t | pipe_idx | ) |
Privileged implementation of pipe_get_count.
Definition at line 123 of file pipe.c.
References icarus_pipe_t::count, ICARUS_MAX_MESSAGE_QUEUES, and message_pipe_list.
Referenced by pipe_get_count(), and SVC_Handler_C().
| uint16_t __pipe_get_max_count | ( | uint8_t | pipe_idx | ) |
Privileged implementation of pipe_get_max_count.
Definition at line 135 of file pipe.c.
References ICARUS_MAX_MESSAGE_QUEUES, icarus_pipe_t::max_count, and message_pipe_list.
Referenced by pipe_get_max_count(), and SVC_Handler_C().
| bool __pipe_init | ( | uint8_t | pipe_idx, |
| uint16_t | pipe_capacity_bytes | ||
| ) |
Privileged implementation of pipe_init.
Definition at line 35 of file pipe.c.
References icarus_pipe_t::buffer, icarus_pipe_t::count, icarus_pipe_t::dequeue_idx, icarus_pipe_t::engaged, icarus_pipe_t::enqueue_idx, ICARUS_MAX_MESSAGE_BYTES, ICARUS_MAX_MESSAGE_QUEUES, icarus_pipe_t::max_count, message_pipe_list, os_tick_count, and icarus_pipe_t::tick_updated_at.
Referenced by pipe_init(), and SVC_Handler_C().
| void __pipe_read_bytes | ( | uint8_t | pipe_idx, |
| uint8_t * | message, | ||
| uint8_t | message_bytes | ||
| ) |
Privileged write gate: read bytes from pipe buffer.
Definition at line 199 of file pipe.c.
References icarus_pipe_t::buffer, icarus_pipe_t::count, icarus_pipe_t::dequeue_idx, ICARUS_MAX_MESSAGE_QUEUES, icarus_pipe_t::max_count, message_pipe_list, os_tick_count, and icarus_pipe_t::tick_updated_at.
Referenced by pipe_read_bytes(), and SVC_Handler_C().
| void __pipe_write_bytes | ( | uint8_t | pipe_idx, |
| uint8_t * | message, | ||
| uint8_t | message_bytes | ||
| ) |
Privileged write gate: write bytes to pipe buffer.
Definition at line 176 of file pipe.c.
References icarus_pipe_t::buffer, icarus_pipe_t::count, icarus_pipe_t::enqueue_idx, ICARUS_MAX_MESSAGE_QUEUES, icarus_pipe_t::max_count, message_pipe_list, os_tick_count, and icarus_pipe_t::tick_updated_at.
Referenced by __sb_publish(), pipe_write_bytes(), and SVC_Handler_C().