#include <sbuild-personality.h>
Public Types | |
enum | error_code { BAD, SET } |
Error codes. More... | |
typedef unsigned long | type |
Personality type. | |
typedef custom_error< error_code > | error |
Exception type. | |
Public Member Functions | |
personality () | |
The constructor. | |
personality (type persona) | |
The constructor. | |
personality (std::string const &persona) | |
The constructor. | |
~personality () | |
* The destructor. | |
std::string const & | get_name () const |
Get the name of the personality. | |
type | get () const |
Get the personality. | |
void | set () const |
Set the process personality. | |
Static Public Member Functions | |
static std::string | get_personalities () |
Print a list of the available personalities. | |
Static Private Member Functions | |
static type | find_personality (std::string const &persona) |
Find a personality by name. | |
static std::string const & | find_personality (type persona) |
Find a personality by number. | |
Private Attributes | |
type | persona |
The personality type. | |
Static Private Attributes | |
static std::map< std::string, type > | personalities |
Mapping between personality name and type. | |
Friends | |
template<class charT, class traits> | |
std::basic_istream< charT, traits > & | operator>> (std::basic_istream< charT, traits > &stream, personality &rhs) |
Get the personality name from a stream. | |
template<class charT, class traits> | |
std::basic_ostream< charT, traits > & | operator<< (std::basic_ostream< charT, traits > &stream, personality const &rhs) |
Print the personality name to a stream. |
A chroot may have a personality (also knows as a process execution domain) which is used to run non-native binaries. For example, running 32-bit Linux binaries on a 64-bit Linux system, or an SVR4 binary on a 32-bit Linux system. This is currently a Linux only feature; it does nothing on non-Linux systems. This is a wrapper around the personality(2) system call.
typedef unsigned long sbuild::personality::type |
Personality type.
Exception type.
sbuild::personality::personality | ( | ) |
The constructor.
On Linux systems, this is initialised with the current process' personality. On non-Linux systems, it is initialised as "undefined".
sbuild::personality::personality | ( | type | persona | ) |
The constructor.
persona | the persona to set. |
sbuild::personality::personality | ( | std::string const & | persona | ) |
The constructor.
persona | the persona to set. |
sbuild::personality::~personality | ( | ) |
* The destructor.
std::string const & sbuild::personality::get_name | ( | ) | const |
Get the name of the personality.
References find_personality(), and persona.
Referenced by set().
sbuild::personality::type sbuild::personality::get | ( | ) | const |
void sbuild::personality::set | ( | ) | const |
Set the process personality.
This sets the personality (if valid) using the personality(2) system call. If setting the personality fails, an error is thown.
References get_name(), persona, and SET.
std::string sbuild::personality::get_personalities | ( | ) | [static] |
Print a list of the available personalities.
References personalities.
sbuild::personality::type sbuild::personality::find_personality | ( | std::string const & | persona | ) | [static, private] |
Find a personality by name.
persona | the personality to find. |
References personalities.
Referenced by get_name().
std::string const & sbuild::personality::find_personality | ( | type | persona | ) | [static, private] |
Find a personality by number.
persona | the personality to find. |
References personalities.
std::basic_istream<charT,traits>& operator>> | ( | std::basic_istream< charT, traits > & | stream, | |
personality & | rhs | |||
) | [friend] |
Get the personality name from a stream.
stream | the stream to get input from. | |
rhs | the personality to set. |
std::basic_ostream<charT,traits>& operator<< | ( | std::basic_ostream< charT, traits > & | stream, | |
personality const & | rhs | |||
) | [friend] |
Print the personality name to a stream.
stream | the stream to output to. | |
rhs | the personality to output. |
type sbuild::personality::persona [private] |
std::map< std::string, sbuild::personality::type > sbuild::personality::personalities [static, private] |
Mapping between personality name and type.
Referenced by find_personality(), and get_personalities().