L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
ipc_legacy
1
// vi:set ft=cpp: -*- Mode: C++ -*-
2
/*
3
* Copyright (C) 2015, 2017, 2024 Kernkonzept GmbH.
4
* Author(s): Alexander Warg <alexander.warg@kernkonzept.com>
5
*
6
* License: see LICENSE.spdx (in this directory or the directories above)
7
*/
8
#pragma once
9
10
#include <l4/sys/cxx/ipc_epiface>
11
#ifndef L4_RPC_DISABLE_LEGACY_DISPATCH
12
#define L4_RPC_LEGACY_DISPATCH(IFACE) \
13
template<typename IOS> \
14
int dispatch(unsigned rights, IOS &ios) \
15
{ \
16
typedef ::L4::Ipc::Detail::Dispatch<IFACE> Dispatch; \
17
l4_msgtag_t r = Dispatch::f(this, ios.tag(), rights, ios.utcb()); \
18
ios.set_ipc_params(r); \
19
return r.label(); \
20
} \
21
\
22
template<typename IOS> \
23
int p_dispatch(IFACE *, unsigned rights, IOS &ios) \
24
{ \
25
using ::L4::Ipc::Msg::dispatch_call; \
26
l4_msgtag_t r; \
27
r = dispatch_call<typename IFACE::Rpcs>(this, ios.utcb(), \
28
ios.tag(), rights); \
29
ios.set_ipc_params(r); \
30
return r.label(); \
31
}
32
33
#define L4_RPC_LEGACY_USING(IFACE) \
34
using IFACE::p_dispatch
35
36
#else
37
#define L4_RPC_LEGACY_DISPATCH(IFACE)
38
#define L4_RPC_LEGACY_USING(IFACE)
39
#endif
l4
sys
cxx
ipc_legacy
Generated on Fri May 23 2025 13:40:52 for L4Re Operating System Framework by
1.9.8