diff --git a/common/SharedMemoryAndroid.cpp b/common/SharedMemoryAndroid.cpp index 4730de36b..896d643e7 100644 --- a/common/SharedMemoryAndroid.cpp +++ b/common/SharedMemoryAndroid.cpp @@ -160,8 +160,19 @@ GeneralResult allocateSharedMemory(size_t size) { return createSharedMemoryFromUniqueFd(size, prot, std::move(fd), offset); } -GeneralResult map(const Memory::Ashmem& /*memory*/) { - return NN_ERROR(ErrorStatus::INVALID_ARGUMENT) << "Cannot map ashmem memory"; +GeneralResult map(const Memory::Ashmem& memory) { + constexpr off64_t offset = 0; + constexpr int prot = PROT_READ | PROT_WRITE; + std::shared_ptr mapping = + base::MappedFile::FromFd(memory.fd, offset, memory.size, prot); + if (mapping == nullptr || mapping->data() == nullptr) { + return NN_ERROR() << "Can't mmap the file descriptor."; + } + return Mapping{ + .pointer = mapping->data(), + .size = memory.size, + .context = std::move(mapping), + }; } #endif // NN_COMPATIBILITY_LIBRARY_BUILD diff --git a/runtime/NeuralNetworks.cpp b/runtime/NeuralNetworks.cpp index b91d3ce45..8977dac68 100644 --- a/runtime/NeuralNetworks.cpp +++ b/runtime/NeuralNetworks.cpp @@ -1859,7 +1859,7 @@ int SL_ANeuralNetworksDevice_forEachVendorExtensionOperandTypeInformation( #define NNCL_FUNC(symbol) .symbol = symbol NnApiSLDriverImplFL5 slDriverImpl{ - .base{.implFeatureLevel = ANEURALNETWORKS_FEATURE_LEVEL_5}, + .base={.implFeatureLevel = ANEURALNETWORKS_FEATURE_LEVEL_5}, NNCL_FUNC(ANeuralNetworksBurst_create), NNCL_FUNC(ANeuralNetworksBurst_free), NNCL_FUNC(ANeuralNetworksCompilation_createForDevices),