The Pedigree Project 0.1
Classes | Public Member Functions | Static Public Attributes | Private Attributes | List of all members
PosixUserNamespace Class Reference
+ Collaboration diagram for PosixUserNamespace:

Classes

struct  Map
 
struct  Range
 

Public Member Functions

 PosixUserNamespace (const UserNamespaceRef &parent, uint32_t owner, uint32_t group, bool creatorSetfcap)
 
const UserNamespaceRef & parent () const
 
uint32_t owner () const
 
unsigned depth () const
 
uint64_t identity () const
 
bool toGlobal (bool group, uint32_t id, uint32_t &global, uint32_t count=1) const
 
bool fromGlobal (bool group, uint32_t global, uint32_t &id) const
 
bool groupsAllowed () const
 
int writeMap (bool group, const char *bytes, size_t length)
 
size_t readMap (bool group, const UserNamespaceRef &viewer, char *bytes, size_t capacity) const
 
int writeSetgroups (const char *bytes, size_t length)
 

Static Public Attributes

static constexpr size_t MaximumRanges = 340
 

Private Attributes

const UserNamespaceRef m_Parent
 
const uint32_t m_Owner
 
const uint32_t m_Group
 
const unsigned m_Depth
 
const uint64_t m_Identity
 
const bool m_CreatorSetfcap
 
Mutex m_Lock
 
Map m_Uids
 
Map m_Gids
 
bool m_GroupsAllowed
 

Detailed Description

Definition at line 52 of file user-namespace.h.

Constructor & Destructor Documentation

◆ PosixUserNamespace()

PosixUserNamespace::PosixUserNamespace ( const UserNamespaceRef &  parent,
uint32_t  owner,
uint32_t  group,
bool  creatorSetfcap 
)

Definition at line 54 of file user-namespace.cc.

Member Function Documentation

◆ depth()

unsigned PosixUserNamespace::depth ( ) const
inline

Definition at line 67 of file user-namespace.h.

◆ fromGlobal()

bool PosixUserNamespace::fromGlobal ( bool  group,
uint32_t  global,
uint32_t &  id 
) const

Definition at line 77 of file user-namespace.cc.

◆ groupsAllowed()

bool PosixUserNamespace::groupsAllowed ( ) const

Definition at line 90 of file user-namespace.cc.

◆ identity()

uint64_t PosixUserNamespace::identity ( ) const
inline

Definition at line 70 of file user-namespace.h.

◆ owner()

uint32_t PosixUserNamespace::owner ( ) const
inline

Definition at line 64 of file user-namespace.h.

◆ parent()

const UserNamespaceRef & PosixUserNamespace::parent ( ) const
inline

Definition at line 61 of file user-namespace.h.

◆ readMap()

size_t PosixUserNamespace::readMap ( bool  group,
const UserNamespaceRef &  viewer,
char *  bytes,
size_t  capacity 
) const

Definition at line 177 of file user-namespace.cc.

◆ toGlobal()

bool PosixUserNamespace::toGlobal ( bool  group,
uint32_t  id,
uint32_t &  global,
uint32_t  count = 1 
) const

Definition at line 64 of file user-namespace.cc.

◆ writeMap()

int PosixUserNamespace::writeMap ( bool  group,
const char *  bytes,
size_t  length 
)

Definition at line 95 of file user-namespace.cc.

◆ writeSetgroups()

int PosixUserNamespace::writeSetgroups ( const char *  bytes,
size_t  length 
)

Definition at line 215 of file user-namespace.cc.

Member Data Documentation

◆ m_CreatorSetfcap

const bool PosixUserNamespace::m_CreatorSetfcap
private

Definition at line 89 of file user-namespace.h.

◆ m_Depth

const unsigned PosixUserNamespace::m_Depth
private

Definition at line 87 of file user-namespace.h.

◆ m_Gids

Map PosixUserNamespace::m_Gids
private

Definition at line 91 of file user-namespace.h.

◆ m_Group

const uint32_t PosixUserNamespace::m_Group
private

Definition at line 86 of file user-namespace.h.

◆ m_GroupsAllowed

bool PosixUserNamespace::m_GroupsAllowed
private

Definition at line 92 of file user-namespace.h.

◆ m_Identity

const uint64_t PosixUserNamespace::m_Identity
private

Definition at line 88 of file user-namespace.h.

◆ m_Lock

Mutex PosixUserNamespace::m_Lock
mutableprivate

Definition at line 90 of file user-namespace.h.

◆ m_Owner

const uint32_t PosixUserNamespace::m_Owner
private

Definition at line 86 of file user-namespace.h.

◆ m_Parent

const UserNamespaceRef PosixUserNamespace::m_Parent
private

Definition at line 85 of file user-namespace.h.

◆ m_Uids

Map PosixUserNamespace::m_Uids
private

Definition at line 91 of file user-namespace.h.

◆ MaximumRanges

constexpr size_t PosixUserNamespace::MaximumRanges = 340
staticconstexpr

Definition at line 54 of file user-namespace.h.


The documentation for this class was generated from the following files: