git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@16337 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
5afc56fe88
commit
3074a8b2c4
|
@ -40,6 +40,7 @@
|
|||
#define SB_FASTC_GET_FREQUENCY 2
|
||||
#define SB_FASTC_VHAL_VGPIO 96
|
||||
#define SB_FASTC_VHAL_VUART 97
|
||||
#define SB_FASTC_VRQ_GCSTS 119
|
||||
#define SB_FASTC_VRQ_SETWT 120
|
||||
#define SB_FASTC_VRQ_CLRWT 121
|
||||
#define SB_FASTC_VRQ_SETEN 122
|
||||
|
|
|
@ -350,6 +350,10 @@ struct sb_class {
|
|||
* @brief Reference to sh SB thread while waiting for VRQs.
|
||||
*/
|
||||
thread_reference_t vrq_trp;
|
||||
/**
|
||||
* @brief Status flags associated to each VRQ.
|
||||
*/
|
||||
uint32_t vrq_flags[32];
|
||||
#endif
|
||||
#if (SB_CFG_ENABLE_VFS == TRUE) || defined(__DOXYGEN__)
|
||||
/**
|
||||
|
|
|
@ -349,6 +349,15 @@ void sb_sysc_vrq_wait(struct port_extctx *ectxp) {
|
|||
chSysUnlock();
|
||||
}
|
||||
|
||||
void sb_fastc_vrq_gcsts(struct port_extctx *ectxp) {
|
||||
sb_class_t *sbp = (sb_class_t *)chThdGetSelfX()->ctx.syscall.p;
|
||||
uint32_t sts;
|
||||
|
||||
sts = sbp->vrq_flags[ectxp->r0] & ectxp->r1;
|
||||
sbp->vrq_flags[ectxp->r0] &= ~sts;
|
||||
ectxp->r0 = sts;
|
||||
}
|
||||
|
||||
void sb_fastc_vrq_setwt(struct port_extctx *ectxp) {
|
||||
sb_class_t *sbp = (sb_class_t *)chThdGetSelfX()->ctx.syscall.p;
|
||||
uint32_t m;
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
* @{
|
||||
*/
|
||||
#if (SB_CFG_ENABLE_VRQ == TRUE) || defined(__DOXYGEN__)
|
||||
#define SB_SVC119_HANDLER sb_fastc_vrq_gcsts
|
||||
#define SB_SVC120_HANDLER sb_fastc_vrq_setwt
|
||||
#define SB_SVC121_HANDLER sb_fastc_vrq_clrwt
|
||||
#define SB_SVC122_HANDLER sb_fastc_vrq_seten
|
||||
|
@ -88,6 +89,7 @@ extern "C" {
|
|||
void sbVRQTriggerI(sb_class_t *sbp, sb_vrqnum_t nvrq);
|
||||
void sb_sysc_vrq_set_alarm(struct port_extctx *ectxp);
|
||||
void sb_sysc_vrq_reset_alarm(struct port_extctx *ectxp);
|
||||
void sb_fastc_vrq_gcsts(struct port_extctx *ectxp);
|
||||
void sb_sysc_vrq_wait(struct port_extctx *ectxp);
|
||||
void sb_fastc_vrq_setwt(struct port_extctx *ectxp);
|
||||
void sb_fastc_vrq_clrwt(struct port_extctx *ectxp);
|
||||
|
|
Loading…
Reference in New Issue