| 
| #define  | XF_HAL_TABLE_TYPE | 
|   | 
| #define  | XF_HAL_DEV_CMD_DEFAULT   0x0 | 
|   | 
| #define  | XF_HAL_DEV_CMD_ALL   0x7FFFFFFF | 
|   | 
| enum   | _xf_hal_type_t { XF_HAL_TYPE_NONE = -1
, XF_HAL_TYPE_MAX
 } | 
|   | 
| enum   | _xf_hal_flag_t { _XF_HAL_FLAG_NOT_USE = 0x00
, XF_HAL_FLAG_ONLY_READ = 0x01 << 0
, XF_HAL_FLAG_ONLY_WRITE = 0x01 << 1
, XF_HAL_FLAG_READ_WRITE = XF_HAL_FLAG_ONLY_READ | XF_HAL_FLAG_ONLY_WRITE
 } | 
|   | 
| typedef struct _xf_hal_dev_t  | xf_hal_dev_t | 
|   | 
| typedef enum _xf_hal_type_t  | xf_hal_type_t | 
|   | 
| typedef xf_hal_dev_t *(*  | xf_hal_dev_create_t) (uint32_t id) | 
|   | 
| typedef enum _xf_hal_flag_t  | xf_hal_flag_t | 
|   | 
| typedef struct _xf_driver_ops_t  | xf_driver_ops_t | 
|   | 
| 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) | 
|   | 
| uint32_t  | xf_hal_driver_get_flag (xf_hal_type_t type) | 
|   | 
| xf_hal_dev_t *  | xf_hal_driver_create (xf_hal_type_t type, uint32_t id) | 
|   | 
| xf_err_t  | xf_hal_driver_open (xf_hal_dev_t *dev, xf_hal_type_t type, uint32_t id) | 
|   | 
| xf_err_t  | xf_hal_driver_ioctl (xf_hal_dev_t *dev, uint32_t cmd, void *config) | 
|   | 
| int  | xf_hal_driver_read (xf_hal_dev_t *dev, void *buf, size_t count) | 
|   | 
| int  | xf_hal_driver_write (xf_hal_dev_t *dev, const void *buf, size_t count) | 
|   | 
| xf_err_t  | xf_hal_driver_close (xf_hal_dev_t *dev) | 
|   | 
| xf_err_t  | xf_hal_device_add (xf_hal_dev_t *dev) | 
|   | 
| xf_hal_dev_t *  | xf_hal_device_find (xf_hal_type_t type, uint32_t id) | 
|   |