XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
设备基类 的协作图:

结构体

struct  xwds_virtual_operation
 基本操作的虚函数表(类似C++的虚函数表) 更多...
 
struct  xwds_driver
 基本驱动函数表(所有设备驱动的基类) 更多...
 
struct  xwds_device
 设备(所有设备的基类) 更多...
 

宏定义

#define xwds_itr_next_device(ds, p)
 向前迭代每个设备
 
#define xwds_itr_prev_device(ds, p)
 向后迭代每个设备
 
#define xwds_itr_next_device_safe(ds, p, n)
 向前迭代每个设备(可安全删除设备)
 
#define xwds_itr_prev_device_safe(ds, p, n)
 向后迭代每个设备(可安全删除设备)
 
#define __IOC_NRBITS   8
 
#define __IOC_TYPEBITS   8
 
#define __IOC_SIZEBITS   14
 
#define __IOC_DIRBITS   2
 
#define __IOC_NRMASK   ((1 << __IOC_NRBITS) - 1)
 
#define __IOC_TYPEMASK   ((1 << __IOC_TYPEBITS) - 1)
 
#define __IOC_SIZEMASK   ((1 << __IOC_SIZEBITS) - 1)
 
#define __IOC_DIRMASK   ((1 << __IOC_DIRBITS) - 1)
 
#define __IOC_NRSHIFT   0
 
#define __IOC_TYPESHIFT   (__IOC_NRSHIFT + __IOC_NRBITS)
 
#define __IOC_SIZESHIFT   (__IOC_TYPESHIFT + __IOC_TYPEBITS)
 
#define __IOC_DIRSHIFT   (__IOC_SIZESHIFT + __IOC_SIZEBITS)
 
#define __IOC_CTRL   0U
 
#define __IOC_WRITE   1U
 
#define __IOC_READ   2U
 
#define __IOC(dir, type, nr, size)
 

函数

xwer_t xwds_device_vop_probe (struct xwds_device *dev)
 设备基本操作函数:探测设备
 
xwer_t xwds_device_vop_remove (struct xwds_device *dev)
 设备基本操作函数:删除设备
 
xwer_t xwds_device_vop_start (struct xwds_device *dev)
 设备基本操作函数:启动设备
 
xwer_t xwds_device_vop_stop (struct xwds_device *dev)
 设备基本操作函数:停止设备
 
xwer_t xwds_device_vop_suspend (struct xwds_device *dev)
 设备基本操作函数:暂停设备
 
xwer_t xwds_device_vop_resume (struct xwds_device *dev)
 设备基本操作函数:继续设备
 
void xwds_device_construct (struct xwds_device *dev)
 XWDS API:设备的构造函数
 
void xwds_device_destruct (struct xwds_device *dev)
 XWDS API:设备的析构函数
 
xwer_t xwds_device_probe (struct xwds *ds, struct xwds_device *dev, xwobj_gc_f gcfunc)
 XWDS API:探测设备
 
xwer_t xwds_device_remove (struct xwds_device *dev)
 XWDS API:删除设备
 
xwer_t xwds_device_start (struct xwds_device *dev)
 XWDS API:启动设备
 
xwer_t xwds_device_stop (struct xwds_device *dev)
 XWDS API:停止设备
 
xwer_t xwds_device_suspend (struct xwds_device *dev)
 XWDS API:暂停设备
 
xwer_t xwds_device_resume (struct xwds_device *dev)
 XWDS API:继续设备
 
xwer_t xwds_device_suspend_all (struct xwds *ds, bool ign_err)
 XWDS API:暂停所有设备
 
xwer_t xwds_device_resume_all (struct xwds *ds, bool ign_err)
 XWDS API:继续所有设备
 
static xwsq_t xwds_device_get_tik (struct xwds_device *dev)
 XWDS API:获取设备对象的标签
 
static xwer_t xwds_device_grab (struct xwds_device *dev)
 XWDS API:增加对象的引用计数
 
static xwer_t xwds_device_put (struct xwds_device *dev)
 XWDS API:减少对象的引用计数
 
