|
void | log_output_character (c32 value) |
|
auto | copy_to_user (di::Span< byte const > kernel_data, byte *userspace_ptr) -> Expected< void > |
|
auto | copy_from_user (di::Span< byte const > userspace_data, byte *kernel_ptr) -> Expected< void > |
|
auto | validate_user_region (mm::VirtualAddress userspace_address, usize count, usize size) -> Expected< void > |
|
void | setup_current_processor_access () |
| Setups access to the current processor.
|
|
void | set_current_processor (Processor &processor) |
| Sets the current processor address.
|
|
auto | irq_number_for_legacy_isa_interrupt_number (IrqLine irq_line) -> Expected< GlobalIrqNumber > |
|
auto | irq_controller_for_interrupt_number (GlobalIrqNumber irq_number) -> Expected< di::Synchronized< IrqController > & > |
|
void | hard_shutdown (ShutdownStatus status) |
|
auto | detect_processor_info () -> ProcessorInfo |
|
void | log_output_byte (di::Byte byte) |
|
void | iris_main () |
|
auto | global_state_in_boot () -> GlobalState & |
|
void | log_prologue (detail::DebugFormatContext &context, di::SourceLocation location) |
|
void | schedule_task (Task &) |
| Schedule a task on any scheduler.
|
|
auto | create_kernel_task (TaskNamespace &task_namespace, void(*entry)()) -> Expected< di::Arc< Task > > |
|
auto | create_user_task (TaskNamespace &task_namespace, di::Arc< TNode > root_tnode, di::Arc< TNode > cwd_tnode, FileTable file_table, di::Arc< mm::AddressSpace > address_space) -> Expected< di::Arc< Task > > |
|
auto | load_executable (Task &task, di::PathView path) -> Expected< void > |
|
auto | tag_invoke (di::Tag< read_file >, DebugFile &, UserspaceBuffer< byte > buffer) -> di::AnySenderOf< usize > |
|
auto | tag_invoke (di::Tag< write_file >, DebugFile &self, UserspaceBuffer< byte const > data) -> di::AnySenderOf< usize > |
|
auto | init_initrd () -> Expected< void > |
|
auto | tag_invoke (di::Tag< inode_read >, Inode &self, mm::BackingObject &backing_object, u64 page_number) -> di::AnySenderOf< mm::PhysicalAddress > |
|
auto | tag_invoke (di::Tag< inode_read_directory >, Inode &self, mm::BackingObject &backing_object, u64 &offset, UserspaceBuffer< byte > buffer) -> di::AnySenderOf< usize > |
|
auto | tag_invoke (di::Tag< inode_lookup >, Inode &self, di::Arc< TNode > parent, di::TransparentStringView name) -> di::AnySenderOf< di::Arc< TNode > > |
|
auto | tag_invoke (di::Tag< inode_metadata >, Inode &self) -> di::AnySenderOf< Metadata > |
|
auto | tag_invoke (di::Tag< inode_create_node >, Inode &self, di::Arc< TNode > parent, di::TransparentStringView name, MetadataType type) -> di::AnySenderOf< di::Arc< TNode > > |
|
auto | tag_invoke (di::Tag< inode_truncate >, Inode &self, u64 size) -> di::AnySenderOf<> |
|
auto | tag_invoke (di::Tag< inode_hack_raw_data >, Inode &self) -> di::AnySenderOf< di::Span< byte const > > |
|
auto | tag_invoke (di::Tag< read_file >, InodeFile &self, UserspaceBuffer< byte > buffer) -> di::AnySenderOf< usize > |
|
auto | tag_invoke (di::Tag< read_directory >, InodeFile &self, UserspaceBuffer< byte > buffer) -> di::AnySenderOf< usize > |
|
auto | tag_invoke (di::Tag< write_file >, InodeFile &self, UserspaceBuffer< byte const > buffer) -> di::AnySenderOf< usize > |
|
auto | tag_invoke (di::Tag< file_metadata >, InodeFile &self) -> di::AnySenderOf< Metadata > |
|
auto | tag_invoke (di::Tag< seek_file >, InodeFile &self, i64 offset, int whence) -> di::AnySenderOf< u64 > |
|
auto | tag_invoke (di::Tag< file_truncate >, InodeFile &self, u64 size) -> di::AnySenderOf< void > |
|
auto | tag_invoke (di::Tag< file_hack_raw_data >, InodeFile &self) -> di::AnySenderOf< di::Span< byte const > > |
|
auto | lookup_path (di::Arc< TNode > root, di::Arc< TNode > relative_to, di::PathView path, PathLookupFlags flags) -> di::AnySenderOf< di::Arc< TNode > > |
|
auto | create_node (di::Arc< TNode > root, di::Arc< TNode > relative_to, di::PathView path, MetadataType type) -> di::AnySenderOf< void > |
|
auto | open_path (di::Arc< TNode > root, di::Arc< TNode > relative_to, di::PathView path, OpenMode mode) -> di::AnySenderOf< File > |
|
auto | init_tmpfs () -> Expected< void > |
|
auto | register_external_irq_handler (IrqLine line, IrqHandler handler) -> Expected< usize > |
|
auto | register_exception_handler (GlobalIrqNumber irq, IrqHandler handler) -> Expected< void > |
|
void | unregister_external_irq_handler (IrqLine line, usize handler_id) |
|
void | generic_irq_handler (GlobalIrqNumber irq, iris::arch::TaskState &task_state, int error_code) |
| Generic entry point called by assembly when an interrupt occurs.
|
|
void | init_timer_assignments () |
|
auto | scheduler_timer () -> di::Synchronized< Timer > & |
|
auto | calibration_timer () -> di::Synchronized< Timer > & |
|
auto | current_processor_unsafe () -> Processor & |
| Get the current processor.
|
|
auto | global_state () -> GlobalState const & |
|
template<di::concepts::Invocable F> |
auto | with_interrupts_disabled (F &&function) -> decltype(auto) |
|
template<di::concepts::Invocable F> |
auto | with_preemption_disabled (F &&function) -> decltype(auto) |
|
template<typename... Args> |
void | print (di::format::FormatStringWithLocationImpl< Encoding, Args... > format, Args &&... args) |
|
template<typename... Args> |
void | println (di::format::FormatStringWithLocationImpl< Encoding, Args... > format, Args &&... args) |
|
auto | current_processor () |
|
auto | current_scheduler () |
|
auto | do_syscall (Task ¤t_task, arch::TaskState &task_state) -> Expected< u64 > |
|
template<di::concepts::Invocable F> |
auto | with_userspace_access (F &&function) -> decltype(auto) |
|
template<typename T> |
auto | tag_invoke (di::Tag< di::util::deduce_create >, di::InPlaceTemplate< UserspaceBuffer >, T *, usize) -> UserspaceBuffer< T > |
|
template<typename T> |
auto | tag_invoke (di::Tag< di::util::deduce_create >, di::InPlaceTemplate< UserspacePtr >, T *) -> UserspacePtr< T > |
|