diff options
Diffstat (limited to 'driver_library/src/ethosu.cpp')
-rw-r--r-- | driver_library/src/ethosu.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/driver_library/src/ethosu.cpp b/driver_library/src/ethosu.cpp index 3c7dc31..7aec696 100644 --- a/driver_library/src/ethosu.cpp +++ b/driver_library/src/ethosu.cpp @@ -333,12 +333,13 @@ int Buffer::getFd() const { * Network ****************************************************************************/ -Network::Network(const Device &device, shared_ptr<Buffer> &buffer) : fd(-1), buffer(buffer) { +Network::Network(const Device &device, const unsigned char *networkData, size_t networkSize) : fd(-1) { // Create buffer handle ethosu_uapi_network_create uapi; - uapi.type = ETHOSU_UAPI_NETWORK_BUFFER; - uapi.fd = buffer->getFd(); - fd = device.ioctl(ETHOSU_IOCTL_NETWORK_CREATE, static_cast<void *>(&uapi)); + uapi.type = ETHOSU_UAPI_NETWORK_USER_BUFFER; + uapi.network.data_ptr = reinterpret_cast<uintptr_t>(networkData); + uapi.network.size = networkSize; + fd = device.ioctl(ETHOSU_IOCTL_NETWORK_CREATE, static_cast<void *>(&uapi)); try { collectNetworkInfo(); } catch (std::exception &e) { @@ -348,7 +349,7 @@ Network::Network(const Device &device, shared_ptr<Buffer> &buffer) : fd(-1), buf throw; } - Log(Severity::Info) << "Network(" << &device << ", " << &*buffer << "), this=" << this << ", fd=" << fd << endl; + Log(Severity::Info) << "Network(" << &device << "), this=" << this << ", fd=" << fd << endl; } Network::Network(const Device &device, const unsigned index) : fd(-1) { @@ -391,10 +392,6 @@ int Network::ioctl(unsigned long cmd, void *data) { return eioctl(fd, cmd, data); } -shared_ptr<Buffer> Network::getBuffer() { - return buffer; -} - const std::vector<size_t> &Network::getIfmDims() const { return ifmDims; } |