Iros
 
Loading...
Searching...
No Matches
iris::Task Class Reference

#include <iris/core/task.h>

Inheritance diagram for iris::Task:
[legend]

Public Member Functions

 Task (bool userspace, di::Arc< mm::AddressSpace > address_space, di::Arc< TaskNamespace > task_namespace, TaskId task_id, FileTable file_table, di::Arc< TaskStatus > task_status)
 
 ~Task ()
 
void context_switch_to ()
 
auto task_state () const -> arch::TaskState const &
 
void set_task_state (arch::TaskState const &state)
 
auto task_arguments () const -> di::Arc< TaskArguments >
 
void set_task_arguments (di::Arc< TaskArguments > task_arguments)
 
auto fpu_state () -> arch::FpuState &
 
auto fpu_state () const -> arch::FpuState const &
 
auto id () const -> TaskId
 
auto address_space () -> mm::AddressSpace &
 
void set_address_space (di::Arc< mm::AddressSpace > address_space)
 
auto task_namespace () const -> TaskNamespace &
 
auto file_table () -> FileTable &
 
void set_instruction_pointer (mm::VirtualAddress address)
 
void set_stack_pointer (mm::VirtualAddress address)
 
void set_argument1 (uptr value)
 
void set_argument2 (uptr value)
 
void set_argument3 (uptr value)
 
void set_argument4 (uptr value)
 
auto preemption_disabled () const -> bool
 
void disable_preemption ()
 
void enable_preemption ()
 
void set_should_be_preempted ()
 
auto task_status () const -> di::Arc< TaskStatus >
 
auto waiting () const -> bool
 
void set_waiting ()
 
void set_runnable ()
 
auto kernel_stack () const -> mm::VirtualAddress
 
void set_kernel_stack (mm::VirtualAddress kernel_stack)
 
auto userspace_thread_pointer () const -> uptr
 
void set_userspace_thread_pointer (uptr userspace_thread_pointer)
 
auto root_tnode () const -> di::Arc< TNode >
 
void set_root_tnode (di::Arc< TNode > root_tnode)
 
auto cwd_tnode () const -> di::Arc< TNode >
 
void set_cwd_tnode (di::Arc< TNode > cwd_tnode)
 
- Public Member Functions inherited from di::container::IntrusiveListNode< Tag >
constexpr IntrusiveListNode ()
 
- Public Member Functions inherited from di::vocab::IntrusiveRefCount< T >
template<typename = void>
constexpr auto arc_from_this ()
 

Additional Inherited Members

- Protected Member Functions inherited from di::vocab::IntrusiveRefCount< T >
 IntrusiveRefCount ()=default
 

Constructor & Destructor Documentation

◆ Task()

iris::Task::Task ( bool userspace,
di::Arc< mm::AddressSpace > address_space,
di::Arc< TaskNamespace > task_namespace,
TaskId task_id,
FileTable file_table,
di::Arc< TaskStatus > task_status )
explicit

◆ ~Task()

iris::Task::~Task ( )

Member Function Documentation

◆ address_space()

auto iris::Task::address_space ( ) -> mm::AddressSpace&
inline

◆ context_switch_to()

void iris::Task::context_switch_to ( )
inline

◆ cwd_tnode()

auto iris::Task::cwd_tnode ( ) const -> di::Arc<TNode>
inline

◆ disable_preemption()

void iris::Task::disable_preemption ( )
inline

◆ enable_preemption()

void iris::Task::enable_preemption ( )

◆ file_table()

auto iris::Task::file_table ( ) -> FileTable&
inline

◆ fpu_state() [1/2]

auto iris::Task::fpu_state ( ) -> arch::FpuState&
inline

◆ fpu_state() [2/2]

auto iris::Task::fpu_state ( ) const -> arch::FpuState const&
inline

◆ id()

auto iris::Task::id ( ) const -> TaskId
inline

◆ kernel_stack()

auto iris::Task::kernel_stack ( ) const -> mm::VirtualAddress
inline

◆ preemption_disabled()

auto iris::Task::preemption_disabled ( ) const -> bool
inline

◆ root_tnode()

auto iris::Task::root_tnode ( ) const -> di::Arc<TNode>
inline

◆ set_address_space()

void iris::Task::set_address_space ( di::Arc< mm::AddressSpace > address_space)
inline

◆ set_argument1()

void iris::Task::set_argument1 ( uptr value)
inline

◆ set_argument2()

void iris::Task::set_argument2 ( uptr value)
inline

◆ set_argument3()

void iris::Task::set_argument3 ( uptr value)
inline

◆ set_argument4()

void iris::Task::set_argument4 ( uptr value)
inline

◆ set_cwd_tnode()

void iris::Task::set_cwd_tnode ( di::Arc< TNode > cwd_tnode)
inline

◆ set_instruction_pointer()

void iris::Task::set_instruction_pointer ( mm::VirtualAddress address)
inline

◆ set_kernel_stack()

void iris::Task::set_kernel_stack ( mm::VirtualAddress kernel_stack)
inline

◆ set_root_tnode()

void iris::Task::set_root_tnode ( di::Arc< TNode > root_tnode)
inline

◆ set_runnable()

void iris::Task::set_runnable ( )
inline

◆ set_should_be_preempted()

void iris::Task::set_should_be_preempted ( )
inline

◆ set_stack_pointer()

void iris::Task::set_stack_pointer ( mm::VirtualAddress address)
inline

◆ set_task_arguments()

void iris::Task::set_task_arguments ( di::Arc< TaskArguments > task_arguments)
inline

◆ set_task_state()

void iris::Task::set_task_state ( arch::TaskState const & state)
inline

◆ set_userspace_thread_pointer()

void iris::Task::set_userspace_thread_pointer ( uptr userspace_thread_pointer)
inline

◆ set_waiting()

void iris::Task::set_waiting ( )
inline

◆ task_arguments()

auto iris::Task::task_arguments ( ) const -> di::Arc<TaskArguments>
inline

◆ task_namespace()

auto iris::Task::task_namespace ( ) const -> TaskNamespace&
inline

◆ task_state()

auto iris::Task::task_state ( ) const -> arch::TaskState const&
inline

◆ task_status()

auto iris::Task::task_status ( ) const -> di::Arc<TaskStatus>
inline

◆ userspace_thread_pointer()

auto iris::Task::userspace_thread_pointer ( ) const -> uptr
inline

◆ waiting()

auto iris::Task::waiting ( ) const -> bool
inline

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