diff --git a/current.txt b/current.txt index f4aa57ebd5..ce3d7b5deb 100644 --- a/current.txt +++ b/current.txt @@ -478,4 +478,6 @@ b53ac9d61c24efb16a2d63a861cef20680f6d57adb244a03b9778c675550628b android.hardwar # ABI preserving changes to HALs during Android R b69a7615c508acf5c5201efd1bfa3262167874fc3594e2db5a3ff93addd8ac75 android.hardware.keymaster@4.0::IKeymasterDevice +ad431c8de51c07934a068e3043d8dd0537ac4d3158627706628b123f42df48dc android.hardware.neuralnetworks@1.0::IPreparedModel +aafcc10cf04ab247e86d4582586c71c6b4c2b8c479241ffa7fe37deb659fc942 android.hardware.neuralnetworks@1.2::IPreparedModel 1a6e2bd289f22931c526b21916910f1d4c436b7acb9556e4243de4ce8e6cc2e4 android.hardware.soundtrigger@2.0::ISoundTriggerHwCallback diff --git a/neuralnetworks/1.0/IPreparedModel.hal b/neuralnetworks/1.0/IPreparedModel.hal index ecaa7f830a..53200506dd 100644 --- a/neuralnetworks/1.0/IPreparedModel.hal +++ b/neuralnetworks/1.0/IPreparedModel.hal @@ -42,6 +42,13 @@ interface IPreparedModel { * execute function. This callback must be provided with the ErrorStatus of * the execution. * + * If the launch is successful, the caller must not change the content of + * any data object referenced by 'request' (described by the + * {@link DataLocation} of a {@link RequestArgument}) until the + * asynchronous task has invoked the callback object. The asynchronous task + * must not change the content of any of the data objects corresponding to + * 'request' inputs. + * * If the prepared model was prepared from a model wherein all * tensor operands have fully specified dimensions, and the inputs * to the function are valid, then the execution should launch diff --git a/neuralnetworks/1.2/IPreparedModel.hal b/neuralnetworks/1.2/IPreparedModel.hal index 5d2d80ff71..ba163342b8 100644 --- a/neuralnetworks/1.2/IPreparedModel.hal +++ b/neuralnetworks/1.2/IPreparedModel.hal @@ -47,6 +47,13 @@ interface IPreparedModel extends @1.0::IPreparedModel { * execute_1_2 function. This callback must be provided with the ErrorStatus of * the execution. * + * If the launch is successful, the caller must not change the content of + * any data object referenced by 'request' (described by the + * {@link @1.0::DataLocation} of a {@link @1.0::RequestArgument}) until the + * asynchronous task has invoked the callback object. The asynchronous task + * must not change the content of any of the data objects corresponding to + * 'request' inputs. + * * If the prepared model was prepared from a model wherein all * tensor operands have fully specified dimensions, and the inputs * to the function are valid, then the execution should launch @@ -90,6 +97,12 @@ interface IPreparedModel extends @1.0::IPreparedModel { * perform the execution, and must not return until the execution is * complete. * + * The caller must not change the content of any data object referenced by + * 'request' (described by the {@link @1.0::DataLocation} of a + * {@link @1.0::RequestArgument}) until executeSynchronously + * returns. executeSynchronously must not change the content of any of the + * data objects corresponding to 'request' inputs. + * * If the prepared model was prepared from a model wherein all tensor * operands have fully specified dimensions, and the inputs to the function * are valid, then the execution should complete successfully @@ -135,9 +148,15 @@ interface IPreparedModel extends @1.0::IPreparedModel { * @param callback A callback object used to retrieve memory resources * corresponding to a unique identifiers ("slots"). * @param requestChannel Used by the client to send a serialized Request to - * the Burst for execution. requestChannel must not be - * used to pass a second Request object until a result - * has been received from resultChannel. + * the Burst for execution. The client must not change + * the content of any data object referenced by the + * Request (described by the {@link @1.0::DataLocation} + * of an {@link OperandInformation}) until a result + * has been received from resultChannel. Execution + * must not change the content of any of the data + * objects corresponding to Request inputs. requestChannel + * must not be used to pass a second Request object + * until a result has been received from resultChannel. * @param resultChannel Used by the service to return the results of an * execution to the client: the status of the execution * and OutputShape of all output tensors. resultChannel