Stream class for the create() argument stream.
More...
#include <factory>
|
| S (S &&o) noexcept |
| Move constructor.
|
|
| S (l4_cap_idx_t f, long obj, L4::Cap< void > target, l4_utcb_t *utcb) noexcept |
| Create a stream for a specific create() call.
|
|
| ~S () noexcept |
| Commit the create() operation if not already done explicitly via operator l4_msgtag_t().
|
|
| operator l4_msgtag_t () noexcept |
| Explicitly commits the operation and returns the result.
|
|
void | put (l4_mword_t i) noexcept |
| Put a single l4_mword_t as next argument.
|
|
void | put (l4_umword_t i) noexcept |
| Put a single l4_umword_t as next argument.
|
|
void | put (char const *s) &noexcept |
| Add a zero-terminated string as next argument.
|
|
void | put (Lstr const &s) &noexcept |
| Add a pascal string as next argument.
|
|
void | put (Nil) &noexcept |
| Add an empty argument.
|
|
void | put (l4_fpage_t d) &noexcept |
| Add a flexpage as next argument.
|
|
template<typename T > |
S & | operator<< (T const &d) &noexcept |
| Add next argument.
|
|
template<typename T > |
S && | operator<< (T const &d) &&noexcept |
| Add next argument.
|
|
Stream class for the create() argument stream.
This stream allows a variable number of arguments to be added to a create() call.
Definition at line 78 of file factory.
◆ S() [1/2]
L4::Factory::S::S |
( |
S && |
o | ) |
|
|
inlinenoexcept |
◆ S() [2/2]
Create a stream for a specific create() call.
- Parameters
-
| f | The capability for the factory object (L4::Factory). |
| obj | The protocol ID to describe the type of the object that shall be created. |
[out] | target | The capability selector for the new object. The caller must allocate the capability slot. The kernel stores the new object's capability into this slot. |
| utcb | UTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb. |
- Precondition
- The capability
f
must have the permission L4_CAP_FPAGE_S, otherwise the later factory IPC will fail with L4_EPERM.
Definition at line 124 of file factory.
◆ ~S()
◆ operator l4_msgtag_t()
Explicitly commits the operation and returns the result.
- Returns
- The result of the create() operation.
- Return values
-
L4_EOK | No error occurred. |
-L4_EPERM | Insufficient permissions; see precondition. |
<0 | Error code. |
- Precondition
- The invoked Factory capability must have the permission L4_CAP_FPAGE_S.
Definition at line 156 of file factory.
References l4_msgtag_t::raw.
◆ operator<<() [1/2]
template<typename T >
S && L4::Factory::S::operator<< |
( |
T const & |
d | ) |
&& |
|
inlinenoexcept |
Add next argument.
- Template Parameters
-
T | The argument type. Compilation succeeds only if it is a possible argument type for S::put() . |
- Parameters
-
d | The value to add as next argument. |
Definition at line 251 of file factory.
References put().
◆ operator<<() [2/2]
template<typename T >
S & L4::Factory::S::operator<< |
( |
T const & |
d | ) |
& |
|
inlinenoexcept |
Add next argument.
- Template Parameters
-
T | The argument type. Compilation succeeds only if it is a possible argument type for S::put() . |
- Parameters
-
d | The value to add as next argument. |
Definition at line 236 of file factory.
References put().
◆ put() [1/5]
void L4::Factory::S::put |
( |
char const * |
s | ) |
& |
|
inlinenoexcept |
Add a zero-terminated string as next argument.
- Parameters
-
s | The string to add as next argument. |
The string will be added with the zero-terminator.
Definition at line 190 of file factory.
◆ put() [2/5]
Add a flexpage as next argument.
- Parameters
-
d | The flexpage to add (there will be no map operation). |
Definition at line 222 of file factory.
◆ put() [3/5]
Put a single l4_mword_t as next argument.
- Parameters
-
i | The value to add as next argument. |
Definition at line 168 of file factory.
Referenced by operator<<(), and operator<<().
◆ put() [4/5]
Put a single l4_umword_t as next argument.
- Parameters
-
i | The value to add as next argument. |
Definition at line 178 of file factory.
◆ put() [5/5]
void L4::Factory::S::put |
( |
Lstr const & |
s | ) |
& |
|
inlinenoexcept |
Add a pascal string as next argument.
- Parameters
-
s | The string to add as next argument. |
The string will be added with the exact length given. It is the responsibility of the caller to make sure that the string is zero- terminated when that is required by the server.
Definition at line 204 of file factory.
The documentation for this class was generated from the following file: