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