From 69e3aa3b1f88765e04eb88e9a4fbc28be6d03110 Mon Sep 17 00:00:00 2001 From: Ashutosh Joshi Date: Tue, 22 Nov 2016 14:08:20 -0800 Subject: [PATCH] Modify ContextHubHAL Change the loadNanoApp signature to take the nanoapp binary as a vector. Add some clarifications about timing. Remove redundant parameter hubId from callbacks. Test: update_makefiles.sh Change-Id: I48cc0ba0001ac80329ac83148ebefdaa7deaa8bf --- contexthub/1.0/IContexthub.hal | 22 ++++++++++++++++++---- contexthub/1.0/IContexthubCallback.hal | 25 ++++++++++++++----------- contexthub/1.0/types.hal | 1 + 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/contexthub/1.0/IContexthub.hal b/contexthub/1.0/IContexthub.hal index 8d19aebdf5..8c792fd387 100644 --- a/contexthub/1.0/IContexthub.hal +++ b/contexthub/1.0/IContexthub.hal @@ -60,9 +60,11 @@ interface IContexthub { * After the init method for nanoApp returns success, this must be indicated * to the service by an asynchronous call to handleTxnResult. * + * Loading a nanoapp must not take more than 30 seconds. + * * @param hubId identifer of the contextHub - * appBinary binary for the nanoApp - * msg message to be sent + * appBinary serialized NanoApppBinary for the nanoApp + * transactionId transactionId for this call * * @return result OK if transation started * BAD_VALUE if parameters are not sane @@ -71,7 +73,9 @@ interface IContexthub { * TRANSACTION_FAILED if load failed synchronously * */ - loadNanoApp(uint32_t hubId, NanoAppBinary appBinary, uint32_t transactionId) + loadNanoApp(uint32_t hubId, + vec appBinary, + uint32_t transactionId) generates (Result result); /** @@ -79,6 +83,8 @@ interface IContexthub { * After this, success must be indicated to the service through an * asynchronous call to handleTxnResult. * + * Unloading a nanoapp must not take more than 5 seconds. + * * @param hubId identifer of the contextHub * appId appIdentifier returned by the HAL * msg message to be sent @@ -98,6 +104,8 @@ interface IContexthub { * After this, success must be indicated to the service through an * asynchronous message. * + * Enabling a nanoapp must not take more than 5 seconds. + * * @param hubId identifer of the contextHub * appId appIdentifier returned by the HAL * msg message to be sent @@ -117,6 +125,8 @@ interface IContexthub { * After this, success must be indicated to the service through an * asynchronous message. * + * Disabling a nanoapp must not take more than 5 seconds. + * * @param hubId identifer of the contextHub * appId appIdentifier returned by the HAL * msg message to be sent @@ -136,7 +146,11 @@ interface IContexthub { * * @param hubId identifer of the contextHub * - * @return apps all nanoApps on the hub + * @return apps all nanoApps on the hub. + * All nanoApps that can be modified by the service must + * be returned. A non-modifiable nanoapps must not be + * returned. A modifiable nanoApp is one that can be + * unloaded/disabled/enabled by the service. * */ queryApps(uint32_t hubId) generates (Result result); diff --git a/contexthub/1.0/IContexthubCallback.hal b/contexthub/1.0/IContexthubCallback.hal index 29c41ce420..9e9cf27835 100644 --- a/contexthub/1.0/IContexthubCallback.hal +++ b/contexthub/1.0/IContexthubCallback.hal @@ -22,41 +22,44 @@ interface IContexthubCallback { * implementation to allow the HAL to send asynchronous messages back * to the service and registered clients of the ContextHub service. * - * @params hubId : identifier of the hub calling callback - * msg : message + * @params msg : message * */ - handleClientMsg(uint32_t hubId, ContextHubMsg msg); + handleClientMsg(ContextHubMsg msg); /* * This callback is passed by the Contexthub service to the HAL * implementation to allow the HAL to send the response for a * transaction. * - * @params hubId : identifier of the hub calling callback - * txnId : transaction id whose result is being sent + * @params txnId : transaction id whose result is being sent * passed in by the service at start of transacation. * result: result of transaction. * */ - handleTxnResult(uint32_t hubId, uint32_t txnId, - TransactionResult result); + handleTxnResult(uint32_t txnId, TransactionResult result); /* * This callback is passed by the Contexthub service to the HAL * implementation to allow the HAL to send an asynchronous event * to the ContextHub service. * - * @params hubId : identifier of the hub calling callback - * msg : message + * @params msg : message * */ - handleHubEvent(uint32_t hubId, AsyncEventType evt); + handleHubEvent(AsyncEventType evt); /* * This callback is passed by the Contexthub service to the HAL * implementation to allow the HAL to send information about the * currently loaded and active nanoapps on the hub. + * + * @params appInfo : vector of HubAppinfo structure for each nanoApp + * on the hub that can be enabled, disabled and + * unloaded by the service. Any nanoApps that cannot + * be controlled by the service must not be reported. + * All nanoApps that can be controlled by the service + * must be reported. */ - handleAppsInfo(uint32_t hubId, vec appInfo); + handleAppsInfo(vec appInfo); }; diff --git a/contexthub/1.0/types.hal b/contexthub/1.0/types.hal index b9f014bf75..043bb39d57 100644 --- a/contexthub/1.0/types.hal +++ b/contexthub/1.0/types.hal @@ -18,6 +18,7 @@ package android.hardware.contexthub@1.0; enum Result : uint32_t { OK, // Success + UNKNOWN_FAILURE, // Failure, unknown reason BAD_PARAMS, // Parameters not sane NOT_INIT, // not initialized TRANSACTION_FAILED, // transaction failed