41#if defined(XWCDCFG_ds_SOC_EIRQ_ROISRT) && (1 == XWCDCFG_ds_SOC_EIRQ_ROISRT)
59 rc = drv->
eirq_req(soc, port, pinmask, eiid, eiflag);
64 goto err_drv_eirq_req;
69#if !defined(XWCDCFG_ds_SOC_EIRQ_ROISRT) || (1 != XWCDCFG_ds_SOC_EIRQ_ROISRT)
94 rc = drv->
eirq_rls(soc, port, pinmask, eiid);
101#if !defined(XWCDCFG_ds_SOC_EIRQ_ROISRT) || (1 != XWCDCFG_ds_SOC_EIRQ_ROISRT)
xwer_t xwds_eirq_req(struct xwds_soc *soc, xwid_t port, xwsq_t pinmask, xwid_t eiid, xwsq_t eiflag, xwds_eirq_f isr, xwds_eirq_arg_t arg)
XWDS API:申请外部中断
xwer_t xwds_eirq_rls(struct xwds_soc *soc, xwid_t port, xwsq_t pinmask, xwid_t eiid)
XWDS API:释放外部中断
void(* xwds_eirq_f)(struct xwds_soc *, xwid_t, xwds_eirq_arg_t)
外部中断函数
xwer_t xwds_soc_grab(struct xwds_soc *soc)
XWDS API:增加对象的引用计数
xwer_t xwds_soc_put(struct xwds_soc *soc)
XWDS API:减少对象的引用计数
void * xwds_eirq_arg_t
外部中断函数参数
#define xwds_cast(type, dev)
#define XWDS_VALIDATE(exp, errstr,...)
#define EFAULT
Bad address
#define ENOSYS
Function not implemented
#define EBUSY
Device or resource busy
#define ERANGE
Result too large
#define EPERM
Operation not permitted
static __xwcc_inline void *__xwcc_must_check err_ptr(xwer_t err)
将错误码转换为指针
const struct xwds_driver * drv
xwer_t(* eirq_rls)(struct xwds_soc *, xwid_t, xwsq_t, xwid_t)
xwer_t(* eirq_req)(struct xwds_soc *, xwid_t, xwsq_t, xwid_t, xwsq_t)
xwds_eirq_arg_t * isrargs
struct xwds_soc::@24 eirq