static xwsq_t xwds_device_get_refcnt (struct xwds_device *dev)
 XWDS API:得到对象的引用计数
 

详细描述

宏定义说明

◆ __IOC

#define __IOC (   dir,
  type,
  nr,
  size 
)
值:
(((dir) << __IOC_DIRSHIFT) | \
((type) << __IOC_TYPESHIFT) | \
((nr) << __IOC_NRSHIFT) | \
((size) << __IOC_SIZESHIFT))
#define __IOC_TYPESHIFT
Definition device.h:80
#define __IOC_NRSHIFT
Definition device.h:79
#define __IOC_DIRSHIFT
Definition device.h:82
#define __IOC_SIZESHIFT
Definition device.h:81

在文件 device.h88 行定义.

◆ __IOC_CTRL

#define __IOC_CTRL   0U

在文件 device.h84 行定义.

◆ __IOC_DIRBITS

#define __IOC_DIRBITS   2

在文件 device.h72 行定义.

◆ __IOC_DIRMASK

#define __IOC_DIRMASK   ((1 << __IOC_DIRBITS) - 1)

在文件 device.h77 行定义.

◆ __IOC_DIRSHIFT

#define __IOC_DIRSHIFT   (__IOC_SIZESHIFT + __IOC_SIZEBITS)

在文件 device.h82 行定义.

◆ __IOC_NRBITS

#define __IOC_NRBITS   8

在文件 device.h69 行定义.

◆ __IOC_NRMASK

#define __IOC_NRMASK   ((1 << __IOC_NRBITS) - 1)

在文件 device.h74 行定义.

◆ __IOC_NRSHIFT

#define __IOC_NRSHIFT   0

在文件 device.h79 行定义.

◆ __IOC_READ

#define __IOC_READ   2U

在文件 device.h86 行定义.

◆ __IOC_SIZEBITS

#define __IOC_SIZEBITS   14

在文件 device.h71 行定义.

◆ __IOC_SIZEMASK

#define __IOC_SIZEMASK   ((1 << __IOC_SIZEBITS) - 1)

在文件 device.h76 行定义.

◆ __IOC_SIZESHIFT

#define __IOC_SIZESHIFT   (__IOC_TYPESHIFT + __IOC_TYPEBITS)

在文件 device.h81 行定义.

◆ __IOC_TYPEBITS

#define __IOC_TYPEBITS   8

在文件 device.h70 行定义.

◆ __IOC_TYPEMASK

#define __IOC_TYPEMASK   ((1 << __IOC_TYPEBITS) - 1)

在文件 device.h75 行定义.

◆ __IOC_TYPESHIFT

#define __IOC_TYPESHIFT   (__IOC_NRSHIFT + __IOC_NRBITS)

在文件 device.h80 行定义.

◆ __IOC_WRITE

#define __IOC_WRITE   1U

在文件 device.h85 行定义.

◆ xwds_itr_next_device

#define xwds_itr_next_device (   ds,
 
)
值:
xwlib_bclst_itr_next_entry(p, &(ds)->devhead, \
struct xwds_device, obj.node)
#define xwlib_bclst_itr_next_entry(p, head, type, member)
向前遍历(iterate over)整个链表,并将节点指针转化为包含它们的外层结构体指针。
Definition bclst.h:143
设备(所有设备的基类)
Definition device.h:127

向前迭代每个设备

在文件 device.h44 行定义.

◆ xwds_itr_next_device_safe

#define xwds_itr_next_device_safe (   ds,
  p,
 
)
值:
xwlib_bclst_itr_next_entry_safe(p, n, &(ds)->devhead, \
struct xwds_device, obj.node)
#define xwlib_bclst_itr_next_entry_safe(p, n, head, type, member)
向前遍历(iterate over)整个链表,并防止因遍历到的节点被删除而造成的错误。 同时将节点指针转化为包含它们的外层结构体指针。
Definition bclst.h:170

向前迭代每个设备(可安全删除设备)

在文件 device.h58 行定义.

