L4Re Operating System Framework – Interface and Usage Documentation
Loading...
Searching...
No Matches
L4::Ipc::Gen_fpage< T > Class Template Reference

Generic RPC wrapper for L4 flex-pages. More...

#include <ipc_types>

Inherits T.

+ Collaboration diagram for L4::Ipc::Gen_fpage< T >:

Public Types

enum  Type
 Type of mapping object, see L4_fpage_type.
 
enum  Map_type
 Kind of mapping.
 
enum  Cacheopt
 Caching options, see l4_fpage_cacheability_opt_t.
 

Public Member Functions

bool is_valid () const noexcept
 Check if the capability is valid.
 
bool cap_received () const noexcept
 Check if at least one capability has been mapped.
 
bool id_received () const noexcept
 Check if a label was received instead of a mapping.
 
bool local_id_received () const noexcept
 Check if a local capability id has been received.
 
bool is_compound () const noexcept
 Check if the received item has the compound bit set.
 
l4_umword_t data () const noexcept
 Return the raw flex page descriptor.
 
l4_umword_t base_x () const noexcept
 Return the raw base descriptor.
 

Detailed Description

template<typename T>
class L4::Ipc::Gen_fpage< T >

Generic RPC wrapper for L4 flex-pages.

Template Parameters
TUnderlying specific flexpage type.

Definition at line 321 of file ipc_types.

Member Function Documentation

◆ cap_received()

template<typename T >
bool L4::Ipc::Gen_fpage< T >::cap_received ( ) const
inlinenoexcept

Check if at least one capability has been mapped.

The capabilities themselves can then be retrieved from the cap slots that have been provided in the receive operation.

Note
If this function returns true and the receive window covers more than one capability slot, then it is not possible to determine which slots actually got capabilities mapped from the sender.

Definition at line 442 of file ipc_types.

◆ id_received()

template<typename T >
bool L4::Ipc::Gen_fpage< T >::id_received ( ) const
inlinenoexcept

Check if a label was received instead of a mapping.

For IPC gates, if the L4_RCV_ITEM_LOCAL_ID has been set, then only the label of the IPC gate will be provided if the gate is local to the receiver, i.e. the target thread of the IPC gate is in the same task as the receiving thread.

The label can be retrieved with Gen_fpage::data().

Definition at line 454 of file ipc_types.

◆ is_compound()

template<typename T >
bool L4::Ipc::Gen_fpage< T >::is_compound ( ) const
inlinenoexcept

Check if the received item has the compound bit set.

A set compound bit means the next message item of the same type will be mapped to the same receive buffer as this message item.

Definition at line 472 of file ipc_types.

◆ local_id_received()

template<typename T >
bool L4::Ipc::Gen_fpage< T >::local_id_received ( ) const
inlinenoexcept

Check if a local capability id has been received.

If the L4_RCV_ITEM_LOCAL_ID flag has been set by the receiver, and sender and receiver are in the same task, then only the capability index is transferred.

The capability can be retrieved with Gen_fpage::data().

Definition at line 464 of file ipc_types.


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