Added I-class variants to some SIO functions.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15720 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
533213a41d
commit
44417d95c3
|
@ -618,7 +618,9 @@ extern "C" {
|
|||
void sioObjectInit(SIODriver *siop);
|
||||
msg_t sioStart(SIODriver *siop, const SIOConfig *config);
|
||||
void sioStop(SIODriver *siop);
|
||||
void sioStartOperationI(SIODriver *siop, const SIOOperation *operation);
|
||||
void sioStartOperation(SIODriver *siop, const SIOOperation *operation);
|
||||
void sioStopOperationI(SIODriver *siop);
|
||||
void sioStopOperation(SIODriver *siop);
|
||||
void sioWriteEnableFlags(SIODriver *siop, sioflags_t flags);
|
||||
void sioSetEnableFlags(SIODriver *siop, sioflags_t flags);
|
||||
|
|
|
@ -156,7 +156,6 @@ msg_t bsdStart(BufferedSIODriver *bsdp, const BufferedSIOConfig *config) {
|
|||
|
||||
osalDbgCheck(bsdp != NULL);
|
||||
|
||||
osalSysLock();
|
||||
osalDbgAssert((bsdp->state == BS_STOP) || (bsdp->state == BS_READY),
|
||||
"invalid state");
|
||||
|
||||
|
@ -167,15 +166,16 @@ msg_t bsdStart(BufferedSIODriver *bsdp, const BufferedSIOConfig *config) {
|
|||
|
||||
msg = sioStart(bsdp->siop, config);
|
||||
if (msg == HAL_RET_SUCCESS) {
|
||||
sioStartOperation(bsdp->siop, &bs_default_operation);
|
||||
osalSysLock();
|
||||
sioStartOperationI(bsdp->siop, &bs_default_operation);
|
||||
sioWriteEnableFlagsI(bsdp->siop, SIO_FL_ALL);
|
||||
bsdp->state = BS_READY;
|
||||
osalSysUnlock();
|
||||
}
|
||||
else {
|
||||
bsdp->state = BS_STOP;
|
||||
}
|
||||
|
||||
osalSysUnlock();
|
||||
|
||||
return msg;
|
||||
}
|
||||
|
||||
|
@ -192,8 +192,6 @@ void bsdStop(BufferedSIODriver *bsdp) {
|
|||
|
||||
osalDbgCheck(bsdp != NULL);
|
||||
|
||||
osalSysLock();
|
||||
|
||||
osalDbgAssert((bsdp->state == BS_STOP) || (bsdp->state == BS_READY),
|
||||
"invalid state");
|
||||
|
||||
|
@ -205,10 +203,10 @@ void bsdStop(BufferedSIODriver *bsdp) {
|
|||
|
||||
bsdp->state = BS_STOP;
|
||||
|
||||
oqResetI(&bsdp->oqueue);
|
||||
osalSysLock();
|
||||
oqResetI(&bsdp->oqueue); /* TODO should go in the upper class.*/
|
||||
iqResetI(&bsdp->iqueue);
|
||||
osalOsRescheduleS();
|
||||
|
||||
osalSysUnlock();
|
||||
}
|
||||
|
||||
|
|
|
@ -304,13 +304,12 @@ void sioStop(SIODriver *siop) {
|
|||
* be @p NULL if callbacks are not required
|
||||
* encoding the operation to be performed
|
||||
*
|
||||
* @api
|
||||
* @iclass
|
||||
*/
|
||||
void sioStartOperation(SIODriver *siop, const SIOOperation *operation) {
|
||||
void sioStartOperationI(SIODriver *siop, const SIOOperation *operation) {
|
||||
|
||||
osalDbgCheck(siop != NULL);
|
||||
|
||||
osalSysLock();
|
||||
osalDbgCheckClassI();
|
||||
|
||||
osalDbgAssert((siop->state == SIO_READY) ||
|
||||
(siop->state == SIO_ACTIVE), "invalid state");
|
||||
|
@ -335,7 +334,22 @@ void sioStartOperation(SIODriver *siop, const SIOOperation *operation) {
|
|||
SIO_FL_ALL_DATA | SIO_FL_ALL_ERRORS | SIO_FL_ALL_PROTOCOL);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Starts a SIO operation.
|
||||
*
|
||||
* @param[in] siop pointer to an @p SIODriver structure
|
||||
* @param[in] operation pointer to an @p SIOOperation structure, can
|
||||
* be @p NULL if callbacks are not required
|
||||
* encoding the operation to be performed
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
void sioStartOperation(SIODriver *siop, const SIOOperation *operation) {
|
||||
|
||||
osalSysLock();
|
||||
sioStartOperationI(siop, operation);
|
||||
osalSysUnlock();
|
||||
}
|
||||
|
||||
|
@ -344,13 +358,12 @@ void sioStartOperation(SIODriver *siop, const SIOOperation *operation) {
|
|||
*
|
||||
* @param[in] siop pointer to an @p SIODriver structure
|
||||
*
|
||||
* @api
|
||||
* @iclass
|
||||
*/
|
||||
void sioStopOperation(SIODriver *siop) {
|
||||
void sioStopOperationI(SIODriver *siop) {
|
||||
|
||||
osalDbgCheck(siop != NULL);
|
||||
|
||||
osalSysLock();
|
||||
osalDbgCheckClassI();
|
||||
|
||||
osalDbgAssert((siop->state == SIO_READY) ||
|
||||
(siop->state == SIO_ACTIVE), "invalid state");
|
||||
|
@ -369,7 +382,21 @@ void sioStopOperation(SIODriver *siop) {
|
|||
siop->operation = NULL;
|
||||
siop->state = SIO_READY;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Stops an ongoing SIO operation, if any.
|
||||
*
|
||||
* @param[in] siop pointer to an @p SIODriver structure
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
void sioStopOperation(SIODriver *siop) {
|
||||
|
||||
osalDbgCheck(siop != NULL);
|
||||
|
||||
osalSysLock();
|
||||
sioStopOperationI(siop);
|
||||
osalSysUnlock();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue