Copyright (c) 2002 by Navosha Inc.. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at

Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder. The holder my be contacted at This document may be reproduced in all or part electronically as well as modified provided that the Navosha logo is incorporated in the resulting document and all copyright notices are included.

NOTE: this is an ALPHA document currently. There may be errors as well as omissions in this document. Your feedback is welcome and appreciated.

Table of Contents
cyg_alarm Alarm operations
cyg_clock Clock operations
cyg_cond Condition variables
cyg_counter Counter operations
cyg_exception Kernel exception control
cyg_flag Flag operations
cyg_interrupt Interrupt control
cyg_mbox Mailbox control
cyg_mempool_fix Fixed sized memory allocation
cyg_mempool_var Variable sized memory allocation
cyg_mutex Mutex operations
cyg_scheduler Scheduler
cyg_semaphore Counting semaphores
cyg_thread Thread manipulation and creation

Function Index
cyg_alarm_create create an alarm
cyg_alarm_delete delete alarm
cyg_alarm_disable disable an alarm
cyg_alarm_enable re-enable an alarm
cyg_alarm_get_times get alarm times
cyg_alarm_initialize initialize (start) an alarm
cyg_clock_create create a clock
cyg_clock_delete delete a clock
cyg_clock_get_resolution get resolution of a clock
cyg_clock_set_resolution set clock resolution
cyg_clock_to_counter converts a clock to a counter
cyg_cond_broadcast wake all threads waiting on a condition variable
cyg_cond_destroy destroy (invalidate) a condition variable
cyg_cond_init initialize a condition variable
cyg_cond_signal wake one thread waiting on a condition variable
cyg_cond_timed_wait wake one thread on a condition variable with timeout
cyg_cond_wait wait on a condition variable
cyg_counter_create create a new counter
cyg_counter_current_value get current counter value
cyg_counter_delete delete a counter
cyg_counter_multi_tick advance a counter by multiple ticks
cyg_counter_set_value set the value of the counter
cyg_counter_tick increment a counter by a single tick
cyg_current_time get the current system time
cyg_exception_call_handler invoke an exception handler
cyg_exception_clear_handler remove an exception handler
cyg_exception_set_handler create a new exception handler
cyg_flag_destroy destroy (invalidate) a flag
cyg_flag_init initialize a flag for use
cyg_flag_maskbits clear conditions (bits) in a flag
cyg_flag_peek returns bits (conditions) currently set in a flag
cyg_flag_poll test for pattern match but do not block
cyg_flag_setbits set bits (conditions) in a flag
cyg_flag_timed_wait wait on a flag until timeout
cyg_flag_wait wait forever on a flag
cyg_flag_waiting check to see if threads wait on a given flag
cyg_interrupt_acknowledge acknowledge an interrupt
cyg_interrupt_attach attach an interrupt vector
cyg_interrupt_configure configure an interrupt
cyg_interrupt_create create an interrupt handler
cyg_interrupt_delete delete an interrupt handler
cyg_interrupt_detach detach an interrupt
cyg_interrupt_disable disable all interrupts
cyg_interrupt_enable re-enable interrupts
cyg_interrupt_get_cpu get CPU
cyg_interrupt_get_vsr get VSR pointer of an interrupt
cyg_interrupt_mask mask a single interrupt vector
cyg_interrupt_mask_intunsafe mask interrupt, not interrupt safe
cyg_interrupt_set_cpu set a CPU
cyg_interrupt_set_vsr set the VSR of an interrupt
cyg_interrupt_unmask unmask an interrupt
cyg_interrupt_unmask_intunsafe unmask an interrupt, interrupt unsafe
cyg_mbox_create create an mbox
cyg_mbox_delete delete an mbox
cyg_mbox_get get a pointer from an mbox
cyg_mbox_peek get number of messages in mbox
cyg_mbox_peek_item get a pointer from an mbox without removing it
cyg_mbox_put place a pointer in an mbox
cyg_mbox_timed_get get a pointer from an mbox with timeout
cyg_mbox_timed_put place a message into an mbox with timeout
cyg_mbox_tryget get a pointer from a mbox with no block
cyg_mbox_tryput place a message in an mbox with no blocking
cyg_mbox_waiting_to_get check to see if threads wait to read from an mbox
cyg_mbox_waiting_to_put check to see if thread waits to write to an mbox
cyg_mempool_fix_alloc allocate a fixed sized block of memory with no timeout
cyg_mempool_fix_create create a fixed sized memory pool
cyg_mempool_fix_delete delete a fixed sized memory pool
cyg_mempool_fix_free free a block of memory allocated from a fixed sized pool
cyg_mempool_fix_get_info get info on a fixed sized mempool
cyg_mempool_fix_timed_alloc allocate a fixed sized block of memory with timeout
cyg_mempool_fix_try_alloc allocate a fixed sized block of memory, don't block
cyg_mempool_fix_waiting check to see if threads are waiting to allocate
cyg_mempool_var_alloc allocate a variable size of memory with no timeout
cyg_mempool_var_create create a variable sized memory pool
cyg_mempool_var_delete delete a variable sized memory pool
cyg_mempool_var_free free a block of memory allocated from a variable sized pool
cyg_mempool_var_get_info get info on a variable sized mempool
cyg_mempool_var_timed_alloc allocate a variable size of memory with timeout
cyg_mempool_var_try_alloc allocate a variable size of memory, don't block
cyg_mempool_var_waiting check to see if threads are waiting to allocate
cyg_mutex_destroy destroy (invalidate) a mutex
cyg_mutex_init initialize a mutex
cyg_mutex_lock lock a mutex or wait to lock one
cyg_mutex_release release all threads waiting on a mutex
cyg_mutex_set_ceiling set ceiling priority of mutex
cyg_mutex_set_protocol set the protocol of a mutex
cyg_mutex_trylock attempt to lock a mutex
cyg_mutex_unlock unlocks a mutex
cyg_real_time_clock get the real time system clock
cyg_scheduler_lock lock scheduler
cyg_scheduler_read_lock read scheduler lock count
cyg_scheduler_safe_lock lock the scheduler if it's not already locked
cyg_scheduler_start start scheduler
cyg_scheduler_unlock unlock the scheduler
cyg_semaphore_destroy destroy (invalidate) a semaphore
cyg_semaphore_init initialize a counting semaphore
cyg_semaphore_peek get current semaphore count
cyg_semaphore_post increment semaphore count
cyg_semaphore_timed_wait wait on a semaphore with timeout
cyg_semaphore_trywait get a semaphore if available
cyg_semaphore_wait wait on a counting semaphore
cyg_thread_add_destructor add a destructor
cyg_thread_create create a new thread
cyg_thread_delay delay the calling thread for a number of ticks
cyg_thread_delete delete a thread
cyg_thread_exit exit a thread
cyg_thread_free_data_index free a data index for all threads
cyg_thread_get_current_priority get current priority of a thread
cyg_thread_get_data read per thread data from a given index
cyg_thread_get_data_ptr get a data pointer to per thread data
cyg_thread_get_priority get the priority of a thread
cyg_thread_get_stack_base get a thread's stack base address
cyg_thread_get_stack_size get a thread's stack size
cyg_thread_idle_thread get the idle thread's thread ID
cyg_thread_kill kill a thread
cyg_thread_measure_stack_usage get a thread's current stack usage
cyg_thread_new_data_index get a free data index for all threads
cyg_thread_release release a thread from a wait
cyg_thread_rem_destructor remove (disable) a destructor
cyg_thread_resume resume a suspended thread
cyg_thread_self get calling thread's thread ID
cyg_thread_set_data set per thread data at a given index
cyg_thread_set_priority set the priority of a thread
cyg_thread_suspend suspend a thread
cyg_thread_yield yield the thread to another thread of equal priority