◆ xwds_itr_prev_device

#define xwds_itr_prev_device (   ds,
 
)
值:
xwlib_bclst_itr_prev_entry(p, &(ds)->devhead, \
struct xwds_device, obj.node)
#define xwlib_bclst_itr_prev_entry(p, head, type, member)
向后遍历(iterate over)整个链表,并将节点指针转化为包含它们的外层结构体指针。
Definition bclst.h:155

向后迭代每个设备

在文件 device.h51 行定义.

◆ xwds_itr_prev_device_safe

#define xwds_itr_prev_device_safe (   ds,
  p,
 
)
值:
xwlib_bclst_itr_prev_entry_safe(p, n, &(ds)->devhead, \
struct xwds_device, obj.node)
#define xwlib_bclst_itr_prev_entry_safe(p, n, head, type, member)
向后遍历(iterate over)整个链表,并防止因遍历到的节点被删除而造成的错误。 同时将节点指针转化为包含它们的外层结构体指针。
Definition bclst.h:202

向后迭代每个设备(可安全删除设备)

在文件 device.h65 行定义.

函数说明

◆ xwds_device_construct()

void xwds_device_construct ( struct xwds_device dev)

XWDS API:设备的构造函数

参数
[in]dev设备对象的指针

在文件 device.c48 行定义.

49{
51 dev->vop = &xwds_dev_vop;
52 dev->ds = NULL;
53}
const struct xwds_virtual_operation xwds_dev_vop
实现面向对象“多态”的函数表
Definition device.c:35
void xwds_obj_construct(struct xwds_object *obj)
Definition object.c:30
#define NULL
Definition type.h:28
const struct xwds_virtual_operation * vop
Definition device.h:138
struct xwds * ds
Definition device.h:137
struct xwds_object obj
Definition device.h:128
函数调用图:
这是这个函数的调用关系图:

◆ xwds_device_destruct()

void xwds_device_destruct ( struct xwds_device dev)

XWDS API:设备的析构函数

参数
[in]dev设备对象的指针

在文件 device.c56 行定义.

57{
59}
void xwds_obj_destruct(struct xwds_object *obj)
Definition object.c:38
函数调用图:
这是这个函数的调用关系图:

◆ xwds_device_get_refcnt()

static xwsq_t xwds_device_get_refcnt ( struct xwds_device dev)
inlinestatic

XWDS API:得到对象的引用计数

参数
[in]dev设备对象的指针
返回
引用计数

在文件 device.h293 行定义.

294{
295 return xwds_obj_get_refcnt(&dev->obj);
296}
xwsq_t xwds_obj_get_refcnt(struct xwds_object *obj)
Definition object.c:166
函数调用图:

◆ xwds_device_get_tik()

static xwsq_t xwds_device_get_tik ( struct xwds_device dev)
inlinestatic

XWDS API:获取设备对象的标签

参数
[in]dev设备对象的指针
返回
标签

在文件 device.h254 行定义.

255{
256 return xwds_obj_get_tik(&dev->obj);
257}
xwsq_t xwds_obj_get_tik(struct xwds_object *obj)
Definition object.c:45
函数调用图:

◆ xwds_device_grab()

static xwer_t xwds_device_grab ( struct xwds_device dev)
inlinestatic

XWDS API:增加对象的引用计数

参数
[in]dev设备对象的指针
返回
错误码
返回值

ref xwds_obj_grab()

< 去除未使用变量的警告

<No error

在文件 device.h268 行定义.

269{
270 XWOS_UNUSED(dev);
271 return XWOK;
272}
#define XWOK
No error
Definition errno.h:182
#define XWOS_UNUSED(x)
Definition standard.h:66
这是这个函数的调用关系图:

◆ xwds_device_probe()

xwer_t xwds_device_probe ( struct xwds ds,
struct xwds_device dev,
xwobj_gc_f  gcfunc 
)

XWDS API:探测设备

参数
[in]ds设备栈控制块指针
[in]dev设备对象的指针
[in]gcfunc垃圾回收函数
返回
错误码
返回值
XWOK没有错误发生
-EPERM引用计数错误
注解
  • 上下文:中断、中断底半部、线程

<No error

在文件 device.c213 行定义.

215{
216 const struct xwds_virtual_operation * vop;
217 xwer_t rc;
218
219 XWDS_VALIDATE(ds, "nullptr", -EFAULT);
220 XWDS_VALIDATE(dev, "nullptr", -EFAULT);
221
222 rc = xwds_obj_probe(&dev->obj, gcfunc);
223 if (rc < 0) {
224 goto err_obj_probe;
225 }
226 /* refcnt == XWDS_OBJ_REF_SHUTDOWN */
227
228 /* probe device */
229 vop = dev->vop;
230 if (vop && vop->probe) {
231 rc = vop->probe(dev);
232 } else {
233 rc = xwds_device_vop_probe(dev);
234 }
235 if (rc < 0) {
236 goto err_dev_vop_probe;
237 }
238
239 /* add to device stack */
240 rc = xwds_obj_add(ds, &dev->obj);
241 if (rc < 0) {
242 goto err_xwds_obj_add;
243 }
244 dev->ds = ds;
245
246 return XWOK;
247
248err_xwds_obj_add:
249 if ((vop) && (vop->remove)) {
250 vop->remove(dev);
251 } else {
253 }
254err_dev_vop_probe:
256err_obj_probe:
257 return rc;
258}
xwer_t xwds_device_vop_probe(struct xwds_device *dev)
设备基本操作函数:探测设备
Definition device.c:67
xwer_t xwds_obj_add(struct xwds *ds, struct xwds_object *obj)
Definition object.c:172
xwer_t xwds_obj_probe(struct xwds_object *obj, xwobj_gc_f gcfunc)
Definition object.c:58
#define XWDS_VALIDATE(exp, errstr,...)
Definition standard.h:51
#define EFAULT
Bad address
Definition errno.h:44
signed long xwer_t
Definition type.h:554
xwer_t xwos_object_rawput(struct xwos_object *obj)
减少对象的引用计数,不触发垃圾回收函数
Definition object.c:344
struct xwos_object xwobj
Definition object.h:50
基本操作的虚函数表(类似C++的虚函数表)
Definition device.h:99
xwer_t(* remove)(struct xwds_device *)
Definition device.h:101
xwer_t(* probe)(struct xwds_device *)
Definition device.h:100
函数调用图:

◆ xwds_device_put()

static xwer_t xwds_device_put ( struct xwds_device dev)
inlinestatic

XWDS API:减少对象的引用计数

参数
[in]dev设备对象的指针
返回
错误码
返回值

ref xwds_obj_put()

< 去除未使用变量的警告

<No error

在文件 device.h281 行定义.

282{
283 XWOS_UNUSED(dev);
284 return XWOK;
285}
这是这个函数的调用关系图:

◆ xwds_device_remove()

xwer_t xwds_device_remove ( struct xwds_device dev)

XWDS API:删除设备

参数
[in]dev设备对象的指针
返回
错误码
返回值
XWOK没有错误发生
-EPERM引用计数错误
注解
  • 上下文:中断、中断底半部、线程

在文件 device.c261 行定义.

262{
263 XWDS_VALIDATE(dev, "nullptr", -EFAULT);
264
265 return xwds_obj_remove(&dev->obj);
266}
xwer_t xwds_obj_remove(struct xwds_object *obj)
Definition object.c:64
函数调用图:

◆ xwds_device_resume()

xwer_t xwds_device_resume ( struct xwds_device dev)

XWDS API:继续设备

参数
[in]dev设备对象的指针
返回
错误码
注解
  • 上下文:中断、中断底半部、线程

<No error

在文件 device.c366 行定义.

