EXPEED_OS  1.1.2
device.h
浏览该文件的文档.
1 
7 #ifndef DEVICE_H
8 #define DEVICE_H
9 
10 #include "FrameConfig.h"
11 
12 
13 #ifdef CONFIG_USE_DEVICE
14 
18 typedef enum device_port_type
19 {
20  Device_GPIO = 0,
21  Device_PWM,
22  Device_UART,
23  Device_I2C,
24  Device_I2S,
25  Device_SPI,
26  Device_CAN,
27  Device_1WIRE,
28  Device_others,
30  Device_MAX
31 } device_port_type_e;
32 
33 typedef enum device_flag
34 {
35  Device_read_only = 1,
36  Device_write_only,
37  Device_rd_and_wr
38 } device_flag_e;
39 
40 
44 typedef struct device
45 {
46  char name[NAME_MAX];
47  uint8_t id;
48  uint8_t port_type;
49  uint8_t device_flag;
50  uint8_t device_status;
51  void* data_buf;
53  /* 通用控制接口 */
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);
62  /* 事件处理函数 */
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);
68 } device_t;
69 typedef device_t * device_p;
70 
71 
78 int32_t device_manager_init();
79 
88 int32_t device_register(device_t * dev);
89 
98 int32_t device_unregister(device_t* dev);
99 
108 int32_t device_init(device_t* dev, void* args);
109 
118 int32_t device_deinit(device_t* dev, void* args)
119 
120 
128 int32_t device_open(device_t* dev);
129 
138 int32_t device_close(device_t* dev);
139 
149 size_t device_read(device_t* dev, void *buf, size_t size);
150 
160 size_t device_write(device_t* dev, const void *buf, size_t size);
161 
172 int32_t device_control(device_t* dev, int cmd, void *arg);
173 
174 
175 #endif // CONFIG_USE_DEVICE
176 
177 
178 #endif
FrameConfig.h
系统配置文件
NAME_MAX
#define NAME_MAX
Definition: FrameConfig.h:67