Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/actions/spelling/expect.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
ANamespace
Aos
abstime
atomically
atomics
aosmpdu
APacket
apid
Expand Down Expand Up @@ -45,11 +47,12 @@
Bies
binaryfile
BINDIR
Bitfield

Check warning on line 50 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`Bitfield` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
bitfield
bitmaps
bitshifts
bitwidth
bitmasks
bocchino
boolt
BSB
Expand All @@ -74,8 +77,8 @@
callgraph
Campuzano
carg
CBE

Check warning on line 80 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`CBE` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
CBEs

Check warning on line 81 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`CBEs` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
CBF
CBLOCK
CCACHE
Expand Down Expand Up @@ -120,7 +123,7 @@
comlogger
COMLOGGERTEE
commandability
Commandability

Check warning on line 126 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`Commandability` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
COMMANDDISPATCHERIMPL
COMMANDDISPATCHERIMPLCFG
COMPACKET
Expand All @@ -130,8 +133,9 @@
COMSPLITTER
COMSTUB
constexpr
COUNTINGSEMAPHORE

Check warning on line 136 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`COUNTINGSEMAPHORE` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
countingsemaphore
CMPXCHG
cookiecutter
cooldown
coravy
Expand Down Expand Up @@ -173,6 +177,7 @@
deframed
deframer
deframing
dequeue
Deinitialization
deployables
DEPRECATEDLIST
Expand Down Expand Up @@ -214,6 +219,7 @@
dspal
DSSC
Dstate
DWCAS
DVI
DWN
eabi
Expand All @@ -225,12 +231,14 @@
eip
Elts
emptydir
embOS
endcond
endfunction
endmacro
endraw
enduml
enqueue
EPP

Check warning on line 241 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`EPP` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
epp
ERRORCHECK
errornum
Expand Down Expand Up @@ -414,6 +422,9 @@
LASTLOG
LBLOCK
LCHILD
LDARX
LDXR
LDREX
leisher
lestarch
lflag
Expand Down Expand Up @@ -469,12 +480,14 @@
MOVEFILE
mpdu
Mpu
Msb

Check warning on line 483 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`Msb` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
MPMC
msc
mscfile
mseconds
mstarch
mstat
msgQ
MState
multiarch
multitool
Expand All @@ -487,6 +500,7 @@
nbits
ncsl
newtio
Neutrino
nmsgs
NOBLOCK
NODELABEL
Expand Down Expand Up @@ -555,8 +569,8 @@
Peet
penv
PERLMOD
PFR

Check warning on line 572 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`PFR` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
PFRs

Check warning on line 573 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`PFRs` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
PHASERMEMBEROUT
PINGENTRIES
PINGIN
Expand Down Expand Up @@ -697,6 +711,7 @@
spdx
spi
spidev
spinlocks
spsc
sqa
srandom
Expand All @@ -708,13 +723,16 @@
stdbool
stddef
stdint
STDCX
stest
Stl
stmtidx
STREQ
STREQUAL
STRINGUTILS
STRNE
STREX
STXR
strnlen
subgrouping
subhist
Expand Down Expand Up @@ -787,7 +805,7 @@
trinomials
trywait
tts
Tumbar

Check warning on line 808 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`Tumbar` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
tumbar
typedef
typedef'ed
Expand Down Expand Up @@ -839,3 +857,29 @@
XXYY
ziext
zimri
Zephyr
acq
clz
deq
desync
Dmitry
Duckett
enq
enqueuers
hwm
levelname
memalign
msb
PMQ
pri
PRIORITYMEMQUEUE
QCreate
QLib
QNX
QReceive
QSend
RTEMS
RTOSs
SSOT
Vyukov
wakeups
38 changes: 38 additions & 0 deletions Os/Generic/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,44 @@
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Types")
add_custom_target("${FPRIME_CURRENT_MODULE}")

#### PriorityMemQueue (AtomicQueue-based) ####
register_fprime_module(
Os_Generic_PriorityMemQueue_Implementation
SOURCES
"${CMAKE_CURRENT_LIST_DIR}/PriorityMemQueue.cpp"
HEADERS
"${CMAKE_CURRENT_LIST_DIR}/PriorityMemQueue.hpp"
DEPENDS
Fw_Types
Os_Generic_Types
Os_CountingSemaphore
)
register_fprime_implementation(
Os_Generic_PriorityMemQueue
SOURCES
"${CMAKE_CURRENT_LIST_DIR}/DefaultPriorityMemQueue.cpp"
IMPLEMENTS
Os_Queue
DEPENDS
Fw_Types
Os_Generic_PriorityMemQueue_Implementation
)

register_fprime_ut(
PriorityMemQueue_UnitTest
SOURCES
"${CMAKE_CURRENT_LIST_DIR}/test/ut/PriorityMemQueueTests.cpp"
"${CMAKE_CURRENT_LIST_DIR}/test/ut/PriorityMemQueueInputValidationTests.cpp"
DEPENDS
Fw_Types
Fw_Time
Os
STest
Os_Generic_PriorityMemQueue_Implementation
CHOOSES_IMPLEMENTATIONS
Os_Generic_PriorityMemQueue
)

#### Os/Generic/Queue Section ####
register_fprime_module(
Os_Generic_PriorityQueue_Implementation
Expand Down
20 changes: 20 additions & 0 deletions Os/Generic/DefaultPriorityMemQueue.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// ======================================================================
// \title Os/Generic/DefaultPriorityMemQueue.cpp
// \author B. Duckett
// \brief cpp file sets default Os::Queue to generic priority queue implementation via linker
//
// \copyright
// Copyright 2026, by the California Institute of Technology.
// ALL RIGHTS RESERVED. United States Government Sponsorship
// acknowledged.
// ======================================================================
#include "Os/Delegate.hpp"
#include "Os/Queue.hpp"
#include "PriorityMemQueue.hpp"

namespace Os {
QueueInterface* QueueInterface::getDelegate(QueueHandleStorage& aligned_new_memory) {
return Os::Delegate::makeDelegate<QueueInterface, Os::Generic::PriorityMemQueue, QueueHandleStorage>(
aligned_new_memory);
}
} // namespace Os
Loading
Loading