Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
e2636bd
Added Os::CountingSemaphore osal module (#5173)
bevinduckett May 27, 2026
e7f0338
Added CountingSemaphore to SDD
bevinduckett May 27, 2026
5cdb769
Added new words for spell check of semaphore
bevinduckett May 27, 2026
8fd2214
Initial implementation of PriorityMemQueue using a lockless queue
bevinduckett May 27, 2026
8a4e9b5
Added flagged words to spelling & improved UTs
bevinduckett May 27, 2026
4c55a7e
Merge branch 'devel' into mem-priority-queue
bevinduckett May 27, 2026
b15daaa
Merge branch 'devel' into mem-priority-queue
thomas-bc Jun 4, 2026
0a3451d
Merge upstream devel into mem-priority-queue; resolve CountingSemapho…
thomas-bc Jun 5, 2026
07e4d39
Merge remote-tracking branch 'JPL-Devin/mem-priority-queue' into mem-…
thomas-bc Jun 5, 2026
5363467
Resolve/revert devel merge quirks
thomas-bc Jun 9, 2026
50486ca
Minimal review changes and formatting
thomas-bc Jun 9, 2026
73d5456
Fixed UT failure & PR comments for PriorityMemQueue
bevinduckett Jun 16, 2026
5603108
Merge branch 'devel' into mem-priority-queue
bevinduckett Jun 16, 2026
9ef497c
Cleaned up comments for PriorityMemQueue
bevinduckett Jun 16, 2026
25aa3c6
Updated PriorityMemQueue priority range & improved memory efficiency
bevinduckett Jun 16, 2026
cb51d28
Added explicit to PriorityMemQueue constructors
bevinduckett Jun 16, 2026
3b75253
Refactored AtomicQueue & PriorityMemQueue UTs to reduce LOC
bevinduckett Jun 16, 2026
20c3744
Fixed formatting & improved multi-threaded testing for PriorityMemQue…
bevinduckett Jun 17, 2026
39f5b75
Fixed CI failures for PR-5205
bevinduckett Jun 17, 2026
92f3862
Merge branch 'devel' into mem-priority-queue
bevinduckett Jun 17, 2026
f7bdbea
Fix UT warning and formatting
thomas-bc Jun 18, 2026
8e04e2f
Fix CHOOSES_IMPLEMENTATIONS
thomas-bc Jun 18, 2026
0758f28
remove unecessary CHOOSES_IMPLEMENTATION
thomas-bc Jun 18, 2026
2aba988
Use resetConfig in testing to prevent use-after-free
thomas-bc Jun 18, 2026
f02af8b
Merge branch 'devel' into mem-priority-queue
thomas-bc Jun 24, 2026
4ca1cda
fix use-after-free for coverage CI
thomas-bc Jun 27, 2026
4836bbf
Merge branch 'devel' into mem-priority-queue
bevinduckett Jul 7, 2026
f62ebe8
Update EnableDisableRaceCondition in PriorityMemQueue UT
bevinduckett Jul 7, 2026
ad729e1
Apply suggestions from code review
bevinduckett Jul 7, 2026
6b79666
Fixes for PR comments
bevinduckett Jul 7, 2026
36f55f4
fix formatting
thomas-bc Jul 7, 2026
da3aede
More PR fixes
bevinduckett Jul 7, 2026
019b450
Fix formatting
thomas-bc Jul 7, 2026
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
23 changes: 23 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,13 @@
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
bitmask
bitmasks

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

View workflow job for this annotation

GitHub Actions / Check Spelling

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

Check warning on line 81 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 82 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 +124,7 @@
comlogger
COMLOGGERTEE
commandability
Commandability

Check warning on line 127 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 +134,9 @@
COMSPLITTER
COMSTUB
constexpr
COUNTINGSEMAPHORE

Check warning on line 137 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 +178,7 @@
deframed
deframer
deframing
dequeue
Deinitialization
deployables
DEPRECATEDLIST
Expand Down Expand Up @@ -214,6 +220,7 @@
dspal
DSSC
Dstate
DWCAS
DVI
DWN
eabi
Expand All @@ -225,12 +232,14 @@
eip
Elts
emptydir
embOS
endcond
endfunction
endmacro
endraw
enduml
enqueue
EPP

Check warning on line 242 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 +423,9 @@
LASTLOG
LBLOCK
LCHILD
LDARX
LDXR
LDREX
leisher
lestarch
lflag
Expand Down Expand Up @@ -470,11 +482,13 @@
mpdu
Mpu
Msb
MPMC
msc
mscfile
mseconds
mstarch
mstat
msgQ
MState
multiarch
multitool
Expand All @@ -487,6 +501,7 @@
nbits
ncsl
newtio
Neutrino
nmsgs
NOBLOCK
NODELABEL
Expand Down Expand Up @@ -555,8 +570,8 @@
Peet
penv
PERLMOD
PFR

Check warning on line 573 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 574 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 @@ -646,6 +661,7 @@
SAlias
Safing
sanitizers
SafeRTOS

Check failure on line 664 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`SafeR` matches a line_forbidden.patterns rule: Expect entries should be one entry per line - `[A-Z](?:[A-Z]|[a-z]|')*?[a-z](?:[a-z]|')*[A-Z]` (forbidden-pattern)
sats
SBF
SBINDIR
Expand Down Expand Up @@ -697,6 +713,8 @@
spdx
spi
spidev
spinlock
spinlocks

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

View workflow job for this annotation

GitHub Actions / Check Spelling

`spinlocks` is ignored by check-spelling because another more general variant is also in expect (ignored-expect-variant)
spsc
sqa
srandom
Expand All @@ -708,13 +726,16 @@
stdbool
stddef
stdint
STDCX
stest
Stl
stmtidx
STREQ
STREQUAL
STRINGUTILS
STRNE
STREX
STXR
strnlen
subgrouping
subhist
Expand Down Expand Up @@ -755,6 +776,7 @@
tfvn
thisdirdoesnotexist
thisfiledoesnotexist
ThreadX

Check failure on line 779 in .github/actions/spelling/expect.txt

View workflow job for this annotation

GitHub Actions / Check Spelling

`ThreadX` matches a line_forbidden.patterns rule: Expect entries should be one entry per line - `[A-Z](?:[A-Z]|[a-z]|')*?[a-z](?:[a-z]|')*[A-Z]` (forbidden-pattern)
Thu
timcanham
timebase
Expand Down Expand Up @@ -839,3 +861,4 @@
XXYY
ziext
zimri
Zephyr
40 changes: 40 additions & 0 deletions Os/Generic/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,46 @@
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(
Comment thread
thomas-bc marked this conversation as resolved.
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_Mutex_Posix
Os_CountingSemaphore_Posix
)

#### 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

Check failure on line 3 in Os/Generic/DefaultPriorityMemQueue.cpp

View workflow job for this annotation

GitHub Actions / Check Spelling

`Duckett` is not a recognized word (unrecognized-spelling)
// \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