xref: /aosp_15_r20/external/android-nn-driver/1.0/ArmnnDriver.hpp (revision 3e777be0405cee09af5d5785ff37f7cfb5bee59a)
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