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

📄 common_head.h

📁 阿基米德操作系统的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:

///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////

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 + -