Go to the source code of this file.
◆ PROGRAM_VIRTUAL_ADDRESS
#define PROGRAM_VIRTUAL_ADDRESS 0x400000 |
◆ PROGRAM_VIRTUAL_STACK_ADDRESS_END
◆ PROGRAM_VIRTUAL_STACK_ADDRESS_START
#define PROGRAM_VIRTUAL_STACK_ADDRESS_START 0x3FF000 |
◆ PROGRAM_VIRTUAL_STACK_SIZE
#define PROGRAM_VIRTUAL_STACK_SIZE 1024 * 16 |
◆ __attribute__()
◆ task_copy_string_from()
int task_copy_string_from |
( |
struct task * |
task, |
|
|
void * |
virtual_address, |
|
|
void * |
physical_address, |
|
|
int |
max |
|
) |
| |
References assert, paging_chunk::directory_entry, kernel_page(), kfree(), kzalloc(), task::page_directory, PAGING_ACCESS_FROM_ALL, paging_get_page(), PAGING_IS_PRESENT, PAGING_IS_WRITEABLE, PAGING_PAGE_SIZE, paging_set_page(), paging_switch(), and strncpy().
◆ task_current()
struct task * task_current |
( |
| ) |
|
Returns currently running task.
- Returns
- struct task* Current task
References current_task.
◆ task_current_save_state()
◆ task_free()
int task_free |
( |
struct task * |
task | ) |
|
◆ task_get_next()
struct task * task_get_next |
( |
| ) |
|
Returns next task in list (or first if there is no next task in current_task)
- Returns
- struct task* Next task
References current_task, task::next, and task_head.
◆ task_new()
References current_task, ENOMEM, ERROR, ISERR, kzalloc(), task::next, task::prev, task_free(), task_head, task_init(), and task_tail.
◆ task_page()
◆ task_page_task()
void task_page_task |
( |
struct task * |
task | ) |
|
◆ task_peek_stack()
void * task_peek_stack |
( |
struct task * |
task, |
|
|
int |
offset |
|
) |
| |
◆ task_return()
void task_return |
( |
struct registers * |
registers | ) |
|
◆ task_run_first_ever_task()
void task_run_first_ever_task |
( |
| ) |
|
◆ task_switch()
int task_switch |
( |
struct task * |
task | ) |
|
◆ user_registers()
◆ __attribute__
struct task __attribute__ |
◆ cs
◆ eax
◆ ebp
◆ ebx
◆ ecx
◆ edi
◆ edx
◆ esi
◆ esp
◆ flags
◆ ip
◆ ss