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.
 
- 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 Base::__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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

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