This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Definition in file sem.c.
Include dependency graph for sem.c:
Go to the source code of this file.
Defines | |
#define | WAKEUP_WAIT_ONE_POLLER(wakeup) |
#define | WAKEUP_WAIT_ALL_POLLERS(wakeup) |
#define | CHECK_SEM_MAGIC(sem) do { if (sem->magic != RT_SEM_MAGIC) return RTE_OBJINV; } while (0) |
Functions | |
MODULE_LICENSE ("GPL") | |
RTAI_SYSCALL_MODE void | rt_typed_sem_init (SEM *sem, int value, int type) |
Initialize a specifically typed (counting, binary, resource) semaphore | |
void | rt_sem_init (SEM *sem, int value) |
Initialize a counting semaphore. | |
RTAI_SYSCALL_MODE int | rt_sem_delete (SEM *sem) |
Delete a semaphore | |
RTAI_SYSCALL_MODE int | rt_sem_count (SEM *sem) |
RTAI_SYSCALL_MODE int | rt_sem_signal (SEM *sem) |
Signaling a semaphore. | |
RTAI_SYSCALL_MODE int | rt_sem_broadcast (SEM *sem) |
Signaling a semaphore. | |
RTAI_SYSCALL_MODE int | rt_sem_wait (SEM *sem) |
Take a semaphore. | |
RTAI_SYSCALL_MODE int | rt_sem_wait_if (SEM *sem) |
Take a semaphore, only if the calling task is not blocked. | |
RTAI_SYSCALL_MODE int | rt_sem_wait_until (SEM *sem, RTIME time) |
Wait a semaphore with timeout. | |
RTAI_SYSCALL_MODE int | rt_sem_wait_timed (SEM *sem, RTIME delay) |
Wait a semaphore with timeout. | |
RTAI_SYSCALL_MODE int | rt_sem_wait_barrier (SEM *sem) |
Wait on a semaphore barrier. | |
RTAI_SYSCALL_MODE int | rt_cond_signal (CND *cnd) |
Wait for a signal to a conditional variable. | |
static int | rt_cndmtx_signal (SEM *mtx, RT_TASK *rt_current) |
RTAI_SYSCALL_MODE int | rt_cond_wait (CND *cnd, SEM *mtx) |
Wait for a signal to a conditional variable. | |
RTAI_SYSCALL_MODE int | rt_cond_wait_until (CND *cnd, SEM *mtx, RTIME time) |
Wait a semaphore with timeout. | |
RTAI_SYSCALL_MODE int | rt_cond_wait_timed (CND *cnd, SEM *mtx, RTIME delay) |
Wait a semaphore with timeout. | |
RTAI_SYSCALL_MODE int | rt_typed_rwl_init (RWL *rwl, int type) |
Initialize a multi readers single writer lock. | |
RTAI_SYSCALL_MODE int | rt_rwl_delete (RWL *rwl) |
destroys a multi readers single writer lock. | |
RTAI_SYSCALL_MODE int | rt_rwl_rdlock (RWL *rwl) |
acquires a multi readers single writer lock for reading. | |
RTAI_SYSCALL_MODE int | rt_rwl_rdlock_if (RWL *rwl) |
try to acquire a multi readers single writer lock just for reading. | |
RTAI_SYSCALL_MODE int | rt_rwl_rdlock_until (RWL *rwl, RTIME time) |
try to acquire a multi readers single writer lock for reading within an absolute deadline time. | |
RTAI_SYSCALL_MODE int | rt_rwl_rdlock_timed (RWL *rwl, RTIME delay) |
try to acquire a multi readers single writer lock for reading within a relative deadline time. | |
RTAI_SYSCALL_MODE int | rt_rwl_wrlock (RWL *rwl) |
acquires a multi readers single writer lock for wrtiting. | |
RTAI_SYSCALL_MODE int | rt_rwl_wrlock_if (RWL *rwl) |
acquires a multi readers single writer lock for writing. | |
RTAI_SYSCALL_MODE int | rt_rwl_wrlock_until (RWL *rwl, RTIME time) |
try to acquire a multi readers single writer lock for writing within an absolute deadline time. | |
RTAI_SYSCALL_MODE int | rt_rwl_wrlock_timed (RWL *rwl, RTIME delay) |
try to acquire a multi readers single writer lock for writing within a relative deadline time. | |
RTAI_SYSCALL_MODE int | rt_rwl_unlock (RWL *rwl) |
unlock an acquired multi readers single writer lock. | |
RTAI_SYSCALL_MODE int | rt_spl_init (SPL *spl) |
Initialize a spinlock. | |
RTAI_SYSCALL_MODE int | rt_spl_delete (SPL *spl) |
Initialize a spinlock. | |
RTAI_SYSCALL_MODE int | rt_spl_lock (SPL *spl) |
Acquire a spinlock. | |
RTAI_SYSCALL_MODE int | rt_spl_lock_if (SPL *spl) |
Acquire a spinlock without waiting. | |
RTAI_SYSCALL_MODE int | rt_spl_lock_timed (SPL *spl, unsigned long ns) |
Acquire a spinlock with timeout. | |
RTAI_SYSCALL_MODE int | rt_spl_unlock (SPL *spl) |
Release an owned spinlock. | |
RTAI_SYSCALL_MODE SEM * | _rt_typed_named_sem_init (unsigned long sem_name, int value, int type, unsigned long *handle) |
Initialize a specifically typed (counting, binary, resource) semaphore identified by a name. | |
RTAI_SYSCALL_MODE int | rt_named_sem_delete (SEM *sem) |
Delete a semaphore initialized in named mode. | |
RTAI_SYSCALL_MODE RWL * | _rt_named_rwl_init (unsigned long rwl_name) |
Initialize a multi readers single writer lock identified by a name. | |
RTAI_SYSCALL_MODE int | rt_named_rwl_delete (RWL *rwl) |
Delete a multi readers single writer lock in named mode. | |
RTAI_SYSCALL_MODE SPL * | _rt_named_spl_init (unsigned long spl_name) |
Initialize a spinlock identified by a name. | |
RTAI_SYSCALL_MODE int | rt_named_spl_delete (SPL *spl) |
Delete a spinlock in named mode. | |
EXPORT_SYMBOL (rt_poll_ofstfun) | |
int | set_rt_fun_entries (struct rt_native_fun_entry *entry) |
void | reset_rt_fun_entries (struct rt_native_fun_entry *entry) |
static int | poll_wait (void *sem) |
int | __rtai_sem_init (void) |
void | __rtai_sem_exit (void) |
module_init (__rtai_sem_init) | |
module_exit (__rtai_sem_exit) | |
EXPORT_SYMBOL (rt_typed_sem_init) | |
EXPORT_SYMBOL (rt_sem_init) | |
EXPORT_SYMBOL (rt_sem_delete) | |
EXPORT_SYMBOL (rt_sem_count) | |
EXPORT_SYMBOL (rt_sem_signal) | |
EXPORT_SYMBOL (rt_sem_broadcast) | |
EXPORT_SYMBOL (rt_sem_wait) | |
EXPORT_SYMBOL (rt_sem_wait_if) | |
EXPORT_SYMBOL (rt_sem_wait_until) | |
EXPORT_SYMBOL (rt_sem_wait_timed) | |
EXPORT_SYMBOL (rt_sem_wait_barrier) | |
EXPORT_SYMBOL (_rt_typed_named_sem_init) | |
EXPORT_SYMBOL (rt_named_sem_delete) | |
EXPORT_SYMBOL (rt_cond_signal) | |
EXPORT_SYMBOL (rt_cond_wait) | |
EXPORT_SYMBOL (rt_cond_wait_until) | |
EXPORT_SYMBOL (rt_cond_wait_timed) | |
EXPORT_SYMBOL (rt_typed_rwl_init) | |
EXPORT_SYMBOL (rt_rwl_delete) | |
EXPORT_SYMBOL (rt_rwl_rdlock) | |
EXPORT_SYMBOL (rt_rwl_rdlock_if) | |
EXPORT_SYMBOL (rt_rwl_rdlock_until) | |
EXPORT_SYMBOL (rt_rwl_rdlock_timed) | |
EXPORT_SYMBOL (rt_rwl_wrlock) | |
EXPORT_SYMBOL (rt_rwl_wrlock_if) | |
EXPORT_SYMBOL (rt_rwl_wrlock_until) | |
EXPORT_SYMBOL (rt_rwl_wrlock_timed) | |
EXPORT_SYMBOL (rt_rwl_unlock) | |
EXPORT_SYMBOL (_rt_named_rwl_init) | |
EXPORT_SYMBOL (rt_named_rwl_delete) | |
EXPORT_SYMBOL (rt_spl_init) | |
EXPORT_SYMBOL (rt_spl_delete) | |
EXPORT_SYMBOL (rt_spl_lock) | |
EXPORT_SYMBOL (rt_spl_lock_if) | |
EXPORT_SYMBOL (rt_spl_lock_timed) | |
EXPORT_SYMBOL (rt_spl_unlock) | |
EXPORT_SYMBOL (_rt_named_spl_init) | |
EXPORT_SYMBOL (rt_named_spl_delete) | |
Variables | |
epoch_struct | boot_epoch |
rt_poll_enc | rt_poll_ofstfun [] |
rt_native_fun_entry | rt_sem_entries [] |
EXPORT_SYMBOL | ( | rt_named_spl_delete | ) |
EXPORT_SYMBOL | ( | _rt_named_spl_init | ) |
EXPORT_SYMBOL | ( | rt_spl_unlock | ) |
EXPORT_SYMBOL | ( | rt_spl_lock_timed | ) |
EXPORT_SYMBOL | ( | rt_spl_lock_if | ) |
EXPORT_SYMBOL | ( | rt_spl_lock | ) |
EXPORT_SYMBOL | ( | rt_spl_delete | ) |
EXPORT_SYMBOL | ( | rt_spl_init | ) |
EXPORT_SYMBOL | ( | rt_named_rwl_delete | ) |
EXPORT_SYMBOL | ( | _rt_named_rwl_init | ) |
EXPORT_SYMBOL | ( | rt_rwl_unlock | ) |
EXPORT_SYMBOL | ( | rt_rwl_wrlock_timed | ) |
EXPORT_SYMBOL | ( | rt_rwl_wrlock_until | ) |
EXPORT_SYMBOL | ( | rt_rwl_wrlock_if | ) |
EXPORT_SYMBOL | ( | rt_rwl_wrlock | ) |
EXPORT_SYMBOL | ( | rt_rwl_rdlock_timed | ) |
EXPORT_SYMBOL | ( | rt_rwl_rdlock_until | ) |
EXPORT_SYMBOL | ( | rt_rwl_rdlock_if | ) |
EXPORT_SYMBOL | ( | rt_rwl_rdlock | ) |
EXPORT_SYMBOL | ( | rt_rwl_delete | ) |
EXPORT_SYMBOL | ( | rt_typed_rwl_init | ) |
EXPORT_SYMBOL | ( | rt_cond_wait_timed | ) |
EXPORT_SYMBOL | ( | rt_cond_wait_until | ) |
EXPORT_SYMBOL | ( | rt_cond_wait | ) |
EXPORT_SYMBOL | ( | rt_cond_signal | ) |
EXPORT_SYMBOL | ( | rt_named_sem_delete | ) |
EXPORT_SYMBOL | ( | _rt_typed_named_sem_init | ) |
EXPORT_SYMBOL | ( | rt_sem_wait_barrier | ) |
EXPORT_SYMBOL | ( | rt_sem_wait_timed | ) |
EXPORT_SYMBOL | ( | rt_sem_wait_until | ) |
EXPORT_SYMBOL | ( | rt_sem_wait_if | ) |
EXPORT_SYMBOL | ( | rt_sem_wait | ) |
EXPORT_SYMBOL | ( | rt_sem_broadcast | ) |
EXPORT_SYMBOL | ( | rt_sem_signal | ) |
EXPORT_SYMBOL | ( | rt_sem_count | ) |
EXPORT_SYMBOL | ( | rt_sem_delete | ) |
EXPORT_SYMBOL | ( | rt_sem_init | ) |
EXPORT_SYMBOL | ( | rt_typed_sem_init | ) |
module_exit | ( | __rtai_sem_exit | ) |
module_init | ( | __rtai_sem_init | ) |