11 namespace L4Re {
namespace Util {
20 explicit Env_ns(Env
const *env =
Env::env(),
22 : _ca(ca), _env(env) {}
25 query(
char const *name,
unsigned len,
int timeout = Namespace::To_default,
26 l4_umword_t *local_id = 0,
bool iterate =
true)
const throw()
31 for (; len && *n !=
'/'; ++n, --len)
34 Cap_entry
const *e = _env->get(name, n - name);
38 if (len > 0 && *n ==
'/')
46 long r = ns->query(n + 1, len - 1, cap, timeout, local_id, iterate);
59 query(
char const *name,
int timeout = Namespace::To_default,
60 l4_umword_t *local_id = 0,
bool iterate =
true)
const throw()
61 {
return query(name, __builtin_strlen(name), timeout, local_id, iterate); }
65 query(
char const *name,
int timeout = Namespace::To_default,
66 l4_umword_t *local_id = 0,
bool iterate =
true)
const throw()
68 return L4::cap_cast<T>(query(name, __builtin_strlen(name),
69 timeout, local_id, iterate));
l4re_env_cap_entry_t Cap_entry
C++ type for an entry in the initial objects array.
Abstract capability-allocator interface.
Capability allocator interface.
static L4Re::Cap_alloc * get_cap_alloc(CAP_ALLOC &ca)
Construct an instance of a capability allocator.
virtual void free(L4::Cap< void > cap, l4_cap_idx_t task=L4_INVALID_CAP, unsigned unmap_flags=L4_FP_ALL_SPACES)=0
Free a capability.
static Env const * env()
Returns the initial environment for the current task.
_Cap_alloc & cap_alloc
Capability allocator.
unsigned long l4_umword_t
Unsigned machine word.
bool is_valid() const
Test whether the capability is a valid capability index (i.e., not L4_INVALID_CAP).
Cap< T > cap_cast(Cap< F > const &c)
static_cast for capabilities.
virtual L4::Cap< void > alloc()=0
Allocate a capability.
C++ interface for capabilities.