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

## 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] | which | Timer type (ITIMER_REAL).
  [out] | curr_value | Old 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] | thread | Thread cap of the calling thread.
  [in] | sig | Signal 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

  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.

## 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] | which | Timer type (ITIMER_REAL).
  [in] | new_value | New timer value.
  [out] | old_value | Old 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] | 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().

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] | 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().

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] | thread | Thread cap of the thread whose pending signal are examined.
  [out] | set | Pending 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] | 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().

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

  thread | The 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:

- l4/re/itas