L4Re - L4 Runtime Environment
platform_control
Go to the documentation of this file.
1 // vi:set ft=cpp: -*- Mode: C++ -*-
6 /*
7  * (c) 2014 Steffen Liebergeld <steffen.liebergeld@kernkonzept.com>
8  * Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
9  * Alexander Warg <warg@os.inf.tu-dresden.de>
10  * economic rights: Technische Universität Dresden (Germany)
11  *
12  * This file is part of TUD:OS and distributed under the terms of the
13  * GNU General Public License 2.
14  * Please see the COPYING-GPL-2 file for details.
15  *
16  * As a special exception, you may use this file as part of a free software
17  * library without restriction. Specifically, if other files instantiate
18  * templates or use macros or inline functions from this file, or you compile
19  * this file and link it with other files to produce an executable, this
20  * file does not by itself cause the resulting executable to be covered by
21  * the GNU General Public License. This exception does not however
22  * invalidate any other reasons why the executable file might be covered by
23  * the GNU General Public License.
24  */
25 
26 #pragma once
27 
28 #include <l4/sys/capability>
30 #include <l4/sys/cxx/ipc_iface>
31 
32 namespace L4 {
33 
46 class L4_EXPORT Platform_control
47 : public Kobject_t<Platform_control, Kobject, L4_PROTO_PLATFORM_CTL>
48 {
49 public:
51  enum Opcode
52  {
57  };
58 
66  l4_msgtag_t, system_suspend, (l4_umword_t extras));
67 
74  l4_msgtag_t, system_shutdown, (l4_umword_t reboot));
75 
84  l4_msgtag_t, cpu_enable, (l4_umword_t phys_id));
85 
94  l4_msgtag_t, cpu_disable, (l4_umword_t phys_id));
95 
96  typedef L4::Typeid::Rpcs_sys<system_suspend_t, system_shutdown_t,
97  cpu_enable_t, cpu_disable_t> Rpcs;
98 };
99 
100 }
101 
Platform control object.
Opcode
Opcodes for platform-control object.
L4 low-level kernel interface.
#define L4_INLINE_RPC_OP(op, res, name, args, attr...)
Define an inline RPC call with specific opcode (type and callable).
Definition: ipc_iface:473
L4::Cap related definitions.
List of RPCs typically used for kernel interfaces.
Definition: __typeinfo.h:475
unsigned long l4_umword_t
Unsigned machine word.
Definition: l4int.h:52
Interface Definition Language.
L4 C++ interface for controlling platform-wide properties.
Helper class to create an L4Re interface class that is derived from a single base class...
Definition: __typeinfo.h:759
Message tag data structure.
Definition: types.h:159
enable an offline CPU