The rtems_semaphore_create
directive creates a binary or
counting semaphore with a user-specified name as well as an
initial count. If a binary semaphore is created with a count of
zero (0) to indicate that it has been allocated, then the task
creating the semaphore is considered the current holder of the
semaphore. At create time the method for ordering waiting tasks
in the semaphore's task wait queue (by FIFO or task priority) is
specified. Additionally, the priority inheritance or priority
ceiling algorithm may be selected for local, binary semaphores
that use the priority task wait queue blocking discipline. If
the priority ceiling algorithm is selected, then the highest
priority of any task which will attempt to obtain this semaphore
must be specified. RTEMS allocates a Semaphore Control Block
(SMCB) from the SMCB free list. This data structure is used by
RTEMS to manage the newly created semaphore. Also, a unique
semaphore ID is generated and returned to the calling task.
Copyright © 1988-2008 OAR Corporation