L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
ipc_iface File Reference

Interface Definition Language. More...

#include <l4/sys/cxx/ipc_basics>
#include <l4/sys/cxx/ipc_types>
#include <l4/sys/__typeinfo.h>
+ Include dependency graph for ipc_iface:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  L4::Ipc::Call
 RPC attribute for a standard RPC call. More...
 
struct  L4::Ipc::Call_zero_send_timeout
 RPC attribute for an RPC call, with zero send timeout. More...
 
struct  L4::Ipc::Call_t< RIGHTS >
 RPC attribute for an RPC call with required rights. More...
 
struct  L4::Ipc::Send_only
 RPC attribute for a send-only RPC. More...
 

Namespaces

namespace  L4
 L4 low-level kernel interface.
 
namespace  L4::Ipc
 IPC related functionality.
 
namespace  L4::Ipc::Msg
 IPC Message related functionality.
 

Macros

#define L4_INLINE_RPC_NF(res, name, args...)
 Define an inline RPC call type (the type only, no callable).
 
#define L4_INLINE_RPC_NF_OP(op, res, name, args...)
 Define an inline RPC call type with specific opcode (the type only, no callable).
 
#define L4_INLINE_RPC(res, name, args, attr...)   res name args
 Define an inline RPC call (type and callable).
 
#define L4_INLINE_RPC_OP(op, res, name, args, attr...)   res name args
 Define an inline RPC call with specific opcode (type and callable).
 
#define L4_RPC_NF(res, name, args...)
 Define an RPC call type (the type only, no callable).
 
#define L4_RPC_NF_OP(op, res, name, args...)
 Define an RPC call type with specific opcode (the type only, no callable).
 
#define L4_RPC(res, name, args, attr...)   res name args
 Define an RPC call (type and callable).
 
#define L4_RPC_OP(op, res, name, args, attr...)   res name args
 Define an RPC call with specific opcode (type and callable).
 

Detailed Description

Interface Definition Language.

See also
L4_RPC, L4_INLINE_RPC, L4::Ipc::Call L4::Ipc::Send_only, L4::Ipc::Msg::Rpc_call, L4::Ipc::Msg::Rpc_inline_call

Definition in file ipc_iface.

Macro Definition Documentation

◆ L4_INLINE_RPC

#define L4_INLINE_RPC (   res,
  name,
  args,
  attr... 
)    res name args

Define an inline RPC call (type and callable).

Parameters
resThe result type of the RPC call
nameThe name of the function (name_t is used for the type.)
argsThe argument list of the RPC function.
attrOptional RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 469 of file ipc_iface.

◆ L4_INLINE_RPC_NF

#define L4_INLINE_RPC_NF (   res,
  name,
  args... 
)
Value:
struct name##_t : L4::Ipc::Msg::Rpc_inline_call<name##_t, Class, res args> \
{ \
typedef L4::Ipc::Msg::Rpc_inline_call<name##_t, Class, res args> type; \
L4_INLINE_RPC_SRV_FORWARD(name); \
}

Define an inline RPC call type (the type only, no callable).

Parameters
resThe result type of the RPC call
nameThe name of the function (name_t is used for the type.)
argsThe argument list of the RPC function, and RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Stubs generated by this macro can be used explicitly in custom wrapper methods that need to use the underlying RPC code and provide some higher level abstraction, for example with default arguments or extra argument conversion.

Definition at line 440 of file ipc_iface.

◆ L4_INLINE_RPC_NF_OP

#define L4_INLINE_RPC_NF_OP (   op,
  res,
  name,
  args... 
)
Value:
struct name##_t : L4::Ipc::Msg::Rpc_inline_call<name##_t, Class, res args> \
{ \
typedef L4::Ipc::Msg::Rpc_inline_call<name##_t, Class, res args> type; \
enum { Opcode = (op) }; \
L4_INLINE_RPC_SRV_FORWARD(name); \
}

Define an inline RPC call type with specific opcode (the type only, no callable).

Parameters
opThe opcode number for this function
resThe result type of the RPC call
nameThe name of the function (name_t is used for the type.)
argsThe argument list of the RPC function, and RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Stubs generated by this macro can be used explicitly in custom wrapper methods that need to use the underlying RPC code and provide some higher level abstraction, for example with default arguments or extra argument conversion.

Definition at line 453 of file ipc_iface.

◆ L4_INLINE_RPC_OP

#define L4_INLINE_RPC_OP (   op,
  res,
  name,
  args,
  attr... 
)    res name args

Define an inline RPC call with specific opcode (type and callable).

Parameters
opThe opcode number for this function
resThe result type of the RPC call
nameThe name of the function (name_t is used for the type.)
argsThe argument list of the RPC function.
attrOptional RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 484 of file ipc_iface.

◆ L4_RPC

#define L4_RPC (   res,
  name,
  args,
  attr... 
)    res name args

Define an RPC call (type and callable).

Parameters
resThe result type of the RPC call
nameThe name of the function (name_t is used for the type.)
argsThe argument list of the RPC function.
attrOptional RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 528 of file ipc_iface.

◆ L4_RPC_NF

#define L4_RPC_NF (   res,
  name,
  args... 
)
Value:
struct name##_t : L4::Ipc::Msg::Rpc_call<name##_t, Class, res args> \
{ \
typedef L4::Ipc::Msg::Rpc_call<name##_t, Class, res args> type; \
L4_INLINE_RPC_SRV_FORWARD(name); \
}

Define an RPC call type (the type only, no callable).

Parameters
resThe result type of the RPC call
nameThe name of the function (name_t is used for the type.)
argsThe argument list of the RPC function, and RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 497 of file ipc_iface.

◆ L4_RPC_NF_OP

#define L4_RPC_NF_OP (   op,
  res,
  name,
  args... 
)
Value:
struct name##_t : L4::Ipc::Msg::Rpc_call<name##_t, Class, res args> \
{ \
typedef L4::Ipc::Msg::Rpc_call<name##_t, Class, res args> type; \
enum { Opcode = (op) }; \
L4_INLINE_RPC_SRV_FORWARD(name); \
}

Define an RPC call type with specific opcode (the type only, no callable).

Parameters
opThe opcode number for this function
resThe result type of the RPC call
nameThe name of the function (name_t is used for the type.)
argsThe argument list of the RPC function, and RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 512 of file ipc_iface.

◆ L4_RPC_OP

#define L4_RPC_OP (   op,
  res,
  name,
  args,
  attr... 
)    res name args

Define an RPC call with specific opcode (type and callable).

Parameters
opThe opcode number for this function
resThe result type of the RPC call
nameThe name of the function (name_t is used for the type.)
argsThe argument list of the RPC function.
attrOptional RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 543 of file ipc_iface.