19#define DEV_TABLE_SIZE XF_HAL_TYPE_MAX 
   29#if XF_HAL_LOCK_IS_ENABLE 
 
   59#if XF_HAL_LOCK_IS_ENABLE 
 
   80#if XF_HAL_LOCK_IS_ENABLE 
   86#if XF_HAL_LOCK_IS_ENABLE 
 
  107        XF_LOGE(
TAG, 
"set default failed, %d", (
int)err);
 
 
  135#if XF_HAL_LOCK_IS_ENABLE 
  140#if XF_HAL_LOCK_IS_ENABLE 
  146#if XF_HAL_LOCK_IS_ENABLE 
 
  161    XF_ASSERT(!err, err, 
TAG, 
"ioctl failed:%d!", (
int)err);
 
 
  175    XF_ASSERT(err >= 0, err, 
TAG, 
"driver read failed:%d!", (
int) - err);
 
 
  187    XF_ASSERT(err >= 0, err, 
TAG, 
"driver write failed:%d!", (
int) - err);
 
 
  200#if XF_HAL_LOCK_IS_ENABLE 
  208#if XF_HAL_LOCK_IS_ENABLE 
 
  220              "Duplicate device registration!");
 
  222#if XF_HAL_LOCK_IS_ENABLE 
  229#if XF_HAL_LOCK_IS_ENABLE 
  233    XF_LOGD(
TAG, 
"Device registration successful");
 
 
  244#if XF_HAL_LOCK_IS_ENABLE 
  255#if XF_HAL_LOCK_IS_ENABLE 
  259    if (&dev->
node == dev_list) {
 
 
#define XF_ASSERT(condition, retval, tag, format,...)
xfusion 断言宏(条件 不成立 时则输出日志后返回)。
 
#define BITS_CHECK(src, bits_mask)
检查变量 var 在 bits_mask 的位置上是否存在 1。
 
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
 
static void xf_list_init(xf_list_t *list)
动态初始化链表.
 
static void xf_list_add_tail(xf_list_t *new_node, xf_list_t *head)
xf_list_add_tail - 在指定节点之前添加一个 new_node.
 
static void xf_list_del_init(xf_list_t *entry)
xf_list_del_init - 从链表中删除节点, 并重新初始化.
 
#define xf_list_for_each_entry(pos, head, type, member)
list_for_each_entry - 迭代给定类型的链表。
 
xf_err_t xf_lock_init(xf_lock_t *p_lock)
初始化锁.
 
int xf_lock_unlock(xf_lock_t lock)
解锁.
 
int xf_lock_lock(xf_lock_t lock)
锁定直至成功.
 
static xf_osal_mutex_t mutex
 
xf_err_t(* open)(xf_hal_dev_t *dev)
 
int(* read)(xf_hal_dev_t *dev, void *buf, size_t count)
 
xf_err_t(* ioctl)(xf_hal_dev_t *dev, uint32_t cmd, void *config)
 
xf_err_t(* close)(xf_hal_dev_t *dev)
 
int(* write)(xf_hal_dev_t *dev, const void *buf, size_t count)
 
xf_hal_dev_create_t constructor
 
xf_driver_ops_t driver_ops
 
xf_err_t xf_hal_driver_close(xf_hal_dev_t *dev)
 
int xf_hal_driver_read(xf_hal_dev_t *dev, void *buf, size_t count)
 
xf_err_t xf_hal_driver_ioctl(xf_hal_dev_t *dev, uint32_t cmd, void *config)
 
static xf_hal_driver_t dev_table[DEV_TABLE_SIZE]
 
xf_err_t xf_hal_driver_open(xf_hal_dev_t *dev, xf_hal_type_t type, uint32_t id)
 
uint32_t xf_hal_driver_get_enable_count(xf_hal_type_t type)
 
int xf_hal_driver_write(xf_hal_dev_t *dev, const void *buf, size_t count)
 
xf_err_t xf_hal_device_add(xf_hal_dev_t *dev)
 
struct _xf_hal_driver_t xf_hal_driver_t
 
uint32_t xf_hal_driver_get_flag(xf_hal_type_t type)
 
xf_hal_dev_t * xf_hal_device_find(xf_hal_type_t type, uint32_t id)
 
xf_err_t xf_hal_driver_register(xf_hal_type_t type, xf_hal_flag_t flag, xf_hal_dev_create_t constructor, const xf_driver_ops_t *driver_ops)
 
xf_hal_dev_t * xf_hal_driver_create(xf_hal_type_t type, uint32_t id)
 
enum _xf_hal_type_t xf_hal_type_t
 
enum _xf_hal_flag_t xf_hal_flag_t
 
#define XF_HAL_DEV_CMD_ALL
 
xf_hal_dev_t *(* xf_hal_dev_create_t)(uint32_t id)
 
#define XF_HAL_DEV_CMD_DEFAULT
 
#define XF_LOGE(tag, format,...)
 
#define XF_LOGD(tag, format,...)