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