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:
49 L4::Ipc::Cap<L4::Thread> thread_cap,
50 l4_addr_t thread_utcb));
51
61
62 // sigaction.sa_flags is usually `unsigned long`, except for MIPS...
63 enum : unsigned
64 {
66 };
67
79 L4_INLINE_RPC(int, sigaction, (int signum,
80 const struct sigaction *act,
81 struct sigaction *oldact));
82
96 const struct sigaltstack *ss,
97 struct sigaltstack *oss));
98
114 int how, sigset_t const *set,
115 sigset_t *oldset));
116
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
159
160 typedef L4::Typeid::Rpcs<
161 register_thread_t, unregister_thread_t, sigaction_t, sigaltstack_t,
162 sigprocmask_t, sigpending_t, setitimer_t, getitimer_t, raise_t
163 > Rpcs;
164};
165
166}
Interface to the ITAS.
Definition itas:34
int raise(L4::Ipc::Cap< L4::Thread > thread, int sig)
Send a signal to the calling thread.
int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value)
Set process interval timer.
int sigpending(L4::Ipc::Cap< L4::Thread > thread, sigset_t *set)
Query pending signals.
int sigprocmask(L4::Ipc::Cap< L4::Thread > thread, int how, sigset_t const *set, sigset_t *oldset)
Examine or set process signal mask.
int sigaltstack(L4::Ipc::Cap< L4::Thread > thread, const struct sigaltstack *ss, struct sigaltstack *oss)
Examine or set alternate POSIX signal stack.
@ Ignore_sigaction
Ignore new action of sigaction() call.
Definition itas:65
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)
Examine and change a POSIX signal action.
int getitimer(int which, struct itimerval *curr_value)
Get process interval timer.
int unregister_thread(L4::Ipc::Cap< L4::Thread > thread)
Unregister a thread.
int register_thread(L4::Ipc::Cap< L4::Thread > parent, L4::Ipc::Cap< L4::Thread > thread_cap, l4_addr_t thread_utcb)
Register new thread.
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: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.
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.