367{
368 const struct xwds_virtual_operation * vop;
369 xwer_t rc;
370
371 XWDS_VALIDATE(dev, "nullptr", -EFAULT);
372
373 rc = xwds_obj_resume(&dev->obj);
374 if (rc < 0) {
375 goto err_obj_resume;
376 }
377 /* refcnt == XWDS_OBJ_REF_RUNNING */
378
379 /* resume device */
380 vop = dev->vop;
381 if (vop && vop->resume) {
382 rc = vop->resume(dev);
383 } else {
384 rc = xwds_device_vop_resume(dev);
385 }
386 if (rc < 0) {
387 goto err_dev_vop_resume;
388 }
389 return XWOK;
390
391err_dev_vop_resume:
392 xwds_obj_suspend(&dev->obj);
393err_obj_resume:
394 return rc;
395}
xwer_t xwds_device_vop_resume(struct xwds_device *dev)
设备基本操作函数:继续设备
Definition device.c:163
xwer_t xwds_obj_resume(struct xwds_object *obj)
Definition object.c:124
xwer_t xwds_obj_suspend(struct xwds_object *obj)
Definition object.c:110
xwer_t(* resume)(struct xwds_device *)
Definition device.h:106
函数调用图:
这是这个函数的调用关系图:

◆ xwds_device_resume_all()

xwer_t xwds_device_resume_all ( struct xwds ds,
bool  ign_err 
)

XWDS API:继续所有设备

参数
[in]ds设备栈控制块指针
[in]ign_err是否忽略错误:若为假,发生错误时,函数会中止并返回
返回
错误码
注解
  • 上下文:中断、中断底半部、线程

<No error

<No error

在文件 device.c425 行定义.

426{
427 struct xwds_device * c, * n;
428 xwreg_t cpuirq;
429 xwer_t rc;
430
431 XWDS_VALIDATE(ds, "nullptr", -EFAULT);
432
433 rc = XWOK;
437 rc = xwds_device_resume(c);
439 if (rc < 0) {
440 if (ign_err) {
441 rc = XWOK;
442 } else {
443 break;
444 }
445 }
446 }
448 return rc;
449}
#define xwds_itr_next_device_safe(ds, p, n)
向前迭代每个设备(可安全删除设备)
Definition device.h:58
xwer_t xwds_device_resume(struct xwds_device *dev)
XWDS API:继续设备
Definition device.c:366
xwptr_t xwreg_t
Definition type.h:409
static void xwos_sqlk_wr_lock_cpuirqsv(struct xwos_sqlk *sql, xwreg_t *cpuirq)
XWOS API:开启写临界区,保存本地CPU的中断标志并关闭
Definition seqlock.h:580
static void xwos_sqlk_wr_unlock_cpuirqrs(struct xwos_sqlk *sql, xwreg_t cpuirq)
XWOS API:关闭写临界区,恢复本地CPU的中断标志
Definition seqlock.h:613
struct xwos_sqlk devlistlock
Definition xwds.h:39
函数调用图:
这是这个函数的调用关系图:

◆ xwds_device_start()

xwer_t xwds_device_start ( struct xwds_device dev)

XWDS API:启动设备

参数
[in]dev设备对象的指针
返回
错误码
返回值
XWOK没有错误发生
-EPERM引用计数错误
注解
  • 上下文:中断、中断底半部、线程

<No error

在文件 device.c269 行定义.

270{
271 const struct xwds_virtual_operation * vop;
272 xwer_t rc;
273
274 XWDS_VALIDATE(dev, "nullptr", -EFAULT);
275
276 rc = xwds_obj_start(&dev->obj);
277 if (rc < 0) {
278 goto err_obj_start;
279 }
280 /* refcnt == XWDS_OBJ_REF_RUNNING */
281
282 /* start device */
283 vop = dev->vop;
284 if (vop && vop->start) {
285 rc = vop->start(dev);
286 } else {
287 rc = xwds_device_vop_start(dev);
288 }
289 if (rc < 0) {
290 goto err_dev_vop_start;
291 }
292 return XWOK;
293
294err_dev_vop_start:
295 xwds_obj_stop(&dev->obj);
296err_obj_start:
297 return rc;
298}
xwer_t xwds_device_vop_start(struct xwds_device *dev)
设备基本操作函数:启动设备
Definition device.c:105
xwer_t xwds_obj_start(struct xwds_object *obj)
Definition object.c:82
xwer_t xwds_obj_stop(struct xwds_object *obj)
Definition object.c:96
xwer_t(* start)(struct xwds_device *)
Definition device.h:102
函数调用图:

