L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
itas
1// vi:set ft=cpp: -*- Mode: C++ -*-
2/*
3 * Copyright (C) 2025 Kernkonzept GmbH.
4 * Author(s): Jan Klötzke <jan.kloetzke@kernkonzept.com>
5 *
6 * License: see LICENSE.spdx (in this directory or the directories above)
7 */
8
9#pragma once
10
11#include <l4/sys/cxx/ipc_iface>
12#include <l4/sys/cxx/ipc_types>
13#include <l4/sys/cxx/types>
14#include <l4/sys/l4int.h>
15#include <l4/sys/thread>
16#include <l4/sys/types.h>
17
18#include <signal.h>
19#include <sys/time.h>
20
21namespace L4Re
22{
23
31 public L4::Kobject_t<Itas, L4::Kobject,
32 L4RE_PROTO_ITAS,
33 L4::Type_info::Demand_t<2> >
34{
35public:
48 L4_INLINE_RPC(int, register_thread, (L4::Ipc::Cap<L4::Thread> parent,
49 L4::Ipc::Cap<L4::Thread> thread_cap,
50 l4_addr_t thread_utcb));
51
60 L4_INLINE_RPC(int, unregister_thread, (L4::Ipc::Cap<L4::Thread> thread));
61
62 // sigaction.sa_flags is usually `unsigned long`, except for MIPS...
63 enum : unsigned
64 {
65 Ignore_sigaction = ~0U
66 };
67
79 L4_INLINE_RPC(int, sigaction, (int signum,
80 const struct sigaction *act,
81 struct sigaction *oldact));
82
95 L4_INLINE_RPC(int, sigaltstack, (L4::Ipc::Cap<L4::Thread> thread,
96 const struct sigaltstack *ss,
97 struct sigaltstack *oss));
98
113 L4_INLINE_RPC(int, sigprocmask, (L4::Ipc::Cap<L4::Thread> thread,
114 int how, sigset_t const *set,
115 sigset_t *oldset));
116
126 L4_INLINE_RPC(int, sigpending, (L4::Ipc::Cap<L4::Thread> thread,
127 sigset_t *set));
128
138 L4_INLINE_RPC(int, setitimer, (int which,
139 const struct itimerval *new_value,
140 struct itimerval *old_value));
141
150 L4_INLINE_RPC(int, getitimer, (int which, struct itimerval *curr_value));
151
152 typedef L4::Typeid::Rpcs<
153 register_thread_t, unregister_thread_t, sigaction_t, sigaltstack_t,
154 sigprocmask_t, sigpending_t, setitimer_t, getitimer_t
155 > Rpcs;
156};
157
158}
Interface to the ITAS.
Definition itas:34
Capability type for RPC interfaces (see L4::Cap<T>).
Definition ipc_types:699
Helper class to create an L4Re interface class that is derived from a single base class.
Definition __typeinfo.h:750
unsigned long l4_addr_t
Address type.
Definition l4int.h:34
#define L4_EXPORT
Attribute to mark functions, variables, and data types as being exported from a library.
Definition compiler.h:210
Interface Definition Language.
#define L4_INLINE_RPC(res, name, args, attr...)
Define an inline RPC call (type and callable).
Definition ipc_iface:476
Common L4 ABI Data Types.
L4Re C++ Interfaces.
Definition cmd_control:14
Standard list of RPCs of an interface.
Definition __typeinfo.h:428
Common thread related definitions.