|
L4Re Operating System Framework
Interface and Usage Documentation
|
Interface to the ITAS. More...
#include <itas>
Public Types | |
| enum | : unsigned { Ignore_sigaction = ~0U } |
Public Member Functions | |
| l4_ret_t | register_thread (L4::Ipc::Cap< L4::Thread > parent, L4::Ipc::Cap< L4::Thread > thread_cap, l4_addr_t thread_utcb) |
| Register new thread. | |
| l4_ret_t | unregister_thread (L4::Ipc::Cap< L4::Thread > thread) |
| Unregister a thread. | |
| l4_ret_t | disable_pf_tramp () |
| Disable page fault trampolines for the whole process. | |
| l4_ret_t | sigaction (int signum, const struct sigaction *act, struct sigaction *oldact) |
| Examine and change a POSIX signal action. | |
| l4_ret_t | sigaltstack (L4::Ipc::Cap< L4::Thread > thread, const struct sigaltstack *ss, struct sigaltstack *oss) |
| Examine or set alternate POSIX signal stack. | |
| l4_ret_t | sigprocmask (L4::Ipc::Cap< L4::Thread > thread, int how, sigset_t const *set, sigset_t *oldset) |
| Examine or set process signal mask. | |
| l4_ret_t | sigpending (L4::Ipc::Cap< L4::Thread > thread, sigset_t *set) |
| Query pending signals. | |
| l4_ret_t | setitimer (int which, const struct itimerval *new_value, struct itimerval *old_value) |
| Set process interval timer. | |
| l4_ret_t | getitimer (int which, struct itimerval *curr_value) |
| Get process interval timer. | |
| l4_ret_t | 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< Class > | c () 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. | |
Interface to the ITAS.
This is an internal interface between libc and the l4re_itas. Do not use it. It is subject to change.
| anonymous enum : unsigned |
| Enumerator | |
|---|---|
| Ignore_sigaction | Ignore new action of sigaction() call. |
| l4_ret_t L4Re::Itas::disable_pf_tramp | ( | ) |
Disable page fault trampolines for the whole process.
Once disabled, page faults of all threads of the process (including threads registered in the future) are reflected as page fault IPC to the pager instead of being handled by an in-thread trampoline handler. This also stops the ITAS from handing out its page_in() helper function to be called directly from within the client thread.
This operation cannot be reverted.
References disable_pf_tramp().
Referenced by disable_pf_tramp().
| l4_ret_t L4Re::Itas::getitimer | ( | int | which, |
| struct itimerval * | curr_value ) |
Get process interval timer.
See IEEE Std 1003.1-2017 getitimer() for details.
| [in] | which | Timer type (ITIMER_REAL). |
| [out] | curr_value | Old timer value. |
References getitimer().
Referenced by getitimer().
| l4_ret_t L4Re::Itas::raise | ( | L4::Ipc::Cap< L4::Thread > | thread, |
| int | sig ) |
| l4_ret_t 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.
| parent | The capability of the thread that created the new thread. |
| thread_cap | The capability of the new thread. |
| thread_utcb | The address of the allocated UTCB of the new thread. |
| l4_ret_t 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.
| [in] | which | Timer type (ITIMER_REAL). |
| [in] | new_value | New timer value. |
| [out] | old_value | Old timer value. |
Referenced by sigpending().
| l4_ret_t 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.
| [in] | signum | Signal number to be examined and/or modified. |
| [in] | act | New signal action. |
| [out] | oldact | Old signal action. |
References sigaction(), and sigaltstack().
Referenced by sigaction().
| l4_ret_t 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.
| [in] | thread | Thread cap of the thread whose sigaltstack is examined and/or modified. |
| [in] | ss | The new sigaltstack. |
| [out] | oss | The old sigaltstack. |
References sigaltstack(), and sigprocmask().
Referenced by sigaction(), and sigaltstack().
| l4_ret_t L4Re::Itas::sigpending | ( | L4::Ipc::Cap< L4::Thread > | thread, |
| sigset_t * | set ) |
Query pending signals.
See IEEE Std 1003.1-2024 sigpending() for details.
| [in] | thread | Thread cap of the thread whose pending signal are examined. |
| [out] | set | Pending signals of thread. |
References setitimer().
Referenced by sigprocmask().
| l4_ret_t 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.
| [in] | thread | Thread cap of the thread whose signal mask is examined and/or modified. |
| [in] | how | Operation (SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK or -1). |
| [in] | set | The new signal mask. |
| [out] | oldset | The old signal mask. |
References sigpending().
Referenced by sigaltstack().
| l4_ret_t 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.
| thread | The destroyed thread. |
References unregister_thread().
Referenced by unregister_thread().