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

📄 control_file.c

📁 国内一位牛人自己开发的操作系统
💻 C
字号:
#include"../include/os.h"

#define WRONG_COMMAND		-1
#define WRONG_FILE_NUMBER	-2
#define WRONG_FILE_STATE	-3
#define WRONG_CAPABILITY	-4
#define WRONG_SEMAPHORE		-5
#define NO_FREE_BLOCK		-6

int control_file(int sleep_semaphore,int command,int file_window_number,
	union file_system_operation_parameter *parameter,
	struct capability *file_capability)
{
	int return_value;
	struct file_window *f;

	if(sleep_semaphore<=0)
		return WRONG_SEMAPHORE;
	if(file_window_number<0)
		return WRONG_FILE_NUMBER;
	if(file_window_number>=(*(memory_body->file_number)))
		return WRONG_FILE_NUMBER;
	f=memory_body->file_window+file_window_number;
	if(f->state!=FILE_OPEN)
		return WRONG_FILE_STATE;
	if(!KERNEL_COMPARE_CAPABILITY(
		(f->file.capability),(*file_capability)))
			return WRONG_CAPABILITY;
	switch(command){
	case OPEN_FILE:
	case CLOSE_FILE:
	case OPERATE_FILE:
		return_value=operate_file_system(command,
			sleep_semaphore,f,parameter,
			current.rt->physical_block.memory_id,
			current.rt->physical_block.block_id);
		break;
	default:
		return_value=WRONG_COMMAND;
	}
	return return_value;
}

⌨️ 快捷键说明

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