L4Re - L4 Runtime Environment
mmio_space
1 // -*- Mode: C++ -*-
2 // vim:ft=cpp
3 /*
4  * Copyright (C) 2017 Kernkonzept GmbH.
5  * Author(s): Sarah Hoffmann <sarah.hoffmann@kernkonzept.com>
6  *
7  * This file is distributed under the terms of the GNU General Public
8  * License, version 2. Please see the COPYING-GPL-2 file for details.
9  */
10 #pragma once
11 
12 #include <l4/re/protocols.h>
13 #include <l4/sys/capability>
14 #include <l4/sys/cxx/ipc_types>
15 #include <l4/sys/cxx/ipc_iface>
16 
17 namespace L4Re
18 {
19 
42 struct L4_EXPORT Mmio_space
43 : public L4::Kobject_t<Mmio_space, L4::Kobject, L4RE_PROTO_MMIO_SPACE>
44 {
47  {
48  Wd_8bit = 0,
49  Wd_16bit = 1,
50  Wd_32bit = 2,
51  Wd_64bit = 3
52  };
53 
55  typedef l4_uint64_t Addr;
56 
71  L4_INLINE_RPC(long, mmio_read, (Addr addr, char width, l4_uint64_t *value));
72 
87  L4_INLINE_RPC(long, mmio_write, (Addr addr, char width, l4_uint64_t value));
88 
90 };
91 
92 }
Standard list of RPCs of an interface.
Definition: __typeinfo.h:438
Access_width
Actual size of the value to read or write.
Definition: mmio_space:46
L4Re C++ Interfaces.
Definition: cmd_control:15
L4::Cap related definitions.
#define L4_INLINE_RPC(res, name, args, attr...)
Define an inline RPC call (type and callable).
Definition: ipc_iface:469
Interface Definition Language.
l4_uint64_t Addr
Device address.
Definition: mmio_space:55
Helper class to create an L4Re interface class that is derived from a single base class...
Definition: __typeinfo.h:759
unsigned long long l4_uint64_t
Unsigned 64bit value.
Definition: l4int.h:42
L4Re Protocol Constants (C version)
Interface for memory-like address space accessible via IPC.
Definition: mmio_space:42