os: refactor MessageQueue to use new MessageQueueHelper template

This commit is contained in:
Michael Scire 2021-09-29 12:24:18 -07:00
parent c7634c66c4
commit cf5f431058
4 changed files with 158 additions and 122 deletions

View file

@ -46,17 +46,17 @@ namespace ams::os {
return TimedSendMessageQueue(std::addressof(this->mq), data, timeout);
}
/* Sending (LIFO functionality) */
void SendNext(uintptr_t data) {
return SendNextMessageQueue(std::addressof(this->mq), data);
/* Jamming (LIFO functionality) */
void Jam(uintptr_t data) {
return JamMessageQueue(std::addressof(this->mq), data);
}
bool TrySendNext(uintptr_t data) {
return TrySendNextMessageQueue(std::addressof(this->mq), data);
bool TryJam(uintptr_t data) {
return TryJamMessageQueue(std::addressof(this->mq), data);
}
bool TimedSendNext(uintptr_t data, TimeSpan timeout) {
return TimedSendNextMessageQueue(std::addressof(this->mq), data, timeout);
bool TimedJam(uintptr_t data, TimeSpan timeout) {
return TimedJamMessageQueue(std::addressof(this->mq), data, timeout);
}
/* Receive functionality */

View file

@ -31,10 +31,10 @@ namespace ams::os {
bool TrySendMessageQueue(MessageQueueType *mq, uintptr_t data);
bool TimedSendMessageQueue(MessageQueueType *mq, uintptr_t data, TimeSpan timeout);
/* Sending (LIFO functionality) */
void SendNextMessageQueue(MessageQueueType *mq, uintptr_t data);
bool TrySendNextMessageQueue(MessageQueueType *mq, uintptr_t data);
bool TimedSendNextMessageQueue(MessageQueueType *mq, uintptr_t data, TimeSpan timeout);
/* Jamming (LIFO functionality) */
void JamMessageQueue(MessageQueueType *mq, uintptr_t data);
bool TryJamMessageQueue(MessageQueueType *mq, uintptr_t data);
bool TimedJamMessageQueue(MessageQueueType *mq, uintptr_t data, TimeSpan timeout);
/* Receive functionality */
void ReceiveMessageQueue(uintptr_t *out, MessageQueueType *mq);