MicrOS
process_manager.c File Reference
#include "process_manager.h"

Functions

void enter_user_space (interrupt_state *address)
 
void process_manager_init ()
 
uint32_t process_manager_create_process (char *path, char *parameters, uint32_t parent_id, bool active)
 
uint32_t process_manager_create_thread (uint32_t process_id, void *entry_point, void *stack)
 
process_infoprocess_manager_get_process (uint32_t process_id)
 
process_infoprocess_manager_get_current_process ()
 
void process_manager_set_root_process (uint32_t process_id)
 
uint32_t process_manager_get_root_process ()
 
void process_manager_save_current_process_state (interrupt_state *state, uint32_t delta)
 
void process_manager_switch_to_next_process ()
 
void process_manager_close_current_process (bool is_thread)
 
void process_manager_close_process (uint32_t process_id, bool is_thread, bool allow_to_switch)
 
uint32_t process_manager_get_processes_count ()
 
uint32_t process_manager_get_process_index (uint32_t process_id)
 
process_infoprocess_manager_get_process_info (uint32_t id)
 
void process_manager_get_current_process_user_info (process_user_info *user_info)
 
bool process_manager_get_process_user_info (uint32_t id, process_user_info *user_info)
 
void process_manager_get_all_processes_user_info (process_user_info *user_info)
 
bool process_manager_set_current_process_name (char *name)
 
bool process_manager_set_current_process_signal_handler (void(*signal_handler)(int))
 
void process_manager_finish_signal_handler (signal_params *old_state)
 
void process_manager_current_process_sleep (uint32_t milliseconds)
 
void process_manager_current_process_wait_for_key_press ()
 
void process_manager_current_process_wait_for_process (uint32_t process_id_to_wait)
 
void process_manager_convert_process_info_to_user_info (process_info *process, process_user_info *user_info)
 
uint32_t process_manager_get_process_memory_usage (process_info *process)
 
void process_manager_interrupt_handler (interrupt_state *state)
 
bool process_manager_keyboard_interrupt_handler (interrupt_state *state)
 
void process_manager_refresh_kernel_pages (uint32_t page_number)
 
void process_manager_run ()
 

Variables

kvector processes
 
volatile uint32_t current_process_id = 0
 
volatile uint32_t next_process_id = 1
 
volatile uint32_t last_task_switch = 0
 
volatile uint32_t last_cpu_recalculation = 0
 
volatile uint32_t root_process_id = 0
 
volatile bool run_scheduler_on_next_interrupt = false
 

Function Documentation

◆ enter_user_space()

void enter_user_space ( interrupt_state address)

◆ process_manager_close_current_process()

void process_manager_close_current_process ( bool  is_thread)

◆ process_manager_close_process()

void process_manager_close_process ( uint32_t  process_id,
bool  is_thread,
bool  allow_to_switch 
)

◆ process_manager_convert_process_info_to_user_info()

void process_manager_convert_process_info_to_user_info ( process_info process,
process_user_info user_info 
)

◆ process_manager_create_process()

uint32_t process_manager_create_process ( char *  path,
char *  parameters,
uint32_t  parent_id,
bool  active 
)

◆ process_manager_create_thread()

uint32_t process_manager_create_thread ( uint32_t  process_id,
void *  entry_point,
void *  stack 
)

◆ process_manager_current_process_sleep()

void process_manager_current_process_sleep ( uint32_t  milliseconds)

◆ process_manager_current_process_wait_for_key_press()

void process_manager_current_process_wait_for_key_press ( )

◆ process_manager_current_process_wait_for_process()

void process_manager_current_process_wait_for_process ( uint32_t  process_id_to_wait)

◆ process_manager_finish_signal_handler()

void process_manager_finish_signal_handler ( signal_params old_state)

◆ process_manager_get_all_processes_user_info()

void process_manager_get_all_processes_user_info ( process_user_info user_info)

◆ process_manager_get_current_process()

process_info* process_manager_get_current_process ( )

◆ process_manager_get_current_process_user_info()

void process_manager_get_current_process_user_info ( process_user_info user_info)

◆ process_manager_get_process()

process_info* process_manager_get_process ( uint32_t  process_id)

◆ process_manager_get_process_index()

uint32_t process_manager_get_process_index ( uint32_t  process_id)

◆ process_manager_get_process_info()

process_info* process_manager_get_process_info ( uint32_t  id)

◆ process_manager_get_process_memory_usage()

uint32_t process_manager_get_process_memory_usage ( process_info process)

◆ process_manager_get_process_user_info()

bool process_manager_get_process_user_info ( uint32_t  id,
process_user_info user_info 
)

◆ process_manager_get_processes_count()

uint32_t process_manager_get_processes_count ( )

◆ process_manager_get_root_process()

uint32_t process_manager_get_root_process ( )

◆ process_manager_init()

void process_manager_init ( )

◆ process_manager_interrupt_handler()

void process_manager_interrupt_handler ( interrupt_state state)

◆ process_manager_keyboard_interrupt_handler()

bool process_manager_keyboard_interrupt_handler ( interrupt_state state)

◆ process_manager_refresh_kernel_pages()

void process_manager_refresh_kernel_pages ( uint32_t  page_number)

◆ process_manager_run()

void process_manager_run ( )

◆ process_manager_save_current_process_state()

void process_manager_save_current_process_state ( interrupt_state state,
uint32_t  delta 
)

◆ process_manager_set_current_process_name()

bool process_manager_set_current_process_name ( char *  name)

◆ process_manager_set_current_process_signal_handler()

bool process_manager_set_current_process_signal_handler ( void(*)(int)  signal_handler)

◆ process_manager_set_root_process()

void process_manager_set_root_process ( uint32_t  process_id)

◆ process_manager_switch_to_next_process()

void process_manager_switch_to_next_process ( )

Variable Documentation

◆ current_process_id

volatile uint32_t current_process_id = 0

◆ last_cpu_recalculation

volatile uint32_t last_cpu_recalculation = 0

◆ last_task_switch

volatile uint32_t last_task_switch = 0

◆ next_process_id

volatile uint32_t next_process_id = 1

◆ processes

kvector processes

◆ root_process_id

volatile uint32_t root_process_id = 0

◆ run_scheduler_on_next_interrupt

volatile bool run_scheduler_on_next_interrupt = false