diff options
author | Michael Butler <butlermichael@google.com> | 2022-01-29 13:54:36 -0800 |
---|---|---|
committer | Michael Butler <butlermichael@google.com> | 2022-01-31 19:26:57 +0000 |
commit | 6b0905cb69d428a75992ed372677dfde45df40e8 (patch) | |
tree | 0b23d59b4d47a2d4442d0d59ef60296bb860795e /neuralnetworks/aidl/utils/src/Conversions.cpp | |
parent | 350d762bcc65b4021b1124150cc0f4775f7061f7 (diff) |
Move NNAPI HAL CommonUtils to nnapi/SharedMemory -- hal
This CL relocates utility code that transfers data between pointer-based
memory and shared memory for Request objects and Model objects, moving
it from nnapi/hal/CommonUtils.h (hal utilities) to nnapi/SharedMemory.h
(canonical library).
This change also adds a check for whether Model and Requests have
pointer-based data in neuralnetworks/aidl/utils/src/Conversions.cpp to
make it consistent with the HIDL utility conversions.
Bug: 217217023
Test: mma
Test: presubmit
Change-Id: I55a0fea186708d806bc709681e10027a9e4b0ffb
Diffstat (limited to 'neuralnetworks/aidl/utils/src/Conversions.cpp')
-rw-r--r-- | neuralnetworks/aidl/utils/src/Conversions.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/neuralnetworks/aidl/utils/src/Conversions.cpp b/neuralnetworks/aidl/utils/src/Conversions.cpp index eb28db7587..9b897c43ac 100644 --- a/neuralnetworks/aidl/utils/src/Conversions.cpp +++ b/neuralnetworks/aidl/utils/src/Conversions.cpp @@ -967,6 +967,11 @@ nn::GeneralResult<ExtensionNameAndPrefix> unvalidatedConvert( } nn::GeneralResult<Model> unvalidatedConvert(const nn::Model& model) { + if (!hal::utils::hasNoPointerData(model)) { + return NN_ERROR(nn::ErrorStatus::INVALID_ARGUMENT) + << "Model cannot be unvalidatedConverted because it contains pointer-based memory"; + } + return Model{ .main = NN_TRY(unvalidatedConvert(model.main)), .referenced = NN_TRY(unvalidatedConvert(model.referenced)), @@ -982,6 +987,11 @@ nn::GeneralResult<Priority> unvalidatedConvert(const nn::Priority& priority) { } nn::GeneralResult<Request> unvalidatedConvert(const nn::Request& request) { + if (!hal::utils::hasNoPointerData(request)) { + return NN_ERROR(nn::ErrorStatus::INVALID_ARGUMENT) + << "Request cannot be unvalidatedConverted because it contains pointer-based memory"; + } + return Request{ .inputs = NN_TRY(unvalidatedConvert(request.inputs)), .outputs = NN_TRY(unvalidatedConvert(request.outputs)), |