The SemaphoreCommon manages the SemaphoreGroup common storage area.
More...
#include <SemaphoreCommon.hpp>
|
static Int | getSemaphoreMaxValue (SemaphoreGroupPtr, Int) |
| Returns the maximum value for a semaphore as defined by the original semaphore claimant. More...
|
|
static void | groupDefined (SemaphoreGroupPtr) |
| When a shared semaphore group is created, it is updated in the CSA, either by increasing the count of processes accessing a particular group, or adding to the csa initially. More...
|
|
static Int | groupUnDefined (SemaphoreGroupPtr) |
| When the local process is deleting a semaphore group and it is considered a shared group, we are asked to adjust the map accordingly. More...
|
|
static Int | setLock (SemaphoreGroupPtr, Int, Int, Int) |
| Called by the base semaphore to aquire a lock for a specific semaphore. More...
|
|
static Int | setUnLock (SemaphoreGroupPtr, Int, Int, Int) |
| Called by the base semaphore to relinquish a lock for a specific semaphore. More...
|
|
static Int | waitZero (SemaphoreGroupPtr, Int, Int, Int) |
| Called by the base semaphore to wait for a specific semaphore to have a zero value. More...
|
|
static Int | obtainSemaphore (SemaphoreGroupPtr, Int, IntRef, IntRef, IntRef, Int) |
| Typically called by a SemaphoreGroup prior to passing out the semaphore type to the caller. More...
|
|
static Int | relinquishSemaphore (SemaphoreGroupPtr, Int) |
| Called when the semaphore is no longer being referenced. More...
|
|
static Int | setMaxValue (SemaphoreGroupPtr, Int, Int) |
| Called to set the semaphore maximum value. More...
|
|
|
| SemaphoreCommon (void) |
| Default constructor used by class.
|
|
virtual | ~SemaphoreCommon (void) |
| Destructor.
|
|
void | registerGroup (SemaphoreGroupPtr) |
| Does the work of getting the group registered in the CSA. More...
|
|
Int | deregisterGroup (SemaphoreGroupPtr) |
| Does the work of reducing the group share count, or marking the group for reclaimation. More...
|
|
Int | claimSemaphore (SemaphoreGroupPtr, Int, IntRef, IntRef, IntRef, Int) |
| Called when the group is determined to be shared and a semaphore share is to be claimed. More...
|
|
Int | reclaimSemaphore (SemaphoreGroupPtr, Int) |
| Called when a group wishes to let the CSA reclaim a semaphore share. More...
|
|
CSAGrpHeaderPtr | findGroup (IntCref, IntCref, CSAGrpHeaderPtr) |
| Attempt to locate a specific group.
|
|
CSAGrpHeaderPtr | findAvailableGroup (IntCref, IntCref, CSAGrpHeaderPtr) |
| Find open slot that fits count criteria.
|
|
CSAGrpHeaderPtr | subsetGroup (Int, CSAGrpHeaderPtr) |
| Utility to clean CSA group tail.
|
|
CSAGrpHeaderPtr | combineGroup (Int, CSAGrpHeaderPtr) |
|
bool | isOriginator (void) const |
|
Int | getOriginatorId (void) const |
|
Int | canonicalUndefined (void) |
|
Guard | access (void) const throw (SemaphoreException) |
| Access returns a instance of Guard which is block scoped to the caller. More...
|
|
The SemaphoreCommon manages the SemaphoreGroup common storage area.
This area is to communicate between address spaces when using one of the CoreLinux++ SemaphoreGroup types in public mode.
Int corelinux::SemaphoreCommon::claimSemaphore |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aSemIndex, |
|
|
IntRef |
aMaxValue, |
|
|
IntRef |
aRecurse, |
|
|
IntRef |
aBalking, |
|
|
Int |
aFailConstraint |
|
) |
| |
|
protected |
Called when the group is determined to be shared and a semaphore share is to be claimed.
- Parameters
-
SemaphoreGroup | the group pointer |
Int | the semaphore identifier/index -1 = any |
Int | the initial value (becomes the max if new) |
IntRef | the recursive condition |
IntRef | the balking condition |
Int | 0 must not exist, 1 share, 2 must exist |
Does the work of reducing the group share count, or marking the group for reclaimation.
- Parameters
-
Referenced by groupUnDefined().
Int corelinux::SemaphoreCommon::getSemaphoreMaxValue |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aSemId |
|
) |
| |
|
static |
Int corelinux::SemaphoreCommon::obtainSemaphore |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aSemIndex, |
|
|
IntRef |
aMaxValue, |
|
|
IntRef |
aRecurse, |
|
|
IntRef |
aBalking, |
|
|
Int |
aFailConstraint |
|
) |
| |
|
static |
Int corelinux::SemaphoreCommon::reclaimSemaphore |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aSemIndex |
|
) |
| |
|
protected |
Called when a group wishes to let the CSA reclaim a semaphore share.
- Parameters
-
- Returns
- Int the number of shares outstanding
Int corelinux::SemaphoreCommon::relinquishSemaphore |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aSemIndex |
|
) |
| |
|
static |
Int corelinux::SemaphoreCommon::setLock |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aGid, |
|
|
Int |
aSid, |
|
|
Int |
aFlg |
|
) |
| |
|
static |
Int corelinux::SemaphoreCommon::setMaxValue |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aId, |
|
|
Int |
aValue |
|
) |
| |
|
static |
Int corelinux::SemaphoreCommon::setUnLock |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aGid, |
|
|
Int |
aSid, |
|
|
Int |
aFlg |
|
) |
| |
|
static |
Int corelinux::SemaphoreCommon::waitZero |
( |
SemaphoreGroupPtr |
aGroup, |
|
|
Int |
aGid, |
|
|
Int |
aSid, |
|
|
Int |
aFlg |
|
) |
| |
|
static |
The documentation for this class was generated from the following files: