📄 dev_init.c.svn-base
字号:
typedef struct dev{
char devname[40];
struct dev *next;
unsigned devISR:2;
unsigned short index;
}dev;
#define insert(interrupt_routine,source) do{ \
source.next=interrupt_routine[source.index].next;\
interrupt_routine[source.index].next=&source; \
}while(0)
dev devlist[10];//debugger
#define dev_number sizeof(devlist[])/sizeof(dev)//unsigend
typedef struct dev_opt{
int (*read)();
int (*write)();
int (*ioc)();
int (*open)();
int (*close)();
char devname[40];
}dev_opt;
//dev_opt dev_operation[(int)dev_number];debugger
dev_opt dev_operation[10];//debugger
#define INIT_DEV(devlist) do{ for( dev * point=devlist;point!=0;point++)\
{ point->init(); /*init dev*/\
interrupt_source source;\
source.index=point->index;\
source.action=point->handler;\
source.devname=point->devname;\
if(interrupt_routine[point->index].devISR==0)\
interrupt_routine[source.index].devISR=point->devISR;\ insert(interrupt_routine,source); \ }\
}while(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -