CIRCT 21.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 | 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... | |
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 | 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 | 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 | 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. | |
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 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, const BundlePort & > | buildIndex (const std::vector< std::unique_ptr< BundlePort > > &ports) |
Build an index of ports by AppID. | |
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 path to the currently running executable.
Definition at line 101 of file Accelerator.cpp.
Referenced by loadBackend().
|
static |
Get the path to the currently running shared library.
Definition at line 120 of file Accelerator.cpp.
References getLibPath().
Referenced by getLibPath(), and loadBackend().
|
static |
Load a backend plugin dynamically.
Plugins are expected to be named lib<BackendName>Backend.so and located in one of 1) CWD, 2) in the same directory as the application, or 3) in the same directory as this library.
Definition at line 148 of file Accelerator.cpp.
References esi::Logger::debug(), esi::Logger::error(), getExePath(), getLibPath(), and esi::Logger::info().
Referenced by esi::registry::connect().
Definition at line 737 of file Manifest.cpp.
References esi::AppID::idx, and esi::AppID::name.
Definition at line 742 of file Manifest.cpp.
|
private |
Definition at line 41 of file Common.cpp.
|
private |
Definition at line 37 of file Common.cpp.
References toHex().
Referenced by dmaTest(), esi::services::MMIOSysInfo::getEsiVersion(), 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 74 of file Logging.cpp.
Referenced by esi::StreamLogger::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().