linux注册硬盘中断,基于Linux底层硬盘中断辅助代码的分析与设计
#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底层硬盘中断辅助代码的分析与设计相关推荐
- linux 嵌入式 快照_基于Linux的嵌入式启动优化的研究
基于Linux的嵌入式启动优化的研究 论文 开题分析 周报 启动 基于Linux嵌入式系统启动加速的研究 一. 所选课题的目的和意义 随着科学技术的蓬勃发展,计算机被更多的人使用,并与人类对额生活结合 ...
- linux dhcp 论文,毕业论文—基于linux的dhcp服务器配置.doc
毕业论文-基于linux的dhcp服务器配置 基于Linux的DHCP服务器配置 摘 要 随着互联网的普及,人们的工作.学习和生活与网络联系越来越紧密,搭建了许多不同的网络,如企业网.校园网和城区网等 ...
- [嵌入式Linux项目实战开发]基于QT4.7.4的音乐播放器实现与设计【2018年给力项目】
[嵌入式Linux项目实战开发]基于QT4.7.4的音乐播放器实现与设计[2018年给力项目]是[创科之龙]团队aiku嵌入式视频教程系列制作的现有的音乐播放器. 主要功能实现: 1.新建工程,基类选 ...
- 【php毕业设计】基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码)——网络数据包分析工具
基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于php+mysql+apache的网络数据包分析工具设计与实现,文章末尾附有本毕业设 ...
- 基于PHP+MYSQL高校校友管理信息系统的分析与设计【附项目源码+论文说明】
基于PHP+MYSQL高校校友管理信息系统的分析与设计演示 摘要 衡水学院校友管理采用B/S结构.php开发语言.以及Mysql数据库等技术.系统主要分为管理员和校友二部分,管理员:首页.个人中心.校 ...
- 基于linux 开源机顶盒_基于linux的数字电视机顶盒几种升级方式的设计与实现
摘要: 本文主要阐述了基于linux操作系统的数字电视机顶盒的常用几种升级方式:OTA,USB,网络,结合常用的bootloader:cfe,u-boot实现升级做了简述,并综合对比其各自的优劣. 关 ...
- linux点餐系统,基于Linux的智能点餐系统
基于Linux的智能点餐系统 摘要:当今这个快节奏的社会,效率这个词被提升到了一个很重要的地位,不管工作上,还是生活上.饮食方面也是一个很重要的部分,尤其是在上班日,每个餐厅的人员都爆满,传统的现金付 ...
- Linux上运行扫雷,基于linux环境下扫雷应用程序.docx
总俶斜技誓魄 <网络操作糸统>掖告 (应用程序开发丿 题 目: 基于I inux平台GCC环境下扫雷应用程 序开发 姓 名: 李磊 学 院: 理学院 专 业: 网络工程 班 级: 092 ...
- linux看门狗设备,基于Linux构建无人值守系统(看门狗)
基于Linux构建无人值守系统(看门狗) 在各种嵌入式设备soc中基本都提供了看门狗,在很长一段时间里我对看门狗的理解就是"关掉它,不然它会找麻烦".但是当某种需求存在的时候,它又 ...
最新文章
- Reading Club Questions Feedback
- 解决RabbitMQ消息丢失问题和保证消息可靠性
- wordpress博客留言自动填写
- 20071025-吉武
- 免费体验,阿里云智能LOGO帮你解决设计难题
- 《TensorFlow 2.0深度学习算法实战教材》学习笔记(四、TensorFlow 进阶)
- Winform中使用signalr
- 3dmax:3dmax的软件中右边工具栏的创建、修改、层次、运动、显示、几何体的粒子系统、工具、灯光、摄影、空间扭曲、系统、实用程序、辅助对象等使用技巧之详细攻略
- web前端课程设计——K.X的博客
- 【修订总结】【五万字深度洞察】毒舌阿朱最看好的企业服务商
- php 魔方加密还原,PHP魔方解密 - osc_80l29rkk的个人空间 - OSCHINA - 中文开源技术交流社区...
- 优雅的处理Exception
- python爬取豆瓣Top250完整代码
- c语言单片机红外报警设计,超级简单单片机红外感应开关DIY设计
- [转载]jQuery诞生记-原理与机制
- JavaScript判断输入的数是不是素数
- Invalid component name: “Home,“. Component names should conform to valid custom element。。。控制台报错
- 男的依然禽兽,女的已禽兽不如
- oracle如何收缩表空间文件,ORACLE 收缩表空间的数据文件
- 【射雕英雄传】文本分析初步(姓名,丹药,秘籍,招式)[scrapy, jieba, matplotlib]
热门文章
- 为什么Java的main方法必须是public static void?
- 轻松高效玩转DTO(Data Transfer Object)
- 如何看待消息中间件的选型
- php vsftpd文件上传类,php ftp文件上传函数(基础版)
- 御泥坊搜索引擎优化网络诊断_掌握以下这些网络营销搜索引擎优化技巧,你的排名想不靠前都难!...
- java poi excel读写_JAVA-POI操作Excel读写
- 大于小于优化_以MySQL为例,详解数据库索引原理及深度优化
- mysql的字段空格是null_MySQL中NULL与空字符串 空格问题
- 恒安嘉新面试题java_【恒安嘉新面试|面试题】-看准网
- pytorch 随机打乱