#include #include "blk.h"

#define MAJOR_NR 3

#define CMOS_READ(addr)

({outb_p(0x80|addr,0x70);

inb_p(0x71);})

#define MAX_ERRORS 7

#define MAX_HD 2

static void recal_intr(void); // 硬盘中断程序在复位操作时会调用的重新校正函数。

static int recalibrate=1; // 重新校正标志。

static int reset=1; // 复位标志。

/*下面结构定义了硬盘参数及类型*/

struct hd_i_struct

{int head,sect,cyl,wpcom,lzone,ctl;};

#ifdef HD_TYPE // 如果已经在include/linux/config.h 中定义了HD_TYPE…

struct hd_i_struct hd_info[]={ HD_TYPE }; // 取定义好的参数作为hd_info[]的数据。

#define NR_HD ((sizeof(hd_info))/(sizeof(struct hd_i_struct))) // 计算硬盘数。

#else // 否则,都设为0值。

struct hd_i_struct hd_info[]={{0,0,0,0,0,0},{0,0,0,0,0,0}};

static int NR_HD=0;

#endif

static struct hd_struct

{long start_sect;

long nr_sects;}hd[5*MAX_HD]={{0,0},};

#define port_read(port,buf,nr)

__asm__("cld;rep;insw"::"d"(port),"D"(buf),"c"(nr):"cx","di")

#define port_write(port,buf,nr)

__asm__("cld;rep;outsw"::"d"(port),"S"(buf),"c"(nr):"cx","si")

extern void hd_interrupt(void);

extern void rd_load(void);

-------------------------------------------------------------------------------

/*下面该函数只在初始化时被调用一次。用静态变量callable作为可调用标志。*/

// 该函数的参数由初始化程序init/main.c的init子程序设置为指向0x90080处,此处存放着setup.s程序从BIOS取得的2个硬盘的基本参数表(32字节)。

// 本函数主要功能是读取CMOS和硬盘参数表信息,用于设置硬盘分区结构hd,并加载RAM虚拟盘和根文件系统。

int sys_setup(void * BIOS)

{static int callable=1;

int i,drive;

unsigned char cmos_disks;

struct partition *p;

struct buffer_h

linux注册硬盘中断,基于Linux底层硬盘中断辅助代码的分析与设计相关推荐

  1. linux 嵌入式 快照_基于Linux的嵌入式启动优化的研究

    基于Linux的嵌入式启动优化的研究 论文 开题分析 周报 启动 基于Linux嵌入式系统启动加速的研究 一. 所选课题的目的和意义 随着科学技术的蓬勃发展,计算机被更多的人使用,并与人类对额生活结合 ...

  2. linux dhcp 论文,毕业论文—基于linux的dhcp服务器配置.doc

    毕业论文-基于linux的dhcp服务器配置 基于Linux的DHCP服务器配置 摘 要 随着互联网的普及,人们的工作.学习和生活与网络联系越来越紧密,搭建了许多不同的网络,如企业网.校园网和城区网等 ...

  3. [嵌入式Linux项目实战开发]基于QT4.7.4的音乐播放器实现与设计【2018年给力项目】

    [嵌入式Linux项目实战开发]基于QT4.7.4的音乐播放器实现与设计[2018年给力项目]是[创科之龙]团队aiku嵌入式视频教程系列制作的现有的音乐播放器. 主要功能实现: 1.新建工程,基类选 ...

  4. 【php毕业设计】基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码)——网络数据包分析工具

    基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于php+mysql+apache的网络数据包分析工具设计与实现,文章末尾附有本毕业设 ...

  5. 基于PHP+MYSQL高校校友管理信息系统的分析与设计【附项目源码+论文说明】

    基于PHP+MYSQL高校校友管理信息系统的分析与设计演示 摘要 衡水学院校友管理采用B/S结构.php开发语言.以及Mysql数据库等技术.系统主要分为管理员和校友二部分,管理员:首页.个人中心.校 ...

  6. 基于linux 开源机顶盒_基于linux的数字电视机顶盒几种升级方式的设计与实现

    摘要: 本文主要阐述了基于linux操作系统的数字电视机顶盒的常用几种升级方式:OTA,USB,网络,结合常用的bootloader:cfe,u-boot实现升级做了简述,并综合对比其各自的优劣. 关 ...

  7. linux点餐系统,基于Linux的智能点餐系统

    基于Linux的智能点餐系统 摘要:当今这个快节奏的社会,效率这个词被提升到了一个很重要的地位,不管工作上,还是生活上.饮食方面也是一个很重要的部分,尤其是在上班日,每个餐厅的人员都爆满,传统的现金付 ...

  8. Linux上运行扫雷,基于linux环境下扫雷应用程序.docx

    总俶斜技誓魄 <网络操作糸统>掖告 (应用程序开发丿 题 目: 基于I inux平台GCC环境下扫雷应用程 序开发 姓 名: 李磊 学 院: 理学院 专 业: 网络工程 班 级: 092 ...

  9. linux看门狗设备,基于Linux构建无人值守系统(看门狗)

    基于Linux构建无人值守系统(看门狗) 在各种嵌入式设备soc中基本都提供了看门狗,在很长一段时间里我对看门狗的理解就是"关掉它,不然它会找麻烦".但是当某种需求存在的时候,它又 ...

最新文章

  1. Reading Club Questions Feedback
  2. 解决RabbitMQ消息丢失问题和保证消息可靠性
  3. wordpress博客留言自动填写
  4. 20071025-吉武
  5. 免费体验,阿里云智能LOGO帮你解决设计难题
  6. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(四、TensorFlow 进阶)
  7. Winform中使用signalr
  8. 3dmax:3dmax的软件中右边工具栏的创建、修改、层次、运动、显示、几何体的粒子系统、工具、灯光、摄影、空间扭曲、系统、实用程序、辅助对象等使用技巧之详细攻略
  9. web前端课程设计——K.X的博客
  10. 【修订总结】【五万字深度洞察】毒舌阿朱最看好的企业服务商
  11. php 魔方加密还原,PHP魔方解密 - osc_80l29rkk的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. 优雅的处理Exception
  13. python爬取豆瓣Top250完整代码
  14. c语言单片机红外报警设计,超级简单单片机红外感应开关DIY设计
  15. [转载]jQuery诞生记-原理与机制
  16. JavaScript判断输入的数是不是素数
  17. Invalid component name: “Home,“. Component names should conform to valid custom element。。。控制台报错
  18. 男的依然禽兽,女的已禽兽不如
  19. oracle如何收缩表空间文件,ORACLE 收缩表空间的数据文件
  20. 【射雕英雄传】文本分析初步(姓名,丹药,秘籍,招式)[scrapy, jieba, matplotlib]

热门文章

  1. 为什么Java的main方法必须是public static void?
  2. 轻松高效玩转DTO(Data Transfer Object)
  3. 如何看待消息中间件的选型
  4. php vsftpd文件上传类,php ftp文件上传函数(基础版)
  5. 御泥坊搜索引擎优化网络诊断_掌握以下这些网络营销搜索引擎优化技巧,你的排名想不靠前都难!...
  6. java poi excel读写_JAVA-POI操作Excel读写
  7. 大于小于优化_以MySQL为例,详解数据库索引原理及深度优化
  8. mysql的字段空格是null_MySQL中NULL与空字符串 空格问题
  9. 恒安嘉新面试题java_【恒安嘉新面试|面试题】-看准网
  10. pytorch 随机打乱