SrvMgr: Enhance Service Manager to allow multiple services
authorSuman Anna <s-anna@ti.com>
Thu, 19 Apr 2012 00:39:00 +0000 (19:39 -0500)
committerSuman Anna <s-anna@ti.com>
Thu, 10 May 2012 20:43:14 +0000 (15:43 -0500)
commit322c3fa127b822f4d1108c65db2b499f08e08688
tree36658ba3b77a75c5e9bfe72377380abb5d53caa2
parentedd1bf993f0fdf1c6416d395306410c864d24dc4
SrvMgr: Enhance Service Manager to allow multiple services

The Service Manager module has been enhanced to allow different
services to use its infrastructure. This is done to allow other
IPC protocols to use the VirtQueue transport infrastructure
in tandem.

The OMX Service that is inherently tied into Service Manager
is now decoupled and moved out of the Service Manager code
and is built as an independent library.

This is achieved through the following:
1. The internal functions to create and delete different
   instances of a service are made public through the API,
   ServiceMgr_createService and ServiceMgr_deleteService.
   The signature of these functions remain identical to the
   previous internal functions:
     UInt32 ServiceMgr_createService(Char * name, UInt32 * endpt);
     UInt32 ServiceMgr_deleteService(UInt32 addr);

2. A new API, ServiceMgr_registerSrvTask, is added that allows
   an external library to register its service task function
   with the ServiceMgr module. The registration is expected to
   be fairly early during the base image execution. All the task
   parameters are to be initialized before registering with
   ServiceMgr.
     Bool ServiceMgr_registerSrvTask(UInt16 reserved,
                                     Task_FuncPtr func,
                                     Task_Params *taskParams)

3. A new API, ServiceMgr_start, is added that allows all the
   registered services to be started. All service registrations
   has to be done before a call to this function. The reserved
   argument is to be used for future scalability for starting
   services with different processors, and is currently
   ignored.
     UInt ServiceMgr_start(UInt16 reserved);

OMX Service is registered and included in the executable at
configuration time.

Simultaneous support for non-SMP and SMP-mode libraries has
also been added.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
src/.gitignore
src/ti/srvmgr/ServiceMgr.c
src/ti/srvmgr/ServiceMgr.h
src/ti/srvmgr/omx/OmxSrvMgr.c [new file with mode: 0644]
src/ti/srvmgr/omx/OmxSrvMgr.xdc [new file with mode: 0644]
src/ti/srvmgr/omx/OmxSrvMgr.xs [new file with mode: 0644]
src/ti/srvmgr/omx/package.bld [new file with mode: 0644]
src/ti/srvmgr/omx/package.xdc [new file with mode: 0644]
src/ti/srvmgr/omx/package.xs [new file with mode: 0644]