/****************************************************************
主桥驱动程序文件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);
阅读(1190) | 评论(0) | 转发(0) |