L4Re – L4 Runtime Environment
L4::Factory::S Class Reference

Stream class for the create() argument stream. More...

+ Collaboration diagram for L4::Factory::S:

Public Member Functions

 S (S &&o) noexcept
 Move ... More...
 
 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. More...
 
 ~S () noexcept
 Commit the operation in the destructor to have a cool syntax for create().
 
 operator l4_msgtag_t () noexcept
 Explicitly commits the operation and returns the result. More...
 
void put (l4_mword_t i) noexcept
 Put a single l4_mword_t as next argument. More...
 
void put (l4_umword_t i) noexcept
 Put a single l4_umword_t as next argument. More...
 
void put (char const *s) &noexcept
 Add a zero-terminated string as next argument. More...
 
void put (Lstr const &s) &noexcept
 Add a pascal string as next argument. More...
 
void put (Nil) &noexcept
 Add an empty argument. More...
 
void put (l4_fpage_t d) &noexcept
 Add a flex page as next argument. More...
 

Detailed Description

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 89 of file factory.

Constructor & Destructor Documentation

◆ S() [1/2]

L4::Factory::S::S ( S &&  o)
inlinenoexcept

Move ...

Parameters
oInstance of S to move.

Definition at line 108 of file factory.

References l4_msgtag_t::raw.

◆ S() [2/2]

L4::Factory::S::S ( l4_cap_idx_t  f,
long  obj,
L4::Cap< void >  target,
l4_utcb_t utcb 
)
inlinenoexcept

Create a stream for a specific create() call.

Parameters
fThe capability for the factory object (L4::Factory).
objThe protocol ID to describe the type of the object that shall be created.
[out]targetThe capability selector for the new object. The caller must allocate the capability slot. The kernel stores the new object's capability into this slot.
utcbThe UTCB to use for the operation.

Definition at line 132 of file factory.

Member Function Documentation

◆ operator l4_msgtag_t()

L4::Factory::S::operator l4_msgtag_t ( )
inlinenoexcept

Explicitly commits the operation and returns the result.

Returns
The result of the create() operation.

Definition at line 152 of file factory.

◆ put() [1/6]

void L4::Factory::S::put ( char const *  s) &
inlinenoexcept

Add a zero-terminated string as next argument.

Parameters
sThe string to add as next argument.
Returns
Reference to this stream.

The string will be added with the zero-terminator.

Definition at line 192 of file factory.

◆ put() [2/6]

void L4::Factory::S::put ( l4_fpage_t  d) &
inlinenoexcept

Add a flex page as next argument.

Parameters
dThe flex page to add (there will be no map operation).
Returns
Reference to this stream.

Definition at line 230 of file factory.

◆ put() [3/6]

void L4::Factory::S::put ( l4_mword_t  i)
inlinenoexcept

Put a single l4_mword_t as next argument.

Parameters
iThe value to add as next argument.
Returns
Reference to this stream.

Definition at line 166 of file factory.

◆ put() [4/6]

void L4::Factory::S::put ( l4_umword_t  i)
inlinenoexcept

Put a single l4_umword_t as next argument.

Parameters
iThe value to add as next argument.
Returns
Reference to this stream.

Definition at line 178 of file factory.

◆ put() [5/6]

void L4::Factory::S::put ( Lstr const &  s) &
inlinenoexcept

Add a pascal string as next argument.

Parameters
sThe string to add as next argument.
Returns
Reference to this stream.

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 208 of file factory.

◆ put() [6/6]

void L4::Factory::S::put ( Nil  ) &
inlinenoexcept

Add an empty argument.

Returns
Reference to this stream.

Definition at line 218 of file factory.


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