/*
驱动注册
*/
int cola_device_register(cola_device_t *dev);
/*
驱动查找
*/
cola_device_t *cola_device_find(const char *name);
/*
驱动读
*/
int cola_device_read(cola_device_t *dev, int pos, void *buffer, int size);
/*
驱动写
*/
int cola_device_write(cola_device_t *dev, int pos, const void *buffer, int size);
/*
驱动控制
*/
int cola_device_ctrl(cola_device_t *dev, int cmd, void *arg);
#endif
源文件cola_device.c:
#include “cola_device.h”
#include <string.h>
#include <stdbool.h>
struct cola_device *device_list = NULL;
/*
查找任务是否存在
*/
static bool cola_device_is_exists( cola_device_t *dev )
{
cola_device_t* cur = device_list;
while( cur != NULL )
{
if( strcmp(cur->name,dev->name)==0)
{
return true;
}
cur = cur->next;
}
return false;
}
static int device_list_inster(cola_device_t *dev)
{
cola_device_t *cur = device_list;
if(NULL == device_list)
{
device_list = dev;
dev->next = NULL;
}
else
{
w