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...)
| Define an inline RPC call (type and callable).
#define | L4_INLINE_RPC_OP(op, res, name, args, attr...)
| 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...)
| Define an RPC call (type and callable).
#define | L4_RPC_OP(op, res, name, args, attr...)
| 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... )

Value:
res name args

Define an inline RPC call (type and callable).

Parameters

  res | The result type of the RPC call
  name | The name of the function (name_t is used for the type.)
  args | The argument list of the RPC function.
  attr | Optional RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Examples
  examples/clntsrv/src/shared.h.

Definition at line 482 of file ipc_iface.

Referenced by L4Re::Mem_alloc::info().

## 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

  res | The result type of the RPC call
  name | The name of the function (name_t is used for the type.)
  args | The 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_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); \
}
L4::Opcode
int Opcode
Data type for RPC opcodes.
Definition __typeinfo.h:36

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

Parameters

  op | The opcode number for this function
  res | The result type of the RPC call
  name | The name of the function (name_t is used for the type.)
  args | The 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 466 of file ipc_iface.

## L4_INLINE_RPC_OP

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

Value:
res name args

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

Parameters

  op | The opcode number for this function
  res | The result type of the RPC call
  name | The name of the function (name_t is used for the type.)
  args | The argument list of the RPC function.
  attr | Optional RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 497 of file ipc_iface.

## L4_RPC

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

Value:
res name args

Define an RPC call (type and callable).

Parameters

  res | The result type of the RPC call
  name | The name of the function (name_t is used for the type.)
  args | The argument list of the RPC function.
  attr | Optional RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 541 of file ipc_iface.

Referenced by L4Re::Dataspace::info().

## 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

  res | The result type of the RPC call
  name | The name of the function (name_t is used for the type.)
  args | The argument list of the RPC function, and RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 510 of file ipc_iface.

Referenced by L4Re::Dataspace::info().

## 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

  op | The opcode number for this function
  res | The result type of the RPC call
  name | The name of the function (name_t is used for the type.)
  args | The argument list of the RPC function, and RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 525 of file ipc_iface.

## L4_RPC_OP

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

Value:
res name args

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

Parameters

  op | The opcode number for this function
  res | The result type of the RPC call
  name | The name of the function (name_t is used for the type.)
  args | The argument list of the RPC function.
  attr | Optional RPC attributes (L4::Ipc::Call, L4::Ipc::Call_t etc.).

Definition at line 556 of file ipc_iface.