L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
L4Re::Itas Class Reference

Interface to the ITAS. More...

#include <itas>

Inheritance diagram for L4Re::Itas:
Collaboration diagram for L4Re::Itas:

Public Types

enum  : unsigned { Ignore_sigaction = ~0U }

Public Member Functions

int register_thread (L4::Ipc::Cap< L4::Thread > parent, L4::Ipc::Cap< L4::Thread > thread_cap, l4_addr_t thread_utcb)
 Register new thread.
int unregister_thread (L4::Ipc::Cap< L4::Thread > thread)
 Unregister a thread.
int sigaction (int signum, const struct sigaction *act, struct sigaction *oldact)
 Examine and change a POSIX signal action.
int sigaltstack (L4::Ipc::Cap< L4::Thread > thread, const struct sigaltstack *ss, struct sigaltstack *oss)
 Examine or set alternate POSIX signal stack.
int sigprocmask (L4::Ipc::Cap< L4::Thread > thread, int how, sigset_t const *set, sigset_t *oldset)
 Examine or set process signal mask.
int sigpending (L4::Ipc::Cap< L4::Thread > thread, sigset_t *set)
 Query pending signals.
int setitimer (int which, const struct itimerval *new_value, struct itimerval *old_value)
 Set process interval timer.
int getitimer (int which, struct itimerval *curr_value)
 Get process interval timer.
int raise (L4::Ipc::Cap< L4::Thread > thread, int sig)
 Send a signal to the calling thread.
Public Member Functions inherited from L4::Kobject
l4_msgtag_t dec_refcnt (l4_mword_t diff, l4_utcb_t *utcb=l4_utcb())
 Decrement the in kernel reference counter for the object.

Additional Inherited Members

Protected Types inherited from L4::Kobject_t< Itas, L4::Kobject, L4RE_PROTO_ITAS, L4::Type_info::Demand_t< 2 > >
typedef Itas Class
 The target interface type (inheriting from Kobject_t).
typedef Typeid::Iface< PROTO, Itas > __Iface
 The interface description for the derived class.
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename L4::Kobject::__Iface_list > __Iface_list
 The list of all RPC interfaces provided directly or through inheritance.
Protected Member Functions inherited from L4::Kobject_t< Itas, L4::Kobject, L4RE_PROTO_ITAS, L4::Type_info::Demand_t< 2 > >
L4::Cap< Classc () const noexcept
 Get the capability to ourselves.
Protected Member Functions inherited from L4::Kobject
l4_cap_idx_t cap () const noexcept
 Return capability selector.
Static Protected Member Functions inherited from L4::Kobject_t< Itas, L4::Kobject, L4RE_PROTO_ITAS, L4::Type_info::Demand_t< 2 > >
static void __check_protocols__ () noexcept
 Helper to check for protocol conflicts.

Detailed Description

Interface to the ITAS.

This is an internal interface between libc and the l4re_itas. Do not use it. It is subject to change.

Definition at line 30 of file itas.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : unsigned
Enumerator
Ignore_sigaction 

Ignore new action of sigaction() call.

Definition at line 63 of file itas.

Member Function Documentation

◆ getitimer()

int L4Re::Itas::getitimer ( int which,
struct itimerval * curr_value )

Get process interval timer.

See IEEE Std 1003.1-2017 getitimer() for details.

Parameters
[in]whichTimer type (ITIMER_REAL).
[out]curr_valueOld timer value.

References getitimer().

Referenced by getitimer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ raise()

int L4Re::Itas::raise ( L4::Ipc::Cap< L4::Thread > thread,
int sig )

Send a signal to the calling thread.

Parameters
[in]threadThread cap of the calling thread.
[in]sigSignal that shall be raised.

References raise().

Referenced by raise().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ register_thread()

int L4Re::Itas::register_thread ( L4::Ipc::Cap< L4::Thread > parent,
L4::Ipc::Cap< L4::Thread > thread_cap,
l4_addr_t thread_utcb )

Register new thread.

Makes the newly created thread known to ITAS. The ITAS will do the thread_cap->control() to bind the thread to the task and attach the gates for pager and exception handler.

Parameters
parentThe capability of the thread that created the new thread.
thread_capThe capability of the new thread.
thread_utcbThe address of the allocated UTCB of the new thread.

◆ setitimer()

int L4Re::Itas::setitimer ( int which,
const struct itimerval * new_value,
struct itimerval * old_value )

Set process interval timer.

See IEEE Std 1003.1-2017 setitimer() for details.

Parameters
[in]whichTimer type (ITIMER_REAL).
[in]new_valueNew timer value.
[out]old_valueOld timer value.

Referenced by sigpending().

Here is the caller graph for this function:

◆ sigaction()

int L4Re::Itas::sigaction ( int signum,
const struct sigaction * act,
struct sigaction * oldact )

Examine and change a POSIX signal action.

See IEEE Std 1003.1-2024 sigaction() for the behaviour of the method.

If act->sa_flags is Ignore_sigaction, the new action is ignored.

Parameters
[in]signumSignal number to be examined and/or modified.
[in]actNew signal action.
[out]oldactOld signal action.

References sigaction(), and sigaltstack().

Referenced by sigaction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sigaltstack()

int L4Re::Itas::sigaltstack ( L4::Ipc::Cap< L4::Thread > thread,
const struct sigaltstack * ss,
struct sigaltstack * oss )

Examine or set alternate POSIX signal stack.

See IEEE Std 1003.1-2024 sigaltstack() for the behaviour of the method.

If ss->ss_flags is -1, the new sigaltstack will be ignored.

Parameters
[in]threadThread cap of the thread whose sigaltstack is examined and/or modified.
[in]ssThe new sigaltstack.
[out]ossThe old sigaltstack.

References sigaltstack(), and sigprocmask().

Referenced by sigaction(), and sigaltstack().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sigpending()

int L4Re::Itas::sigpending ( L4::Ipc::Cap< L4::Thread > thread,
sigset_t * set )

Query pending signals.

See IEEE Std 1003.1-2024 sigpending() for details.

Parameters
[in]threadThread cap of the thread whose pending signal are examined.
[out]setPending signals of thread.

References setitimer().

Referenced by sigprocmask().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sigprocmask()

int L4Re::Itas::sigprocmask ( L4::Ipc::Cap< L4::Thread > thread,
int how,
sigset_t const * set,
sigset_t * oldset )

Examine or set process signal mask.

See IEEE Std 1003.1-2024 sigprocmask() for the behaviour or the method.

If how is -1, the signal mask is left unchanged.

Parameters
[in]threadThread cap of the thread whose signal mask is examined and/or modified.
[in]howOperation (SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK or -1).
[in]setThe new signal mask.
[out]oldsetThe old signal mask.

References sigpending().

Referenced by sigaltstack().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unregister_thread()

int L4Re::Itas::unregister_thread ( L4::Ipc::Cap< L4::Thread > thread)

Unregister a thread.

The gates for the thread's pager and exception hander will be destroyed. Thus, the thread must be destroyed after the call.

Parameters
threadThe destroyed thread.

References unregister_thread().

Referenced by unregister_thread().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following file: