Lines Matching refs:dev
41 #define device_init (dev->ops ? dev->ops->init : RT_NULL)
42 #define device_open (dev->ops ? dev->ops->open : RT_NULL)
43 #define device_close (dev->ops ? dev->ops->close : RT_NULL)
44 #define device_read (dev->ops ? dev->ops->read : RT_NULL)
45 #define device_write (dev->ops ? dev->ops->write : RT_NULL)
46 #define device_control (dev->ops ? dev->ops->control : RT_NULL)
48 #define device_init (dev->init)
49 #define device_open (dev->open)
50 #define device_close (dev->close)
51 #define device_read (dev->read)
52 #define device_write (dev->write)
53 #define device_control (dev->control)
67 rt_err_t rt_device_register(rt_device_t dev, in rt_device_register() argument
71 if (dev == RT_NULL) in rt_device_register()
77 rt_object_init(&(dev->parent), RT_Object_Class_Device, name); in rt_device_register()
78 dev->flag = flags; in rt_device_register()
79 dev->ref_count = 0; in rt_device_register()
80 dev->open_flag = 0; in rt_device_register()
83 dev->fops = RT_NULL; in rt_device_register()
84 rt_wqueue_init(&(dev->wait_queue)); in rt_device_register()
88 dfs_devfs_device_add(dev); in rt_device_register()
102 rt_err_t rt_device_unregister(rt_device_t dev) in rt_device_unregister() argument
105 RT_ASSERT(dev != RT_NULL); in rt_device_unregister()
106 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); in rt_device_unregister()
107 RT_ASSERT(rt_object_is_systemobject(&dev->parent)); in rt_device_unregister()
109 rt_object_detach(&(dev->parent)); in rt_device_unregister()
164 void rt_device_destroy(rt_device_t dev) in rt_device_destroy() argument
167 RT_ASSERT(dev != RT_NULL); in rt_device_destroy()
168 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Null); in rt_device_destroy()
169 RT_ASSERT(rt_object_is_systemobject(&dev->parent) == RT_FALSE); in rt_device_destroy()
171 rt_object_detach(&(dev->parent)); in rt_device_destroy()
174 rt_free(dev); in rt_device_destroy()
186 rt_err_t rt_device_init(rt_device_t dev) in rt_device_init() argument
190 RT_ASSERT(dev != RT_NULL); in rt_device_init()
195 if (!(dev->flag & RT_DEVICE_FLAG_ACTIVATED)) in rt_device_init()
197 result = device_init(dev); in rt_device_init()
201 RT_NAME_MAX, dev->parent.name, result); in rt_device_init()
205 dev->flag |= RT_DEVICE_FLAG_ACTIVATED; in rt_device_init()
222 rt_err_t rt_device_open(rt_device_t dev, rt_uint16_t oflag) in rt_device_open() argument
227 RT_ASSERT(dev != RT_NULL); in rt_device_open()
228 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); in rt_device_open()
231 if (!(dev->flag & RT_DEVICE_FLAG_ACTIVATED)) in rt_device_open()
235 result = device_init(dev); in rt_device_open()
239 RT_NAME_MAX, dev->parent.name, result); in rt_device_open()
245 dev->flag |= RT_DEVICE_FLAG_ACTIVATED; in rt_device_open()
249 if ((dev->flag & RT_DEVICE_FLAG_STANDALONE) && in rt_device_open()
250 (dev->open_flag & RT_DEVICE_OFLAG_OPEN)) in rt_device_open()
256 if (!(dev->open_flag & RT_DEVICE_OFLAG_OPEN) || in rt_device_open()
257 …((dev->open_flag & RT_DEVICE_OFLAG_MASK) != ((oflag & RT_DEVICE_OFLAG_MASK) | RT_DEVICE_OFLAG_OPEN… in rt_device_open()
261 result = device_open(dev, oflag); in rt_device_open()
266 dev->open_flag = (oflag & RT_DEVICE_OFLAG_MASK); in rt_device_open()
273 dev->open_flag |= RT_DEVICE_OFLAG_OPEN; in rt_device_open()
275 dev->ref_count++; in rt_device_open()
278 RT_ASSERT(dev->ref_count != 0); in rt_device_open()
292 rt_err_t rt_device_close(rt_device_t dev) in rt_device_close() argument
297 RT_ASSERT(dev != RT_NULL); in rt_device_close()
298 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); in rt_device_close()
300 if (dev->ref_count == 0) in rt_device_close()
303 dev->ref_count--; in rt_device_close()
305 if (dev->ref_count != 0) in rt_device_close()
311 result = device_close(dev); in rt_device_close()
316 dev->open_flag = RT_DEVICE_OFLAG_CLOSE; in rt_device_close()
337 rt_ssize_t rt_device_read(rt_device_t dev, in rt_device_read() argument
343 RT_ASSERT(dev != RT_NULL); in rt_device_read()
344 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); in rt_device_read()
346 if (dev->ref_count == 0) in rt_device_read()
355 return device_read(dev, pos, buffer, size); in rt_device_read()
380 rt_ssize_t rt_device_write(rt_device_t dev, in rt_device_write() argument
386 RT_ASSERT(dev != RT_NULL); in rt_device_write()
387 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); in rt_device_write()
389 if (dev->ref_count == 0) in rt_device_write()
398 return device_write(dev, pos, buffer, size); in rt_device_write()
419 rt_err_t rt_device_control(rt_device_t dev, int cmd, void *arg) in rt_device_control() argument
422 RT_ASSERT(dev != RT_NULL); in rt_device_control()
423 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); in rt_device_control()
428 return device_control(dev, cmd, arg); in rt_device_control()
445 rt_err_t rt_device_set_rx_indicate(rt_device_t dev, in rt_device_set_rx_indicate() argument
446 rt_err_t (*rx_ind)(rt_device_t dev, in rt_device_set_rx_indicate() argument
450 RT_ASSERT(dev != RT_NULL); in rt_device_set_rx_indicate()
451 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); in rt_device_set_rx_indicate()
453 dev->rx_indicate = rx_ind; in rt_device_set_rx_indicate()
469 rt_err_t rt_device_set_tx_complete(rt_device_t dev, in rt_device_set_tx_complete() argument
470 rt_err_t (*tx_done)(rt_device_t dev, in rt_device_set_tx_complete() argument
474 RT_ASSERT(dev != RT_NULL); in rt_device_set_tx_complete()
475 RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); in rt_device_set_tx_complete()
477 dev->tx_complete = tx_done; in rt_device_set_tx_complete()