CIRCT 21.0.0git
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Functions | Variables
esi Namespace Reference

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
 

Typedef Documentation

◆ ChannelAssignments

using esi.ChannelAssignments = typedef std::map<std::string, ChannelAssignment>

Definition at line 87 of file Common.h.

◆ HWClientDetails

using esi.HWClientDetails = typedef std::vector<HWClientDetail>

Definition at line 97 of file Common.h.

◆ PortMap

using esi.PortMap = typedef std::map<std::string, ChannelPort &>

Definition at line 29 of file Ports.h.

◆ ServiceImplDetails

using esi.ServiceImplDetails = typedef std::map<std::string, std::any>

Definition at line 98 of file Common.h.

Function Documentation

◆ buildIndex() [1/2]

static std::map< AppID, const BundlePort & > esi::buildIndex ( const std::vector< std::unique_ptr< BundlePort > > &  ports)
static

Build an index of ports by AppID.

Definition at line 35 of file Design.cpp.

◆ buildIndex() [2/2]

static std::map< AppID, Instance * > esi::buildIndex ( const std::vector< std::unique_ptr< Instance > > &  insts)
static

Build an index of children by AppID.

Definition at line 26 of file Design.cpp.

◆ getExePath()

static std::filesystem::path esi::getExePath ( )
static

Get the path to the currently running executable.

Definition at line 101 of file Accelerator.cpp.

Referenced by loadBackend().

◆ getLibPath()

static std::filesystem::path esi::getLibPath ( )
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().

◆ loadBackend()

static void esi::loadBackend ( Context ctxt,
std::string  backend 
)
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().

◆ operator<() [1/2]

bool esi::operator< ( const AppID a,
const AppID b 
)

Definition at line 737 of file Manifest.cpp.

References esi::AppID::idx, and esi::AppID::name.

◆ operator<() [2/2]

bool esi::operator< ( const AppIDPath a,
const AppIDPath b 
)

Definition at line 742 of file Manifest.cpp.

◆ toHex() [1/2]

std::string esi::toHex ( uint64_t  val)
private

Definition at line 41 of file Common.cpp.

◆ toHex() [2/2]

std::string esi::toHex ( void *  val)
private

◆ toString()

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().

Variable Documentation

◆ ExpectedVersionNumber

constexpr uint32_t esi.ExpectedVersionNumber = 0
constexpr

Definition at line 49 of file Accelerator.h.

◆ MagicNumber

constexpr uint64_t esi.MagicNumber = MagicNumberLo | (MagicNumberHi << 32)
constexpr

Definition at line 48 of file Accelerator.h.

Referenced by esi::services::MMIOSysInfo::getEsiVersion().

◆ MagicNumberHi

constexpr uint64_t esi.MagicNumberHi = 0x207D98E5
constexpr

Definition at line 47 of file Accelerator.h.

◆ MagicNumberLo

constexpr uint64_t esi.MagicNumberLo = 0xE5100E51
constexpr

Definition at line 46 of file Accelerator.h.

◆ MetadataOffset

constexpr uint32_t esi.MetadataOffset = 8
constexpr