circt
circt copied to clipboard
[ESI] RPCServer::registerReadPort provides no way to register callback port
RegisterReadPort currently calls the default underlying connect() function, which forces a port to be a polling port.
https://github.com/llvm/circt/blob/34c73c35c89588c84f695c6021f8c74ec6337d2d/lib/Dialect/ESI/runtime/cosim/lib/RpcServer.cpp#L170-L176
There should be some way of registering a callback port, i.e. by providing an optional callback argument to registerReadPort.
e.g.:
ReadChannelPort & registerReadPort(const std::string &name, const std::string &type, std::function<bool(MessageData)> callback = nullptr);
As part of making RpcServer "just" another backend, I'm planning on refactoring it into a Builder which produces an AcceleratorConnection.