aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
9 dayskstd: ring_buffer: implement clear()Felix Morgner2-1/+62
9 dayskstd: tests: extract static tracker typesFelix Morgner2-112/+109
9 dayskstd: ring_buffer: implement copy and move assignmentFelix Morgner2-0/+239
9 dayskstd: ring_buffer: implement move ctorFelix Morgner2-0/+25
9 dayskstd: ring_buffer: implement copy ctorFelix Morgner2-0/+36
9 dayskstd: ring_buffer: implement dtorFelix Morgner2-0/+56
9 dayskstd: ring_buffer: move construction testsFelix Morgner1-32/+32
9 dayskstd: ring_buffer: add missing [c]rend() testsFelix Morgner1-0/+15
9 dayskstd: ring_buffer: implement [cr][begin|end]()Felix Morgner2-0/+180
9 dayskstd: ring_buffer: fix empty() and size()Felix Morgner2-11/+26
9 dayskstd: ring_buffer: add more range-based testsFelix Morgner1-0/+50
10 dayskstd: ring_buffer: implement [c]end()Felix Morgner2-1/+134
10 dayskstd: ring_buffer: implement [c]begin()Felix Morgner2-1/+140
10 dayskstd: ring_buffer: implement iterator typeFelix Morgner2-0/+165
10 dayskstd: ring_buffer: add n-value-initialized ctorFelix Morgner2-0/+52
10 dayskstd: ring_buffer: add write-through testsFelix Morgner1-0/+32
10 dayskstd: ring_buffer: fix const-overload testsFelix Morgner1-3/+3
10 dayskstd: ring_buffer: add ctor panic testFelix Morgner1-0/+10
10 dayskstd: ring_buffer: extract basic storageFelix Morgner2-23/+127
11 dayskstd: ring_buffer: add missing test tagFelix Morgner1-1/+1
11 dayskstd: ring_buffer: add interface type testsFelix Morgner1-0/+82
11 dayskstd: ring_buffer: implement operator[]Felix Morgner2-5/+45
11 dayskstd: ring_buffer: simplify element_atFelix Morgner1-3/+3
11 dayskstd: ring_buffer: rename element_at_indexFelix Morgner1-4/+4
11 dayskstd: ring_buffer: implement n-values ctor.Felix Morgner2-1/+99
11 dayskstd: ring_buffer: add missing documentationFelix Morgner1-4/+13
11 dayskstd: ring_buffer: rename head and tailFelix Morgner1-9/+9
11 dayskstd: ring_buffer: implement at()Felix Morgner2-0/+84
11 dayskstd: ring_buffer: implement size()Felix Morgner2-0/+18
11 dayskstd: ring_buffer: implement empty()Felix Morgner2-0/+18
11 dayskstd: ring_buffer: add do sectionsFelix Morgner1-0/+5
11 dayskstd: ring_buffer: implement max_size()Felix Morgner2-0/+16
11 dayskstd: ring_buffer: implement capacity()Felix Morgner2-4/+16
11 dayskstd: add ring_buffer includeFelix Morgner2-0/+37
11 dayschore: clean up python scriptsFelix Morgner21-57/+113
11 dayschore: update python dependenciesFelix Morgner1-182/+182
11 dayside: fix poetry dependenciesFelix Morgner2-387/+24
11 daysMerge branch 'fmorgner/implement-interrupt-locking' into 'develop'Felix Morgner14-25/+602
kapi/interrupts: implement irq_lock See merge request teachos/kernel!61
12 daysx86_64: fix flag readingFelix Morgner4-6/+92
12 dayside: enable <...> include checksFelix Morgner1-0/+2
12 dayskapi/interrupts: add testsFelix Morgner2-0/+254
12 dayskapi/interrupts: admit irq_lock dtor may panicFelix Morgner1-1/+8
12 dayskapi/interrupts: improve irq_lock protectionsFelix Morgner1-5/+53
The previous implementation suffered from four problems: 1. try_lock in the basic irq_lock always succeeded. 2. lock in the basic irq_lock always succeeded. 3. try_lock in the wrapper irq_lock did not use the base try_lock. 4. a foreign CPU could wrongly unlock a remote irq_lock. These issues are mitigated in this patch.
12 dayskapi/interrupts: tests: fix state data raceFelix Morgner1-14/+3
12 dayskapi/interrupts: tests: make IRQ state thread specificFelix Morgner1-3/+12
12 dayskapi/interrupts: implement IRQ lockFelix Morgner2-0/+110
12 dayskstd/mutex: export lockable conceptsFelix Morgner1-0/+9
12 dayskstd/concepts: add lockable conceptFelix Morgner1-0/+15
12 dayskstd/concepts: document basic_lockableFelix Morgner1-0/+12
12 dayskapi/interrupt: rework enablement APIFelix Morgner5-25/+61