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

📄 memory_function.h

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

#ifndef OS_MEMORY_FUNCTION
#define OS_MEMORY_FUNCTION

extern int get_memory_body_size(
	struct install_memory_body_parameter *par);
extern int init_memory_body(
	struct memory_body_struct *my_memory_body,
	struct install_memory_body_parameter *par);
extern int install_memory_body(
	struct memory_body_struct *my_memory_body,
	struct install_memory_body_parameter *par,int set_stack_flag);

extern void wait_block(int block_number,int sleep_semaphore);
extern void wake_block(int block_number);

extern int get_free_block(int memory_process_number);
extern void free_free_block(int memory_process_number,int block_number);

extern int clear_block_number(struct physical_block *b);
extern void free_one_block(int physical_block_number); 
extern int prepare_free_block(
	int memory_process_number,int sleep_semaphore);
extern int search_physical_block(int file_window_number,
	int logic_address,int *logic_block_number);

extern int write_one_block(int physical_block_number,
	int sleep_semaphore,int give_up_flag);
extern int read_one_block(int file_window_number,
	int logic_address,int sleep_semaphore);
extern int touch_block(int memory_process_number,
	int physical_block_number,int sleep_semaphore);
extern void touch_file_access(int file_window_number,int logic_address);

extern int read_write_file_system(int command,
	int block_number,struct physical_block *b,
	struct file_window *file,
	int begin_address,int sleep_semaphore);
extern int operate_file_system(int command,int sleep_semaphore,
	struct file_window *file,
	union file_system_operation_parameter *operation_parameter,
	int memory_id,int physical_number);


extern int file_unmemory_map_deal(int file_number,
	struct capability *capability);
	
extern int process_unmemory_map_deal(int process_number,
	int unmap_number,struct capability *capability);
	
extern int open_file_window(
	int file_window_id,
	struct file_window *file_window,
	struct capability *process_capability);
extern int close_file_window(int file_window_id,
	int give_up_flag,int wait_flag,
	struct capability *file_capability,int sleep_semaphore);
		
extern int flush_process_memory(
	int give_up_flag,int free_block_flag,int wait_flag,
	int process_number,int sleep_semaphore,
	struct capability *process_capability);
		
extern int flush_file_window(
	int give_up_flag,int free_block_flag,int wait_flag,
	int file_window_number,int sleep_semaphore, 
	struct capability *file_capability);

extern int memory_map_deal(int sleep_semaphore,int file_window_number,
	int begin_logic_address,int end_logic_address,
	struct capability *file_capability);

extern void mark_accessed(int physical_block_number);
extern int mark_modified(int file_window_number,
	int begin_logic_address,int end_logic_address,
	/*int physical_block_number,*/
	struct capability *file_capability);

extern int query_memory_resource(struct memory_resource *r);
extern int allocate_memory_resource(struct memory_resource *r);
		
extern int control_file(
	int sleep_semaphore,int command,int file_window_number,
	union file_system_operation_parameter *operation_parameter,
	struct capability *file_capability);

union memory_call_parameter ;
extern int query_file_window_attribute(
	union memory_call_parameter *par);
extern int set_file_window_attribute(
	union memory_call_parameter *par);

extern int memory_call_process(struct thread_environment *env);

#endif

⌨️ 快捷键说明

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