Boot的设备管理框架(2)

/* Device information */   typedef struct {       int flags;          /* Device flags: input/output/system    */       int ext;            /* Supported extensions         */       char    name[16];       /* Device name  设备名称            */      /* GENERAL functions 启动和停止函数 */          int (*start) (void);        /* To start the device          */       int (*stop) (void);     /* To stop the device           */      /* OUTPUT functions 输出函数 */          void (*putc) (const char c);    /* To put a char            */       void (*puts) (const char *s);   /* To put a string (accelerator)    */      /* INPUT functions  输入函数*/          int (*tstc) (void);     /* To test if a char is ready...    */       int (*getc) (void);     /* To get that char         */      /* Other functions */          void *priv;         /* Private extensions           */   } device_t;  

U-Boot将所有的设备结构体组成一个链表:

list_t devlist = 0;

devlist = ListCreate (sizeof (device_t));

再来看一些函数:

device_register (device_t * dev) 设备注册,将结构体添加到devlist的后面
device_deregister(char *devname)
search_device (int flags, char *name) 设备搜索
device_deregister(char *devname)设备的移除

以上这些就过程了U-Boot的设别管理框架。下面来分析一个该框架下的设备实例。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wywwfp.html