linux-0.11调试教程,minix文件系统1.0上篇(01),硬盘基本参数hd_info
2013-01-16 19:22
681 查看
下面是在mount_root下断点。
地址0x191e4是hd_info[0]的结构地址,而0x90080是setup.s中设置的。
相关代码是:
for (drive=0 ; drive<2 ; drive++) {
hd_info[drive].cyl = *(unsigned short *) BIOS;
hd_info[drive].head = *(unsigned char *) (2+BIOS);
hd_info[drive].wpcom = *(unsigned short *) (5+BIOS);
hd_info[drive].ctl = *(unsigned char *) (8+BIOS);
hd_info[drive].lzone = *(unsigned short *) (12+BIOS);
hd_info[drive].sect = *(unsigned char *) (14+BIOS);
BIOS += 16;
}
和bochsrc-hd.bxrc文件中的内容是一致的。
ata0-master: type=disk, path="hdc-0.11.img", mode=flat, cylinders=121, heads=16, spt=63
hd_info结构定义:
struct hd_i_struct {
int head,sect,cyl,wpcom,lzone,ctl;
};
#ifdef HD_TYPE
struct hd_i_struct hd_info[] = { HD_TYPE };
#define NR_HD ((sizeof (hd_info))/(sizeof (struct hd_i_struct)))
#else
struct hd_i_struct hd_info[] = { {0,0,0,0,0,0},{0,0,0,0,0,0} };
static int NR_HD = 0;
#endif
地址0x191e4是hd_info[0]的结构地址,而0x90080是setup.s中设置的。
相关代码是:
for (drive=0 ; drive<2 ; drive++) {
hd_info[drive].cyl = *(unsigned short *) BIOS;
hd_info[drive].head = *(unsigned char *) (2+BIOS);
hd_info[drive].wpcom = *(unsigned short *) (5+BIOS);
hd_info[drive].ctl = *(unsigned char *) (8+BIOS);
hd_info[drive].lzone = *(unsigned short *) (12+BIOS);
hd_info[drive].sect = *(unsigned char *) (14+BIOS);
BIOS += 16;
}
和bochsrc-hd.bxrc文件中的内容是一致的。
ata0-master: type=disk, path="hdc-0.11.img", mode=flat, cylinders=121, heads=16, spt=63
hd_info结构定义:
struct hd_i_struct {
int head,sect,cyl,wpcom,lzone,ctl;
};
#ifdef HD_TYPE
struct hd_i_struct hd_info[] = { HD_TYPE };
#define NR_HD ((sizeof (hd_info))/(sizeof (struct hd_i_struct)))
#else
struct hd_i_struct hd_info[] = { {0,0,0,0,0,0},{0,0,0,0,0,0} };
static int NR_HD = 0;
#endif
相关文章推荐
- linux 0.11 调试教程,minix 1.0 文件系统,上篇(03),super_block,137f和301看见了么?
- linux-0.11调试教程,minix文件系统1.0,上篇(02)sys_setup
- linux-0.11调试教程 minix文件系统1.0 下篇(2)inode_table内存i节点表和目录 /etc/tty0
- linux-0.11调试教程 minix 文件系统1.0 下篇(3)文件表 file_table
- linux-0.11调试教程,安装minix-1.5.10到硬盘(3)安装shoelace后修改/etc/rc文件和更改root密码
- linux-0.11调试教程,task3(01),/etc/rc文件
- linux0.11 minix1.0文件系统 下篇 根节点的 buffer_head结构,根节点内容
- linux 0.11 minix 1.0 文件系统 中篇 hash_table
- linux-0.11调试教程 文件系统中b_uptodate字段的含义
- linux0.11调试教程,写了个readinode,参数i节点号,返回磁盘i节点到文件inodexxxx
- linux-0.11调试教程,安装minix-1.5.10到硬盘
- linux-0.11调试教程,task3(02)系统调用sys_alarm和sigaction结构
- 推荐一篇非常不错的关于Linux系统硬盘、分区及文件系统的基本概念介绍文章
- linux-0.11调试教程,系统调用sys_write的调用过程
- linux-0.11调试教程,minix-386-fd0-by-chenghao0511,最小的操作系统,只有360k。
- linux-0.11调试教程,rl_dispatch ()函数调用函数的参数的个数
- linux-0.11调试教程,task2的参数,copy_strings()函数和create_tables()函数的关系
- linux-0.11调试教程,timer_interrupt,内核态发生的时钟中断(01)
- linux-0.11调试教程,bootsect.s文件调试,Loading system ...
- linux-0.11调试教程,task2参数所在内存页的页目录项和页表项