L4Re - L4 Runtime Environment
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

 L4
 L4 low-level kernel interface.
 
 L4::Ipc
 IPC related functionality.
 
 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). More...
 
#define L4_INLINE_RPC_NF_OP(op, res, name, args...)
 Define an inline RPC call type with specific opcode (the type only, no callable). More...
 
#define L4_INLINE_RPC(res, name, args, attr...)   res name args
 Define an inline RPC call (type and callable). More...
 
#define L4_INLINE_RPC_OP(op, res, name, args, attr...)   res name args
 Define an inline RPC call with specific opcode (type and callable). More...
 
#define L4_RPC_NF(res, name, args...)
 Define an RPC call type (the type only, no callable). More...
 
#define L4_RPC_NF_OP(op, res, name, args...)
 Define an RPC call type with specific opcode (the type only, no callable). More...
 
#define L4_RPC(res, name, args, attr...)   res name args
 Define an RPC call (type and callable). More...
 
#define L4_RPC_OP(op, res, name, args, attr...)   res name args
 Define an RPC call with specific opcode (type and callable). More...
 

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 457 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 Rpc_inline_call 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 429 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 Rpc_inline_call 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 442 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 472 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 515 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 Rpc_call 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 485 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 Rpc_call 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 500 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 530 of file ipc_iface.