37#if defined(XWCDCFG_ds_PM) && (1 == XWCDCFG_ds_PM)
50#if defined(XWCDCFG_ds_PM) && (1 == XWCDCFG_ds_PM)
101 goto err_dev_vop_probe;
122 goto err_dev_vop_remove;
157#if defined(XWCDCFG_ds_PM) && (1 == XWCDCFG_ds_PM)
204 goto err_linc_txlock;
207 if ((drv) && (drv->
msttx)) {
208 rc = drv->
msttx(linc,
id, msg, to);
244 goto err_linc_txlock;
247 if ((drv) && (drv->
slvtx)) {
248 rc = drv->
slvtx(linc, msg, to);
283 if ((drv) && (drv->
rx)) {
284 rc = drv->
rx(linc, msgbuf, to);
317 for (i = 0; i < itemnum; i++) {
319 *ret = msgitbl[i].
size;
static xwer_t xwds_device_grab(struct xwds_device *dev)
XWDS API:增加对象的引用计数
xwer_t xwds_device_vop_start(struct xwds_device *dev)
设备基本操作函数:启动设备
void xwds_device_construct(struct xwds_device *dev)
XWDS API:设备的构造函数
void xwds_device_destruct(struct xwds_device *dev)
XWDS API:设备的析构函数
static xwer_t xwds_device_put(struct xwds_device *dev)
XWDS API:减少对象的引用计数
xwer_t xwds_device_vop_stop(struct xwds_device *dev)
设备基本操作函数:停止设备
xwer_t xwds_device_vop_remove(struct xwds_device *dev)
设备基本操作函数:删除设备
xwer_t xwds_device_vop_resume(struct xwds_device *dev)
设备基本操作函数:继续设备
xwer_t xwds_device_vop_probe(struct xwds_device *dev)
设备基本操作函数:探测设备
xwer_t xwds_device_vop_suspend(struct xwds_device *dev)
设备基本操作函数:暂停设备
void xwds_linc_destruct(struct xwds_linc *linc)
XWDS API:LIN控制器对象的析构函数
xwer_t xwds_linc_get_msg_size(struct xwds_linc *linc, xwu8_t protected_id, xwu8_t *ret)
XWDS API:通过LIN保护ID查询消息大小
void xwds_linc_construct(struct xwds_linc *linc)
XWDS API:LIN控制器的构造函数
xwer_t xwds_linc_grab(struct xwds_linc *linc)
XWDS API:增加对象的引用计数
xwer_t xwds_linc_rx(struct xwds_linc *linc, struct xwds_lin_msg *msgbuf, xwtm_t to)
XWDS API:接收一条LIN消息
xwer_t xwds_linc_slvtx(struct xwds_linc *linc, struct xwds_lin_msg *msg, xwtm_t to)
XWDS API:从机节点发送一条LIN消息
#define XWDS_LIN_DEFAULT_DATA_SIZE
xwer_t xwds_linc_put(struct xwds_linc *linc)
XWDS API:减少对象的引用计数
xwer_t xwds_linc_msttx(struct xwds_linc *linc, xwu8_t id, struct xwds_lin_msg *msg, xwtm_t to)
XWDS API:主机节点发送一条LIN消息
#define xwds_cast(type, dev)
#define XWDS_VALIDATE(exp, errstr,...)
#define EFAULT
Bad address
#define ENOSYS
Function not implemented
#define ENODEV
No such device
static __xwcc_inline bool __xwcc_must_check is_err_or_null(const void *ptr)
测试指针的值是否为空或错误码(指针是否为无效指针)
xws64_t xwtm_t
XWOS系统时间 (有符号)
static xwer_t xwos_mtx_init(struct xwos_mtx *mtx, xwpr_t sprio)
XWOS API:静态方式初始化互斥锁
static xwer_t xwos_mtx_lock_to(struct xwos_mtx *mtx, xwtm_t to)
XWOS API:限时等待上锁互斥锁
static xwer_t xwos_mtx_fini(struct xwos_mtx *mtx)
XWOS API:销毁静态方式初始化的互斥锁
static xwer_t xwos_mtx_unlock(struct xwos_mtx *mtx)
XWOS API:解锁互斥锁
#define XWOS_SKD_PRIORITY_RT_MIN
XWOS API:最小实时优先级
static xwer_t xwds_linc_vop_resume(struct xwds_linc *linc)
XWDS VOP:继续LIN控制器
const struct xwds_virtual_operation xwds_linc_vop
static xwer_t xwds_linc_vop_remove(struct xwds_linc *linc)
XWDS VOP:移除LIN控制器
static xwer_t xwds_linc_vop_start(struct xwds_linc *linc)
XWDS VOP:启动LIN控制器
static xwer_t xwds_linc_vop_suspend(struct xwds_linc *linc)
XWDS VOP:暂停LIN控制器
static xwer_t xwds_linc_vop_stop(struct xwds_linc *linc)
XWDS VOP:停止LIN控制器
static xwer_t xwds_linc_vop_probe(struct xwds_linc *linc)
XWDS VOP:探测LIN控制器
const struct xwds_driver * drv
const struct xwds_virtual_operation * vop
xwer_t(* msttx)(struct xwds_linc *, xwu8_t, struct xwds_lin_msg *, xwtm_t)
xwer_t(* rx)(struct xwds_linc *, struct xwds_lin_msg *, xwtm_t)
xwer_t(* slvtx)(struct xwds_linc *, struct xwds_lin_msg *, xwtm_t)
xwer_t(* get_msg_size)(struct xwds_linc *, xwu8_t, xwu8_t *)
const struct xwds_lin_msg_info * msgitable
xwer_t(* stop)(struct xwds_device *)
xwer_t(* remove)(struct xwds_device *)
xwer_t(* probe)(struct xwds_device *)
xwer_t(* resume)(struct xwds_device *)