xref: /aosp_15_r20/external/armnn/shim/sl/scripts/NeuralNetworks.patch (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Workerdiff --git a/common/types/src/SharedMemoryAndroid.cpp b/common/types/src/SharedMemoryAndroid.cpp
2*89c4ff92SAndroid Build Coastguard Workerindex c361a1eb6..3c09c5f4d 100644
3*89c4ff92SAndroid Build Coastguard Worker--- a/common/types/src/SharedMemoryAndroid.cpp
4*89c4ff92SAndroid Build Coastguard Worker+++ b/common/types/src/SharedMemoryAndroid.cpp
5*89c4ff92SAndroid Build Coastguard Worker@@ -115,8 +115,23 @@ GeneralResult<SharedMemory> allocateSharedMemory(size_t size) {
6*89c4ff92SAndroid Build Coastguard Worker     return createSharedMemoryFromUniqueFd(size, prot, std::move(fd), offset);
7*89c4ff92SAndroid Build Coastguard Worker }
8*89c4ff92SAndroid Build Coastguard Worker
9*89c4ff92SAndroid Build Coastguard Worker-GeneralResult<Mapping> map(const Memory::Ashmem& /*memory*/) {
10*89c4ff92SAndroid Build Coastguard Worker-    return NN_ERROR(ErrorStatus::INVALID_ARGUMENT) << "Cannot map ashmem memory";
11*89c4ff92SAndroid Build Coastguard Worker+//GeneralResult<Mapping> map(const Memory::Ashmem& /*memory*/) {
12*89c4ff92SAndroid Build Coastguard Worker+//    return NN_ERROR(ErrorStatus::INVALID_ARGUMENT) << "Cannot map ashmem memory";
13*89c4ff92SAndroid Build Coastguard Worker+//}
14*89c4ff92SAndroid Build Coastguard Worker+
15*89c4ff92SAndroid Build Coastguard Worker+GeneralResult<Mapping> map(const Memory::Ashmem& memory) {
16*89c4ff92SAndroid Build Coastguard Worker+    constexpr off64_t offset = 0;
17*89c4ff92SAndroid Build Coastguard Worker+    constexpr int prot = PROT_READ | PROT_WRITE;
18*89c4ff92SAndroid Build Coastguard Worker+    std::shared_ptr<base::MappedFile> mapping =
19*89c4ff92SAndroid Build Coastguard Worker+            base::MappedFile::FromFd(memory.fd, offset, memory.size, prot);
20*89c4ff92SAndroid Build Coastguard Worker+    if (mapping == nullptr || mapping->data() == nullptr) {
21*89c4ff92SAndroid Build Coastguard Worker+        return NN_ERROR() << "Can't mmap the file descriptor.";
22*89c4ff92SAndroid Build Coastguard Worker+    }
23*89c4ff92SAndroid Build Coastguard Worker+    return Mapping{
24*89c4ff92SAndroid Build Coastguard Worker+            .pointer = mapping->data(),
25*89c4ff92SAndroid Build Coastguard Worker+            .size = memory.size,
26*89c4ff92SAndroid Build Coastguard Worker+            .context = std::move(mapping),
27*89c4ff92SAndroid Build Coastguard Worker+    };
28*89c4ff92SAndroid Build Coastguard Worker }
29*89c4ff92SAndroid Build Coastguard Worker
30*89c4ff92SAndroid Build Coastguard Worker #endif  // NN_COMPATIBILITY_LIBRARY_BUILD
31*89c4ff92SAndroid Build Coastguard Workerdiff --git a/runtime/NeuralNetworks.cpp b/runtime/NeuralNetworks.cpp
32*89c4ff92SAndroid Build Coastguard Workerindex 678888e9f..805a600bb 100644
33*89c4ff92SAndroid Build Coastguard Worker--- a/runtime/NeuralNetworks.cpp
34*89c4ff92SAndroid Build Coastguard Worker+++ b/runtime/NeuralNetworks.cpp
35*89c4ff92SAndroid Build Coastguard Worker@@ -1927,7 +1927,7 @@ int SL_ANeuralNetworksDevice_forEachVendorExtensionOperandTypeInformation(
36*89c4ff92SAndroid Build Coastguard Worker #define NNCL_FUNC(symbol) .symbol = symbol
37*89c4ff92SAndroid Build Coastguard Worker
38*89c4ff92SAndroid Build Coastguard Worker NnApiSLDriverImplFL7 slDriverImpl{
39*89c4ff92SAndroid Build Coastguard Worker-        .base{.implFeatureLevel = ANEURALNETWORKS_FEATURE_LEVEL_7},
40*89c4ff92SAndroid Build Coastguard Worker+        .base={.implFeatureLevel = ANEURALNETWORKS_FEATURE_LEVEL_7},
41*89c4ff92SAndroid Build Coastguard Worker         NNCL_FUNC(ANeuralNetworksBurst_create),
42*89c4ff92SAndroid Build Coastguard Worker         NNCL_FUNC(ANeuralNetworksBurst_free),
43*89c4ff92SAndroid Build Coastguard Worker         NNCL_FUNC(ANeuralNetworksCompilation_createForDevices),
44