L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
cmd_control
1// -*- Mode: C++ -*-
2// vim:ft=cpp
3/*
4 * Copyright (C) 2016, 2024 Kernkonzept GmbH.
5 * Author(s): Sarah Hoffmann <sarah.hoffmann@kernkonzept.com>
6 *
7 * License: see LICENSE.spdx (in this directory or the directories above)
8 */
9#pragma once
10
11#include <l4/sys/cxx/ipc_epiface>
12#include <l4/sys/cxx/ipc_string>
13
14namespace L4Re { namespace Ned {
15
19class Cmd_control : public L4::Kobject_0t<Cmd_control>
20{
21 L4_INLINE_RPC_NF(long, execute, (L4::Ipc::String<> cmd,
22 L4::Ipc::Array<char> &result));
23
24public:
42 long execute(L4::Ipc::String<> cmd) noexcept
43 {
44 L4::Ipc::Array<char> res(0, NULL);
45 return execute_t::call(c(), cmd, res);
46 }
47
64 long execute(L4::Ipc::String<> cmd,
65 L4::Ipc::String<char> *result) noexcept
66 {
67 L4::Ipc::Array<char> res(result->length, result->data);
68 long r = execute_t::call(c(), cmd, res);
69 if (r >= 0)
70 result->length = res.length;
71 return r;
72 }
73
74 typedef L4::Typeid::Rpcs<execute_t> Rpcs;
75};
76
77} } // namespace
Direct control interface for Ned.
Definition cmd_control:20
long execute(L4::Ipc::String<> cmd, L4::Ipc::String< char > *result) noexcept
Execute the given Lua code.
Definition cmd_control:64
long execute(L4::Ipc::String<> cmd) noexcept
Execute the given Lua code.
Definition cmd_control:42
#define L4_INLINE_RPC_NF(res, name, args...)
Define an inline RPC call type (the type only, no callable).
Definition ipc_iface:453
L4Re C++ Interfaces.
Definition cmd_control:14
Array data type for dynamically sized arrays in RPCs.
Definition ipc_array:82
Standard list of RPCs of an interface.
Definition __typeinfo.h:428