◆ xwds_device_stop()

xwer_t xwds_device_stop ( struct xwds_device dev)

XWDS API:停止设备

参数
[in]dev设备对象的指针
返回
错误码
注解
  • 上下文:中断、中断底半部、线程

<No error

在文件 device.c301 行定义.

302{
303 const struct xwds_virtual_operation * vop;
304 xwer_t rc;
305
306 XWDS_VALIDATE(dev, "nullptr", -EFAULT);
307
308 rc = xwds_obj_stop(&dev->obj);
309 if (rc < 0) {
310 goto err_obj_stop;
311 }
312 /* refcnt == XWDS_OBJ_REF_SHUTDOWN */
313
314 /* stop device */
315 vop = dev->vop;
316 if (vop && vop->stop) {
317 rc = vop->stop(dev);
318 } else {
319 rc = xwds_device_vop_stop(dev);
320 }
321 if (rc < 0) {
322 goto err_dev_vop_stop;
323 }
324 return XWOK;
325
326err_dev_vop_stop:
327 xwds_obj_start(&dev->obj);
328err_obj_stop:
329 return rc;
330}
xwer_t xwds_device_vop_stop(struct xwds_device *dev)
设备基本操作函数:停止设备
Definition device.c:124
xwer_t(* stop)(struct xwds_device *)
Definition device.h:103
函数调用图:

◆ xwds_device_suspend()

xwer_t xwds_device_suspend ( struct xwds_device dev)

XWDS API:暂停设备

参数
[in]dev设备对象的指针
返回
错误码
注解
  • 上下文:中断、中断底半部、线程

<No error

在文件 device.c334 行定义.

335{
336 const struct xwds_virtual_operation * vop;
337 xwer_t rc;
338
339 XWDS_VALIDATE(dev, "nullptr", -EFAULT);
340
341 rc = xwds_obj_suspend(&dev->obj);
342 if (rc < 0) {
343 goto err_obj_suspend;
344 }
345 /* refcnt == XWDS_OBJ_REF_SUSPEND */
346
347 /* suspend device */
348 vop = dev->vop;
349 if (vop && vop->suspend) {
350 rc = vop->suspend(dev);
351 } else {
352 rc = xwds_device_vop_suspend(dev);
353 }
354 if (rc < 0) {
355 goto err_dev_vop_suspend;
356 }
357 return XWOK;
358
359err_dev_vop_suspend:
360 xwds_obj_resume(&dev->obj);
361err_obj_suspend:
362 return rc;
363}
xwer_t xwds_device_vop_suspend(struct xwds_device *dev)
设备基本操作函数:暂停设备
Definition device.c:144
xwer_t(* suspend)(struct xwds_device *)
Definition device.h:105
函数调用图:
这是这个函数的调用关系图:

◆ xwds_device_suspend_all()

xwer_t xwds_device_suspend_all ( struct xwds ds,
bool  ign_err 
)

XWDS API:暂停所有设备

参数
[in]ds设备栈控制块指针
[in]ign_err是否忽略错误:若为假,发生错误时,函数会中止并返回
返回
错误码
注解
  • 上下文:中断、中断底半部、线程

<No error

<No error

在文件 device.c398 行定义.

399{
400 struct xwds_device * c, * n;
401 xwreg_t cpuirq;
402 xwer_t rc;
403
404 XWDS_VALIDATE(ds, "nullptr", -EFAULT);
405
406 rc = XWOK;
410 rc = xwds_device_suspend(c);
412 if (rc < 0) {
413 if (ign_err) {
414 rc = XWOK;
415 } else {
416 break;
417 }
418 }
419 }
421 return rc;
422}
xwer_t xwds_device_suspend(struct xwds_device *dev)
XWDS API:暂停设备
Definition device.c:334
#define xwds_itr_prev_device_safe(ds, p, n)
向后迭代每个设备(可安全删除设备)
Definition device.h:65
函数调用图:
这是这个函数的调用关系图:

