⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.h

📁 国内一位牛人自己开发的操作系统
💻 H
字号:

#ifndef OS_FUNCTION_CALL
#define OS_FUNCTION_CALL

extern void init_file_information(void );
extern int set_system_file_capability(
	int memory_body_id,int file_id,int right, 
	struct capability *capability);
extern int set_thread_file_capability(
	int thread_id,int thread_file_id,int map_length,int right,
	struct capability *file_capability,
	int memory_body_id,int file_id);
extern int set_process_file_capability(
	int process_id,int process_file_id,int map_length,int right,
	struct capability *file_capability,
	int memory_body_id,int file_id);
extern int can_access_file(
	int thread_id,int process_id,int user_file_id,
	int *memory_body_id,int *map_length,int *right);

extern void left_run_state(int thread_id);
extern void enter_run_state(int thread_id);

extern void ready_heap_up_deal(int thread_id);
extern void ready_heap_down_deal(int thread_id);
extern void remove_from_ready_heap(int thread_id);
extern void insert_into_ready_heap(int thread_id);


extern void run_heap_up_deal(int thread_id);
extern void run_heap_down_deal(int thread_id);
extern void remove_from_run_heap(int thread_id);
extern void insert_into_run_heap(int thread_id);

extern void remove_from_heap(int thread_id);
extern void insert_into_heap(int thread_id);
extern void modify_thread_priority(int thread_id,int new_priority);

extern void move_semaphore(int semaphore_id,int destination_process);
extern void kernel_semaphore_time_deal(void );
extern void set_semaphore_time(int semaphore_id,struct kernel_time *time_new);

extern int reset_semaphore_value(int semaphore_id,
	struct capability *semaphore_capability);

extern int thread_migrate(int thread_id,int process_id,
	int stack_flag,int exception_flag,int process_v_flag);
extern int thread_return(int thread_id,int exception_return_flag);
extern int thread_migrate_with_physical_block(
	int thread_id,int process_id,int process_v_flag,
	struct thread_physical_block *pb,
	struct capability *capability);

extern int p(int thread_id,int semaphore_id,
	int sleep_flag,int result_flag,struct capability *cap);
extern int system_call_p(int thread_id,int semaphore_id,
	int sleep_flag,int v_flag,struct capability *cap);

extern int v_thread(int thread_id);
extern int system_call_v(int semaphore_id,int *steps,
	struct capability *cap);

extern int set_semaphore_time_system_call(int semaphore_id,int v_value,
	struct kernel_time *first_time,struct kernel_time *step_time,
	struct capability *sem_capability);
extern int set_semaphore_time_and_p_operation(int thread_id,
	int semaphore_id,int sleep_flag,int v_flag,int v_value,
	struct kernel_time *first_time,struct kernel_time *step_time,
	struct capability *semaphore_capability);

extern int allocate_resource(struct process *process,int process_id,
	struct capability *sysetm_capability);
extern int query_resource(struct process *process,int process_id);
extern int create_thread(
	struct user_file_information *file_info,
	int process_id,int current_process,int priority,
	struct thread_environment *thread_environment,
	struct capability *process_capability);
extern int allocate_semaphore(int process_id,int value,
	struct capability *process_capability,
	struct capability *semaphore_capability);
extern int release_semaphore(int release_flag,int semaphore_id,
	struct capability *semaphore_capability);
extern int set_thread_attribute(int semaphore_id,
	struct exception_item *exception_flag,
	int *priority,int *mandatory_exit_number,
	struct capability *current_process_capability);
extern int get_thread_attribute(int semaphore_id,
	struct exception_item *exception,
	int *priority,
	int *return_stack_top,
	int *process,int *current_process,
	struct capability *current_process_capability);


extern void time_share(int thread_id);
extern int time_routine(void );
extern int system_call_routine(void );

extern void system_call(void );

extern int os_init(void );
extern int idle_driver(struct file_system_call_parameter *par);

#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -