GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> PBS / V2-12-1 > pbs / sun-gcc
#include <PBI/Inline.h>
#include <PBI/Attribute.h>
#include <PBS/RW.h>
#include <PBS/RW_pubdefs.h>
Defines | |
#define | RW__EXP_PROTO INLINE_USR_EXP_PROTO |
Export Prototype spec. | |
#define | RW__LCL_PROTO INLINE_USR_LCL_PROTO |
Internal Prototype spec. | |
#define | RW__EXP_FNC INLINE_USR_EXP_FNC |
Export Function declaration. | |
#define | RW__LCL_FNC INLINE_USR_LCL_FNC |
Internal Function declaration. | |
Functions | |
RW__EXP_PROTO int | RW__disable (RW_ctl *rw) ATTR_UNUSED_OK |
Disables wakeup calls. | |
RW__EXP_PROTO int | RW__enable (RW_ctl *rw) ATTR_UNUSED_OK |
Enables wakeup calls. | |
RW__EXP_PROTO int | RW__enabled (const RW_ctl *rw) ATTR_UNUSED_OK |
Returns the state of the enabled flag. | |
RW__EXP_PROTO RW_key | RW__lock (RW_ctl *rw) ATTR_UNUSED_OK |
Locks a resource so it can be manipulated in an interlocked fashion. | |
RW__EXP_PROTO RW_keys | RW__lock2 (RW_ctl *rw_0, RW_ctl *rw_1) ATTR_UNUSED_OK |
Locks two resource so they can be manipulated in an interlocked fashion. | |
RW__EXP_PROTO int | RW__unlock (RW_ctl *rw, RW_key key) ATTR_UNUSED_OK |
This routine unlocks a previously locked resource. | |
RW__EXP_PROTO int | RW__unlock2 (RW_ctl *rw_0, RW_ctl *rw_1, RW_keys keys) ATTR_UNUSED_OK |
This routine unlocks a previously locked resource. | |
RW__EXP_PROTO RW_key | RW__wait (RW_ctl *rw, RW_key key) ATTR_UNUSED_OK |
Blocks a task/thread until there is a reasonable chance that a resource is available. | |
RW__EXP_PROTO int | RW__wake (RW_ctl *rw, RW_key key) ATTR_UNUSED_OK |
This provides the signaling mechanism to wake up a thread of code which is waiting for a resource. |
CVS $Id: RW.ih,v 1.6 2011/03/24 23:05:44 apw Exp $
RW__EXP_FNC int RW__disable | ( | RW_ctl * | rw | ) |
Disables wakeup calls.
rw | The resource wait control structure |
0 | RW was previously disabled | |
!=0 | RW was previously enabled |
References _RW_waitctl_u::bf, RW__lock(), RW__unlock(), _RW_waitctl_u::si, and _RW_ctl::waiting.
Referenced by LI__disable(), and QI__disable().
RW__EXP_FNC int RW__enable | ( | RW_ctl * | rw | ) |
Enables wakeup calls.
rw | The resource wait control structure |
0 | RW was previously disabled | |
!=0 | RW was previously enabled |
References _RW_waitctl_u::bf, RW__lock(), RW__unlock(), RW__wake(), _RW_waitctl_u::si, and _RW_ctl::waiting.
Referenced by LI__enable(), and QI__enable().
RW__EXP_FNC int RW__enabled | ( | const RW_ctl * | rw | ) |
Returns the state of the enabled flag.
rw | The resource wait control structure |
0 | RW was previously disabled | |
!=0 | RW was previously enabled |
References _RW_waitctl_u::bf, and _RW_ctl::waiting.
Referenced by LI__enabled(), LI__remove(), QI__enabled(), and QI__remove().
Locks a resource so it can be manipulated in an interlocked fashion.
rw | The RW handle |
References BUG_check(), and _RW_ctl::mutex.
Referenced by FORK_disable(), FORK_enable(), FPA_free(), FPA_get(), LI__insert(), LI__jam(), LI__remove(), PL__insert(), PL__jam(), PL__remove(), PL__wake(), QI__insert(), QI__jam(), QI__remove(), RNG_free(), RW__disable(), RW__enable(), RW_free(), RW_get(), and RW_getW().
Locks two resource so they can be manipulated in an interlocked fashion.
rw_0 | The RW handle of the first resource to be locked | |
rw_1 | The RW handle of the second resource to be locked |
References BUG_check(), and _RW_ctl::mutex.
Referenced by LI__append(), LI__prepend(), QI__append(), and QI__prepend().
This routine unlocks a previously locked resource.
rw | The RW handle | |
key | The key used to lock the resource, returned from RW__lock |
References BUG_check(), and _RW_ctl::mutex.
Referenced by FORK_disable(), FORK_enable(), FPA_free(), FPA_get(), LI__insert(), LI__jam(), LI__remove(), PL__insert(), PL__jam(), PL__remove(), PL__wake(), QI__insert(), QI__jam(), QI__remove(), RNG_free(), RW__disable(), RW__enable(), RW_free(), and RW_getW().
This routine unlocks a previously locked resource.
rw_0 | The RW handle of the first resource to be unlocked | |
rw_1 | The RW handle of the second resource to be unlocked | |
keys | The keys used to lock the resources, returned from RW_lock2 |
References BUG_check(), and _RW_ctl::mutex.
Referenced by LI__append(), LI__prepend(), QI__append(), and QI__prepend().
Blocks a task/thread until there is a reasonable chance that a resource is available.
rw | The RW handle | |
key | The key used to unlock the interrupts |
References _RW_waitctl_u::bf, BUG_check(), _RW_ctl::cond, _RW_ctl::mutex, and _RW_ctl::waiting.
Referenced by RW_getW().
This provides the signaling mechanism to wake up a thread of code which is waiting for a resource.
rw | The RW handle | |
key | The key used to unlock the resource. |
Status | This routine checks if any thread is waiting for a resource, and if so wakes that thread. The resource should be locked on entry to this routine. This routine always exits with the resource still locked. |
References _RW_waitctl_u::bf, _RW_ctl::cond, _RW_waitctl_u::si, and _RW_ctl::waiting.
Referenced by FPA_free(), LI__insert(), LI__jam(), PL__insert(), PL__jam(), PL__wake(), QI__insert(), QI__jam(), RNG_free(), RW__enable(), and RW_free().