|
PatchworkOS
|
#include <kernel/cpu/interrupt.h>#include <kernel/cpu/simd.h>#include <kernel/cpu/stack_pointer.h>#include <kernel/cpu/syscalls.h>#include <kernel/ipc/note.h>#include <kernel/proc/process.h>#include <kernel/sched/sched.h>#include <kernel/sched/wait.h>#include <kernel/utils/ref.h>#include <sys/list.h>#include <sys/proc.h>Go to the source code of this file.
Data Structures | |
| struct | thread_t |
| Thread of execution structure. More... | |
Enumerations | |
| enum | thread_state_t { THREAD_PARKED = 0 , THREAD_READY , THREAD_RUNNING , THREAD_PRE_BLOCK , THREAD_BLOCKED , THREAD_UNBLOCKING } |
| Thread state enum. More... | |
Functions | |
| thread_t * | thread_new (process_t *process) |
| Creates a new thread structure. | |
| void | thread_free (thread_t *thread) |
| Frees a thread structure. | |
| void | thread_save (thread_t *thread, const interrupt_frame_t *frame) |
| Save state to a thread. | |
| void | thread_load (thread_t *thread, interrupt_frame_t *frame) |
| Load state from a thread. | |
| _NORETURN void | thread_jump (thread_t *thread) |
Jump to a thread by calling thread_load() and then loading its interrupt frame. | |
| void | thread_get_interrupt_frame (thread_t *thread, interrupt_frame_t *frame) |
| Retrieve the interrupt frame from a thread. | |
| bool | thread_is_note_pending (thread_t *thread) |
| Check if a thread has a note pending. | |
| uint64_t | thread_send_note (thread_t *thread, const void *buffer, uint64_t count) |
| Send a note to a thread. | |
| thread_t * | thread_get_boot (void) |
| Retrieves the boot thread. | |
| uint64_t | thread_handle_page_fault (const interrupt_frame_t *frame) |
| Handles a page fault that occurred in the currently running thread. | |
| uint64_t | thread_copy_from_user (thread_t *thread, void *dest, const void *userSrc, uint64_t length) |
| Safely copy data from user space. | |
| uint64_t | thread_copy_to_user (thread_t *thread, void *dest, const void *userSrc, uint64_t length) |
| Safely copy data to user space. | |
| uint64_t | thread_copy_from_user_terminated (thread_t *thread, const void *userArray, const void *terminator, uint8_t objectSize, uint64_t maxCount, void **outArray, uint64_t *outCount) |
| Safely copy a null-terminated array of objects from user space. | |
| uint64_t | thread_copy_from_user_pathname (thread_t *thread, pathname_t *pathname, const char *userPath) |
| Safely copy a string from user space and use it to initialize a pathname. | |
| uint64_t | thread_load_atomic_from_user (thread_t *thread, atomic_uint64_t *userObj, uint64_t *outValue) |
| Atomically load a 64-bit value from a user-space atomic variable. | |