diff --git a/Android.bp b/Android.bp index 4dfd4c8..f8c0d60 100644 --- a/Android.bp +++ b/Android.bp @@ -20,3 +20,8 @@ hidl_package_root { name: "vendor.display", path: "vendor/qcom/opensource/interfaces/display", } + +hidl_package_root { + name: "vendor.qti.hardware.servicetracker", + path: "vendor/qcom/opensource/interfaces/servicetracker", +} diff --git a/servicetracker/1.0/IServicetracker.hal b/servicetracker/1.0/IServicetracker.hal new file mode 100644 index 0000000..9560e01 --- /dev/null +++ b/servicetracker/1.0/IServicetracker.hal @@ -0,0 +1,116 @@ +/* +* Copyright (c) 2019 The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation. nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +package vendor.qti.hardware.servicetracker@1.0; + +/** +*Interface that collects all the updated information related to +*Client and Service and share the needed information with +*other components. +*/ +interface IServicetracker { + /** + *Collect the information related to service that is just started + *@param serviceData contains details of the service,@param clientData + *contains the details of client which has started the service + */ + oneway startService(ServiceData serviceData); + + /** + *Collect and update the information for the service which is just bound to + *@param clientData + */ + oneway bindService(ServiceData serviceData, ClientData clientData); + + /** + *Update the bind information of sevice,client pair specified + *by @param serviceData and @param clientData + */ + oneway unbindService(ServiceData serviceData, ClientData clientData); + + /** + *Update the service information when service specified by + *@param serviceData has been destroyed + */ + oneway destroyService(ServiceData serviceData); + + /** + *Update the service and client information when process + *specified by @param pid got killed + */ + oneway killProcess(int32_t pid); + + /** + *Return all the details related to Client specified by @param + *clientName + */ + getclientInfo(string clientName) generates (Status status, ClientRecord client); + + /** + *Return all the details related to Service specified by @param + *serviceName + */ + getserviceInfo(string serviceName) generates (Status status, ServiceRecord service); + + /** + *Return list of clients associated with the service specified by + *@param serviceName + */ + getServiceConnections(string serviceName) generates (Status status, vec conn); + + /** + *Return the list of services associated with the client + *specified by @param clientName + */ + getClientConnections(string clientName) generates (Status status, vec conn); + + /** + *Return the pid of the process specified by @param processName + */ + getPid(string processName) generates (Status status, int32_t pid); + + /** + *Return the pid of the services listed in @param serviceList + */ + getPids(vec serviceList) generates (Status status, vec pidList); + + /** + *Return whether a service specified by @param serviceName is + *B-Service or not + */ + isServiceB(string serviceName) generates (Status status, bool serviceB); + + /** + *generate the list of b services running in system + */ + getServiceBCount() generates (Status status, vec bServiceList, int32_t count); +}; + + + diff --git a/servicetracker/1.0/types.hal b/servicetracker/1.0/types.hal new file mode 100644 index 0000000..ce4dc9f --- /dev/null +++ b/servicetracker/1.0/types.hal @@ -0,0 +1,111 @@ +/* +* Copyright (c) 2019 The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation. nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +package vendor.qti.hardware.servicetracker@1.0; + +/** +*Enum Values indicating the result of operation +*/ +enum Status : int32_t { + /** No errors. */ + SUCCESS, + /** + *the component for which the query is made + * is not yet available + */ + ERROR_NOT_AVAILABLE, + /** the arguments passed are invalid*/ + ERROR_INVALID_ARGS, + /** + *the information asked for the componenent + *is not supported + */ + ERROR_NOT_SUPPORTED, + ERROR_UNKNOWN +}; + +/** +*Client information recieved by AMS +*/ +struct ClientData { + string processName; + int32_t pid; +}; + +/** +*Service information recieved by AMS +*/ +struct ServiceData { + string packageName; + string processName; + int32_t pid; + double lastActivity; + bool serviceB; +}; + +/** +*structure to define client to service connection +*/ +struct ClientConnection { + string serviceName; + int32_t servicePid; + int32_t count; +}; + + +/** +*structure to define service to client connection +*/ +struct ServiceConnection { + string clientName; + int32_t clientPid; + int32_t count; +}; + +/** +*Client information +*/ +struct ClientRecord { + string processName; + int32_t pid; + vec conn; +}; + +/** +*Service information +*/ +struct ServiceRecord { + string packageName; + string processName; + int32_t pid; + bool serviceB; + double lastActivity; + vec conn; +}; +