Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1152082
  • 博文数量: 53
  • 博客积分: 1165
  • 博客等级: 下士
  • 技术积分: 1811
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-19 14:56
个人简介

专注于操作系统内核的实现

文章分类
文章存档

2015年(2)

2014年(16)

2013年(18)

2012年(17)

分类: LINUX

2013-05-22 12:57:44

/****************************************************************
            
主桥驱动程序文件hostbrideg.c
*****************************************************************
                              
彭东 @ 2013.05.21.17.10
****************************************************************/
 
/*一个完整的LMOS驱动框架,当然对于不同的设备,不必写出所有的分发函数,我这里 
*是为了展示一个完整的驱动框架。每个驱动分发函数都是4个参数,后面两个不用管
*这个是为了以后扩展升级用的。当然对于x86上的主桥驱动来说,最最重要的只有两个 
*分发函数,设备枚举函数,电源管理函数。对于分发函数用到的参数全部在ioinfo_t
 
*结构体中。当然我这个驱动什么也不能做。
 
*注意的是,LMOS的驱动程序,一旦被装载,就是内核的一部分,和内核代码一起运行
*在CPU的最高特权级,可以访问所有的系统资源。就是说,你驱动程序的一点点错误都 
*能导致机器崩溃,内核没有任何挽救措施。当然你的代码写不好但没有错误,这也许只
 
*会影响内核的执行性能。所以要明白的是,开发驱动就是开发内核,你的每行代码都至
 
*关重要。
 
*当然也不必紧张,LMOS内核会提供一系列接口,比如同步原语,内存分配与释放,进程
 
*间数据的传输,设备的注册与撤销等……以最大可能保证驱动编写的正确性。让其只专注
 
*于设备部分。
 
*/

#include "drivers.h"


PUBLIC
 drvstus_t hostbrideg_entry(driver_t* drvobjp)
{

                
return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_exit(driver_t* drvobjp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_open(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_close(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{

                
return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_read(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_write(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_ioctrl(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_lseek(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{

                
return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_dev_start(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_dev_stop(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{

                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_enmu(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}

PUBLIC drvstus_t hostbrideg_setpower(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS ;
}

PUBLIC
 drvstus_t hostbrideg_flush(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}

PUBLIC
 drvstus_t hostbrideg_shutdown(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}

DEFINE_STATIC_KERMODUS
(hostbrideg,"hostbrideg",KMATB_FLG_DRIVER,hostbrideg_entry,hostbrideg_exit);
阅读(3582) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~