These files document the internal implementation of eCos which may or may not change in later revisions. The interface presented here has no guarantee of being supported in future releases of eCos.

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 Alarms
Cyg_Binary_Semaphore Binary Semaphores
Cyg_Clock Clocks
Cyg_Condition_Variable Conditional Variables
Cyg_Counter Counters
Cyg_Counting_Semaphore Counting Semaphores
Cyg_Flag Flags
Cyg_Interrupt Interrupts
Cyg_Mbox Mailboxes
Cyg_Mempool_Fixed Fixed Sized Memory Allocation
Cyg_Mempool_Variable Variable Sized Memory Allocation
Cyg_Mutex Mutual Exclusion
Cyg_Scheduler Scheduler Operations
Cyg_Thread Threads

Function Index
Cyg_Alarm::Cyg_Alarm create an alarm
Cyg_Alarm::~Cyg_Alarm destroy an alarm
Cyg_Alarm::initialize initialize an alarm
Cyg_Alarm::enable enable an alarm
Cyg_Alarm::disable disable an alarm
Cyg_Alarm::get_times get trigger and interval values
Cyg_Binary_Semaphore::Cyg_Binary_Semaphore create a binary semaphore
Cyg_Binary_Semaphore::~Cyg_Binary_Semaphore destroy a binary semaphore
Cyg_Binary_Semaphore::wait get a binary semaphore
Cyg_Binary_Semaphore::trywait get a binary semaphore, don't block
Cyg_Binary_Semaphore::post release a binary semaphore
Cyg_Binary_Semaphore::posted check availability of a binary semaphore
Cyg_Clock::Cyg_Clock create a clock
Cyg_Clock::~Cyg_Clock destroy a clock
Cyg_Clock::get_resolution get the resolution of the clock
Cyg_Clock::set_resolution set clock resolution
Cyg_Clock::get_other_to_clock_converter setup clock conversion
Cyg_Clock::get_clock_to_other_converter setup clock conversion
Cyg_Clock::convert convert from one clock to another
Cyg_Condition_Variable::Cyg_Condition_Variable create a condition variable
Cyg_Condition_Variable::~Cyg_Condition_Variable destroy condition variable
Cyg_Condition_Variable::signal wake one thread waiting on condition variable
Cyg_Condition_Variable::broadcast wake all threads waiting on condition variable
Cyg_Condition_Variable::wait wait on a condition variable
Cyg_Condition_Variable::wait wait until an absolute time on a condition variable
Cyg_Condition_Variable::wait wait on a condition variable
Cyg_Condition_Variable::wait wait until an absolute time on a condition variable
Cyg_Counter::Cyg_Counter create a counter
Cyg_Counter::~Cyg_Counter destroys a counter
Cyg_Counter::current_value get the current value of the counter
Cyg_Counter::current_value_lo get lower 32 bits of counter
Cyg_Counter::current_value_hi get upper 32 bits of counter
Cyg_Counter::set_value set counter value directly
Cyg_Counter::tick increment counter by some number of ticks
Cyg_Counter::add_alarm attach an alarm to counter
Cyg_Counter::rem_alarm detach alarm from counter
Cyg_Counting_Semaphore::Cyg_Counting_Semaphore create counting semaphore
Cyg_Counting_Semaphore::~Cyg_Counting_Semaphore destroy a counting semaphore
Cyg_Counting_Semaphore::wait get a counting semaphore
Cyg_Counting_Semaphore::wait wait until an absolute time for a counting semaphore
Cyg_Counting_Semaphore::trywait get a counting semaphore, don't block
Cyg_Counting_Semaphore::post release a counting semaphore
Cyg_Counting_Semaphore::peek get the count of a counting semaphore
Cyg_Flag::Cyg_Flag create flag
Cyg_Flag::~Cyg_Flag destroy flag
Cyg_Flag::setbits set bits in a flag
Cyg_Flag::maskbits clear bits in flag
Cyg_Flag::wait wait on a a condition or set of conditions
Cyg_Flag::wait wait on a a condition or set of conditions with a timeout
Cyg_Flag::poll test for a pattern match on the flag
Cyg_Flag::peek get conditions set in a given flag
Cyg_Flag::waiting check to see if any threads are waiting on flag
Cyg_Interrupt::Cyg_Interrupt create an interrupt handler
Cyg_Interrupt::~Cyg_Interrupt delete an interrupt handler
Cyg_Interrupt::attach attach an interrupt
Cyg_Interrupt::detach detach an interrupt
Cyg_Interrupt::get_vsr get the VSR pointer of an interrupt
Cyg_Interrupt::set_vsr set a new VSR
Cyg_Interrupt::disable_interrupts disable interrupts globally
Cyg_Interrupt::enable_interrupts enable interrupts globally
Cyg_Interrupt::mask_interrupt mask an interrupt
Cyg_Interrupt::mask_interrupt_intunsafe interrupt unsafe mask an interrupt
Cyg_Interrupt::unmask_interrupt unmask an interrupt
Cyg_Interrupt::unmask_interrupt_intunsafe interrupt unsafe unmask an interrupt
Cyg_Interrupt::acknowledge_interrupt acknowledge an interrupt
Cyg_Interrupt::configure_interrupt configure an interrupt
Cyg_Interrupt::set_cpu set cpu
Cyg_Interrupt::get_cpu get cpu
Cyg_Mbox::Cyg_Mbox create a message box
Cyg_Mbox::~Cyg_Mbox destroy a message box
Cyg_Mbox::get get a message from a message box
Cyg_Mbox::get get a message from a message box with timeout
Cyg_Mbox::tryget get a message from a message box if one is available
Cyg_Mbox::peek_item get a message from an mbox but don't remove from queue
Cyg_Mbox::put place a message into a message box
Cyg_Mbox::put place a message into a message box with a timeout
Cyg_Mbox::tryput place a message into a message box if space is available
Cyg_Mbox::peek gets the number of messages currently in the message queue
Cyg_Mbox::waiting_to_get reports if any threads are waiting to get a message from this mbox
Cyg_Mbox::waiting_to_put reports if any threads are waiting to place a message into this mbox
Cyg_Mempool_Fixed::Cyg_Mempool_Fixed create fixed block memory heap
Cyg_Mempool_Fixed::~Cyg_Mempool_Fixed destroy fixed size memory pool
Cyg_Mempool_Fixed::try_alloc allocate a fixed block of memory, nonblocking
Cyg_Mempool_Fixed::alloc allocate a fixed block size, block thread if necessary
Cyg_Mempool_Fixed::alloc allocate a fixed block size with timeout
Cyg_Mempool_Fixed::free return a block of memory to a fixed sized heap
Cyg_Mempool_Fixed::get_status get status on a heap
Cyg_Mempool_Variable::Cyg_Mempool_Variable create a variable heap
Cyg_Mempool_Variable::~Cyg_Mempool_Variable destroy variable heap
Cyg_Mempool_Variable::try_alloc allocate a block of memory
Cyg_Mempool_Variable::alloc allocate a block of memory, block until memory available
Cyg_Mempool_Variable::alloc allocate a block of memory with timeout
Cyg_Mempool_Variable::resize_alloc resize a previously allocated block of memory
Cyg_Mempool_Variable::free free an allocated block of memory
Cyg_Mempool_Variable::get_status get status on a heap
Cyg_Mutex::Cyg_Mutex create a mutex
Cyg_Mutex::Cyg_Mutex create a mutex with a specified protocol
Cyg_Mutex::~Cyg_Mutex destroy a mutex
Cyg_Mutex::lock lock a mutex or wait until it can be locked
Cyg_Mutex::trylock lock a mutex if it's free
Cyg_Mutex::unlock unlock a mutex
Cyg_Mutex::release release all threads waiting on a mutex
Cyg_Mutex::set_ceiling set the max priority to be inherited
Cyg_Mutex::get_ceiling get the priority ceiling of this mutex
Cyg_Mutex::get_owner get the current owner of a mutex
Cyg_Mutex::set_protocol set the protocol of a mutex
Cyg_Scheduler::get_sched_lock get the lock count of a thread
Cyg_Scheduler::lock lock a thread
Cyg_Scheduler::unlock unlock a thread
Cyg_Thread::Cyg_Thread contructor to create a new thread
Cyg_Thread::exit terminate calling thread
Cyg_Thread::suspend suspend a thread
Cyg_Thread::resume resume a suspended thread
Cyg_Thread::force_resume force a suspended thread to be resumed
Cyg_Thread::kill kill a thread
Cyg_Thread::release force a thread to wake up with the reason of BREAK
Cyg_Thread::yield yield the cpu to another thread
Cyg_Thread::self get the "this" pointer of the calling thread
Cyg_Thread::set_priority set priority of a thread
Cyg_Thread::get_priority get the set priority of a thread
Cyg_Thread::get_current_priority get the current priority of a thread
Cyg_Thread::delay delay a thread
Cyg_HardwareThread::get_stack_base get base address of a thread's stack
Cyg_HardwareThread::get_stack_size get the size of a thread's stack
Cyg_HardwareThread::measure_stack_usage measure a stack's usage
Cyg_Thread::new_data_index gets a new data index for per thread data
Cyg_Thread::free_data_index free a data index for per thread data
Cyg_Thread::get_data get per thread data
Cyg_Thread::get_data_ptr get per thread data pointer
Cyg_Thread::set_data set per thread data
Cyg_Thread::add_destructor add a thread destructor
Cyg_Thread::rem_destructor remove a thread destructor
Cyg_Thread::register_exception register an exception handler
Cyg_Thread::deregister_exception deregister an exception