sys/transceiver: implement transceiver_unregister
This commit is contained in:
parent
c264338e31
commit
d034cfac29
@ -228,5 +228,15 @@ int transceiver_start(void);
|
|||||||
*/
|
*/
|
||||||
uint8_t transceiver_register(transceiver_type_t transceivers, int pid);
|
uint8_t transceiver_register(transceiver_type_t transceivers, int pid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief unregister a thread for events from certain transceivers
|
||||||
|
*
|
||||||
|
* @param transceivers The transceiver types to register for
|
||||||
|
* @param pid The pid of the thread to register
|
||||||
|
*
|
||||||
|
* @return 1 on success, 0 otherwise
|
||||||
|
*/
|
||||||
|
uint8_t transceiver_unregister(transceiver_type_t transceivers, int pid);
|
||||||
|
|
||||||
#endif /* TRANSCEIVER_H */
|
#endif /* TRANSCEIVER_H */
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|||||||
@ -251,6 +251,25 @@ uint8_t transceiver_register(transceiver_type_t t, int pid)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Unregister an upper layer thread */
|
||||||
|
uint8_t transceiver_unregister(transceiver_type_t t, int pid)
|
||||||
|
{
|
||||||
|
uint8_t i;
|
||||||
|
|
||||||
|
/* find pid in unregistered threads or first unused space */
|
||||||
|
for (i = 0; ((i < TRANSCEIVER_MAX_REGISTERED) &&
|
||||||
|
(reg[i].pid != pid) &&
|
||||||
|
(reg[i].transceivers != TRANSCEIVER_NONE)); i++);
|
||||||
|
|
||||||
|
if (i >= TRANSCEIVER_MAX_REGISTERED) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (reg[i].pid == pid) {
|
||||||
|
reg[i].transceivers ^= t;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------------*/
|
||||||
/* Internal functions */
|
/* Internal functions */
|
||||||
/*------------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------------*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user