struct device {
const char *name;
const void *config;
const void *api;
void * const data;
};
config
: 放地址映射,中断号等一些物理信息。api
: 回调函数。data
: 放reference counts, semaphores, scratch buffers等。
Device-Specific API Extensions
标准driver api没法实现的功能。
Single Driver, Multiple Instances
某个driver对应多个instances的情况,比如uart driver匹配uart0, uart1, 并且中断线不是同一个。