◆ xwds_device_vop_probe()

xwer_t xwds_device_vop_probe ( struct xwds_device dev)

设备基本操作函数:探测设备

参数
[in]dev设备对象的指针

<No error

在文件 device.c67 行定义.

68{
69 const struct xwds_driver * drv;
70 xwer_t rc;
71
72 drv = dev->drv;
73 if ((drv) && (drv->probe)) {
74 rc = drv->probe(dev);
75 } else {
76 rc = XWOK;
77 }
78 return rc;
79}
const struct xwds_driver * drv
Definition device.h:133
基本驱动函数表(所有设备驱动的基类)
Definition device.h:113
xwer_t(* probe)(struct xwds_device *)
Definition device.h:116
这是这个函数的调用关系图:

◆ xwds_device_vop_remove()

xwer_t xwds_device_vop_remove ( struct xwds_device dev)

设备基本操作函数:删除设备

参数
[in]dev设备对象的指针

<No error

在文件 device.c86 行定义.

87{
88 const struct xwds_driver * drv;
89 xwer_t rc;
90
91 drv = dev->drv;
92 if ((drv) && (drv->remove)) {
93 rc = drv->remove(dev);
94 } else {
95 rc = XWOK;
96 }
97 return rc;
98}
xwer_t(* remove)(struct xwds_device *)
Definition device.h:117
这是这个函数的调用关系图:

◆ xwds_device_vop_resume()

xwer_t xwds_device_vop_resume ( struct xwds_device dev)

设备基本操作函数:继续设备

参数
[in]dev设备对象的指针

<No error

在文件 device.c163 行定义.

164{
165 const struct xwds_driver * drv;
166 xwer_t rc;
167
168 drv = dev->drv;
169 if ((drv) && (drv->resume)) {
170 rc = drv->resume(dev);
171 } else {
172 rc = XWOK;
173 }
174 return rc;
175}
xwer_t(* resume)(struct xwds_device *)
Definition device.h:121
这是这个函数的调用关系图:

◆ xwds_device_vop_start()

xwer_t xwds_device_vop_start ( struct xwds_device dev)

设备基本操作函数:启动设备

参数
[in]dev设备对象的指针

<No error

在文件 device.c105 行定义.

106{
107 const struct xwds_driver * drv;
108 xwer_t rc;
109
110 drv = dev->drv;
111 if ((drv) && (drv->start)) {
112 rc = drv->start(dev);
113 } else {
114 rc = XWOK;
115 }
116 return rc;
117}
xwer_t(* start)(struct xwds_device *)
Definition device.h:118
这是这个函数的调用关系图:

◆ xwds_device_vop_stop()

xwer_t xwds_device_vop_stop ( struct xwds_device dev)

设备基本操作函数:停止设备

参数
[in]dev设备对象的指针

<No error

在文件 device.c124 行定义.

125{
126 const struct xwds_driver * drv;
127 xwer_t rc;
128
129 drv = dev->drv;
130 if ((drv) && (drv->stop)) {
131 rc = drv->stop(dev);
132 } else {
133 rc = XWOK;
134 }
135 return rc;
136}
xwer_t(* stop)(struct xwds_device *)
Definition device.h:119
这是这个函数的调用关系图:

◆ xwds_device_vop_suspend()

xwer_t xwds_device_vop_suspend ( struct xwds_device dev)

设备基本操作函数:暂停设备

参数
[in]dev设备对象的指针

<No error

在文件 device.c144 行定义.

145{
146 const struct xwds_driver * drv;
147 xwer_t rc;
148
149 drv = dev->drv;
150 if ((drv) && (drv->suspend)) {
151 rc = drv->suspend(dev);
152 } else {
153 rc = XWOK;
154 }
155 return rc;
156}
xwer_t(* suspend)(struct xwds_device *)
Definition device.h:120
这是这个函数的调用关系图: