|
The Pedigree Project 0.1
|
#include <IrqDiagnosticSnapshotStore.h>
Inheritance diagram for IrqDiagnosticSnapshotStore< LineCount >:
Collaboration diagram for IrqDiagnosticSnapshotStore< LineCount >:Public Member Functions | |
| IrqLineDiagnosticSnapshot * | beginPublication (size_t line, size_t &targetBank) |
| void | finishPublication (size_t line, size_t targetBank) |
| bool | snapshot (size_t line, IrqLineDiagnosticSnapshot &out) const |
| size_t | missedPublications (size_t line) const |
| void | recordMissedPublication (size_t line) |
| bool | consumeDirty (size_t line) |
Private Member Functions | |
| void | missed (size_t line) |
Private Attributes | |
| IrqLineDiagnosticSnapshot | m_Banks [LineCount][BankCount] |
| size_t | m_Publications [LineCount] |
| size_t | m_BankClaims [LineCount][BankCount] |
| size_t | m_WriterAdmissions [LineCount] |
| size_t | m_MissedPublications [LineCount] |
| size_t | m_Dirty [LineCount] |
Static Private Attributes | |
| static constexpr size_t | BankCount = 3 |
| static constexpr size_t | BankBits = 2 |
| static constexpr size_t | BankMask = (1U << BankBits) - 1 |
| static constexpr size_t | SnapshotAttempts = 4 |
| static constexpr size_t | WriterClaim = static_cast<size_t>(1) << ((sizeof(size_t) * 8) - 1) |
Per-line immutable snapshot publication for stopped-world debuggers and best-effort live readers.
A reader claims one of three banks before copying it. A writer makes one nonblocking attempt to claim an inactive, unclaimed bank; diagnostics are allowed to remain stale rather than becoming an IRQ liveness dependency.
Definition at line 26 of file IrqDiagnosticSnapshotStore.h.
|
inline |
Definition at line 28 of file IrqDiagnosticSnapshotStore.h.
|
inline |
Begins one nonblocking publication, returning its private bank.
Definition at line 44 of file IrqDiagnosticSnapshotStore.h.
|
inline |
Reports and clears a missed writer rendezvous for bounded refresh.
Definition at line 176 of file IrqDiagnosticSnapshotStore.h.
|
inline |
Makes a completely populated private bank visible to readers.
Definition at line 75 of file IrqDiagnosticSnapshotStore.h.
|
inlineprivate |
Definition at line 188 of file IrqDiagnosticSnapshotStore.h.
|
inline |
Definition at line 164 of file IrqDiagnosticSnapshotStore.h.
|
inline |
Records a bounded publication which could not obtain coherent input.
Definition at line 169 of file IrqDiagnosticSnapshotStore.h.
|
inline |
Copies one bank without waiting for a publisher or taking a lock.
Definition at line 95 of file IrqDiagnosticSnapshotStore.h.
Referenced by Pic::snapshotIrqLines().
Here is the caller graph for this function:
|
staticconstexprprivate |
Definition at line 183 of file IrqDiagnosticSnapshotStore.h.
|
staticconstexprprivate |
Definition at line 182 of file IrqDiagnosticSnapshotStore.h.
|
staticconstexprprivate |
Definition at line 184 of file IrqDiagnosticSnapshotStore.h.
|
mutableprivate |
Definition at line 195 of file IrqDiagnosticSnapshotStore.h.
|
private |
Definition at line 193 of file IrqDiagnosticSnapshotStore.h.
|
private |
Definition at line 198 of file IrqDiagnosticSnapshotStore.h.
|
private |
Definition at line 197 of file IrqDiagnosticSnapshotStore.h.
|
private |
Definition at line 194 of file IrqDiagnosticSnapshotStore.h.
|
private |
Definition at line 196 of file IrqDiagnosticSnapshotStore.h.
|
staticconstexprprivate |
Definition at line 185 of file IrqDiagnosticSnapshotStore.h.
|
staticconstexprprivate |
Definition at line 186 of file IrqDiagnosticSnapshotStore.h.