13 #ifdef CONFIG_USE_DEVICE
18 typedef enum device_port_type
33 typedef enum device_flag
50 uint8_t device_status;
54 int32_t (*init)(
struct device *dev,
void* arg);
55 int32_t (*deinit)(
struct device *dev,
void *args);
56 int32_t (*open)(
struct device *dev);
57 int32_t (*close)(
struct device *dev);
58 size_t (*read)(
struct device *dev,
void *buf,
size_t size);
59 size_t (*write)(
struct device *dev,
const void *buf,
size_t size);
60 int32_t (*control)(
struct device *dev,
int cmd,
void *args);
63 int32_t (*error_handler)(
struct device *dev, uint8_t err_type);
64 int32_t (*write_finish)(
struct device *dev,
void* data);
65 int32_t (*read_finish)(
struct device *dev,
void* data);
66 int32_t (*on_open)(
struct device *dev,
void* data);
67 int32_t (*on_close)(
struct device *dev,
void* data);
69 typedef device_t * device_p;
78 int32_t device_manager_init();
88 int32_t device_register(device_t * dev);
98 int32_t device_unregister(device_t* dev);
108 int32_t device_init(device_t* dev,
void* args);
118 int32_t device_deinit(device_t* dev,
void* args)
128 int32_t device_open(device_t* dev);
138 int32_t device_close(device_t* dev);
149 size_t device_read(device_t* dev,
void *buf,
size_t size);
160 size_t device_write(device_t* dev,
const void *buf,
size_t size);
172 int32_t device_control(device_t* dev,
int cmd,
void *arg);
175 #endif // CONFIG_USE_DEVICE