|
CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
|
| C__jmp_buf | This is a minimal implementation of setjmp/longjmp |
| CAllocatorCapabilityState | The public view of state represented by a capability that is used to authorise heap allocations |
| CSonataPulseWidthModulation::Array< NumberOfPwms > | A convenience structure that can map onto multiple PWM outputs |
| Canonymous_namespace{debug.hh}::ConditionalDebug< Threshold, Context, EnableAssertions, VerboseInvariants >::Assert< Args > | Function-like class for assertions that is expected to be used via the deduction guide as: |
| CB | |
| CBitpackDerived< B > | It is occasionally useful to derive one bitpack from another |
| CBarrierState | State for a barrier |
| CRevocation::BitmapDirect< WordT, TCMBaseAddr > | Class for interacting with the shadow bitmap |
| CIbex::HardwareRevoker< WordT, TCMBaseAddr > | |
| CBitpack< StorageParam > | The Bitpack structure itself, templated on the underlying Storage type |
| CBitpack< uint32_t > | |
| COpenTitanUart::Control | |
| COpenTitanUart::FIFOControl | |
| COpenTitanUart::FIFOStatus | UART FIFO Status Register |
| COpenTitanUart::Interrupts | |
| COpenTitanUart::Status | |
| CKunyanEthernet::BufferedFrame | Class encapsulating a frame that has been received |
| CCHERI::Capability< T, IsSealedT > | Helper class for accessing capability properties on pointers |
| CCheckSize< Real, Expected > | Helper class for checking the size of a structure |
| CCleanupList | On-stack linked list of cleanup handlers |
| Canonymous_namespace{debug.hh}::ConditionalDebug< Threshold, Context, EnableAssertions, VerboseInvariants > | Conditional debug class |
| CConditionVariable | Condition variable C++ wrapper |
| CConditionVariableState | Condition variable state |
| CCountingSemaphoreState | State for a counting semaphore |
| Cds::ring_buffer::Cursors< Debug, Capacity, IxTy > | A statically-sized, non-atomic ring buffer state machine |
| Canonymous_namespace{debug.hh}::DebugContext< N > | Helper class wrapping a string for use as a template argument |
| CDebugFormatArgument | |
| CDebugFormatArgumentAdaptor< T > | Adaptor that turns an argument of type T into a DebugFormatArgument |
| CDebugFormatArgumentAdaptor< bool > | Boolean specialisation, prints "true" or "false" |
| CDebugFormatArgumentAdaptor< char > | Character specialisation, prints the character |
| CDebugFormatArgumentAdaptor< CHERI::Capability< T, Sealed > > | Specialisation for the CHERI capability wrapper class, prints the capability in the same format as bare pointers |
| CDebugFormatArgumentAdaptor< CHERI::PermissionSet > | Permission set specialisation |
| CDebugFormatArgumentAdaptor< const char * > | C string specialisation, prints the string as-is |
| CDebugFormatArgumentAdaptor< double > | |
| CDebugFormatArgumentAdaptor< float > | |
| CDebugFormatArgumentAdaptor< int16_t > | Signed 16-bit integer specialisations, print the integer as a decimal number |
| CDebugFormatArgumentAdaptor< int32_t > | Signed 32-bit integer specialisations, print the integer as a decimal number |
| CDebugFormatArgumentAdaptor< int64_t > | Signed 64-bit integer specialisations, print the integer as a decimal number |
| CDebugFormatArgumentAdaptor< int8_t > | Signed 8-bit integer specialisations, print the integer as a decimal number |
| CDebugFormatArgumentAdaptor< std::nullptr_t > | Null pointer specialisation |
| CDebugFormatArgumentAdaptor< std::string > | String view specialisation, use the C string handler |
| CDebugFormatArgumentAdaptor< std::string_view > | String view specialisation, prints the string as-is |
| CDebugFormatArgumentAdaptor< T > | Enum specialisation, prints the enum as a string and then the numeric value |
| CDebugFormatArgumentAdaptor< TimeoutArgument > | Helper for printing timeouts |
| CDebugFormatArgumentAdaptor< uint16_t > | Unsigned 16-bit integer specialisation, prints the integer as a hex number |
| CDebugFormatArgumentAdaptor< uint32_t > | Unsigned 32-bit integer specialisation, prints the integer as a hex number |
| CDebugFormatArgumentAdaptor< uint64_t > | Unsigned 64-bit integer specialisation, prints the integer as a hex number |
| CDebugFormatArgumentAdaptor< uint8_t > | Unsigned character specialisation, prints the character as a hex number |
| Canonymous_namespace{debug.hh}::DebugLevelTemplateArgument | Compatibility wrapper that can be constructed from a boolean or a DebugLevel |
| CDebugWriter | Abstract class for writing debug output |
| CCHERI::ErrorOr< T, IsSealed > | Helper for a value that encodes either a pointer or an error value in a pointer-sized value, discriminated by the tag bit |
| CErrorState | State for error handlers to use |
| CEventWaiterSource | Structure describing a change to the set of managed event sources for an event waiter |
| CBitpack< StorageParam >::Field< TypeParam, InfoParam > | A particular Field within a Bitpack |
| CBitpack< StorageParam >::FieldInfo | Information about a field within a Bitpack |
| CFlagLockGeneric< IsPriorityInherited > | A simple flag log, wrapping an atomic word used with the futex calls |
| CFlagLockState | State for a flag lock |
| Canonymous_namespace{float_to_string_helpers.hh}::FloatParts | A floating-point value decomposed into components for printing |
| CKsz8851Ethernet::Frame | Simple class representing a received Ethernet frame |
| CFunctionWrapper< FnType > | Base template for FunctionWrapper, never used |
| CFunctionWrapper< R(Args...)> | A non-owning type-erased reference to a callable object |
| CGPIO | The Arty A7 configuration has two LEDs (LD5 and LD6), four buttons, and four switches, exposed over GPIO |
| CGPIO::InputBits | Helper that defines a set of bits in a GPIO input word used for a specific purpose |
| CInterruptCapabilityState | Structure for authorising access to a specific interrupt |
| CInterrupts | |
| CBitpackDerived< Interrupts > | |
| COpenTitanUart::InterruptState | |
| Canonymous_namespace{debug.hh}::ConditionalDebug< Threshold, Context, EnableAssertions, VerboseInvariants >::Invariant< Args > | Function-like class for invariants that is expected to be used via the deduction guide as: |
| CCHERI::is_sealed_capability< T > | Type trait for checking if a type is a sealed capability |
| CKsz8851Ethernet | The driver for KSZ8851 SPI Ethernet MAC |
| CKunyanEthernet | The driver for Kunyan Liu's custom Ethernet MAC for the Arty A7 |
| CLockGuard< Lock > | A simple RAII type that owns a lock |
| CMessageQueue | Structure representing a queue |
| Cutils::NoCopyNoMove | Utility class to delete copy and move contructors |
| CSonataGpioBase< 0x0000 '3FFF > | |
| CSonataGpioBase< 0x0000 '00FF > | |
| CSonataGpioBase< 0x0000 '003F > | |
| CSonataSpi::Generic< 2 > | |
| CSonataSpi::EthernetMac | A specialised driver for the SPI device connected to the Ethernet MAC |
| CSonataSpi::Generic< 3 > | |
| CSonataSpi::Lcd | A specialised driver for the SPI device connected to the LCD screen |
| CNoPlic< MaxIntrID, SourceID, Priority > | Type representing no interrupt controller |
| COpenTitanI2c | Driver for the OpenTitan's I2C block |
| COpenTitanUart | OpenTitan UART |
| COpenTitanUsbdev | A driver for OpenTitan USB Device, which is used in the Sonata system |
| CSonataAnalogueDigitalConverter | A simple driver for Sonata's XADC (Xilinx Analogue to Digital Converter) |
| CSonataGpioBase< OutputMask, InputMask, OutputEnableMask, PcIntMask > | A simple driver for the Sonata's GPIO |
| CSonataPinmux::BlockSinks | A driver for the Sonata system's pin multiplexed block inputs |
| CSonataPinmux::PinSinks | A driver for the Sonata system's pin multiplexed output pins |
| CSonataPulseWidthModulation::Output | A driver for Sonata's Pulse-Width Modulation (PWM) |
| CSonataRgbLedController | A driver for the Sonata's RGB LED Controller |
| CSonataSpi::Generic< NumChipSelects > | A driver for the Sonata's SPI device block |
| CStandardClint | Driver for using the (old) RISC-V Core-Local Interrupt (CLINT) controller (as opposed to the newer CLIC) to provide timer signals |
| CStandardPlic< MaxIntrID, SourceID, Priority > | Driver for the standard RISC-V Platform-Local Interrupt Controller (PLIC) |
| CNoLock | Class that implements the locking concept but does not perform locking |
| CBitpack< StorageParam >::Numeric< T > | Convenience wrapper for the types of numeric fields |
| Cds::linked_list::cell::OffsetPtrAddr< Offset > | Encode a linked list cons cell as a pair of addresses (but present an interface in terms of pointers) |
| Cds::pointer::proxy::OffsetPtrAddr< Offset, T > | Like the above, but with a constant offset on the interpretation of its addresss fields |
| COnceState | Synchronisation state for run-once functions |
| Cutils::OptionalReference< T > | A helper class modelled on std::optional that represents an optional T& |
| CCHERI::PermissionSet | Class encapsulating a set of permissions |
| Cds::linked_list::cell::Pointer | Cons cell using two pointers |
| Cds::pointer::proxy::Pointer< T > | Pointer references are pointer proxies, shockingly enough |
| CBitpack< StorageParam >::Field< TypeParam, InfoParam >::Proxy< DerivedBitpack, RefTypeParam > | A proxy for this Field within the Bitpack's Storage |
| Cds::linked_list::cell::PtrAddr | Encode a linked list cons cell as a pair of addresses (but present an interface in terms of pointers) |
| Cds::pointer::proxy::PtrAddr< T > | Equipped with a context for bounds, an address reference can be a proxy for a pointer |
| COpenTitanUsbdev::ReceiveBufferInfo | The information associated with a received packet |
| CRecursiveMutex | Priority-inheriting recursive mutex |
| CRecursiveMutexState | State for a recursive mutex |
| CCHERI::remove_sealed< T > | Type trait to remove sealed from a capability type |
| CCHERI::remove_sealed< T * > | Specialisation to |
| CRingBuffer< Message, BufferSize, PushLock, PopLock > | A simple single-producer, single-consumer ring buffer that can be made multi-producer and / or multi-consumer by adding locking |
| CSealed< T > | Helper template for representing a sealed capability created by the allocator's token API |
| Cds::linked_list::Sentinel< CellTemplateArg > | Convenience wrapper for a sentinel cons cell, encapsulating some common patterns |
| CSonataPinmux::Sink< SinkEnum > | A handle to a sink configuration register |
| CSonataGPIO | A Simple Driver for the Sonata's GPIO |
| CSonataSpi | A Simple Driver for the Sonata's SPI |
| Canonymous_namespace{debug.hh}::SourceLocation | Our libc++ does not currently provide source_location, but our clang provides the necessary builtins for one |
| Canonymous_namespace{debug.hh}::StackUsageCheck< Mode, Expected, Fn > | Check the (dynamic) stack usage of a function, including all of its callees |
| CStaticSemaphore_t | Type used to define space for storing any of the exposed FreeRTOS semaphore types |
| CSystickReturn | Absolute system tick value since boot, 64-bit, assuming never overflows |
| CThreadPoolMessage | Message to a thread pool |
| CTicketLock | A simple ticket lock |
| CTicketLockState | Ticket locks use two monotonic counters to store the lock state |
| CTimeout | Structure representing a timeout |
| CTrivialInsecureEntropySource | A simple entropy source |
| CUart16550< RegisterType > | Generic 16550A memory-mapped register layout |
| CUart16550< uint32_t > | |
| CSynopsisExtended16550< DefaultBaudRate > | The Synopsis extended 16550 UART has two additional registers that are not part of a standard 16550, one of which allows for fractional multipliers |
| Cds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 > | The xoroshiro+ (not ++) generator(s) of Blackman and Vigna's Scrambled Linear Pseudorandom Number Generators (https://arxiv.org/abs/1805.01407, Figure 1) |