![]() |
MOS Source Code
|
#include "mos/tasks/process.hpp"#include "mos/filesystem/sysfs/sysfs.hpp"#include "mos/filesystem/sysfs/sysfs_autoinit.hpp"#include "mos/io/io.hpp"#include "mos/mm/mm.hpp"#include "mos/syslog/syslog.hpp"#include "mos/tasks/signal.hpp"#include <abi-bits/wait.h>#include <errno.h>#include <limits.h>#include <mos/filesystem/dentry.hpp>#include <mos/filesystem/fs_types.h>#include <mos/filesystem/vfs.hpp>#include <mos/hashmap.hpp>#include <mos/lib/structures/hashmap.hpp>#include <mos/lib/structures/hashmap_common.hpp>#include <mos/lib/structures/list.hpp>#include <mos/lib/sync/spinlock.hpp>#include <mos/misc/panic.hpp>#include <mos/mm/cow.hpp>#include <mos/mm/paging/paging.hpp>#include <mos/platform/platform.hpp>#include <mos/syslog/printk.hpp>#include <mos/tasks/schedule.hpp>#include <mos/tasks/task_types.hpp>#include <mos/tasks/thread.hpp>#include <mos/tasks/wait.hpp>#include <mos/type_utils.hpp>#include <mos_stdio.hpp>#include <mos_stdlib.hpp>#include <mos_string.hpp>Go to the source code of this file.
Macros | |
| #define | do_print(fmt, name, item) |
| #define | stat_line(fmt) |
Functions | |
| const char * | get_vmap_content_str (vmap_content_t content) |
| const char * | get_vmap_type_str (vmap_type_t type) |
| static pid_t | new_process_id (void) |
| void | process_destroy (Process *proc) |
| Process * | process_new (Process *parent, mos::string_view name, const stdio_t *ios) |
| std::optional< Process * > | process_get (pid_t pid) |
| fd_t | process_attach_ref_fd (Process *process, IO *file, FDFlags flags) |
| IO * | process_get_fd (Process *process, fd_t fd) |
| bool | process_detach_fd (Process *process, fd_t fd) |
| pid_t | process_wait_for_pid (pid_t pid, u32 *exit_code, u32 flags) |
| void | process_exit (Process *&&proc, u8 exit_code, signal_t sig) |
| void | process_dump_mmaps (const Process *proc) |
| bool | process_register_signal_handler (Process *process, signal_t sig, const sigaction_t *sigaction) |
| static bool | process_sysfs_process_stat (sysfs_file_t *f) |
| static bool | process_sysfs_thread_stat (sysfs_file_t *f) |
| static bool | process_sysfs_vmap_stat (sysfs_file_t *f) |
| SYSFS_AUTOREGISTER (current, process_sysfs_items) | |
Variables | |
| mos::HashMap< pid_t, Process * > | ProcessTable |
| static sysfs_item_t | process_sysfs_items [] |
Definition at line 402 of file process.cpp.
Referenced by process_sysfs_process_stat(), and process_sysfs_thread_stat().
| #define stat_line | ( | fmt | ) |
Referenced by process_sysfs_vmap_stat().
| const char * get_vmap_content_str | ( | vmap_content_t | content | ) |
Definition at line 39 of file process.cpp.
Referenced by process_dump_mmaps(), and process_sysfs_vmap_stat().
| const char * get_vmap_type_str | ( | vmap_type_t | type | ) |
Definition at line 52 of file process.cpp.
Referenced by process_do_fork(), process_dump_mmaps(), and process_sysfs_vmap_stat().
Definition at line 62 of file process.cpp.
Referenced by Process::Process().
Definition at line 107 of file process.cpp.
Referenced by process_new(), and process_wait_for_pid().
| Process * process_new | ( | Process * | parent, |
| mos::string_view | name, | ||
| const stdio_t * | ios ) |
Definition at line 141 of file process.cpp.
Referenced by elf_create_process().
Definition at line 166 of file process.cpp.
Referenced by mmstat_sysfs_pagetable_show(), mmstat_sysfs_vmaps_show(), MOS_STATIC_ASSERT(), and process_wait_for_pid().
Definition at line 177 of file process.cpp.
Referenced by fd_manipulate(), io_dup(), ipc_accept(), ipc_connect(), ipc_create(), memfd_create(), MOS_STATIC_ASSERT(), MOS_STATIC_ASSERT(), process_new(), and vfs_ipc_file_read().
Definition at line 198 of file process.cpp.
Referenced by dentry_from_fd(), io_dup(), io_pread(), io_read(), io_readv(), io_seek(), io_tell(), io_write(), ipc_accept(), mmap_file(), MOS_STATIC_ASSERT(), MOS_STATIC_ASSERT(), and vfs_fstatat().
Definition at line 206 of file process.cpp.
Referenced by io_close(), io_dup2(), and process_do_execveat().
Definition at line 221 of file process.cpp.
Referenced by MOS_STATIC_ASSERT().
Definition at line 289 of file process.cpp.
Referenced by elf_create_process(), exit(), process_do_execveat(), signal_do_coredump(), and signal_do_terminate().
Definition at line 373 of file process.cpp.
Referenced by dump_process(), and invalid_page_fault().
| bool process_register_signal_handler | ( | Process * | process, |
| signal_t | sig, | ||
| const sigaction_t * | sigaction ) |
Definition at line 388 of file process.cpp.
Referenced by MOS_STATIC_ASSERT().
|
static |
Definition at line 404 of file process.cpp.
|
static |
Definition at line 418 of file process.cpp.
|
static |
| SYSFS_AUTOREGISTER | ( | current | , |
| process_sysfs_items | ) |
| mos::HashMap<pid_t, Process *> ProcessTable |
Definition at line 37 of file process.cpp.
Referenced by kthread_init(), process_destroy(), process_do_fork(), process_get(), process_new(), and tasks_sysfs_process_list().
|
static |
Definition at line 454 of file process.cpp.
Referenced by SYSFS_AUTOREGISTER().