|
long | query (char const *name, L4::Cap< void > const &cap, int timeout=To_default, l4_umword_t *local_id=0, bool iterate=true) const noexcept |
| Query the name space for a named object.
|
|
long | query (char const *name, unsigned len, L4::Cap< void > const &cap, int timeout=To_default, l4_umword_t *local_id=0, bool iterate=true) const noexcept |
| Query the name space for a named object.
|
|
long | register_obj (char const *name, L4::Ipc::Cap< void > obj, unsigned flags=Rw) const noexcept |
| Register an object with a name.
|
|
long | unlink (char const *name) |
| Remove an entry from the name space.
|
|
l4_msgtag_t | dec_refcnt (l4_mword_t diff, l4_utcb_t *utcb=l4_utcb()) |
| Decrement the in kernel reference counter for the object.
|
|
|
typedef Namespace | Class |
| The target interface type (inheriting from Kobject_t)
|
|
typedef Typeid::Iface< PROTO, Namespace > | __Iface |
| The interface description for the derived class.
|
|
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Base::__Iface_list > | __Iface_list |
| The list of all RPC interfaces provided directly or through inheritance.
|
|
L4::Cap< Class > | c () const noexcept |
| Get the capability to ourselves.
|
|
l4_cap_idx_t | cap () const noexcept |
| Return capability selector.
|
|
static void | __check_protocols__ () noexcept |
| Helper to check for protocol conflicts.
|
|
Name-space interface.
All name space objects must provide this interface. However, it is not mandatory that a name space object allows to register new capabilities.
The name lookup is done iteratively, this means the hierarchical names are resolved component wise by the client itself.
Definition at line 60 of file namespace.
long L4Re::Namespace::query |
( |
char const * |
name, |
|
|
unsigned |
len, |
|
|
L4::Cap< void > const & |
cap, |
|
|
int |
timeout = To_default , |
|
|
l4_umword_t * |
local_id = 0 , |
|
|
bool |
iterate = true |
|
) |
| const |
|
noexcept |
Query the name space for a named object.
The query string does not necessarily need to be null-terminated.
- Parameters
-
[in] | len | Length of the string to query without any terminating null characters. |
[in] | name | String to query (without any leading slashes). |
[out] | cap | Capability slot where the received capability will be put. |
[in] | timeout | Timeout of query in milliseconds. The client will only wait if a name has already been registered with the server but no object has yet been attached. |
[out] | local_id | If given, L4_RCV_ITEM_LOCAL_ID will be set for the IPC from the name space, so that if the capability that was received is a local item, the capability ID will be returned with this parameter. |
[in] | iterate | If true, the client will try to resolve names by iteratively calling the name spaces until the name is fully resolved. |
- Return values
-
0 | Name could be fully resolved. |
>0 | Name could only be partly resolved. The number of remaining characters is returned. |
-L4_ENOENT | Entry could not be found. |
-L4_EAGAIN | Entry exists but no object is yet attached. Try again later. |
<0 | IPC errors, see l4_error_code_t. |
Definition at line 77 of file namespace_impl.h.
References L4_EAGAIN, L4_EINVAL, l4_sleep(), and L4_UNLIKELY.