L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
remote_access
1// vi:set ft=cpp: -*- Mode: C++ -*-
2/*
3 * Copyright (C) 2025 Adam Lackorzynski <adam@l4re.org>
4 *
5 * License: see LICENSE.spdx (in this directory or the directories above)
6 */
7
8#pragma once
9
10#include <l4/re/protocols.h>
11#include <l4/re/dataspace>
12#include <l4/sys/cxx/ipc_iface>
13#include <l4/sys/cxx/ipc_types>
14#include <l4/sys/cxx/types>
15#include <l4/sys/l4int.h>
16
17namespace L4Re
18{
19
20struct L4_EXPORT Remote_access
21: public L4::Kobject_t<Remote_access, Dataspace, L4RE_PROTO_REMOTE_ACCESS>
22{
23 enum Access_width
24 {
25 Wd_8bit = 0,
26 Wd_16bit = 1,
27 Wd_32bit = 2,
28 Wd_64bit = 3
29 };
30
31 L4_INLINE_RPC(long, read_mem, (l4_addr_t addr, char width, l4_uint64_t *value));
32 L4_INLINE_RPC(long, write_mem, (l4_addr_t addr, char width, l4_uint64_t value));
33
34 //L4_INLINE_RPC(long, get_regs, (unsigned TBD_THREAD_ID, l4_exc_regs_t *regs));
35 //L4_INLINE_RPC(long, set_regs, (unsigned TBD_THREAD_ID, l4_exc_regs_t regs));
36
37 // !!! sizeof(l4_fpu_regs_t) > sizeof(utcb)
38 //L4_INLINE_RPC(long, get_fpu_regs, (l4_fpu_regs_t *regs));
39 //L4_INLINE_RPC(long, set_fpu_regs, (l4_fpu_regs_t regs));
40
41 L4_INLINE_RPC(long, terminate, (int exit_code), L4::Ipc::Send_only);
42
43 typedef L4::Typeid::Rpcs<read_mem_t, write_mem_t, terminate_t> Rpcs;
44};
45
46}
Dataspace interface.
unsigned long l4_addr_t
Address type.
Definition l4int.h:34
unsigned long long l4_uint64_t
Unsigned 64bit value.
Definition l4int.h:31
#define L4_EXPORT
Attribute to mark functions, variables, and data types as being exported from a library.
Definition compiler.h:214
Interface Definition Language.
#define L4_INLINE_RPC(res, name, args, attr...)
Define an inline RPC call (type and callable).
Definition ipc_iface:482
Fixed sized integer types, generic version.
L4Re C++ Interfaces.
Definition cmd_control:14
L4Re Protocol Constants (C version).