1*3e777be0SXin Li // 2*3e777be0SXin Li // Copyright © 2017 Arm Ltd. All rights reserved. 3*3e777be0SXin Li // SPDX-License-Identifier: MIT 4*3e777be0SXin Li // 5*3e777be0SXin Li 6*3e777be0SXin Li #pragma once 7*3e777be0SXin Li 8*3e777be0SXin Li #include <HalInterfaces.h> 9*3e777be0SXin Li 10*3e777be0SXin Li #include "../ArmnnDevice.hpp" 11*3e777be0SXin Li #include "ArmnnDriverImpl.hpp" 12*3e777be0SXin Li #include "HalPolicy.hpp" 13*3e777be0SXin Li 14*3e777be0SXin Li #include "../ArmnnDriverImpl.hpp" 15*3e777be0SXin Li 16*3e777be0SXin Li #include <log/log.h> 17*3e777be0SXin Li 18*3e777be0SXin Li namespace armnn_driver 19*3e777be0SXin Li { 20*3e777be0SXin Li namespace hal_1_0 21*3e777be0SXin Li { 22*3e777be0SXin Li 23*3e777be0SXin Li class ArmnnDriver : public ArmnnDevice, public V1_0::IDevice 24*3e777be0SXin Li { 25*3e777be0SXin Li public: ArmnnDriver(DriverOptions options)26*3e777be0SXin Li ArmnnDriver(DriverOptions options) 27*3e777be0SXin Li : ArmnnDevice(std::move(options)) 28*3e777be0SXin Li { 29*3e777be0SXin Li ALOGV("hal_1_0::ArmnnDriver::ArmnnDriver()"); 30*3e777be0SXin Li } ~ArmnnDriver()31*3e777be0SXin Li ~ArmnnDriver() {} 32*3e777be0SXin Li 33*3e777be0SXin Li public: getCapabilities(V1_0::IDevice::getCapabilities_cb cb)34*3e777be0SXin Li Return<void> getCapabilities(V1_0::IDevice::getCapabilities_cb cb) override 35*3e777be0SXin Li { 36*3e777be0SXin Li ALOGV("hal_1_0::ArmnnDriver::getCapabilities()"); 37*3e777be0SXin Li 38*3e777be0SXin Li return hal_1_0::ArmnnDriverImpl::getCapabilities(m_Runtime, cb); 39*3e777be0SXin Li } 40*3e777be0SXin Li getSupportedOperations(const V1_0::Model & model,V1_0::IDevice::getSupportedOperations_cb cb)41*3e777be0SXin Li Return<void> getSupportedOperations(const V1_0::Model& model, 42*3e777be0SXin Li V1_0::IDevice::getSupportedOperations_cb cb) override 43*3e777be0SXin Li { 44*3e777be0SXin Li ALOGV("hal_1_0::ArmnnDriver::getSupportedOperations()"); 45*3e777be0SXin Li 46*3e777be0SXin Li return armnn_driver::ArmnnDriverImpl<HalPolicy>::getSupportedOperations(m_Runtime, m_Options, model, cb); 47*3e777be0SXin Li } 48*3e777be0SXin Li prepareModel(const V1_0::Model & model,const android::sp<V1_0::IPreparedModelCallback> & cb)49*3e777be0SXin Li Return<V1_0::ErrorStatus> prepareModel(const V1_0::Model& model, 50*3e777be0SXin Li const android::sp<V1_0::IPreparedModelCallback>& cb) override 51*3e777be0SXin Li { 52*3e777be0SXin Li ALOGV("hal_1_0::ArmnnDriver::prepareModel()"); 53*3e777be0SXin Li 54*3e777be0SXin Li return armnn_driver::ArmnnDriverImpl<HalPolicy>::prepareModel(m_Runtime, 55*3e777be0SXin Li m_ClTunedParameters, 56*3e777be0SXin Li m_Options, 57*3e777be0SXin Li model, 58*3e777be0SXin Li cb); 59*3e777be0SXin Li } 60*3e777be0SXin Li getStatus()61*3e777be0SXin Li Return<V1_0::DeviceStatus> getStatus() override 62*3e777be0SXin Li { 63*3e777be0SXin Li ALOGV("hal_1_0::ArmnnDriver::getStatus()"); 64*3e777be0SXin Li 65*3e777be0SXin Li return armnn_driver::ArmnnDriverImpl<HalPolicy>::getStatus(); 66*3e777be0SXin Li } 67*3e777be0SXin Li }; 68*3e777be0SXin Li 69*3e777be0SXin Li } // namespace hal_1_0 70*3e777be0SXin Li } // namespace armnn_driver 71