|
static void | X__AddTimerEvent (XFiber *fiber, XFiberTimeEventHandler handler, XTicks time) |
|
static void | X__DestroyFiber (XFiber *fiber) |
|
static void | X__EndSchedule () |
|
static void | X__FiberMain (XFiber *fiber) |
|
static void | X__Free (void *ptr) |
|
static void | X__GetStackPtr (uint8_t **volatile dst) |
|
static void | X__MakeContext (XFiber *fiber, XFiberFunc func, void *arg, void *stack, size_t stack_size) |
|
static void * | X__Malloc (size_t size) |
|
static void | X__PargePendingTasks (XIntrusiveList *list) |
|
static XFiber * | X__PopFromReadyQueue (void) |
|
static void | X__PushToReadyQueue (XFiber *fiber) |
|
static void | X__ReleaseWaiting (XFiber *fiber, XError result) |
|
static void * | X__ResolvePtr (const XFiber *fiber, const void *ptr) |
|
static void | X__RestoreStack (XFiber *fiber, uint8_t *addr_in_prev_frame) |
|
static void | X__SaveStack (XFiber *fiber, const uint8_t *stack_end) |
|
static void | X__Schedule (void) |
|
static void | X__SetContext (XFiber *to) |
|
static void | X__StartSchedule (void) |
|
static void | X__SwapContext (XFiber *from, XFiber *to) |
|
static bool | X__TestEvent (XFiberEvent *event, XMode mode, XBits wait_pattern, XBits *result) |
|
static void | X__TimeoutHandler (XFiber *fiber) |
|
static void | X__TransitionIntoWaitState (XIntrusiveList *list, XFiber *fiber, XFiberState state, XTicks timeout) |
|
XError | xfiber_channel_create (XFiberChannel **o_channel, size_t capacity, size_t max_item_size) |
|
void | xfiber_channel_destroy (XFiberChannel *channel) |
|
XError | xfiber_channel_receive (XFiberChannel *channel, void *dst, size_t *o_size) |
|
XError | xfiber_channel_receive_isr (XFiberChannel *channel, void *dst, size_t *o_size) |
|
XError | xfiber_channel_send (XFiberChannel *channel, const void *src, size_t size) |
|
XError | xfiber_channel_send_isr (XFiberChannel *channel, const void *src, size_t size) |
|
XError | xfiber_channel_timed_receive (XFiberChannel *channel, void *dst, size_t *o_size, XTicks timeout) |
|
XError | xfiber_channel_timed_send (XFiberChannel *channel, const void *src, size_t size, XTicks timeout) |
|
XError | xfiber_channel_try_receive (XFiberChannel *channel, void *dst, size_t *o_size) |
|
XError | xfiber_channel_try_send (XFiberChannel *channel, const void *src, size_t size) |
|
XError | xfiber_create (XFiber **o_fiber, int priority, const char *name, size_t stack_size, XFiberFunc func, void *arg) |
| タスクを生成します [詳解]
|
|
void | xfiber_delay (XTicks time) |
| タスクの実行を指定時間遅延します
|
|
XBits | xfiber_event_clear (XFiberEvent *event, XBits pattern) |
| 指定ビットをクリアします
|
|
XError | xfiber_event_clear_isr (XFiberEvent *event, XBits pattern) |
| 割込みハンドラから呼び出し可能なxfiber_event_clear()です
|
|
XError | xfiber_event_create (XFiberEvent **o_event) |
| イベントオブジェクトを生成します
|
|
void | xfiber_event_destroy (XFiberEvent *event) |
| イベントオブジェクトを破棄します [詳解]
|
|
XBits | xfiber_event_get (XFiberEvent *event) |
| 現在のビットパターンを返します
|
|
XBits | xfiber_event_get_isr (XFiberEvent *event) |
| 割込みハンドラから呼び出し可能なxfiber_event_get()です
|
|
XError | xfiber_event_set (XFiberEvent *event, XBits pattern) |
| イベントをセットします
|
|
XError | xfiber_event_set_isr (XFiberEvent *event, XBits pattern) |
| 割込みハンドラから呼び出し可能なxfiber_event_set()です
|
|
XError | xfiber_event_timed_wait (XFiberEvent *event, XMode mode, XBits wait_pattern, XBits *result, XTicks timeout) |
| 指定のイベントが成立するのをタイムアウト付きで待ちます [詳解]
|
|
XError | xfiber_event_try_wait (XFiberEvent *event, XMode mode, XBits wait_pattern, XBits *result) |
| 指定のイベントが成立しているかをポーリングで確認します [詳解]
|
|
XError | xfiber_event_wait (XFiberEvent *event, XMode mode, XBits wait_pattern, XBits *result) |
| 指定のイベントが成立するのを待ちます [詳解]
|
|
void | xfiber_kernel_end_scheduler (void) |
| スケジューリングを終了します [詳解]
|
|
XError | xfiber_kernel_init (void *heap, size_t heapsize, XFiberIdleHook idlehook) |
| カーネルを初期化します [詳解]
|
|
XError | xfiber_kernel_start_scheduler (void) |
| スケジューリングを開始します
|
|
XError | xfiber_mailbox_create (XFiberMailbox **o_mailbox) |
| メールボックスを生成します
|
|
void | xfiber_mailbox_destroy (XFiberMailbox *mailbox) |
| メールボックスを生成します [詳解]
|
|
XError | xfiber_mailbox_receive (XFiberMailbox *mailbox, XFiberMessage **o_message) |
| メールボックス先頭からメッセージの受信を試みます
|
|
XError | xfiber_mailbox_receive_isr (XFiberMailbox *mailbox, XFiberMessage **o_message) |
| 割込みハンドラから呼び出し可能なxfiber_mailbox_try_receive()です
|
|
XError | xfiber_mailbox_send (XFiberMailbox *mailbox, XFiberMessage *message) |
| メールボックス末尾にメッセージを追加します
|
|
XError | xfiber_mailbox_send_isr (XFiberMailbox *mailbox, XFiberMessage *message) |
| 割込みハンドラから呼び出し可能なxfiber_mailbox_send()です
|
|
XError | xfiber_mailbox_timed_receive (XFiberMailbox *mailbox, XFiberMessage **o_message, XTicks timeout) |
| メールボックス先頭からメッセージの受信をタイムアウト付きで試みます
|
|
XError | xfiber_mailbox_try_receive (XFiberMailbox *mailbox, XFiberMessage **o_message) |
| メールボックス先頭からメッセージの受信をポーリングで試みます
|
|
XError | xfiber_mutex_create (XFiberMutex **o_mutex) |
| ミューテックスを生成します
|
|
void | xfiber_mutex_destroy (XFiberMutex *mutex) |
| ミューテックスを破棄します
|
|
XError | xfiber_mutex_lock (XFiberMutex *mutex) |
| ミューテックスを獲得を試みます
|
|
XError | xfiber_mutex_timed_lock (XFiberMutex *mutex, XTicks timeout) |
| ミューテックスを獲得をタイムアウト付きで試みます
|
|
XError | xfiber_mutex_try_lock (XFiberMutex *mutex) |
| ミューテックスを獲得をタイムアウト付きで試みます
|
|
XError | xfiber_mutex_unlock (XFiberMutex *mutex) |
| ミューテックスのロック解除を行います
|
|
XError | xfiber_mutex_unlock_isr (XFiberMutex *mutex) |
| 割込みハンドラから呼び出し可能なxfiber_mutex_unlock()です
|
|
const char * | xfiber_name (const XFiber *fiber) |
| タスクの名前を返します
|
|
XError | xfiber_pool_create (XFiberPool **o_pool, size_t block_size, size_t num_blocks) |
| プールを生成します [詳解]
|
|
void | xfiber_pool_destroy (XFiberPool *pool) |
| プールを解放します [詳解]
|
|
XError | xfiber_pool_get (XFiberPool *pool, void **o_mem) |
| プールからメモリの確保を試みます
|
|
XError | xfiber_pool_get_isr (XFiberPool *pool, void **o_mem) |
| 割込みハンドラから呼び出し可能なxfiber_pool_try_get()です
|
|
XError | xfiber_pool_release (XFiberPool *pool, void *mem) |
| プールにメモリを返却します
|
|
XError | xfiber_pool_release_isr (XFiberPool *pool, void *mem) |
| 割込みハンドラから呼び出し可能なxfiber_pool_release()です
|
|
XError | xfiber_pool_timed_get (XFiberPool *pool, void **o_mem, XTicks timeout) |
| プールからメモリの確保をタイムアウト付きで試みます
|
|
XError | xfiber_pool_try_get (XFiberPool *pool, void **o_mem) |
| プールからメモリの確保をポーリングで試みます
|
|
XError | xfiber_queue_create (XFiberQueue **o_queue, size_t queue_len, size_t item_size) |
| キューを生成します [詳解]
|
|
void | xfiber_queue_destroy (XFiberQueue *queue) |
| キューを破棄します [詳解]
|
|
XError | xfiber_queue_receive (XFiberQueue *queue, void *dst) |
| キューの先頭から要素の受信を試みます
|
|
XError | xfiber_queue_receive_isr (XFiberQueue *queue, void *dst) |
| 割込みハンドラから呼び出し可能なxfiber_queue_try_receive()です
|
|
XError | xfiber_queue_send_back (XFiberQueue *queue, const void *src) |
| キューの末尾への要素の転送を試みます
|
|
XError | xfiber_queue_send_back_isr (XFiberQueue *queue, const void *src) |
| 割込みハンドラから呼び出し可能なxfiber_queue_try_send_back()です
|
|
XError | xfiber_queue_send_front (XFiberQueue *queue, const void *src) |
| キューの先頭への要素の転送を試みます
|
|
XError | xfiber_queue_send_front_isr (XFiberQueue *queue, const void *src) |
| 割込みハンドラから呼び出し可能なxfiber_queue_try_send_front()です
|
|
XError | xfiber_queue_timed_receive (XFiberQueue *queue, void *dst, XTicks timeout) |
| キューの先頭から要素の受信をタイムアウト付きで試みます
|
|
XError | xfiber_queue_timed_send_back (XFiberQueue *queue, const void *src, XTicks timeout) |
| キューの末尾への要素の転送をタイムアウト付きで試みます
|
|
XError | xfiber_queue_timed_send_front (XFiberQueue *queue, const void *src, XTicks timeout) |
| キューの先頭への要素の転送をタイムアウト付きで試みます
|
|
XError | xfiber_queue_try_receive (XFiberQueue *queue, void *dst) |
| キューの先頭から要素の受信をポーリングで試みます
|
|
XError | xfiber_queue_try_send_back (XFiberQueue *queue, const void *src) |
| キューの末尾への要素の転送をポーリングで試みます
|
|
XError | xfiber_queue_try_send_front (XFiberQueue *queue, const void *src) |
| キューの先頭への要素の転送をポーリングで試みます
|
|
XError | xfiber_resume (XFiber *fiber) |
| タスクのサスペンド状態を解除します
|
|
XFiber * | xfiber_self (void) |
| 実行状態のタスクを返します
|
|
XError | xfiber_semaphore_create (XFiberSemaphore **o_semaphore, int initial_count) |
| セマフォを生成します [詳解]
|
|
void | xfiber_semaphore_destroy (XFiberSemaphore *semaphore) |
| セマフォを破棄します [詳解]
|
|
XError | xfiber_semaphore_give (XFiberSemaphore *semaphore) |
| セマフォを返却します
|
|
XError | xfiber_semaphore_give_isr (XFiberSemaphore *semaphore) |
| 割込みハンドラで呼び出し可能なxfiber_semaphore_give()です
|
|
XError | xfiber_semaphore_take (XFiberSemaphore *semaphore) |
| セマフォの獲得を試みます
|
|
XError | xfiber_semaphore_timed_take (XFiberSemaphore *semaphore, XTicks timeout) |
| セマフォの獲得をタイムアウト付きで試みます
|
|
XError | xfiber_semaphore_try_take (XFiberSemaphore *semaphore) |
| セマフォの獲得をポーリングで試みます
|
|
XBits | xfiber_signal_get (XFiber *fiber) |
| 現在のビットパターンを返します
|
|
XBits | xfiber_signal_get_isr (XFiber *fiber) |
| 割込みハンドラから呼び出し可能なxfiber_signal_get()です
|
|
XError | xfiber_signal_raise (XFiber *fiber, XBits sigs) |
| タスクにシグナルを発行します
|
|
XError | xfiber_signal_raise_isr (XFiber *fiber, XBits sigs) |
| 割込みハンドラから呼び出し可能なxfiber_signal_raise()です
|
|
XError | xfiber_signal_timed_wait (XBits sigs, XBits *result, XTicks timeout) |
| シグナルが成立するのをタイムアウト付きで待ちます [詳解]
|
|
XError | xfiber_signal_try_wait (XBits sigs, XBits *result) |
| シグナルが成立するのをポーリングで待ちます
|
|
XError | xfiber_signal_wait (XBits sigs, XBits *result) |
| シグナルが成立するのを待ちます
|
|
XError | xfiber_suspend (XFiber *fiber) |
| タスクをサスペンド状態に遷移させます [詳解]
|
|
void | xfiber_yield () |
| タスクの実行を同一優先度の別のタスクにゆずります
|
|