CIRCT 20.0.0git
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Functions
Engines.h File Reference
#include "esi/Common.h"
#include "esi/Ports.h"
#include "esi/Services.h"
#include "esi/Utils.h"
#include <cassert>
#include <future>
Include dependency graph for Engines.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  esi::Engine
 Engines implement the actual channel communication between the host and the accelerator. More...
 
class  esi::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...
 
struct  esi::registry::internal::RegisterEngine< TEngine >
 Helper struct to register engines. More...
 

Namespaces

namespace  esi
 
namespace  esi::registry
 
namespace  esi::registry::internal
 

Macros

#define REGISTER_ENGINE(Name, TEngine)
 

Typedefs

using esi::registry::internal::EngineCreate = std::function< std::unique_ptr< Engine >(AcceleratorConnection &conn, AppIDPath idPath, const ServiceImplDetails &details, const HWClientDetails &clients)>
 Engines can register themselves for pluggable functionality.
 

Functions

std::unique_ptr< Engineesi::registry::createEngine (AcceleratorConnection &conn, const std::string &dmaEngineName, AppIDPath idPath, const ServiceImplDetails &details, const HWClientDetails &clients)
 Create an engine by name.
 
void esi::registry::internal::registerEngine (const std::string &name, EngineCreate create)
 

Macro Definition Documentation

◆ REGISTER_ENGINE

#define REGISTER_ENGINE (   Name,
  TEngine 
)
Value:
static ::esi::registry::internal::RegisterEngine<TEngine> \
__register_engine____LINE__(Name)

Definition at line 108 of file Engines.h.