|
CIRCT 22.0.0git
|
Namespaces | |
| namespace | backends |
| namespace | cosim |
| namespace | registry |
| namespace | services |
| namespace | utils |
Classes | |
| class | Accelerator |
| Top level accelerator class. More... | |
| class | AcceleratorConnection |
| Abstract class representing a connection to an accelerator. More... | |
| class | AcceleratorServiceThread |
| Background thread which services various requests. More... | |
| class | AnyType |
| The "any" type is a special type which can be used to represent any type, as identified by the type id. More... | |
| struct | AppID |
| class | AppIDPath |
| class | ArrayType |
| Arrays have a compile time specified (static) size and an element type. More... | |
| class | BitsType |
| Bits are just an array of bits. More... | |
| class | BitVector |
| A lightweight, non-owning bit vector view backed by a byte array span. More... | |
| class | BitVectorType |
| Bit vectors include signed, unsigned, and signless integers. More... | |
| class | BundleEngineMap |
| Since engines can support multiple channels BUT not necessarily all of the channels in a bundle, a mapping from bundle channels to engines is needed. More... | |
| class | BundlePort |
| Services provide connections to 'bundles' – collections of named, unidirectional communication channels. More... | |
| class | BundleType |
| Bundles represent a collection of channels. More... | |
| struct | ChannelAssignment |
| Details about how to connect to a particular channel. More... | |
| class | ChannelPort |
| Unidirectional channels are the basic communication primitive between the host and accelerator. More... | |
| class | ChannelSignaling |
| class | ChannelType |
| Channels are the basic communication primitives. More... | |
| class | CliParser |
| Common options and code for ESI runtime tools. More... | |
| class | ConsoleLogger |
| A logger that writes to the console. Includes color support. More... | |
| struct | Constant |
| class | Context |
| AcceleratorConnections, Accelerators, and Manifests must all share a context. More... | |
| class | Engine |
| Engines implement the actual channel communication between the host and the accelerator. More... | |
| class | ESIPureModuleOp |
| struct | HWClientDetail |
| A description of a hardware client. More... | |
| class | HWModule |
| Represents either the top level or an instance of a hardware module. More... | |
| class | Instance |
Subclass of HWModule which represents a submodule instance. More... | |
| class | Int |
| class | IntegerType |
| Integers are bit vectors which may be signed or unsigned and are interpreted as numbers. More... | |
| class | Logger |
| class | Manifest |
| Class to parse a manifest. More... | |
| class | MessageData |
| A logical chunk of data representing serialized data. More... | |
| struct | ModuleInfo |
| class | MutableBitVector |
| A mutable bit vector that owns its underlying storage. More... | |
| class | NullLogger |
| A logger that does nothing. More... | |
| class | RandomAccessMemoryDeclOp |
| class | ReadChannelPort |
| A ChannelPort which reads data from the accelerator. More... | |
| class | RequestConnectionOp |
| struct | ServicePortDesc |
| A description of a service port. More... | |
| class | SIntType |
| Signed integer. More... | |
| class | StreamLogger |
| A logger that writes to a C++ std::ostream. More... | |
| class | StructType |
| Structs are an ordered collection of fields, each with a name and a type. More... | |
| class | TSLogger |
| A thread-safe logger which calls functions implemented by subclasses. More... | |
| class | Type |
| Root class of the ESI type system. More... | |
| class | UInt |
| class | UIntType |
| Unsigned integer. More... | |
| class | UnknownReadChannelPort |
| Instantiated when a backend does not know how to create a read channel. More... | |
| class | UnknownWriteChannelPort |
| Instantiated when a backend does not know how to create a write channel. More... | |
| class | VoidType |
| The "void" type is a special type which can be used to represent no type. More... | |
| class | WriteChannelPort |
| A ChannelPort which sends data to the accelerator. More... | |
Typedefs | |
| using | ChannelAssignments = std::map< std::string, ChannelAssignment > |
| using | HWClientDetails = std::vector< HWClientDetail > |
| using | ServiceImplDetails = std::map< std::string, std::any > |
| using | PortMap = std::map< std::string, ChannelPort & > |
Functions | |
| bool | operator< (const AppID &a, const AppID &b) |
| bool | operator< (const AppIDPath &a, const AppIDPath &b) |
| std::string | toHex (void *val) |
| std::string | toHex (uint64_t val) |
| std::string | toString (const std::any &a) |
| 'Stringify' a std::any. This is used to log std::any values by some loggers. | |
| std::ostream & | operator<< (std::ostream &os, const BitVector &bv) |
| static std::filesystem::path | getExePath () |
| Get the path to the currently running executable. | |
| static std::filesystem::path | getLibPath () |
| Get the path to the currently running shared library. | |
| static std::vector< std::filesystem::path > | getESIBackendDirectories () |
| Get the list of directories to search for backend plugins. | |
| static void | loadBackend (Context &ctxt, std::string backend) |
| Load a backend plugin dynamically. | |
| static std::map< AppID, Instance * > | buildIndex (const std::vector< std::unique_ptr< Instance > > &insts) |
| Build an index of children by AppID. | |
| static std::map< AppID, BundlePort & > | buildIndex (const std::vector< std::unique_ptr< BundlePort > > &ports) |
| Build an index of ports by AppID. | |
| std::ostream & | operator<< (std::ostream &os, const AppID &id) |
| std::ostream & | operator<< (std::ostream &os, const AppIDPath &path) |
| static Int | getIntLikeFromAny (const std::any &obj, unsigned widthHint) |
| static UInt | getUIntLikeFromAny (const std::any &obj, unsigned widthHint) |
Variables | |
| constexpr uint32_t | MetadataOffset = 8 |
| constexpr uint64_t | MagicNumberLo = 0xE5100E51 |
| constexpr uint64_t | MagicNumberHi = 0x207D98E5 |
| constexpr uint64_t | MagicNumber = MagicNumberLo | (MagicNumberHi << 32) |
| constexpr uint32_t | ExpectedVersionNumber = 0 |
| using esi.ChannelAssignments = typedef std::map<std::string, ChannelAssignment> |
| using esi.HWClientDetails = typedef std::vector<HWClientDetail> |
| using esi.PortMap = typedef std::map<std::string, ChannelPort &> |
| using esi.ServiceImplDetails = typedef std::map<std::string, std::any> |
|
static |
Build an index of ports by AppID.
Definition at line 35 of file Design.cpp.
|
static |
Build an index of children by AppID.
Definition at line 26 of file Design.cpp.
|
static |
Get the list of directories to search for backend plugins.
Definition at line 151 of file Accelerator.cpp.
References getExePath(), and getLibPath().
Referenced by loadBackend().
|
static |
Get the path to the currently running executable.
Definition at line 106 of file Accelerator.cpp.
Referenced by getESIBackendDirectories().
|
static |
Definition at line 114 of file Types.cpp.
Referenced by esi::SIntType::ensureValid(), and esi::SIntType::serialize().
|
static |
Get the path to the currently running shared library.
Definition at line 125 of file Accelerator.cpp.
References getLibPath().
Referenced by getESIBackendDirectories(), and getLibPath().
|
static |
Definition at line 133 of file Types.cpp.
Referenced by esi::UIntType::ensureValid(), and esi::UIntType::serialize().
|
static |
Load a backend plugin dynamically.
Plugins are expected to be named lib<BackendName>Backend.so and located in one of 1) CWD, 2) directories specified in ESI_BACKENDS environment variable, 3) in the same directory as the application, or 4) in the same directory as this library.
Definition at line 188 of file Accelerator.cpp.
References esi::Logger::debug(), esi::Logger::error(), getESIBackendDirectories(), and esi::Logger::info().
Referenced by esi::registry::connect().
Definition at line 746 of file Manifest.cpp.
References esi::AppID::idx, and esi::AppID::name.
Definition at line 751 of file Manifest.cpp.
| std::ostream & esi::operator<< | ( | std::ostream & | os, |
| const AppID & | id | ||
| ) |
Definition at line 760 of file Manifest.cpp.
| std::ostream & esi::operator<< | ( | std::ostream & | os, |
| const AppIDPath & | path | ||
| ) |
Definition at line 766 of file Manifest.cpp.
| std::ostream & esi::operator<< | ( | std::ostream & | os, |
| const BitVector & | bv | ||
| ) |
Definition at line 386 of file Values.cpp.
References toDecimalString(), toPowerOfTwoString(), and esi::BitVector::toString().
|
private |
Definition at line 41 of file Common.cpp.
|
private |
Definition at line 37 of file Common.cpp.
References toHex().
Referenced by esi::services::MMIOSysInfo::getEsiVersion(), hostmemTest(), esi::services::MMIO::MMIORegion::read(), toHex(), esi::services::MMIO::MMIORegion::toString(), and esi::services::MMIO::MMIORegion::write().
| std::string esi::toString | ( | const std::any & | a | ) |
'Stringify' a std::any. This is used to log std::any values by some loggers.
Definition at line 132 of file Logging.cpp.
Referenced by dmaWriteTest(), esi::StreamLogger::logImpl(), and esi::ConsoleLogger::logImpl().
|
constexpr |
Definition at line 49 of file Accelerator.h.
|
constexpr |
Definition at line 48 of file Accelerator.h.
Referenced by esi::services::MMIOSysInfo::getEsiVersion().
|
constexpr |
Definition at line 47 of file Accelerator.h.
|
constexpr |
Definition at line 46 of file Accelerator.h.
|
constexpr |
Definition at line 45 of file Accelerator.h.
Referenced by esi::services::MMIOSysInfo::getCompressedManifest(), and esi::services::MMIOSysInfo::getEsiVersion().