📄 dev.c
字号:
/* MShowTec - www.mshowtec.com
** msLinux dev.c ver1.0
** 20051221 lmjx create limiao@mshowtec.com
**
*/
#define MSLINUX_DEV_C
#include "dev.h"
struct device
{
char dev_name[DEV_NAME_LEN];
int dev_id;
int cmd;
int error;
long ioctrl_para;
long (*ioctrl_fn) (void);
}mslinux_dev[MSLINUX_DEV_NR];
void dev_init(void)
{
int i;
for (i = 0; i < MSLINUX_DEV_NR; i++)
{
memset(&mslinux_dev[i],0,sizeof(struct device));
mslinux_dev[i].dev_id = -1;
}
}
long ioctrl(int dev,int cmd,long para)
{
long ret = 0;
if(dev >=DEV_NAME_LEN){
return -dev;
}
if(mslinux_dev[dev].dev_id != dev){
return -dev;
}
mslinux_dev[dev].cmd = cmd;
mslinux_dev[dev].error = 0;
mslinux_dev[dev].ioctrl_para = para;
if(mslinux_dev[dev].ioctrl_fn)
ret = mslinux_dev[dev].ioctrl_fn();
return ret;
}
int dev_register(int dev,long (*ioctrl_fn) (void))
{
if(dev >=DEV_NAME_LEN){
return -dev;
}
if((mslinux_dev[dev].dev_id == -1)||(mslinux_dev[dev].dev_id == dev)){
mslinux_dev[dev].dev_id = dev;
mslinux_dev[dev].cmd = 0;
mslinux_dev[dev].error = 0;
mslinux_dev[dev].ioctrl_para = 0;
mslinux_dev[dev].ioctrl_fn = ioctrl_fn;
return 0;
}
return -dev;
}
int dev_get_cmd(int dev)
{
if(dev >=DEV_NAME_LEN){
return -dev;
}
if(mslinux_dev[dev].dev_id != dev){
return -dev;
}
return mslinux_dev[dev].cmd;
}
int dev_get_error(int dev)
{
if(dev >=DEV_NAME_LEN){
return -dev;
}
if(mslinux_dev[dev].dev_id != dev){
return -dev;
}
return mslinux_dev[dev].error;
}
long dev_get_para(int dev)
{
if(dev >=DEV_NAME_LEN){
return -dev;
}
if(mslinux_dev[dev].dev_id != dev){
return -dev;
}
return mslinux_dev[dev].ioctrl_para;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -