|
The Pedigree Project 0.1
|
#include <PosixSubsystem.h>
Collaboration diagram for ProcessGroupManager:Public Member Functions | |
| size_t | allocateGroupId () |
| void | setGroupId (size_t gid) |
| bool | isGroupIdValid (size_t gid) const |
| void | returnGroupId (size_t gid) |
| void | registerGroup (size_t gid, ProcessGroup *group) |
| void | unregisterGroup (size_t gid, ProcessGroup *group) |
| ProcessGroup * | findGroup (size_t gid) const |
| Spinlock & | lock () |
Static Public Member Functions | |
| static ProcessGroupManager & | instance () |
Private Attributes | |
| ExtensibleBitmap | m_GroupIds |
| ProcessGroup * | m_Groups |
| Spinlock | m_GroupLock |
Static Private Attributes | |
| static ProcessGroupManager | m_Instance |
Process group ID control.
Definition at line 136 of file PosixSubsystem.h.
| ProcessGroupManager::ProcessGroupManager | ( | ) |
Definition at line 168 of file PosixSubsystem.cc.
|
virtual |
Definition at line 172 of file PosixSubsystem.cc.
| size_t ProcessGroupManager::allocateGroupId | ( | ) |
Allocates a new process group ID, that hasn't yet been used.
Definition at line 174 of file PosixSubsystem.cc.
| ProcessGroup * ProcessGroupManager::findGroup | ( | size_t | gid | ) | const |
Caller must retain lock() while using the returned pointer.
Definition at line 223 of file PosixSubsystem.cc.
|
inlinestatic |
Definition at line 141 of file PosixSubsystem.h.
| bool ProcessGroupManager::isGroupIdValid | ( | size_t | gid | ) | const |
Checks whether the given process group ID is used or not.
Definition at line 193 of file PosixSubsystem.cc.
|
inline |
Serialises process-group pointers, membership lists, and destruction.
Definition at line 165 of file PosixSubsystem.h.
| void ProcessGroupManager::registerGroup | ( | size_t | gid, |
| ProcessGroup * | group | ||
| ) |
Installs/removes the concrete group behind a reserved ID.
Definition at line 203 of file PosixSubsystem.cc.
| void ProcessGroupManager::returnGroupId | ( | size_t | gid | ) |
Returns the given process group ID to the available pool.
Definition at line 198 of file PosixSubsystem.cc.
| void ProcessGroupManager::setGroupId | ( | size_t | gid | ) |
Forcibly set the given group ID as taken.
Definition at line 183 of file PosixSubsystem.cc.
| void ProcessGroupManager::unregisterGroup | ( | size_t | gid, |
| ProcessGroup * | group | ||
| ) |
Definition at line 211 of file PosixSubsystem.cc.
|
private |
Bitmap of available group IDs.
Definition at line 174 of file PosixSubsystem.h.
|
mutableprivate |
Definition at line 177 of file PosixSubsystem.h.
|
private |
Definition at line 175 of file PosixSubsystem.h.
|
staticprivate |
Definition at line 170 of file PosixSubsystem.h.