📄 common_head.h
字号:
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern unsigned char root_path_table[NR_SUPER][256];
extern unsigned char root_pathlength_table[NR_SUPER];
extern unsigned char pwd_path_table[NR_SUPER][256];
extern unsigned char pwd_pathlength_table[NR_SUPER];
extern unsigned char current_root_path[256];
extern unsigned char current_root_pathlength;
extern unsigned char current_pwd_path[256];
extern unsigned char current_pwd_pathlength;
extern unsigned char current_path[256];
extern unsigned char current_pathlength;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern int month_days[12];
extern unsigned long current_datetime_sec;
extern unsigned long current_datetime_min;
extern unsigned long current_datetime_hour;
extern unsigned long current_datetime_mday;
extern unsigned long current_datetime_mon;
extern unsigned long current_datetime_year;
extern unsigned long current_datetime_100Y;
extern int leapyear_flag;
extern int current_monthdays;
extern unsigned long sys_datetime, sys_datetime_s, sys_datetime_ms;
extern unsigned long file_datetime;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern int nr_buffers;
extern struct buffer_head * volatile start_buffer;
extern struct buffer_head * volatile end_buffer;
extern struct buffer_head * volatile sys_buffer;
extern struct buffer_head * volatile current_buffer;
extern struct buffer_head * hash_table[];
extern struct buffer_head * volatile free_list;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern struct hd_info_struct hd_info[];
extern struct hd_request_struct hd_request[];
extern struct hd_request_struct * volatile current_req;
extern struct hd_request_struct * volatile start_request_f , * volatile end_request_f;
extern struct hd_request_struct * volatile start_request_f0, * volatile end_request_f0;
extern struct hd_request_struct * volatile start_request_h , * volatile end_request_h;
extern struct hd_request_struct * volatile start_request_h0, * volatile end_request_h0;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern int volatile data_index;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern unsigned char floppy_buffer[1024];
extern unsigned char reply_buffer[8];
extern int reply_length;
extern unsigned char volatile floppy_temp_track;
extern unsigned char volatile floppy_temp_head;
extern unsigned char volatile floppy_temp_sector;
extern int volatile floppy_temp_rwflag;
extern unsigned char volatile floppy_current_track;
extern unsigned char volatile floppy_current_head;
extern unsigned char volatile floppy_current_sector;
extern int volatile floppy_state;
extern int volatile floppy_errors;
extern int volatile floppy_rwerrors;
extern int volatile floppy_timerval;
extern int volatile floppy_finishedflag;
extern int volatile floppy_workstate;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern int current_fatno;
extern struct fat_cache * fat_cache, cache[FAT_CACHE];
extern struct msdos_dir_entry current_dir_entry;
extern unsigned char current_name[MSDOS_NAME_LEN + 1];
extern int current_namelen;
extern int current_dir_type;
extern int root_dir_flag;
extern int current_sector,current_sector0;
extern unsigned char sys_dir_name0[MSDOS_NAME_LEN + 1];
extern unsigned char sys_dir_name1[MSDOS_NAME_LEN + 1];
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern long partition_sector;
extern struct super_block the_super_block[];
extern long nr_super_blocks;
extern long sys_blocksize;
extern struct m_inode * current_root;
extern struct m_inode * current_pwd;
extern long current_driver;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
extern struct file dir_file;
extern struct file file_table[];
extern struct m_inode inode_table[];
extern int last_allocated_inode;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////!!!!!
extern unsigned long kernel_stack[2048];
extern unsigned char exec_buffer[4096];
extern unsigned long old_REGS[16];
extern unsigned long * exec_stackptr;
extern unsigned char * exec_argptr;
////////////////////////////////////////////////////////////////////////////////////!!!!!
int match(int len,const char * name,struct dir_entry * de);
struct buffer_head * find_entry(struct m_inode * dir, const char * name,
int namelen, struct dir_entry ** res_dir);
struct buffer_head * add_entry(struct m_inode * dir, const char * name,
int namelen, struct dir_entry ** res_dir);
struct m_inode * get_dir(const char * pathname);
struct m_inode * dir_namei(const char * pathname, int * namelen, const char ** name);
struct m_inode * namei(const char * pathname);
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
int empty_dir(struct m_inode * inode);
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
int open_namei(const char * pathname, unsigned char flag,
unsigned char mode,struct m_inode ** res_inode,unsigned char * buf,unsigned long length);
int the_open(const char * filename,unsigned long flag,unsigned long mode,unsigned char * buf,unsigned long length);
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
int file_rddir(struct file * filep, char * buf, int length);
int file_read(struct file * filep, char * buf, int count);
int file_write(struct file * filep, char * buf, int count);
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
struct buffer_head * bread(int dev, int block, unsigned char floppy_importflag);
void brelse(struct buffer_head * buf);
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
struct m_inode * new_inode(int dev);
void free_inode(struct m_inode * inode);
int new_block(int dev);
void free_block(int dev, int block);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -