[DCE] Add initial code for DSP
authorPradeep Venkatasubbarao <pradeepv@ti.com>
Mon, 18 Nov 2013 05:10:06 +0000 (10:40 +0530)
committerPradeep Venkatasubbarao <pradeepv@ti.com>
Mon, 18 Nov 2013 05:10:06 +0000 (10:40 +0530)
This is the first draft of the DCE code on DSP.
It contains a sample Universal Copy codec below the
VIDEC2 interface.

Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
65 files changed:
Makefile [new file with mode: 0644]
bldcfg.mk [new file with mode: 0644]
build/common.bld [new file with mode: 0644]
build/config.bld [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/UNIVERSAL.version.01.00.00.00.wizardversion.0.5.3 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/UNIVERSAL.xdc [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/UNIVERSAL.xdc [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/UNIVERSAL.xs [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package.bld [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package.xdc [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_b150 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_c150 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_g180 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_r170 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.xdc-v49 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/build.cfg [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.bld.xml [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.defs.h [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.doc.xml [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.ext.xml [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.rel.dot [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.rel.xml [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package_ti.sdo.codecs.universal.ce.c [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti.sdo.codecs.universal.ce.ccs [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti.sdo.codecs.universal.ce.sch [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti_sdo_codecs_universal_ce.class [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti_sdo_codecs_universal_ce.java [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/iuniversal.h [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/lib/universal_copy.ae66 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/link.xdt [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.bld [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.xdc [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.xs [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_b150 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_c150 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_g180 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_r170 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.xdc-v49 [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/build.cfg [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.bld.xml [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.defs.h [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.doc.xml [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.ext.xml [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.rel.dot [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.rel.xml [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package_ti.sdo.codecs.universal.c [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti.sdo.codecs.universal.ccs [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti.sdo.codecs.universal.sch [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti_sdo_codecs_universal.class [new file with mode: 0644]
extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti_sdo_codecs_universal.java [new file with mode: 0644]
platform/ti/dce/baseimage/custom_rsc_table_omap5_dsp.h [new file with mode: 0644]
platform/ti/dce/baseimage/custom_rsc_table_vayu_dsp.h [new file with mode: 0644]
platform/ti/dce/baseimage/dce_dsp.cfg [new file with mode: 0644]
platform/ti/dce/baseimage/load_task.c [new file with mode: 0644]
platform/ti/dce/baseimage/main.c [new file with mode: 0644]
platform/ti/dce/baseimage/package.bld [new file with mode: 0644]
platform/ti/dce/baseimage/package.xdc [new file with mode: 0644]
platform/ti/dce/baseimage/ping_tasks.c [new file with mode: 0644]
src/ti/framework/dce/dce.c [new file with mode: 0644]
src/ti/framework/dce/dce_priv.h [new file with mode: 0644]
src/ti/framework/dce/dce_rpc.h [new file with mode: 0644]
src/ti/framework/dce/package.bld [new file with mode: 0644]
src/ti/framework/dce/package.xdc [new file with mode: 0644]
src/ti/framework/dce/package.xs [new file with mode: 0644]
src/ti/utils/osal/trace.h [new file with mode: 0644]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..a65ac9a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,211 @@
+#
+# =====================================================================
+# Copyright (C) 2012 Texas Instruments Incorporated
+#
+# All rights reserved. Property of Texas Instruments Incorporated.
+# Restricted rights to use, duplicate or disclose this code are
+# granted through contract.
+#
+# The program may not be used without the written permission
+# of Texas Instruments Incorporated or against the terms and conditions
+# stipulated in the agreement under which this program has been
+# supplied.
+# =====================================================================
+#
+
+# Repo
+BIOSTOOLSROOT  ?= /opt/ti
+REPO           := $(BIOSTOOLSROOT)
+
+# Different tool versions can easily be programmed by defining below variables
+# in your environment.
+XDCVERSION     ?= xdctools_3_25_02_70
+BIOSVERSION    ?= bios_6_35_02_45
+IPCVERSION     ?= ipc_3_10_00_08
+CEVERSION      ?= codec_engine_3_24_00_08
+#FCVERSION     ?= framework_components_3_24_00_09
+FCVERSION      ?= framework_components_3_24_02_14_eng
+XDAISVERSION   ?= xdais_7_24_00_04
+OSALVERSION    ?= osal_1_24_00_09
+
+# TI Compiler Settings
+export CGT_C66X_ELF_INSTALL_DIR ?= /opt/ti/TI_CGT_TI_C66X_7.2.3
+
+# Define where the sources are
+DSPDCEMMSRC    = $(shell pwd)
+TIVIDEOTOOLSROOT ?= $(BIOSTOOLSROOT)
+
+# Generate the full package paths for tools
+BIOSPROD       = $(REPO)/$(BIOSVERSION)
+CEPROD         = $(TIVIDEOTOOLSROOT)/$(CEVERSION)
+FCPROD         = $(TIVIDEOTOOLSROOT)/$(FCVERSION)
+XDAISPROD      = $(REPO)/$(XDAISVERSION)
+OSALPROD       = $(REPO)/$(OSALVERSION)
+
+# XDC settings
+export XDCBUILDCFG = $(DSPDCEMMSRC)/build/config.bld
+
+XDCDIST_TREE   = $(REPO)/$(XDCVERSION)
+export XDCROOT = $(XDCDIST_TREE)
+
+export XDCPATH  = $(BIOSPROD)/packages;$(IPCSRC)/packages;$(CEPROD)/packages;$(FCPROD)/packages;$(XDAISPROD)/packages;$(OSALPROD)/packages;$(DSPDCEMMSRC)/extrel/ti/dsp_codecs/packages;$(DSPDCEMMSRC)/src;
+
+# Custom settings for build
+JOBS           ?= 1
+# Set profile, always set as release version. Alternate option is "debug"
+PROFILE                ?= release
+# Set debug/trace level from 0 to 4
+TRACELEVEL     ?= 0
+# Offloads core to sysm3 code
+OFFLOAD                ?= 1
+# Set to Non-SMP by default
+FORSMP         ?= 0
+# Set Instrumentation to be allowed (ENABLE to enable it)
+SETINST                ?= ENABLE
+# Set HW revision type- OMAP5:ES20, VAYU:ES10
+HWVERSION   ?= ES10
+
+all: dspbin
+
+# Include platform build configuration
+config:
+ifeq (bldcfg.mk,$(wildcard bldcfg.mk))
+include bldcfg.mk
+else
+       @echo "No config selected. Please configure the build first and then try to build."
+       @echo "For more info, use 'make help'"
+       @exit 1
+endif
+
+unconfig:
+       @echo "Removed existing configuration"
+       @rm -f bldcfg.mk
+
+vayu_config: unconfig
+       @echo "Creating new config\c"
+       @echo DSP_CONFIG = vayu_config > bldcfg.mk
+       @echo ".\c"
+       @echo MYXDCARGS=\"profile=$(PROFILE) trace_level=$(TRACELEVEL) hw_type=VAYU hw_version=$(HWVERSION) BIOS_type=non-SMP\" >> bldcfg.mk
+       @echo ".\c"
+       @echo CHIP = VAYU >> bldcfg.mk
+       @echo ".\c"
+       @echo FORSMP = 0 >> bldcfg.mk
+       @echo ".\c"
+       @echo DSPBINNAME = "dra7xx-c66x-dsp.xe66" >> bldcfg.mk
+       @echo INTBINNAME = "dsp.xe66" >> bldcfg.mk
+       @echo ".\c"
+       @echo "done"
+
+omap5_config: unconfig
+       @echo "Creating new config\c"
+       @echo DSP_CONFIG = omap5_smp_config > bldcfg.mk
+       @echo ".\c"
+       @echo MYXDCARGS=\"profile=$(PROFILE) trace_level=$(TRACELEVEL) hw_type=OMAP5 hw_version=$(HWVERSION) BIOS_type=non-SMP\" >> bldcfg.mk
+       @echo ".\c"
+       @echo CHIP = OMAP5 >> bldcfg.mk
+       @echo ".\c"
+       @echo FORSMP = 0 >> bldcfg.mk
+       @echo ".\c"
+       @echo DSPBINNAME = "omap5-dsp.xe66x" >> bldcfg.mk
+       @echo INTBINNAME = "dsp.xe66x" >> bldcfg.mk
+       @echo ".\c"
+       @echo "done"
+
+clean: config
+       export XDCARGS=$(MYXDCARGS); \
+        $(XDCROOT)/xdc --jobs=$(JOBS) clean -PD $(DSPDCEMMSRC)/platform/ti/dce/baseimage/.
+
+build: config
+ifeq ($(IPCSRC),)
+       @echo "ERROR: IPCSRC not set. Exiting..."
+       @echo "For more info, use 'make help'"
+       @exit 1
+else ifeq ($(CGT_C66X_ELF_INSTALL_DIR),)
+       @echo "ERROR: CGT_C66X_ELF_INSTALL_DIR not set. Exiting..."
+       @echo "For more info, use 'make help'"
+       @exit 1
+endif
+       export XDCARGS=$(MYXDCARGS); \
+       $(XDCROOT)/xdc --jobs=$(JOBS) -PD $(DSPDCEMMSRC)/platform/ti/dce/baseimage/.
+
+dspbin: build
+ifeq ($(FORSMP),0)
+       $(CGT_C66X_ELF_INSTALL_DIR)/bin/strip6x $(DSPDCEMMSRC)/platform/ti/dce/baseimage/out/dsp/$(PROFILE)/$(INTBINNAME) -o=$(DSPBINNAME)
+else
+       @echo "***********Not yet implemented************"
+endif
+
+info: tools sources custom
+tools:
+       @echo "REPO    := $(REPO)"
+       @echo "XDC     := $(XDCDIST_TREE)"
+       @echo "BIOS    := $(BIOSPROD)"
+       @echo "OSAL    := $(OSALPROD)"
+       @echo "FC      := $(FCPROD)"
+       @echo "CE      := $(CEPROD)"
+       @echo "XDAIS   := $(XDAISPROD)"
+       @echo "CGT_C66X_ELF_INSTALL_DIR := $(CGT_C66X_ELF_INSTALL_DIR)"
+       @echo " "
+
+sources:
+       @echo "IPC  := $(IPCSRC)"
+       @echo " "
+
+       @echo "DSPDCEMMSRC  := $(DSPDCEMMSRC)"
+       @echo "DSPDCEMMSRC info: $(shell git --git-dir=$(DSPDCEMMSRC)/.git --work-tree=$(DSPDCEMMSRC)/ log --pretty=format:'%ad %h %d' --oneline --date=short -1 )"
+       @echo "DUCATIMMSRC describe: $(shell git --git-dir=$(DSPDCEMMSRC)/.git --work-tree=$(DSPDCEMMSRC)/ describe --dirty)"
+       @echo " "
+
+custom:
+       @echo "JOBS       := $(JOBS)"
+       @echo "PROFILE    := $(PROFILE)"
+       @echo "TRACELEVEL := $(TRACELEVEL)"
+       @echo "OFFLOAD    := $(OFFLOAD)"
+       @echo "FORSMP     := $(FORSMP)"
+       @echo "SETINST    := $(SETINST)"
+       @echo "HWVERSION  := $(HWVERSION)"
+       @echo " "
+       @echo "Ducati configuration used:  $(DSP_CONFIG)"
+       @echo "Ducati binary name:         $(DSPBINNAME)"
+       @echo " "
+
+help:
+       @echo " "
+       @echo "Please export the following variables: "
+       @echo " 1. BIOSTOOLSROOT - Directory where all the BIOS tools are installed."
+       @echo "                    If not mentioned, picks up the default, /opt/ti"
+       @echo " 2. CGT_C66X_ELF_INSTALL_DIR - DSP Code Generation Tools installation path"
+       @echo "                       If not mentioned, tries the default install location, /opt/ti/TI_CGT_TI_ARM_5.0.1"
+       @echo " 3. IPCSRC - Absolute path of the $(IPCVERSION)"
+       @echo " 4. [Optional] - Any of the following variables can be defined to customize your build."
+       @echo "       JOBS       - To specify the number of parallel build jobs (default is 1)"
+       @echo "       PROFILE    - 'release' or 'debug' profile for the libraries and binaries (default is release)"
+       @echo "       TRACELEVEL - From 0 to 4. Higher the value, more the traces. 0 implies no traces (default is 0)"
+       @echo "       OFFLOAD    - Enable offloading support (default is 1, set to 0 to disable)"
+       @echo " 5. [Optional] - Any of the following variables can be defined to change the default tool versions."
+       @echo "       XDCVERSION       = $(XDCDIST_TREE)"
+       @echo "       BIOSVERSION      = $(BIOSPROD)"
+       @echo "       IPCVERSION       = $(IPCSRC)"
+       @echo "       CEVERSION        = $(CEPROD)"
+       @echo "       FCVERSION        = $(FCPROD)"
+       @echo "       XDAISVERSION     = $(XDAISPROD)"
+       @echo "       OSALVERSION      = $(OSALPROD)"
+       @echo "       CGT_C66X_ELF_INSTALL_DIR = $(CGT_C66X_ELF_INSTALL_DIR)"
+       @echo " "
+       @echo "Use the appropriate make targets from the following: "
+       @echo "  Configure Platform: "
+       @echo "     OMAP5 (SMP)       - export HWVERSION=ES20 && make omap5_smp_config"
+       @echo "     VAYU/J6 (SMP)     - export HWVERSION=ES10 && make vayu_smp_config"
+       @echo "  Build:               - make"
+       @echo "  Clean:               - make clean"
+       @echo "  Generate Binary: "
+       @echo "     Firmware        - make dspbin"
+       @echo "  Information: "
+       @echo "     Tools           - make tools"
+       @echo "     Sources         - make sources"
+       @echo "     Custom          - make custom"
+       @echo "     all 3           - make info"
+       @echo "  Others: "
+       @echo "     Check config    - make config"
+       @echo "     Clean config    - make unconfig"
+       @echo " "
diff --git a/bldcfg.mk b/bldcfg.mk
new file mode 100644 (file)
index 0000000..b6fca34
--- /dev/null
+++ b/bldcfg.mk
@@ -0,0 +1,6 @@
+DSP_CONFIG = vayu_config
+MYXDCARGS="profile=release trace_level=0 hw_type=VAYU hw_version=ES10 BIOS_type=non-SMP"
+CHIP = VAYU
+FORSMP = 0
+DSPBINNAME = dra7xx-c66x-dsp.xe66
+INTBINNAME = dsp.xe66
diff --git a/build/common.bld b/build/common.bld
new file mode 100644 (file)
index 0000000..fa4bb55
--- /dev/null
@@ -0,0 +1,422 @@
+/*
+ *  Copyright 2013 by Texas Instruments Incorporated.
+ *
+ *  All rights reserved. Property of Texas Instruments Incorporated.
+ *  Restricted rights to use, duplicate or disclose this code are
+ *  granted through contract.
+ *
+ */
+
+/*
+ *  ======== common.bld ========
+ *
+ */
+
+
+/*
+ *  ======== getCores ========
+ *  Determines which cores to build for.
+ *
+ *  Any argument in XDCARGS which does not contain core= is treated
+ *  as a core name. This way build for multiple cores can be specified by
+ *  separating them with a space.
+ */
+function getCores(xdcArgs)
+{
+    var coreNames = new Array();
+
+    /* Check for any XDCARGS with core=; these are the corenames */
+    for (var i = 0; i < xdcArgs.length; i++) {
+        if (xdcArgs[i].match(/core=/)) {
+            coreNames.push(xdcArgs[i].substr(5));
+        }
+    }
+
+    return coreNames;
+}
+
+
+/*
+ *  ======== getProfiles ========
+ *  Determines which profiles to build for.
+ *
+ *  Any argument in XDCARGS which does not contain platform= is treated
+ *  as a profile. This way multiple build profiles can be specified by
+ *  separating them with a space.
+ */
+function getProfiles(xdcArgs)
+{
+    var profiles = new Array();
+
+    /* Check for any XDCARGS with profile=; these are profiles. */
+    for (var i = 0; i < xdcArgs.length; i++) {
+        if (xdcArgs[i].match(/profile=/)) {
+            profiles.push(xdcArgs[i].substr(8));
+        }
+    }
+
+    return profiles;
+}
+
+function getBuildModes(xdcArgs)
+{
+    var buildModes = new Array();
+
+    /* Check for any XDCARGS with buildMode=; these are specific
+       build configuration */
+    for (var i = 0; i < xdcArgs.length; i++) {
+        if (xdcArgs[i].match(/buildMode=/)) {
+            buildModes.push(xdcArgs[i].substr(10));
+        }
+    }
+    return buildModes;
+}
+
+
+/*
+ *  ======== getTraceType ========
+ *  Determines which trace type to build for.
+ *
+ *  Any argument in XDCARGS which does not contain trace_type= is treated
+ *  as a trace type name. This way build for different trace type can be specified by
+ *  separating them with a space.
+ * XDCARGS="profile=debug core=app_m3 target_build=BUILD_OMAP4 trace_type=UIA_SW_ON"
+ */
+function getTraceType(xdcArgs)
+{
+    var trace_type = new Array();
+
+    /* Check for any XDCARGS with trace_type=; these are the corenames */
+    for (var i = 0; i < xdcArgs.length; i++) {
+        if (xdcArgs[i].match(/trace_type=/)) {
+            trace_type.push(xdcArgs[i].substr(11));
+        }
+    }
+
+    return trace_type;
+}
+
+/*
+ *  ======== getTargetBuild ========
+ *  Determines which build to use.
+ *
+ */
+function getTargetBuild(xdcArgs)
+{
+    var build = "";
+
+    /* Check for any XDCARGS with target_build= */
+    for (var i = 0; i < xdcArgs.length; i++) {
+        if (xdcArgs[i].match(/target_build=/)) {
+            build = xdcArgs[i].substr(13);
+        }
+    }
+
+    return build;
+}
+
+/*
+ *  ======== getGitTag ========
+ *  Determines TAG.
+ *
+ */
+function getGitTag(xdcArgs)
+{
+    var git_tag = "";
+    /* Check for any XDCARGS with git_tag= */
+    for (var i = 0; i < xdcArgs.length; i++) {
+
+        if (xdcArgs[i].match(/git_tag=/)) {
+           git_tag = xdcArgs[i].substr(8);
+           print("i " + i + "\n");
+        }
+    }
+    return git_tag;
+}
+
+/*
+ *  ======== getGitCommitID ========
+ *  Determines commit ID.
+ *
+ */
+function getGitCommitID(xdcArgs)
+{
+    var commit_id = "";
+
+    /* Check for any XDCARGS with git_commit_id= */
+    for (var i = 0; i < xdcArgs.length; i++) {
+        if (xdcArgs[i].match(/git_commit_id=/)) {
+            commit_id = xdcArgs[i].substr(14);
+        }
+    }
+    print ("commit_id::: " + commit_id +"\n");
+    return commit_id;
+}
+
+/*
+ *  ======== getGitBranch ========
+ *  Determines commit ID.
+ *
+ */
+function getGitBranch(xdcArgs)
+{
+    var branch = "";
+    /* Check for any XDCARGS with git_branch= */
+    for (var i = 0; i < xdcArgs.length; i++) {
+        if (xdcArgs[i].match(/git_branch=/)) {
+            branch = xdcArgs[i].substr(11);
+        }
+    }
+    return branch;
+}
+
+
+/*
+ *  ======== commonGetVersion ========
+ *  Common commonGetVersion function
+ */
+function GetVersionTag()
+{
+  var exitCode = 1;
+  var verFlags = "";
+  status = {};
+  var verInfo;
+  var git_cmd = "git ";
+
+
+  var type_cmd = "type ";
+  var flush_cmd = "echo "
+
+  Program.global.ver_commit_id = ""
+  Program.global.ver_branch = ""
+  Program.global.ver_tag = ""
+
+
+
+  /*Check the target environment */
+  var host_env =environment["user.dir"];
+  if(host_env[1] == ':')
+  {
+    git_cmd = "git.exe "
+    echo_cmd = "c:/windows/system32/cmd /c echo "
+  }
+
+  //branch
+
+  exitCode = xdc.exec(git_cmd + "branch -a", {},  status)
+  if (exitCode == -1)
+  {
+    print("Version Information not Generated \n");
+    return;
+  }
+
+  var lines = status.output.split('\n')
+  for (var i = 0; i < lines.length - 1; i++) {
+    var line = lines[i];
+
+    if(line.indexOf('*')!=-1){
+      var GitBranch = line.substr(2)
+      if (GitBranch.length) {
+            Program.global.ver_branch = GitBranch;
+      }
+      }
+  }
+
+  //commit-id
+  exitCode = xdc.exec(git_cmd + "log --oneline", {},  status)
+  if (exitCode == -1) return verFlags;
+  var lines = status.output.split('\n')
+  var GitCommitId  = lines[0].substr(0,7)
+  if (GitCommitId.length)
+  {
+    Program.global.ver_commit_id = GitCommitId;
+  }
+
+  //tag
+  exitcode = xdc.exec(git_cmd + "describe", {},  status)
+  if (exitCode == -1) return verFlags;
+  var lines = status.output.split('\n')
+  var tail_pos = lines.length
+  var GitTag = lines[0]
+  if (GitTag.length) {
+
+    Program.global.ver_tag=GitTag;
+    print ("gittag" + GitTag + Program.global.ver_tag);
+
+  }
+    //return verFlags;
+}
+
+
+
+
+function buildOptions(xdcArgs, aCompileOpts, coreName)
+{
+    var buildMode = new Array();
+
+    var buildMode = getBuildModes(xdcArgs);
+
+    var compileOpts = "";
+
+    if (aCompileOpts != null){
+        compileOpts += aCompileOpts;
+    }
+    return compileOpts;
+}
+
+
+
+/*
+ *  ======== buildLibs ========
+ *  This function generates the makefile goals for the libraries taking
+ *  into account the profile variants, specific ducati cores and build modes
+ *
+ */
+function buildLibs(objList, trgList, xdcArgs, libCompileOpts, coreName)
+{
+    var compileOpts = buildOptions(xdcArgs, libCompileOpts, coreName);
+    var profiles = getProfiles(xdcArgs);
+    //print ("profile length" + profiles.length +"\t" + "profile0" +  profiles[0] +"\n");
+    /* If no profiles were assigned, build for  whole program debug */
+    if (profiles.length == 0) {
+        profiles[0] = "whole_program_debug";
+    }
+
+    for (var i = 0; i < Build.targets.length; i++) {
+
+        var targ = Build.targets[i];
+
+        for (var j = 0; j < profiles.length; j++) {
+
+            var profile         = profiles[j];
+            var profileOpts     = compileOpts;
+
+            if (profile.match(/release/)) {
+                profileOpts += " -O3";
+            }
+
+            if (coreName == null) {
+                var lib_name = 'lib/' + profile + '/' + Pkg.name ;
+            }
+            else {
+                var lib_name = 'lib/' + coreName + '/' + profile + '/' + Pkg.name ;
+            }
+
+            var lib = Pkg.addLibrary(lib_name, targ, {profile: profile, copts: profileOpts});
+
+            lib.addObjects(objList);
+        }
+    }
+}
+
+/*
+ *  ======== buildLibsByName ========
+ *  This function generates the makefile goals for the libraries taking
+ *  into account the profile variants, specific ducati cores and build
+ *  modes. The output library name can be specified by user.
+ *
+ */
+function buildLibsByName(objList, trgList, xdcArgs, libCompileOpts, coreName, name)
+{
+    var compileOpts = buildOptions(xdcArgs, libCompileOpts, coreName);
+    var profiles = getProfiles(xdcArgs);
+    //print ("profile length" + profiles.length +"\t" + "profile0" +  profiles[0] +"\n");
+    /* If no profiles were assigned, build for  whole program debug */
+    if (profiles.length == 0) {
+        profiles[0] = "whole_program_debug";
+    }
+
+    for (var i = 0; i < Build.targets.length; i++) {
+
+        var targ = Build.targets[i];
+
+        for (var j = 0; j < profiles.length; j++) {
+
+            var profile         = profiles[j];
+            var profileOpts     = compileOpts;
+
+            if (profile.match(/release/)) {
+                profileOpts += " -O3";
+            }
+
+            if (coreName == null) {
+                var lib_name = 'lib/' + profile + '/' + name ;
+            }
+            else {
+                var lib_name = 'lib/' + coreName + '/' + profile + '/' + name ;
+            }
+
+            var lib = Pkg.addLibrary(lib_name, targ, {profile: profile, copts: profileOpts});
+
+            lib.addObjects(objList);
+        }
+    }
+}
+
+/*
+ *  ======== supportsCore ========
+ *  Returns true if coreName is in the supported core list. If coreNameList
+ *  is null or empty, that's taken to mean all targets are supported.
+ */
+function supportsCore(coreName, coreNameList)
+{
+    if ((coreNameList == null) || (coreNameList.length == 0)) {
+        return true;
+    }
+
+    for (var j = 0; j < coreNameList.length; j++) {
+        if(coreName.match(coreNameList[j])){
+            return true;
+        }
+    }
+
+    return false;
+}
+
+/*
+ *  ======== commonGetLibs ========
+ *  Common getLibs function
+ */
+
+function commonGetLibs(prog, bCoreFlag, pkg, dir)
+{
+    var suffix;
+
+    /* find a compatible suffix */
+    if ("findSuffix" in prog.build.target) {
+        suffix = prog.build.target.findSuffix(pkg);
+    }
+    else {
+        suffix = prog.build.target.suffix;
+    }
+
+    var name = pkg.$name + ".a" + suffix;
+    var lib  = "";
+
+    if (bCoreFlag == true) {
+        lib = "lib/" + prog.global.coreName + "/" + pkg.profile + "/" + name;
+    }
+    else {
+        lib = "lib/" + "/" + pkg.profile + "/" + name;
+    }
+
+    if (java.io.File(dir + lib).exists()) {
+        return lib;
+    }
+    else {
+        print("Default lib not found: " + lib +"\nlooking for release lib");
+        if (bCoreFlag == true) {
+          lib = "lib/" + prog.global.coreName + "/" + "release/" + name;
+        }
+        else {
+          lib = "lib/" + "/" + "release/" + name;
+        }
+        if (java.io.File(dir + lib).exists()) {
+            return lib;
+        }
+    }
+
+    /* could not find any library, throw exception */
+    throw Error("Library not found: " + lib);
+}
+
diff --git a/build/config.bld b/build/config.bld
new file mode 100644 (file)
index 0000000..60ee3fb
--- /dev/null
@@ -0,0 +1,132 @@
+
+var Build        = xdc.useModule('xdc.bld.BuildEnvironment');
+var commonBld    = xdc.loadCapsule("../build/common.bld");
+var commonOpts   = "-g";
+var hw_VAYU = 2;
+var ES10 = 1;
+
+for (x = 0; x < arguments.length; x++)
+{
+    if (arguments[x].match(/^trace_level=/) )
+    {
+        // [1] operation is used on the return value of split(), which is an
+        // array.
+        var trace_level = arguments[x].split("=")[1];
+    }
+
+}
+
+/************************************
+* Memory Map Information
+************************************/
+/*  Memory Map for ti.platforms.evmDRA7XX:dsp1
+ *
+ *  --- External Memory ---
+ *  Virtual     Physical        Size            Comment
+ *  ------------------------------------------------------------------------
+ *  9500_0000   ????_????    10_0000  (  ~1 MB) EXT_CODE
+ *  9510_0000   ????_????    10_0000  (   1 MB) EXT_DATA
+ *  9520_0000   ????_????    30_0000  (  3 MB) EXT_HEAP
+ *  9F00_0000   9F00_0000     6_0000  ( 384 kB) TRACE_BUF
+ *  9F06_0000   9F06_0000     1_0000  (  64 kB) EXC_DATA
+ *  9F07_0000   9F07_0000     2_0000  ( 128 kB) PM_DATA (Power mgmt)
+ */
+var evmDRA7XX_ExtMemMapDsp1 = {
+       EXT_CODE: { name: "EXT_CODE", base: 0x95000000, len:  0x100000, space: "code", access: "RWX" },
+       EXT_DATA: { name: "EXT_DATA", base: 0x95100000, len:  0x00100000, space: "data", access: "RW" },
+       EXT_HEAP: { name: "EXT_HEAP", base: 0x95200000, len:  0x0300000, space: "data", access: "RW" },
+       TRACE_BUF: { name: "TRACE_BUF", base: 0x9F000000, len:  0x00060000, space: "data", access: "RW" },
+       EXC_DATA: { name: "EXC_DATA", base: 0x9F060000, len:  0x00010000, space: "data", access: "RW" },
+       PM_DATA: { name: "PM_DATA", base: 0x9F070000, len:  0x00020000, space: "data", access: "RWX" }
+};
+
+Build.platformTable["ti.platforms.evmDRA7XX:dsp1"] = {
+       externalMemoryMap: [
+               [ "EXT_CODE", evmDRA7XX_ExtMemMapDsp1.EXT_CODE ],
+               [ "EXT_DATA", evmDRA7XX_ExtMemMapDsp1.EXT_DATA ],
+               [ "EXT_HEAP", evmDRA7XX_ExtMemMapDsp1.EXT_HEAP ],
+               [ "TRACE_BUF", evmDRA7XX_ExtMemMapDsp1.TRACE_BUF ],
+               [ "EXC_DATA", evmDRA7XX_ExtMemMapDsp1.EXC_DATA ],
+               [ "PM_DATA", evmDRA7XX_ExtMemMapDsp1.PM_DATA ]
+       ],
+       codeMemory: "EXT_CODE",
+       dataMemory: "EXT_DATA",
+       stackMemory: "EXT_DATA",
+};
+
+
+var TargetBuild = commonBld.getTargetBuild(arguments);
+    commonOpts += " -DHOST_TYPE=HOST_UNKNOWN "
+
+/************************************
+* Setup for dsp target
+************************************/
+var dsp_tgt            = xdc.useModule('ti.targets.elf.C66');
+dsp_tgt.rootDir        = java.lang.System.getenv("CGT_C66X_ELF_INSTALL_DIR");
+dsp_tgt.ccOpts.suffix  += " --gcc -D___DSPBIOS___ -DDSP";
+dsp_tgt.ccOpts.suffix += " -ms ";
+//dsp_tgt.ccOpts.suffix += " -pden -pds=48 ";
+//dsp_tgt.ccOpts.suffix += " -pdew "; //Convert warn to err; Supported in 4.9 version
+dsp_tgt.ccOpts.suffix  += commonOpts;
+dsp_tgt.lnkOpts.suffix += " -x ";
+dsp_tgt.lnkOpts.prefix += " --retain=.resource_table";
+//dsp_tgt.lnkOpts.prefix +=  " --zero_init=off ";
+//dsp_tgt.lnkOpts.prefix += " --cinit_compression=off";
+
+dsp_tgt.platforms = [
+                         "ti.platforms.evmDRA7XX:dsp1", //0
+                   ];
+
+/*****************  Tracing ********************/
+if(trace_level == 0) {
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_LEVEL=0";
+} else if(trace_level == 1) {
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_ENABLE";
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_LEVEL=1";
+} else if(trace_level == 2) {
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_ENABLE";
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_LEVEL=2";
+} else if(trace_level == 3) {
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_ENABLE";
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_LEVEL=3";
+} else if(trace_level >= 4) {
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_ENABLE";
+    dsp_tgt.ccOpts.suffix += " -DDCE_DEBUG_LEVEL=4";
+}
+/*****************  Tracing ********************/
+{
+    HwType = hw_VAYU;
+    HwVer = ES10;
+    var build_vayu = true;
+    print("Selected Vayu for ES10");
+    
+    dsp_tgt.ccOpts.suffix += " -DBUILD_FOR_VAYU";
+       dsp_tgt.ccOpts.suffix += " -DVAYU_ES10";
+    dsp_tgt.platform = dsp_tgt.platforms[0];
+    
+}
+    
+/************************************
+* Setup for WIN target
+************************************/
+var WIN = xdc.useModule('microsoft.targets.Win32');
+WIN.rootDir = "C:/Program Files/Microsoft Visual Studio 9.0";
+WIN.vcPath = [
+        ["VC8",
+                {
+                    compilerDir: "VC",
+                    dllPath: "Common7/IDE",
+                    sdkPath: "C:/Progra~1/MI2578~1/Windows/v6.0A",
+                    libs: " msvcrt.lib setargv.obj oldnames.lib ole32.lib oleaut32.lib olepro32.lib uuid.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comctl32.lib"
+                }
+        ],
+];
+
+WIN.ccOpts.suffix += "-D___DSPBIOS___";
+
+Build.targets     = [
+                        dsp_tgt,
+                    ];
+
+var Pkg = xdc.module("xdc.bld.PackageContents");
+
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/UNIVERSAL.version.01.00.00.00.wizardversion.0.5.3 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/UNIVERSAL.version.01.00.00.00.wizardversion.0.5.3
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/UNIVERSAL.xdc b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/UNIVERSAL.xdc
new file mode 100644 (file)
index 0000000..70355fb
--- /dev/null
@@ -0,0 +1,29 @@
+/*!
+ *  ======== UNIVERSAL ========
+ */
+metaonly module UNIVERSAL
+{
+    /*!
+     *  ======== watermark ========
+     *  This config param allows the user to indicate whether to include
+     *  a watermark or not.    
+     */
+    config Bool watermark = false;
+
+    /*!
+     *  ======== Code Section ========
+     */
+    config String codeSection;
+
+    /*!
+     *  ======== Uninitialized Data Section ========
+     */
+    config String udataSection;
+
+    /*!
+     *  ======== Initialized Data Section ========
+     */
+    config String dataSection;   
+
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/UNIVERSAL.xdc b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/UNIVERSAL.xdc
new file mode 100644 (file)
index 0000000..c4930a7
--- /dev/null
@@ -0,0 +1,24 @@
+/*!
+ *  ======== UNIVERSAL========
+ *  UNIVERSAL codec specification
+ *
+ *  This file specifies information necessary to integrate with the Codec
+ *  Engine.
+ *
+ *  By inheriting ti.sdo.ce.universal.IUNIVERSAL, UNIVERSAL declares that it "is
+ *  a" universal algorithm.  This allows the codec engine to automatically
+ *  supply simple stubs and skeletons for transparent execution of DSP
+ *  codecs by the GPP.
+ *
+ *  In addition to declaring the type of the UNIVERSAL algorithm, we
+ *  declare the external symbol required by xDAIS that identifies the
+ *  algorithms implementation functions.
+ */
+metaonly module UNIVERSAL inherits ti.sdo.ce.universal.IUNIVERSAL
+{
+    readonly config ti.sdo.codecs.universal.UNIVERSAL.Module alg =
+        ti.sdo.codecs.universal.UNIVERSAL;
+    
+    override readonly config String ialgFxns = "UNIVERSALCOPY_TI_IUNIVERSALCOPY";
+
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/UNIVERSAL.xs b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/UNIVERSAL.xs
new file mode 100644 (file)
index 0000000..5b2bd6a
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ *  ======== UNIVERSAL.xs ========
+ *  This file implements the functions specified in the ti.sdo.ce.ICodec
+ *  interface.  These functions enable the configuration tool to validate
+ *  user supplied configuration parameters (e.g., stack size for the
+ *  thread running this codec).
+ */
+
+var verbose = false;   /* set to true to enable verbose output during config */
+
+
+/*
+ *  ======== getSaramScratchSize ========
+ */
+function getSaramScratchSize(prog)
+{
+    if (verbose) {
+  print("getting SARAM scratch size for " + this.$name
+      + " built for the target " + prog.build.target.$name
+      + ", running onplatform " +  prog.platformName);
+    }
+
+    return (4096);
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package.bld b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package.bld
new file mode 100644 (file)
index 0000000..369664b
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ *  ======== package.bld ========
+ */
+
+
+Pkg.attrs.exportAll = true;
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package.xdc b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package.xdc
new file mode 100644 (file)
index 0000000..45c259c
--- /dev/null
@@ -0,0 +1,11 @@
+requires ti.sdo.ce.universal;
+requires ti.sdo.codecs.universal;
+
+/*!
+ *  ======== package.xdc ========
+ *  Provides ICodec interface adapter for ti.sdo.codecs.universal codec.
+ */
+
+package ti.sdo.codecs.universal.ce [1, 0, 0] {
+    module UNIVERSAL;
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_b150 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_b150
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_c150 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_c150
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_g180 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_g180
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_r170 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.vers_r170
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.xdc-v49 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/.xdc-v49
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/build.cfg b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/build.cfg
new file mode 100644 (file)
index 0000000..610f62f
--- /dev/null
@@ -0,0 +1,12 @@
+if (pkg.$vers.length >= 3) {\r
+    pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\r
+}\r
+\r
+pkg.build.libraries = [\r
+];\r
+\r
+pkg.build.libDesc = [\r
+];\r
+if ('suffix' in xdc.om['xdc.IPackage$$LibDesc']) {\r
+}\r
+\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.bld.xml b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.bld.xml
new file mode 100644 (file)
index 0000000..917aacb
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--  This file conforms to the DTD xdc/bld/build.dtd -->\r
+<package name="ti.sdo.codecs.universal.ce" version="1, 0, 0" producerId="undefined">\r
+    <units>\r
+        <module name="UNIVERSAL"/>\r
+    </units>\r
+    <sources>\r
+    </sources>\r
+    <configurations>\r
+    </configurations>\r
+    <makefiles>\r
+        <srcFile name="package.mak" src="package.bld"/>\r
+        <srcFile name="package/package.xdc.dep" src="package.xdc"/>\r
+        <srcFile name="package/package.cfg.dep" src="package.xdc"/>\r
+        <srcFile name="package/rel/ti_sdo_codecs_universal_ce.tar.dep" src="package/rel/ti_sdo_codecs_universal_ce.xdc.inc"/>\r
+    </makefiles>\r
+    <targets>\r
+    </targets>\r
+    <libraries>\r
+    </libraries>\r
+    <executables>\r
+    </executables>\r
+    <tests>\r
+    </tests>\r
+    <releases relDir="package/rel/">\r
+    <release name="ti_sdo_codecs_universal_ce"\r
+        pname="ti_sdo_codecs_universal_ce.tar"\r
+        label="default"\r
+    >\r
+        <file name="package/build.cfg"/>\r
+        <file name="package/package.cfg.xdc.inc"/>\r
+        <file name="package/package.ext.xml"/>\r
+        <file name="package/package.xdc.inc"/>\r
+        <file name="package/package.bld.xml"/>\r
+        <file name="package/package.rel.dot"/>\r
+    </release>\r
+    </releases>\r
+    <repositories>\r
+    </repositories>\r
+</package>\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.defs.h b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.defs.h
new file mode 100644 (file)
index 0000000..85a92ca
--- /dev/null
@@ -0,0 +1,13 @@
+/*\r
+ *  Do not modify this file; it is automatically \r
+ *  generated and any modifications will be overwritten.\r
+ *\r
+ * @(#) xdc-v49\r
+ */\r
+\r
+#ifndef ti_sdo_codecs_universal_ce__\r
+#define ti_sdo_codecs_universal_ce__\r
+\r
+\r
+\r
+#endif /* ti_sdo_codecs_universal_ce__ */ \r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.doc.xml b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.doc.xml
new file mode 100644 (file)
index 0000000..31027e9
--- /dev/null
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<package kind='package' name='ti.sdo.codecs.universal.ce' nodoc='0' root='../../../../../' summary='Provides+ICodec+interface+adapter+for+ti.sdo.codecs.universal+codec'>\r
+    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Erequires%3C%2Fspan%3E+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2Fpackage.html%22+title%3D%22ti.sdo.ce.universal%22%3Eti.sdo.ce.universal%3C%2Fa%3E%3B'/>\r
+    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Erequires%3C%2Fspan%3E+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fcodecs%2Funiversal%2Fpackage.html%22+title%3D%22ti.sdo.codecs.universal%22%3Eti.sdo.codecs.universal%3C%2Fa%3E%3B'/>\r
+    <line blank='1' always='0'/>\r
+    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Epackage%3C%2Fspan%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eti.sdo.codecs.universal.ce%3C%2Fspan%3E%3C%2Fgo%3E+%5B1%2C+0%2C+0%5D+%7B'/>\r
+    <line tab='0' content='%7D'/>\r
+    <unit name='UNIVERSAL' kind='module' nodoc='0' metaonly='1' summary='UNIVERSAL+codec+specification' inherits='ti.sdo.ce.universal.IUNIVERSAL'>\r
+        <synopSpec>\r
+            <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Epackage%3C%2Fspan%3E+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fcodecs%2Funiversal%2Fce%2Fpackage.html%22+title%3D%22ti.sdo.codecs.universal.ce%22%3Eti.sdo.codecs.universal.ce%3C%2Fa%3E%3B'/>\r
+            <line blank='1' always='0'/>\r
+            <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Emetaonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Emodule%3C%2Fspan%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EUNIVERSAL%3C%2Fspan%3E%3C%2Fgo%3E%3Cspan+class%3D%22xdoc-kw1%22%3E+inherits+%3C%2Fspan%3E%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL%22%3EIUNIVERSAL%3C%2Fa%3E+%7B'/>\r
+            <line tab='0' content='%7D'/>\r
+        </synopSpec>\r
+        <specInfo>\r
+            <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Emetaonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Emodule%3C%2Fspan%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EUNIVERSAL%3C%2Fspan%3E%3C%2Fgo%3E+%7B%3Cb%3E%26nbsp%3B%26nbsp%3B...%3C%2Fb%3E'/>\r
+            <line tab='0' comment='inherits+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL%22%3Eti.sdo.ce.universal.IUNIVERSAL%3C%2Fa%3E'/>\r
+            <line tab='1' comment='inherits+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%22+title%3D%22ti.sdo.ce.ICodec%22%3Eti.sdo.ce.ICodec%3C%2Fa%3E'/>\r
+        </specInfo>\r
+        <synopMeta>\r
+            <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Evar%3C%2Fspan%3E+UNIVERSAL+%3D+%3Cspan+class%3D%22xdoc-kw3%22%3Exdc.useModule%3C%2Fspan%3E%28%3Cspan+class%3D%22xdoc-id%22%3E%27ti.sdo.codecs.universal.ce.UNIVERSAL%27%3C%2Fspan%3E%29%3B'/>\r
+        </synopMeta>\r
+        <docSect name='details'>\r
+            <docPara content='This+file+specifies+information+necessary+to+integrate+with+the+Codec%0A++Engine.'/>\r
+            <docPara content='By+inheriting+ti.sdo.ce.universal.IUNIVERSAL%2C+UNIVERSAL+declares+that+it+%22is%0A++a%22+universal+algorithm.++This+allows+the+codec+engine+to+automatically%0A++supply+simple+stubs+and+skeletons+for+transparent+execution+of+DSP%0A++codecs+by+the+GPP.'/>\r
+            <docPara content='In+addition+to+declaring+the+type+of+the+UNIVERSAL+algorithm%2C+we%0A++declare+the+external+symbol+required+by+xDAIS+that+identifies+the%0A++algorithms+implementation+functions.'/>\r
+        </docSect>\r
+        <group name='module-wide constants &amp; types'>\r
+            <decl spacer='1'/>\r
+        </group>\r
+        <group name='module-wide config parameters'>\r
+            <decl spacer='1'/>\r
+            <decl kind='config' name='alg' anchor='alg' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.alg' nodoc='0' external='1' overrides='0' readonly='1' instance='0' summary=''>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Ereadonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fcodecs%2Funiversal%2FUNIVERSAL.html%23.Module%22+title%3D%22ti.sdo.codecs.universal.UNIVERSAL.Module%22%3EUNIVERSAL.Module%3C%2Fa%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Ealg%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%253Ca%2Bclass%253D%2522xdoc-link%2522%2Bhref%253D%2522..%252F..%252F..%252F..%252F..%252Fti%252Fsdo%252Fcodecs%252Funiversal%252FUNIVERSAL.html%2523module%2522%2Btitle%253D%2522ti.sdo.codecs.universal.UNIVERSAL.module%2522%253EUNIVERSAL.module%253C%252Fa%253E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econst%3C%2Fspan%3E+%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3Ealg%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fcodecs%2Funiversal%2FUNIVERSAL.html%23.Module%22+title%3D%22ti.sdo.codecs.universal.UNIVERSAL.Module%22%3EUNIVERSAL.Module%3C%2Fa%3E%3C%2Fi%3E+%253Ca%2Bclass%253D%2522xdoc-link%2522%2Bhref%253D%2522..%252F..%252F..%252F..%252F..%252Fti%252Fsdo%252Fcodecs%252Funiversal%252FUNIVERSAL.html%2523module%2522%2Btitle%253D%2522ti.sdo.codecs.universal.UNIVERSAL.module%2522%253EUNIVERSAL.module%253C%252Fa%253E%3B'/>\r
+                </synopMeta>\r
+            </decl>\r
+            <decl kind='config' name='codecClassConfigurable' anchor='codec.Class.Configurable' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.codecClassConfigurable' nodoc='1' external='1' overrides='1' readonly='1' instance='0' summary='' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%23codec.Class.Configurable%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL.codecClassConfigurable%22%3EIUNIVERSAL%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Eoverride+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Ereadonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EcodecClassConfigurable%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econst%3C%2Fspan%3E+%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EcodecClassConfigurable%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%3C%2Fi%3E+%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%3B'/>\r
+                </synopMeta>\r
+            </decl>\r
+            <decl kind='config' name='frameRate' anchor='frame.Rate' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.frameRate' nodoc='1' external='1' overrides='0' readonly='1' instance='0' summary='Smallest+supported+frame+rate+%28frames+%2F+second%29' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23frame.Rate%22+title%3D%22ti.sdo.ce.ICodec.frameRate%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Ereadonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EframeRate%3C%2Fspan%3E%3C%2Fgo%3E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econst%3C%2Fspan%3E+%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EframeRate%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%3C%2Fi%3E+%3Ci%3Ecomputed+value%3C%2Fi%3E%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+is+used+to+compute+a+default+priority+assignment+for+algorithm%0A++threads+in+a+DSP+Server.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='ialgFxns' anchor='ialg.Fxns' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.ialgFxns' nodoc='0' external='1' overrides='1' readonly='1' instance='0' summary='Name+of+xDAIS+alg+function+table' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23ialg.Fxns%22+title%3D%22ti.sdo.ce.ICodec.ialgFxns%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Eoverride+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Ereadonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EialgFxns%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%2522UNIVERSALCOPY_TI_IUNIVERSALCOPY%2522%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econst%3C%2Fspan%3E+%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EialgFxns%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%3C%2Fi%3E+%2522UNIVERSALCOPY_TI_IUNIVERSALCOPY%2522%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='All+xDAIS+algorithms+must+define+an+IALG_Fxns+structure+that%0A++contains+implementations+of+the+IALG+methods.++This+configuration%0A++parameter+is+simply+the+extern+name+of+this+structure.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='idma3Fxns' anchor='idma3.Fxns' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.idma3Fxns' nodoc='0' external='1' overrides='0' readonly='1' instance='0' summary='Name+of+xDAIS+alg+IDMA3+Interface+function+table' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23idma3.Fxns%22+title%3D%22ti.sdo.ce.ICodec.idma3Fxns%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Ereadonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eidma3Fxns%3C%2Fspan%3E%3C%2Fgo%3E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econst%3C%2Fspan%3E+%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3Eidma3Fxns%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%3C%2Fi%3E+%3Ci%3Ecomputed+value%3C%2Fi%3E%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='All+xDAIS+algorithms+that+use+DMA+must+define+an+IDMA3_Fxns+structure%0A++containing+the+pointers+to+functions+implementatng+the+IDMA3+interface.%0A++If+algorithm+does+not+use+DMA+this+structure+does+not+have+to+be%0A++defined.'/>\r
+                    <docPara content='This+configuration+parameter+is+simply+the+extern+name+of+this%0A++structure+when+defined%2C+null+otherwise.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='iresFxns' anchor='ires.Fxns' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.iresFxns' nodoc='0' external='1' overrides='0' readonly='1' instance='0' summary='Name+of+xDAIS+alg+IRES+Interface+function+table' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23ires.Fxns%22+title%3D%22ti.sdo.ce.ICodec.iresFxns%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Ereadonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EiresFxns%3C%2Fspan%3E%3C%2Fgo%3E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econst%3C%2Fspan%3E+%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EiresFxns%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%3C%2Fi%3E+%3Ci%3Ecomputed+value%3C%2Fi%3E%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='All+xDAIS+algorithms+that+use+an+IRES+resource+must+define+an%0A++IRES_Fxns+structure+containing+the+pointers+to+functions%0A++implementatng+the+IRES+interface.%0A++If+algorithm+does+not+use+an+IRES+resource+this+structure+does+not%0A++have+to+be+defined.'/>\r
+                    <docPara content='This+configuration+parameter+is+simply+the+extern+name+of+this%0A++structure+when+defined%2C+null+otherwise.'/>\r
+                </docSect>\r
+                <docSect name='see'>\r
+                    <docPara content='%3Ca+class%3D%22xdoc-link%22+href%3D%22UNIVERSAL.html%23ialg.Fxns%22+title%3D%22ialgFxns%22%3EialgFxns%3C%2Fa%3E%2C+%3Ca+class%3D%22xdoc-link%22+href%3D%22UNIVERSAL.html%23idma3.Fxns%22+title%3D%22idma3Fxns%22%3Eidma3Fxns%3C%2Fa%3E'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='rpcProtocolVersion' anchor='rpc.Protocol.Version' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.rpcProtocolVersion' nodoc='0' external='1' overrides='1' readonly='1' instance='0' summary='Version+of+the+Protocol+used+between+the+stubFxns+and+the+serverFxns' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%23rpc.Protocol.Version%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL.rpcProtocolVersion%22%3EIUNIVERSAL%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Eoverride+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Ereadonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3ErpcProtocolVersion%3C%2Fspan%3E%3C%2Fgo%3E+%3D+1%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econst%3C%2Fspan%3E+%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3ErpcProtocolVersion%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%3C%2Fi%3E+1%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+is+set+by+a+particular+implementation+of+a+stub%2Fskeleton+RPC+pair%2C%0A++and+is+used+at+runtime+to+ensure+the+protocol+matches.++This+is%0A++important%2C+for+example%2C+to+ensure+that+the+protocol+used+by+skeletons%0A++built+into+a+server+matches+that+used+by+the+stubs+built+into+the%0A++application.++Specifically%2C+this+is+typically+changed+when+the%0A++marshalling%2Funmarshalling+message+format+changes.'/>\r
+                    <docPara content='This+is+generally+not+configured+by+application+or+server+config%0A++scripts%2C+but+rather+by+developers+of+VISA-like+API+class+extensions.'/>\r
+                    <docPara content='This+rpcProtocolVersion+is+built+into+the+local+application+executable%2C%0A++as+well+as+the+remote+server%27s+executable.'/>\r
+                    <docPara content='Developers+of+class+extensions+should+ensure+this+config+parameter+is%0A++set+appropriately+by+each+release+of+their+stubs%2Fskeletons.++If+a+new%0A++protocol+is+introduced%2C+implying+that+updating+both+would+result+in%0A++error%2C+the+number+should+be+incremented.'/>\r
+                    <docPara content='There+is+no+%22backward-compatibility%22+requirement+in+rpcProtocolVersion.%0A++If+the+version+is+different%2C+regardless+of+whether+it%27s+larger+or%0A++smaller%2C+the+creation+of+algorithms+of+this+class+will+fail.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl spacer='1'/>\r
+            <decl spacer='1'/>\r
+            <decl kind='config' name='isLocal' anchor='is.Local' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.isLocal' nodoc='1' external='1' overrides='0' readonly='0' instance='0' summary='Require+this+codec+to+run+%22locally%22' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23is.Local%22+title%3D%22ti.sdo.ce.ICodec.isLocal%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EisLocal%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EisLocal%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%3C%2Fi%3E+%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+configuration+parameter+determines+whether+or+not+the%0A++application+requires+the+codec%27s+library+in+order+to+link.%0A++For+example%2C+this+parameter+is+set+to+false+in+the+case+that%0A++the+application+is+running+on+a+different+CPU+than+the+codec.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='manageInBufsCache' anchor='manage.In.Bufs.Cache' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.manageInBufsCache' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Codec+Class+configuration+param' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%23manage.In.Bufs.Cache%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL.manageInBufsCache%22%3EIUNIVERSAL%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EmanageInBufsCache%3C%2Fspan%3E%3C%2Fgo%3E%5B16%5D+%3D+%255B'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E'/>\r
+                    <line tab='0' content='%255D%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EmanageInBufsCache%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%5B16%5D%3C%2Fi%3E+%255B'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E'/>\r
+                    <line tab='0' content='%255D%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='Determines+whether+cache+will+be+managed+on+the+DSP+for+each+of+the%0A++%28up+to+16%29+input+buffers+given+to+the+codec%27s+%22process%28%29%22+call.'/>\r
+                    <docPara content='If+this+flag+is+set+to+%22false%22+for+one+or+more%0A++elements%2C+the+cache+for+the+corresponding+input+buffer+will+not+be%0A++invalidated+before+the+process%28%29+call.+Skipping+unnecessary+cache%0A++invalidation+improves+performance%2C+especially+if+a+buffer+is+large.'/>\r
+                    <docPara content='%28If+element+%22i%22+in+this+array+is+set+to+true%2C+cache+for+inBufs%5Bi%5D+will%0A++be+invalidated+only+if+the+buffer+is+supplied%2C+of+course.%29'/>\r
+                    <docPara content='For+example%2C+if+you+know+that+a+particular+codec+of+this+class+always%0A++reads+the+data+from+its+inBufs%5B1%5D+buffer+only+via+DMA%2C+you+can+set%0A++manageInBufsCache%5B1%5D+%3D+false%3B'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='manageInOutBufsCache' anchor='manage.In.Out.Bufs.Cache' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.manageInOutBufsCache' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Codec+Class+configuration+param' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%23manage.In.Out.Bufs.Cache%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL.manageInOutBufsCache%22%3EIUNIVERSAL%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EmanageInOutBufsCache%3C%2Fspan%3E%3C%2Fgo%3E%5B16%5D+%3D+%255B'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E'/>\r
+                    <line tab='0' content='%255D%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EmanageInOutBufsCache%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%5B16%5D%3C%2Fi%3E+%255B'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E'/>\r
+                    <line tab='0' content='%255D%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='Determines+whether+cache+will+be+managed+on+the+DSP+for+each+of+the%0A++%28up+to+16%29+InOut+buffers+given+to+the+codec%27s+%22process%28%29%22+call.'/>\r
+                    <docPara content='If+this+flag+is+set+to+%22false%22+for+one+or+more%0A++elements%2C+the+cache+for+the+corresponding+input+buffer+will+not+be%0A++invalidated+before+the+process%28%29+call.+Skipping+unnecessary+cache%0A++invalidation+improves+performance%2C+especially+if+a+buffer+is+large.'/>\r
+                    <docPara content='%28If+element+%22i%22+in+this+array+is+set+to+true%2C+cache+for+inOutBufs%5Bi%5D%0A++will+be+invalidated+only+if+the+buffer+is+supplied%2C+of+course.%29'/>\r
+                    <docPara content='For+example%2C+if+you+know+that+a+particular+codec+of+this+class+always%0A++reads+and+writes+the+data+in+its+inOutBufs%5Bi%5D+buffer+only+via+DMA%2C+you%0A++can+set+manageInOutBufsCache%5Bi%5D+%3D+false%3B'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='manageOutBufsCache' anchor='manage.Out.Bufs.Cache' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.manageOutBufsCache' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Codec+Class+configuration+param' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%23manage.Out.Bufs.Cache%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL.manageOutBufsCache%22%3EIUNIVERSAL%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EmanageOutBufsCache%3C%2Fspan%3E%3C%2Fgo%3E%5B16%5D+%3D+%255B'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E'/>\r
+                    <line tab='0' content='%255D%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EmanageOutBufsCache%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%5B16%5D%3C%2Fi%3E+%255B'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E%252C'/>\r
+                    <line tab='1' content='%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Etrue%253C%252Fspan%253E'/>\r
+                    <line tab='0' content='%255D%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='Determines+whether+cache+will+be+managed+on+the+DSP+for+each+of+the%0A++%28up+to+16%29+output+buffers+given+to+the+codec%27s+%22process%28%29%22+call.'/>\r
+                    <docPara content='If+this+flag+is+set+to+%22false%22+for+one+or+more%0A++elements%2C+the+cache+for+the+corresponding+output+buffer+will+not+be%0A++invalidated+before+the+process%28%29+call.%0A++Skipping+unnecessary+cache+invalidation+improves%0A++performance.+Whether+the+buffer+will+be+written+back+after+the+process%28%29%0A++call+depends+on+the+algorithm+and+cannot+be+controlled+here.'/>\r
+                    <docPara content='For+example%2C+if+you+know+that+a+particular+codec+of+this+class+always%0A++writes+the+data+to+its+outBufs%5B2%5D+buffer+only+via+DMA%2C+you+can+set%0A++manageOutBufsCache%5B2%5D+%3D+false%3B'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='serverFxns' anchor='server.Fxns' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.serverFxns' nodoc='0' external='1' overrides='1' readonly='0' instance='0' summary='Name+of+skeleton+fxn+table' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%23server.Fxns%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL.serverFxns%22%3EIUNIVERSAL%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Eoverride+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EserverFxns%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%2522UNIVERSAL_SKEL%2522%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EserverFxns%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%3C%2Fi%3E+%2522UNIVERSAL_SKEL%2522%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='All+algorithm%27s+that+can+run+on+a+remote+processor+must+specify+a+set%0A++of+%22stub%22+functions+that+marshall+arguments+to+send+to+the+remote%0A++process+that+runs+corresponding+%22skeletons%22+to+do+the+actual%0A++processing.++This+configuration+parameter+defines+the+entry+point+for%0A++this+algorithm%27s+the+skeletons+%28which+run+on+the+remote+processor%29.'/>\r
+                    <docPara content='This+is+generally+not+configured+by+application+or+server+config%0A++scripts%2C+but+rather+by+developers+of+VISA-like+API+class+extensions.%0A++However%2C+an+application+or+server+integrator+could+use+this+config%0A++param+to+configure+in+custom+serverFxns.'/>\r
+                </docSect>\r
+                <docSect name='see'>\r
+                    <docPara content='%3Ca+class%3D%22xdoc-link%22+href%3D%22UNIVERSAL.html%23stub.Fxns%22+title%3D%22stubFxns%22%3EstubFxns%3C%2Fa%3E'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='stubFxns' anchor='stub.Fxns' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.stubFxns' nodoc='0' external='1' overrides='1' readonly='0' instance='0' summary='Name+of+stubs+fxn+table' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2Funiversal%2FIUNIVERSAL.html%23stub.Fxns%22+title%3D%22ti.sdo.ce.universal.IUNIVERSAL.stubFxns%22%3EIUNIVERSAL%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Eoverride+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EstubFxns%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%2522UNIVERSAL_STUBS%2522%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EstubFxns%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%3C%2Fi%3E+%2522UNIVERSAL_STUBS%2522%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='All+algorithm%27s+that+can+run+on+a+remote+processor+must+specify+a+set%0A++of+%22stub%22+functions+that+marshall+arguments+to+send+to+the+remote%0A++process+that+runs+corresponding+%22skeletons%22+to+do+the+actual%0A++processing.++This+configuration+parameter+defines+the+entry+point+for%0A++this+algorithm%27s+the+stubs+%28which+run+on+the+local+processor%29.'/>\r
+                    <docPara content='This+is+generally+not+configured+by+application+or+server+config%0A++scripts%2C+but+rather+by+developers+of+VISA-like+API+class+extensions.%0A++However%2C+an+application+or+server+integrator+could+use+this+config%0A++param+to+configure+in+custom+stubFxns.'/>\r
+                </docSect>\r
+                <docSect name='see'>\r
+                    <docPara content='%3Ca+class%3D%22xdoc-link%22+href%3D%22UNIVERSAL.html%23server.Fxns%22+title%3D%22serverFxns%22%3EserverFxns%3C%2Fa%3E'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='useCache' anchor='use.Cache' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.useCache' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Flag+indicating+whether+the+framework+should+provide+cached+memory' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23use.Cache%22+title%3D%22ti.sdo.ce.ICodec.useCache%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EuseCache%3C%2Fspan%3E%3C%2Fgo%3E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EuseCache%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%3C%2Fi%3E+%3Cspan+class%3D%22xdoc-kw2%22%3Eundefined%3C%2Fspan%3E%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='If+set+to+true%2C+the+alg%27s+memory+requests+will+be+allocated+from%0A++cacheable+memory.++If+set+to+false%2C+the+memory+will+be+allocated+from%0A++non-cached+memory.+If+left+unset%2C+the%0A++ti.sdo.ce.alg.Algorithm.useCache+flag+will+determine+whether+the%0A++alg%27s+memory+will+be+allocated+from+cached+or+non-cached+memory.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='config' name='uuid' anchor='uuid' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.uuid' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Unique+algorithm+implementation+ID' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23uuid%22+title%3D%22ti.sdo.ce.ICodec.uuid%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Euuid%3C%2Fspan%3E%3C%2Fgo%3E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3Euuid%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%3C%2Fi%3E+%3Cspan+class%3D%22xdoc-kw2%22%3Eundefined%3C%2Fspan%3E%3B'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+integer+must+be+a+unique+ID+for+every+algorithm+in+a+%22system%22%2C%0A++where+the+%22system%22+includes+all+possible+DSP+Servers.'/>\r
+                    <docPara content='This+id+is+used+by+the+Codec+Engine+APIs+to+identify+the+algorithm%0A++implementation+that+will+create+an+instance+on+a+DSP+Server.'/>\r
+                    <docPara content='If+a+codec+doesn%27t+explicitly+configure+this+parameter%2C+a+%22very+likely%0A++unique%22+ID+will+be+generated.++It+is+recommended+that+codecs+not%0A++explicitly+configure+this+parameter%2C+and+leave+it+to+the+system.'/>\r
+                </docSect>\r
+            </decl>\r
+        </group>\r
+        <group name='module-wide functions'>\r
+            <decl spacer='1'/>\r
+            <decl kind='fxn' name='getCreationStackSize' anchor='get.Creation.Stack.Size' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.getCreationStackSize' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Get+the+maximum+required+stack+size+%28in+octets%29+for+this+algorithm%0A++during+algorithm+instance+creation' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23get.Creation.Stack.Size%22+title%3D%22ti.sdo.ce.ICodec.getCreationStackSize%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EgetCreationStackSize%3C%2Fspan%3E%3C%2Fgo%3E%28+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fxdc%2Fcfg%2FProgram.html%23.Module%22+title%3D%22xdc.cfg.Program.Module%22%3EProgram.Module%3C%2Fa%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eprog%3C%2Fspan%3E%3C%2Fgo%3E+%29%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EgetCreationStackSize%3C%2Fspan%3E%3C%2Fgo%3E%28+%3Ci%3E%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fxdc%2Fcfg%2FProgram.html%23.Module%22+title%3D%22xdc.cfg.Program.Module%22%3EProgram.Module%3C%2Fa%3E%3C%2Fi%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eprog%3C%2Fspan%3E%3C%2Fgo%3E+%29+%3Ci%3Ereturns%3C%2Fi%3E+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%3C%2Fi%3E'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+method+is+called+during+DSP+Server+configuration+and+is+used+to%0A++ensure+that+the+instance+creation+thread+on+the+server+has+sufficient%0A++stackspace+to+instantiate+the+algorithm.++This+stack+size+is+typically%0A++the+greater+of+the+stack+sizes+required+by+the+algorithm%27s%0A++algNumAlloc%28%29%2C+algAlloc%28%29%2C+or+algInit%28%29+methods.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='fxn' name='getDaramScratchSize' anchor='get.Daram.Scratch.Size' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.getDaramScratchSize' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Get+the+maximum+scratch+size+%28in+octets%29+required+for+this+algorithm%0A++from+DARAM+space' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23get.Daram.Scratch.Size%22+title%3D%22ti.sdo.ce.ICodec.getDaramScratchSize%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EgetDaramScratchSize%3C%2Fspan%3E%3C%2Fgo%3E%28+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fxdc%2Fcfg%2FProgram.html%23.Module%22+title%3D%22xdc.cfg.Program.Module%22%3EProgram.Module%3C%2Fa%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eprog%3C%2Fspan%3E%3C%2Fgo%3E+%29%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EgetDaramScratchSize%3C%2Fspan%3E%3C%2Fgo%3E%28+%3Ci%3E%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fxdc%2Fcfg%2FProgram.html%23.Module%22+title%3D%22xdc.cfg.Program.Module%22%3EProgram.Module%3C%2Fa%3E%3C%2Fi%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eprog%3C%2Fspan%3E%3C%2Fgo%3E+%29+%3Ci%3Ereturns%3C%2Fi%3E+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%3C%2Fi%3E'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+method+is+called+during+DSP+Server+configuration+and+is+used+to%0A++ensure+that+sufficient+scratch+space+is+configured+for+the+specified%0A++set+of+algorithms.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='fxn' name='getSaramScratchSize' anchor='get.Saram.Scratch.Size' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.getSaramScratchSize' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Get+the+maximum+scratch+size+%28in+octets%29+required+for+this+algorithm%0A++from+SARAM+space' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23get.Saram.Scratch.Size%22+title%3D%22ti.sdo.ce.ICodec.getSaramScratchSize%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EgetSaramScratchSize%3C%2Fspan%3E%3C%2Fgo%3E%28+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fxdc%2Fcfg%2FProgram.html%23.Module%22+title%3D%22xdc.cfg.Program.Module%22%3EProgram.Module%3C%2Fa%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eprog%3C%2Fspan%3E%3C%2Fgo%3E+%29%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EgetSaramScratchSize%3C%2Fspan%3E%3C%2Fgo%3E%28+%3Ci%3E%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fxdc%2Fcfg%2FProgram.html%23.Module%22+title%3D%22xdc.cfg.Program.Module%22%3EProgram.Module%3C%2Fa%3E%3C%2Fi%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eprog%3C%2Fspan%3E%3C%2Fgo%3E+%29+%3Ci%3Ereturns%3C%2Fi%3E+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%3C%2Fi%3E'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+method+is+called+during+DSP+Server+configuration+and+is+used+to%0A++ensure+that+sufficient+scratch+space+is+configured+for+the+specified%0A++set+of+algorithms.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='fxn' name='getStackSize' anchor='get.Stack.Size' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.getStackSize' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='Get+the+maximum+stack+size+%28in+octets%29+required+for+this+algorithm%0A++during+its+execution+phase' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23get.Stack.Size%22+title%3D%22ti.sdo.ce.ICodec.getStackSize%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EgetStackSize%3C%2Fspan%3E%3C%2Fgo%3E%28+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fxdc%2Fcfg%2FProgram.html%23.Module%22+title%3D%22xdc.cfg.Program.Module%22%3EProgram.Module%3C%2Fa%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eprog%3C%2Fspan%3E%3C%2Fgo%3E+%29%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EgetStackSize%3C%2Fspan%3E%3C%2Fgo%3E%28+%3Ci%3E%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fxdc%2Fcfg%2FProgram.html%23.Module%22+title%3D%22xdc.cfg.Program.Module%22%3EProgram.Module%3C%2Fa%3E%3C%2Fi%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eprog%3C%2Fspan%3E%3C%2Fgo%3E+%29+%3Ci%3Ereturns%3C%2Fi%3E+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%3C%2Fi%3E'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+method+is+called+during+DSP+Server+configuration+and+is+used+to%0A++ensure+that+threads+on+the+server+have+sufficient+stackspace+to+run%0A++the+algorithm.'/>\r
+                </docSect>\r
+            </decl>\r
+            <decl kind='fxn' name='getUUID' anchor='get.U.U.I.D' altext='ti.sdo.codecs.universal.ce.UNIVERSAL.getUUID' nodoc='1' external='1' overrides='0' readonly='0' instance='0' summary='Get+a+uuid+for+this+codec' origin='%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2F..%2Fti%2Fsdo%2Fce%2FICodec.html%23get.U.U.I.D%22+title%3D%22ti.sdo.ce.ICodec.getUUID%22%3EICodec%3C%2Fa%3E'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EgetUUID%3C%2Fspan%3E%3C%2Fgo%3E%28++%29%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EgetUUID%3C%2Fspan%3E%3C%2Fgo%3E%28++%29+%3Ci%3Ereturns%3C%2Fi%3E+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EInt%3C%2Fspan%3E%3C%2Fi%3E'/>\r
+                </synopMeta>\r
+                <docSect name='details'>\r
+                    <docPara content='This+method+is+used+to+get+the+uuid+rather+than+reading+the+uuid%0A++config+parameter%3B+this+allows+the+algorithm+producer+to+let+the%0A++system+generate+a+uuid+from+the+algorithm%27s+name.'/>\r
+                    <docPara content='Individual+algorithm%27s+should+not+implement+this+methods%3B+the+default%0A++%28base%29+implementation+provided+in+the+ti.sdo.ce+package+should+be%0A++sufficient.'/>\r
+                </docSect>\r
+            </decl>\r
+        </group>\r
+    </unit>\r
+</package>\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.ext.xml b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.ext.xml
new file mode 100644 (file)
index 0000000..da4e6bc
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="windows-1252"?>\r
+<!--  This file conforms to the DTD xdc/bld/release.dtd -->\r
+<release name="" label="" date="" buildCount="" producerId="">\r
+<package name="ti.sdo.codecs.universal.ce"\r
+    version="1, 0, 0"/>\r
+<imports>\r
+    <package name="ti.sdo.ce.universal"\r
+        version=""/>\r
+    <package name="ti.sdo.codecs.universal"\r
+        version=""/>\r
+</imports>\r
+<references>\r
+    <package name="xdc.services.intern.gen"\r
+        version="1, 0, 0, 0, 1284507405214"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.shelf"\r
+        version="1, 0, 0, 1284507424737"\r
+        providerId="xdccore">\r
+        <file name="java\antlr.jar"/>\r
+        <file name="java\ecj.jar"/>\r
+        <file name="java\js.jar"/>\r
+        <file name="java\jsr173_api.jar"/>\r
+        <file name="java\tar.jar"/>\r
+        <file name="java\xbean.jar"/>\r
+    </package>\r
+    <package name="ti.sdo.ce"\r
+        version="1, 0, 6, 1313607868501"\r
+        providerId="codec_engine_3_21_00_19">\r
+        <file name="ICodec.xdc"/>\r
+    </package>\r
+    <package name="xdc.bld"\r
+        version="1, 0, 2, 1284507372516"\r
+        providerId="xdccore">\r
+        <file name="BuildEnvironment.xs"/>\r
+        <file name="Executable.xs"/>\r
+        <file name="ITarget.xs"/>\r
+        <file name="ITargetFilter.xs"/>\r
+        <file name="Library.xs"/>\r
+        <file name="Manifest.xs"/>\r
+        <file name="PackageContents.xs"/>\r
+        <file name="Repository.xs"/>\r
+        <file name="Script.xs"/>\r
+        <file name="Utils.xs"/>\r
+        <file name="_gen.xs"/>\r
+        <file name="bld.js"/>\r
+        <file name="package.xs"/>\r
+    </package>\r
+    <package name="xdc"\r
+        version="1, 1, 1, 1284507365742"\r
+        providerId="xdccore">\r
+        <file name="IPackage.xdc"/>\r
+        <file name="IPackage.xs"/>\r
+        <file name="om2.xs"/>\r
+        <file name="package.xs"/>\r
+        <file name="template.xs"/>\r
+        <file name="xdc.tci"/>\r
+        <file name="xmlgen.xs"/>\r
+        <file name="xmlgen2.xs"/>\r
+    </package>\r
+    <package name="ti.sdo.codecs.universal"\r
+        version="1, 0, 0, 1384185676281"\r
+        providerId="G:/from_sayanna/RTSC_Release">\r
+        <file name="UNIVERSAL.xdc"/>\r
+    </package>\r
+    <package name="ti.sdo.ce.universal"\r
+        version="1, 0, 0, 1313608056406"\r
+        providerId="codec_engine_3_21_00_19">\r
+        <file name="IUNIVERSAL.xdc"/>\r
+    </package>\r
+    <package name="xdc.services.global"\r
+        version="1, 0, 0, 1284507401675"\r
+        providerId="xdccore">\r
+        <file name="Clock.xs"/>\r
+        <file name="Trace.xs"/>\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.platform"\r
+        version="1, 0, 1, 0, 1284507379983"\r
+        providerId="xdccore">\r
+        <file name="ICpuDataSheet.xdc"/>\r
+        <file name="IExeContext.xdc"/>\r
+        <file name="IPeripheral.xdc"/>\r
+        <file name="IPlatform.xdc"/>\r
+    </package>\r
+    <package name="xdc.services.spec"\r
+        version="1, 0, 0, 0, 1284507414889"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.intern.cmd"\r
+        version="1, 0, 0, 0, 1284507405123"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.intern.xsr"\r
+        version="1, 0, 0, 1284507408194"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.cfg"\r
+        version="1, 0, 2, 0, 1284507375537"\r
+        providerId="xdccore">\r
+        <file name="Program.xdc"/>\r
+    </package>\r
+    <xdcRoot base="E:/WriteHere/xdctools_3_20_04_68/">\r
+        <file name="/packages/xdc/package.xdc"/>\r
+        <file name="etc\config.bld"/>\r
+        <file name="include\utils.tci"/>\r
+        <xdcCorePkg version="16, 0, 2, 0, 1284507377139" producerId="undefined" buildCount="279" releaseName="xdc_corevers" label="default" date="1284507377139"/>\r
+    </xdcRoot>\r
+</references>\r
+<orphans>\r
+</orphans>\r
+</release>\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.rel.dot b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.rel.dot
new file mode 100644 (file)
index 0000000..8bbd095
--- /dev/null
@@ -0,0 +1,2141 @@
+digraph dependencies {
+    label="\nPackage ti.sdo.codecs.universal.ce Dependency Graph";
+    size="7.5,10";
+    rankdir=LR;
+    ranksep=".75";
+    concentrate="true";
+    node [fixedsize=true, width=1.5, style=filled, color=black];
+    node [font=Helvetica, fontsize=12, fillcolor=lightgrey];
+    ti_sdo_codecs_universal_ce [shape=record,label="ti.sdo.codecs.universal.ce|1, 0, 0", URL="package.rel.xml"];
+    node [fontsize=10, fillcolor=white];
+
+    edge [style=solid, color=blue]
+    ti_sdo_ce_universal [shape=record,label="ti.sdo.ce.universal|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\packages\ti\sdo\ce\universal\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> ti_sdo_ce_universal;
+    ti_sdo_codecs_universal [shape=record,label="ti.sdo.codecs.universal|1, 0, 0", URL="../G:\from_sayanna\RTSC_Release\ti\sdo\codecs\universal\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> ti_sdo_codecs_universal;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_intern_gen [shape=record,label="xdc.services.intern.gen|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\intern\gen\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_services_intern_gen;
+    xdc_shelf [shape=record,label="xdc.shelf|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\shelf\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_shelf;
+    ti_sdo_ce [shape=record,label="ti.sdo.ce|1, 0, 6", URL="../E:\WriteHere\codec_engine_3_21_00_19\packages\ti\sdo\ce\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> ti_sdo_ce;
+    xdc_bld [shape=record,label="xdc.bld|1, 0, 2", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\bld\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_bld;
+    xdc [shape=record,label="xdc|1, 1, 1", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc;
+    ti_sdo_codecs_universal_ce -> ti_sdo_codecs_universal;
+    ti_sdo_codecs_universal_ce -> ti_sdo_ce_universal;
+    xdc_services_global [shape=record,label="xdc.services.global|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\global\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_services_global;
+    xdc_platform [shape=record,label="xdc.platform|1, 0, 1, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\platform\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_platform;
+    xdc_services_spec [shape=record,label="xdc.services.spec|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\spec\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_services_spec;
+    xdc_services_intern_cmd [shape=record,label="xdc.services.intern.cmd|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\intern\cmd\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_services_intern_cmd;
+    xdc_services_intern_xsr [shape=record,label="xdc.services.intern.xsr|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\intern\xsr\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_services_intern_xsr;
+    xdc_cfg [shape=record,label="xdc.cfg|1, 0, 2, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\cfg\package/package.rel.svg"];
+    ti_sdo_codecs_universal_ce -> xdc_cfg;
+
+    edge [style=solid, color=blue]
+    xdc_cfg -> xdc_services_global;
+
+    edge [style=solid, color=lightgrey]
+    xdc_cfg -> xdc_services_spec;
+    xdc_cfg -> xdc_services_intern_cmd;
+    xdc_utils_tconf [shape=record,label="xdc.utils.tconf|not found"style=rounded, ];
+    xdc_cfg -> xdc_utils_tconf;
+    xdc_cfg -> xdc_services_intern_xsr;
+    xdc_cfg -> xdc_platform;
+    xdc_cfg -> xdc_shelf;
+    xdc_cfg -> xdc_services_intern_gen;
+    xdc_cfg -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+    xdc_services_intern_xsr -> xdc_services_global;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_intern_xsr -> xdc_services_spec;
+    xdc_services_intern_xsr -> xdc_services_intern_cmd;
+    xdc_services_intern_xsr -> xdc_utils_tconf;
+    xdc_services_intern_xsr -> xdc_shelf;
+    xdc_services_intern_xsr -> xdc_services_intern_gen;
+    xdc_services_intern_xsr -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+    xdc_services_intern_cmd -> xdc_shelf;
+    xdc_services_intern_cmd -> xdc_services_spec;
+    xdc_services_intern_cmd -> xdc_services_global;
+    xdc_services_intern_cmd -> xdc_services_intern_gen;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_intern_cmd -> xdc_services_spec;
+    xdc_services_intern_cmd -> xdc_utils_tconf;
+    xdc_services_intern_cmd -> xdc_services_intern_xsr;
+    xdc_services_intern_cmd -> xdc_shelf;
+    xdc_services_intern_cmd -> xdc_services_intern_gen;
+    xdc_services_intern_cmd -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+    xdc_services_spec -> xdc_shelf;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_spec -> xdc_services_intern_cmd;
+    xdc_services_spec -> xdc_utils_tconf;
+    xdc_services_spec -> xdc_services_intern_xsr;
+    xdc_services_spec -> xdc_shelf;
+    xdc_services_spec -> xdc_services_intern_gen;
+    xdc_services_spec -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_platform -> xdc_services_spec;
+    xdc_platform -> xdc_services_intern_cmd;
+    xdc_platform -> xdc_utils_tconf;
+    xdc_platform -> xdc_services_intern_xsr;
+    xdc_platform -> xdc_shelf;
+    xdc_platform -> xdc_services_intern_gen;
+    xdc_platform -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_global -> xdc_services_spec;
+    xdc_services_global -> xdc_services_intern_cmd;
+    xdc_services_global -> xdc_utils_tconf;
+    xdc_services_global -> xdc_services_intern_xsr;
+    xdc_services_global -> xdc_shelf;
+    xdc_services_global -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc -> xdc_services_global;
+    xdc -> xdc_utils_tconf;
+
+    edge [style=solid, color=blue]
+    xdc_bld -> xdc_services_global;
+    xdc_bld -> xdc_services_intern_cmd;
+
+    edge [style=solid, color=lightgrey]
+    xdc_bld -> xdc_services_spec;
+    xdc_bld -> xdc_services_intern_cmd;
+    xdc_bld -> xdc_utils_tconf;
+    xdc_bld -> xdc;
+    xdc_bld -> xdc_services_intern_xsr;
+    xdc_bld -> xdc_shelf;
+    xdc_bld -> xdc_services_intern_gen;
+    xdc_bld -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_ce -> xdc_services_global;
+    ti_targets [shape=record,label="ti.targets|1, 0, 3", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\package/package.rel.svg"];
+    ti_sdo_ce -> ti_targets;
+    ti_targets_elf [shape=record,label="ti.targets.elf|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\elf\package/package.rel.svg"];
+    ti_sdo_ce -> ti_targets_elf;
+    gnu_targets [shape=record,label="gnu.targets|1, 0, 1", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\gnu\targets\package/package.rel.svg"];
+    ti_sdo_ce -> gnu_targets;
+    gnu_targets_arm [shape=record,label="gnu.targets.arm|1, 0, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\gnu\targets\arm\package/package.rel.svg"];
+    ti_sdo_ce -> gnu_targets_arm;
+    ti_targets_arm [shape=record,label="ti.targets.arm|2, 0, 1, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\arm\package/package.rel.svg"];
+    ti_sdo_ce -> ti_targets_arm;
+    ti_targets_arm_elf [shape=record,label="ti.targets.arm.elf|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\arm\elf\package/package.rel.svg"];
+    ti_sdo_ce -> ti_targets_arm_elf;
+    build_filter [shape=record,label="build.filter|not found"style=rounded, ];
+    ti_sdo_ce -> build_filter;
+    ti_sdo_ce -> xdc_cfg;
+    ti_sdo_ce -> xdc_platform;
+    ti_sdo_ce_ipc [shape=record,label="ti.sdo.ce.ipc|2, 0, 1", URL="../E:\WriteHere\codec_engine_3_21_00_19\packages\ti\sdo\ce\ipc\package/package.rel.svg"];
+    ti_sdo_ce -> ti_sdo_ce_ipc;
+    ti_sdo_ce -> xdc_services_intern_cmd;
+    ti_sdo_ce -> xdc_services_intern_gen;
+    ti_sdo_ce -> xdc_services_intern_xsr;
+    ti_sdo_ce -> xdc_shelf;
+    ti_sdo_ce -> xdc_services_spec;
+    xdc_runtime [shape=record,label="xdc.runtime|2, 1, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\xdc\runtime\package/package.rel.svg"];
+    ti_sdo_ce -> xdc_runtime;
+    xdc_runtime_knl [shape=record,label="xdc.runtime.knl|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\xdc\runtime\knl\package/package.rel.svg"];
+    ti_sdo_ce -> xdc_runtime_knl;
+    ti_xdais [shape=record,label="ti.xdais|1, 2.0, 1", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\xdais\package/package.rel.svg"];
+    ti_sdo_ce -> ti_xdais;
+    ti_sdo_utils_loggers [shape=record,label="ti.sdo.utils.loggers|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\utils\loggers\package/package.rel.svg"];
+    ti_sdo_ce -> ti_sdo_utils_loggers;
+    ti_sdo_utils_trace [shape=record,label="ti.sdo.utils.trace|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\utils\trace\package/package.rel.svg"];
+    ti_sdo_ce -> ti_sdo_utils_trace;
+    ti_sdo_ce_osal [shape=record,label="ti.sdo.ce.osal|2, 0, 2", URL="../E:\WriteHere\codec_engine_3_21_00_19\packages\ti\sdo\ce\osal\package/package.rel.svg"];
+    ti_sdo_ce -> ti_sdo_ce_osal;
+    ti_sdo_ce_global [shape=record,label="ti.sdo.ce.global|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\packages\ti\sdo\ce\global\package/package.rel.svg"];
+    ti_sdo_ce -> ti_sdo_ce_global;
+    ti_sdo_ce_alg [shape=record,label="ti.sdo.ce.alg|1, 0, 1", URL="../E:\WriteHere\codec_engine_3_21_00_19\packages\ti\sdo\ce\alg\package/package.rel.svg"];
+    ti_sdo_ce -> ti_sdo_ce_alg;
+    ti_sdo_ce_node [shape=record,label="ti.sdo.ce.node|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\packages\ti\sdo\ce\node\package/package.rel.svg"];
+    ti_sdo_ce -> ti_sdo_ce_node;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_ce_node -> xdc_services_global;
+    ti_sdo_ce_node -> ti_targets;
+    ti_sdo_ce_node -> ti_targets_elf;
+    ti_sdo_ce_node -> gnu_targets;
+    ti_sdo_ce_node -> gnu_targets_arm;
+    ti_sdo_ce_node -> ti_targets_arm;
+    ti_sdo_ce_node -> ti_targets_arm_elf;
+    ti_sdo_ce_node -> build_filter;
+    ti_sdo_ce_node -> xdc_services_intern_cmd;
+    ti_sdo_ce_node -> xdc_services_intern_gen;
+    ti_sdo_ce_node -> xdc_services_intern_xsr;
+    ti_sdo_ce_node -> xdc_shelf;
+    ti_sdo_ce_node -> xdc_services_spec;
+    ti_sdo_ce_node -> xdc_runtime;
+    ti_sdo_ce_node -> ti_sdo_ce_global;
+    ti_sdo_ce_node -> ti_sdo_ce_ipc;
+    ti_sdo_ce_node -> xdc_runtime_knl;
+    ti_sdo_ce_node -> ti_sdo_ce;
+    ti_sdo_ce_node -> ti_xdais;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_ce_alg -> xdc_services_global;
+    ti_sdo_ce_alg -> ti_targets;
+    ti_sdo_ce_alg -> ti_targets_elf;
+    ti_sdo_ce_alg -> gnu_targets;
+    ti_sdo_ce_alg -> gnu_targets_arm;
+    ti_sdo_ce_alg -> ti_targets_arm;
+    ti_sdo_ce_alg -> ti_targets_arm_elf;
+    ti_sdo_ce_alg -> build_filter;
+    ti_sdo_ce_alg -> xdc_services_intern_cmd;
+    ti_sdo_ce_alg -> xdc_services_intern_gen;
+    ti_sdo_ce_alg -> xdc_services_intern_xsr;
+    ti_sdo_ce_alg -> xdc_shelf;
+    ti_sdo_ce_alg -> xdc_services_spec;
+    ti_sdo_ce_alg -> xdc_runtime;
+    ti_sdo_fc_dskt2 [shape=record,label="ti.sdo.fc.dskt2|1, 0, 4", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\dskt2\package/package.rel.svg"];
+    ti_sdo_ce_alg -> ti_sdo_fc_dskt2;
+    ti_sdo_fc_dman3 [shape=record,label="ti.sdo.fc.dman3|1, 0, 4", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\dman3\package/package.rel.svg"];
+    ti_sdo_ce_alg -> ti_sdo_fc_dman3;
+    ti_sdo_fc_rman [shape=record,label="ti.sdo.fc.rman|2, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\rman\package/package.rel.svg"];
+    ti_sdo_ce_alg -> ti_sdo_fc_rman;
+    ti_sdo_ce_alg -> ti_xdais;
+    ti_sdo_ce_alg -> ti_sdo_ce_osal;
+    ti_sdo_ce_alg -> ti_sdo_ce_global;
+    ti_sdo_fc_ires [shape=record,label="ti.sdo.fc.ires|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\ires\package/package.rel.svg"];
+    ti_sdo_ce_alg -> ti_sdo_fc_ires;
+    ti_sdo_ce_alg -> xdc_runtime_knl;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_ires -> xdc_services_global;
+    ti_sdo_fc_ires -> ti_targets;
+    ti_sdo_fc_ires -> ti_targets_elf;
+    ti_targets_elf_arp32 [shape=record,label="ti.targets.elf.arp32|not found"style=rounded, ];
+    ti_sdo_fc_ires -> ti_targets_elf_arp32;
+    ti_sdo_fc_ires -> gnu_targets;
+    ti_sdo_fc_ires -> gnu_targets_arm;
+    ti_sdo_fc_ires -> ti_targets_arm;
+    ti_sdo_fc_ires -> ti_targets_arm_elf;
+    ti_sdo_fc_ires -> build_filter;
+    ti_sdo_fc_ires -> xdc_services_intern_cmd;
+    ti_sdo_fc_ires -> xdc_services_intern_gen;
+    ti_sdo_fc_ires -> xdc_services_intern_xsr;
+    ti_sdo_fc_ires -> xdc_shelf;
+    ti_sdo_fc_ires -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_rman -> xdc_services_global;
+    ti_sdo_fc_rman -> ti_targets;
+    ti_sdo_fc_rman -> ti_targets_elf;
+    ti_sdo_fc_rman -> ti_targets_elf_arp32;
+    ti_sdo_fc_rman -> gnu_targets;
+    ti_sdo_fc_rman -> gnu_targets_arm;
+    ti_sdo_fc_rman -> ti_targets_arm;
+    ti_sdo_fc_rman -> ti_targets_arm_elf;
+    ti_sdo_fc_rman -> build_filter;
+    ti_sdo_fc_rman -> xdc_services_intern_cmd;
+    ti_sdo_fc_rman -> xdc_services_intern_gen;
+    ti_sdo_fc_rman -> xdc_services_intern_xsr;
+    ti_sdo_fc_rman -> xdc_shelf;
+    ti_sdo_fc_rman -> xdc_services_spec;
+    ti_sdo_fc_rman -> xdc_runtime;
+    ti_sdo_fc_rman -> ti_sdo_fc_dskt2;
+    ti_sdo_fc_memutils [shape=record,label="ti.sdo.fc.memutils|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\memutils\package/package.rel.svg"];
+    ti_sdo_fc_rman -> ti_sdo_fc_memutils;
+    ti_sdo_fc_utils_osalsupport [shape=record,label="ti.sdo.fc.utils.osalsupport|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\utils\osalsupport\package/package.rel.svg"];
+    ti_sdo_fc_rman -> ti_sdo_fc_utils_osalsupport;
+    ti_sdo_fc_global [shape=record,label="ti.sdo.fc.global|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\global\package/package.rel.svg"];
+    ti_sdo_fc_rman -> ti_sdo_fc_global;
+    ti_sdo_fc_utils [shape=record,label="ti.sdo.fc.utils|1, 0, 3", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\utils\package/package.rel.svg"];
+    ti_sdo_fc_rman -> ti_sdo_fc_utils;
+    ti_sdo_fc_ires_nullresource [shape=record,label="ti.sdo.fc.ires.nullresource|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\ires\nullresource\package/package.rel.svg"];
+    ti_sdo_fc_rman -> ti_sdo_fc_ires_nullresource;
+    ti_sdo_fc_rman -> ti_xdais;
+    ti_sdo_fc_rman -> xdc_runtime_knl;
+    ti_sdo_fc_rman -> ti_sdo_fc_ires;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_ires_nullresource -> xdc_services_global;
+    ti_sdo_fc_ires_nullresource -> ti_targets;
+    ti_sdo_fc_ires_nullresource -> ti_targets_elf;
+    ti_sdo_fc_ires_nullresource -> ti_targets_elf_arp32;
+    ti_sdo_fc_ires_nullresource -> gnu_targets;
+    ti_sdo_fc_ires_nullresource -> gnu_targets_arm;
+    ti_sdo_fc_ires_nullresource -> ti_targets_arm;
+    ti_sdo_fc_ires_nullresource -> ti_targets_arm_elf;
+    ti_sdo_fc_ires_nullresource -> build_filter;
+    ti_sdo_fc_ires_nullresource -> ti_sdo_fc_ires;
+    ti_sdo_fc_ires_nullresource -> xdc_services_intern_cmd;
+    ti_sdo_fc_ires_nullresource -> xdc_services_intern_gen;
+    ti_sdo_fc_ires_nullresource -> xdc_services_intern_xsr;
+    ti_sdo_fc_ires_nullresource -> xdc_shelf;
+    ti_sdo_fc_ires_nullresource -> xdc_services_spec;
+    ti_sdo_fc_ires_nullresource -> xdc_runtime;
+    ti_sdo_fc_ires_nullresource -> ti_sdo_fc_global;
+    ti_sdo_fc_ires_nullresource -> ti_xdais;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_utils -> xdc_services_global;
+    ti_sdo_fc_utils -> ti_targets;
+    ti_sdo_fc_utils -> ti_targets_elf;
+    ti_sdo_fc_utils -> ti_targets_elf_arp32;
+    ti_sdo_fc_utils -> gnu_targets;
+    ti_sdo_fc_utils -> gnu_targets_arm;
+    ti_sdo_fc_utils -> ti_targets_arm;
+    ti_sdo_fc_utils -> ti_targets_arm_elf;
+    ti_sdo_fc_utils -> build_filter;
+    ti_sdo_fc_utils -> xdc_services_intern_cmd;
+    ti_sdo_fc_utils -> xdc_services_intern_gen;
+    ti_sdo_fc_utils -> xdc_services_intern_xsr;
+    ti_sdo_fc_utils -> xdc_shelf;
+    ti_sdo_fc_utils -> xdc_services_spec;
+    ti_sdo_fc_utils -> xdc_runtime;
+    ti_sdo_fc_utils -> ti_sdo_fc_global;
+    ti_sdo_fc_utils -> ti_xdais;
+    ti_sdo_fc_utils -> xdc_runtime_knl;
+    ti_sdo_fc_utils -> ti_sdo_fc_memutils;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_global -> xdc_services_global;
+    ti_sdo_fc_global -> ti_targets;
+    ti_sdo_fc_global -> ti_targets_elf;
+    ti_sdo_fc_global -> ti_targets_elf_arp32;
+    ti_sdo_fc_global -> gnu_targets;
+    ti_sdo_fc_global -> gnu_targets_arm;
+    ti_sdo_fc_global -> ti_targets_arm;
+    ti_sdo_fc_global -> ti_targets_arm_elf;
+    ti_sdo_fc_global -> build_filter;
+    ti_sdo_tools_build [shape=record,label="ti.sdo.tools.build|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\tools\build\package/package.rel.svg"];
+    ti_sdo_fc_global -> ti_sdo_tools_build;
+    ti_sdo_fc_global -> xdc_services_intern_cmd;
+    ti_sdo_fc_global -> xdc_services_intern_gen;
+    ti_sdo_fc_global -> xdc_services_intern_xsr;
+    ti_sdo_fc_global -> xdc_shelf;
+    ti_sdo_fc_global -> xdc_services_spec;
+    ti_sdo_fc_global -> xdc_runtime;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_tools_build -> xdc_services_global;
+    ti_sdo_tools_build -> ti_targets;
+    ti_sdo_tools_build -> ti_targets_elf;
+    ti_sdo_tools_build -> ti_targets_arm;
+    ti_sdo_tools_build -> ti_targets_arm_elf;
+    ti_sdo_tools_build -> gnu_targets;
+    ti_sdo_tools_build -> gnu_targets_arm;
+    ti_sdo_tools_build -> xdc_services_intern_cmd;
+    ti_sdo_tools_build -> xdc_services_intern_gen;
+    ti_sdo_tools_build -> xdc_services_intern_xsr;
+    ti_sdo_tools_build -> xdc_shelf;
+    ti_sdo_tools_build -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_utils_osalsupport -> xdc_services_global;
+    ti_sdo_fc_utils_osalsupport -> ti_targets;
+    ti_sdo_fc_utils_osalsupport -> ti_targets_elf;
+    ti_sdo_fc_utils_osalsupport -> ti_targets_elf_arp32;
+    ti_sdo_fc_utils_osalsupport -> gnu_targets;
+    ti_sdo_fc_utils_osalsupport -> gnu_targets_arm;
+    ti_sdo_fc_utils_osalsupport -> ti_targets_arm;
+    ti_sdo_fc_utils_osalsupport -> ti_targets_arm_elf;
+    ti_sdo_fc_utils_osalsupport -> build_filter;
+    ti_sdo_fc_utils_osalsupport -> xdc_services_intern_cmd;
+    ti_sdo_fc_utils_osalsupport -> xdc_services_intern_gen;
+    ti_sdo_fc_utils_osalsupport -> xdc_services_intern_xsr;
+    ti_sdo_fc_utils_osalsupport -> xdc_shelf;
+    ti_sdo_fc_utils_osalsupport -> xdc_services_spec;
+    ti_sdo_fc_utils_osalsupport -> xdc_runtime;
+    ti_sdo_fc_utils_osalsupport -> xdc_runtime_knl;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_memutils -> xdc_services_global;
+    ti_sdo_fc_memutils -> ti_targets;
+    ti_sdo_fc_memutils -> ti_targets_elf;
+    ti_sdo_fc_memutils -> ti_targets_elf_arp32;
+    ti_sdo_fc_memutils -> gnu_targets;
+    ti_sdo_fc_memutils -> gnu_targets_arm;
+    ti_sdo_fc_memutils -> ti_targets_arm;
+    ti_sdo_fc_memutils -> ti_targets_arm_elf;
+    ti_sdo_fc_memutils -> build_filter;
+    ti_sdo_fc_memutils -> xdc_services_intern_cmd;
+    ti_sdo_fc_memutils -> xdc_services_intern_gen;
+    ti_sdo_fc_memutils -> xdc_services_intern_xsr;
+    ti_sdo_fc_memutils -> xdc_shelf;
+    ti_sdo_fc_memutils -> xdc_services_spec;
+    ti_sdo_fc_memutils -> xdc_runtime;
+    ti_sdo_fc_memutils -> ti_sdo_fc_global;
+    ti_sysbios_hal [shape=record,label="ti.sysbios.hal|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\hal\package/package.rel.svg"];
+    ti_sdo_fc_memutils -> ti_sysbios_hal;
+    ti_sysbios_interfaces [shape=record,label="ti.sysbios.interfaces|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\interfaces\package/package.rel.svg"];
+    ti_sdo_fc_memutils -> ti_sysbios_interfaces;
+    ti_sdo_linuxutils_cmem [shape=record,label="ti.sdo.linuxutils.cmem|2, 2, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\linuxutils\cmem\package/package.rel.svg"];
+    ti_sdo_fc_memutils -> ti_sdo_linuxutils_cmem;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_linuxutils_cmem -> xdc_services_global;
+    ti_sdo_linuxutils_cmem -> ti_targets;
+    ti_sdo_linuxutils_cmem -> ti_targets_elf;
+    ti_sdo_linuxutils_cmem -> gnu_targets;
+    ti_sdo_linuxutils_cmem -> gnu_targets_arm;
+    ti_sdo_linuxutils_cmem -> ti_targets_arm;
+    ti_sdo_linuxutils_cmem -> ti_targets_arm_elf;
+    ti_sdo_linuxutils_cmem -> xdc_services_intern_cmd;
+    ti_sdo_linuxutils_cmem -> xdc_services_intern_gen;
+    ti_sdo_linuxutils_cmem -> xdc_services_intern_xsr;
+    ti_sdo_linuxutils_cmem -> xdc_shelf;
+    ti_sdo_linuxutils_cmem -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_interfaces -> xdc_services_global;
+    ti_sysbios_interfaces -> ti_targets;
+    ti_targets_msp430 [shape=record,label="ti.targets.msp430|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\msp430\package/package.rel.svg"];
+    ti_sysbios_interfaces -> ti_targets_msp430;
+    ti_sysbios_interfaces -> ti_targets_elf_arp32;
+    ti_sysbios_interfaces -> ti_targets_elf;
+    ti_sysbios_interfaces -> ti_targets_arm;
+    ti_sysbios_interfaces -> ti_targets_arm_elf;
+    ti_sysbios_interfaces -> gnu_targets;
+    microsoft_targets [shape=record,label="microsoft.targets|1, 0, 2, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\microsoft\targets\package/package.rel.svg"];
+    ti_sysbios_interfaces -> microsoft_targets;
+    ti_sysbios_interfaces -> xdc_runtime;
+    ti_sysbios_interfaces -> xdc_shelf;
+    ti_sysbios_interfaces -> xdc_services_intern_gen;
+    ti_sysbios_interfaces -> xdc_services_intern_cmd;
+    ti_sysbios_interfaces -> xdc_services_intern_xsr;
+    ti_sysbios_interfaces -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    microsoft_targets -> xdc_services_global;
+    microsoft_targets -> xdc_services_intern_cmd;
+    microsoft_targets -> xdc_services_intern_xsr;
+    microsoft_targets -> xdc_shelf;
+    microsoft_targets -> xdc_services_spec;
+    microsoft_targets -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_targets_msp430 -> xdc_services_intern_gen;
+    ti_targets_msp430 -> xdc_services_spec;
+    ti_targets_msp430 -> xdc_shelf;
+    ti_targets_msp430 -> xdc_services_global;
+    ti_targets_msp430 -> xdc_services_intern_cmd;
+    ti_targets_msp430 -> xdc_services_intern_xsr;
+    ti_targets_msp430 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_sysbios_hal -> ti_sysbios_interfaces;
+    ti_sysbios_family [shape=record,label="ti.sysbios.family|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\family\package/package.rel.svg"];
+    ti_sysbios_hal -> ti_sysbios_family;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_hal -> xdc_services_global;
+    ti_sysbios_hal -> ti_targets;
+    ti_sysbios_hal -> ti_targets_msp430;
+    ti_sysbios_hal -> ti_targets_elf_arp32;
+    ti_sysbios_hal -> ti_targets_elf;
+    ti_sysbios_hal -> ti_targets_arm;
+    ti_sysbios_hal -> ti_targets_arm_elf;
+    ti_sysbios_hal -> gnu_targets;
+    ti_sysbios_hal -> microsoft_targets;
+    ti_sysbios_build [shape=record,label="ti.sysbios.build|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\build\package/package.rel.svg"];
+    ti_sysbios_hal -> ti_sysbios_build;
+    tisb_release_filters [shape=record,label="tisb.release.filters|not found"style=rounded, ];
+    ti_sysbios_hal -> tisb_release_filters;
+    ti_sysbios_hal -> ti_sysbios_interfaces;
+    ti_sysbios_hal -> xdc_shelf;
+    ti_sysbios_hal -> xdc_services_intern_gen;
+    ti_sysbios_hal -> xdc_services_intern_cmd;
+    ti_sysbios_hal -> xdc_services_intern_xsr;
+    ti_sysbios_hal -> xdc_services_spec;
+    ti_sysbios_hal -> xdc_runtime;
+    ti_sysbios_family_arm_m3 [shape=record,label="ti.sysbios.family.arm.m3|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\family\arm\m3\package/package.rel.svg"];
+    ti_sysbios_hal -> ti_sysbios_family_arm_m3;
+    ti_sysbios_family_c28 [shape=record,label="ti.sysbios.family.c28|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\family\c28\package/package.rel.svg"];
+    ti_sysbios_hal -> ti_sysbios_family_c28;
+    ti_sysbios [shape=record,label="ti.sysbios|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\package/package.rel.svg"];
+    ti_sysbios_hal -> ti_sysbios;
+
+    edge [style=solid, color=blue]
+    ti_sysbios -> ti_sysbios_family;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios -> xdc_services_global;
+    ti_sysbios -> ti_targets;
+    ti_sysbios -> ti_targets_msp430;
+    ti_sysbios -> ti_targets_elf_arp32;
+    ti_sysbios -> ti_targets_elf;
+    ti_sysbios -> ti_targets_arm;
+    ti_sysbios -> ti_targets_arm_elf;
+    ti_sysbios -> gnu_targets;
+    ti_sysbios -> microsoft_targets;
+    ti_sysbios -> ti_sysbios_build;
+    ti_sysbios -> tisb_release_filters;
+    ti_sysbios -> xdc_shelf;
+    ti_sysbios -> xdc_services_intern_gen;
+    ti_sysbios -> xdc_services_intern_cmd;
+    ti_sysbios -> xdc_services_intern_xsr;
+    ti_sysbios -> xdc_services_spec;
+    ti_sysbios -> xdc_runtime;
+    ti_catalog_c2800 [shape=record,label="ti.catalog.c2800|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\c2800\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_c2800;
+    ti_catalog_c2800_init [shape=record,label="ti.catalog.c2800.init|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\c2800\init\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_c2800_init;
+    ti_platforms_ezdsp28235 [shape=record,label="ti.platforms.ezdsp28235|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\ezdsp28235\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_ezdsp28235;
+    ti_targets_rts2800 [shape=record,label="ti.targets.rts2800|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\rts2800\package/package.rel.svg"];
+    ti_sysbios -> ti_targets_rts2800;
+    ti_sysbios -> xdc_cfg;
+    ti_sysbios -> xdc_platform;
+    xdc_rov [shape=record,label="xdc.rov|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\rov\package/package.rel.svg"];
+    ti_sysbios -> xdc_rov;
+    ti_sysbios -> xdc_runtime_knl;
+    xdc_services_getset [shape=record,label="xdc.services.getset|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\getset\package/package.rel.svg"];
+    ti_sysbios -> xdc_services_getset;
+    xdc_services_io [shape=record,label="xdc.services.io|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\io\package/package.rel.svg"];
+    ti_sysbios -> xdc_services_io;
+    ti_platforms_ezdsp28335 [shape=record,label="ti.platforms.ezdsp28335|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\ezdsp28335\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_ezdsp28335;
+    ti_catalog_c6000 [shape=record,label="ti.catalog.c6000|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\c6000\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_c6000;
+    ti_platforms_dsk6416 [shape=record,label="ti.platforms.dsk6416|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\dsk6416\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_dsk6416;
+    ti_targets_rts6000 [shape=record,label="ti.targets.rts6000|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\rts6000\package/package.rel.svg"];
+    ti_sysbios -> ti_targets_rts6000;
+    ti_platforms_evmDM6446 [shape=record,label="ti.platforms.evmDM6446|1, 0, 0, 1", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\evmDM6446\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_evmDM6446;
+    ti_platforms_evmDM6437 [shape=record,label="ti.platforms.evmDM6437|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\evmDM6437\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_evmDM6437;
+    ti_platforms_evmDA830 [shape=record,label="ti.platforms.evmDA830|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\evmDA830\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_evmDA830;
+    ti_catalog_msp430 [shape=record,label="ti.catalog.msp430|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430;
+    ti_catalog_msp430_init [shape=record,label="ti.catalog.msp430.init|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\init\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_init;
+    ti_catalog_msp430_peripherals_adc [shape=record,label="ti.catalog.msp430.peripherals.adc|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\adc\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_adc;
+    ti_catalog_msp430_peripherals_clock [shape=record,label="ti.catalog.msp430.peripherals.clock|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\clock\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430_peripherals_communication [shape=record,label="ti.catalog.msp430.peripherals.communication|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\communication\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_communication;
+    ti_catalog_msp430_peripherals_comparator [shape=record,label="ti.catalog.msp430.peripherals.comparator|not found"style=rounded, ];
+    ti_sysbios -> ti_catalog_msp430_peripherals_comparator;
+    ti_catalog_msp430_peripherals_dac [shape=record,label="ti.catalog.msp430.peripherals.dac|not found"style=rounded, ];
+    ti_sysbios -> ti_catalog_msp430_peripherals_dac;
+    ti_catalog_msp430_peripherals_gpio [shape=record,label="ti.catalog.msp430.peripherals.gpio|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\gpio\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_gpio;
+    ti_catalog_msp430_peripherals_memory [shape=record,label="ti.catalog.msp430.peripherals.memory|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\memory\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_memory;
+    ti_catalog_msp430_peripherals_oa [shape=record,label="ti.catalog.msp430.peripherals.oa|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\oa\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_oa;
+    ti_catalog_msp430_peripherals_special_function [shape=record,label="ti.catalog.msp430.peripherals.special_function|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\special_function\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_special_function;
+    ti_catalog_msp430_peripherals_svs [shape=record,label="ti.catalog.msp430.peripherals.svs|not found"style=rounded, ];
+    ti_sysbios -> ti_catalog_msp430_peripherals_svs;
+    ti_catalog_msp430_peripherals_timer [shape=record,label="ti.catalog.msp430.peripherals.timer|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\timer\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_timer;
+    ti_catalog_msp430_peripherals_watchdog [shape=record,label="ti.catalog.msp430.peripherals.watchdog|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\watchdog\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_msp430_peripherals_watchdog;
+    ti_platforms_exp430F5438 [shape=record,label="ti.platforms.exp430F5438|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\exp430F5438\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_exp430F5438;
+    ti_targets_msp430_rts430 [shape=record,label="ti.targets.msp430.rts430|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\msp430\rts430\package/package.rel.svg"];
+    ti_sysbios -> ti_targets_msp430_rts430;
+    ti_platforms_evm6472 [shape=record,label="ti.platforms.evm6472|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\evm6472\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_evm6472;
+    ti_platforms_padk6727 [shape=record,label="ti.platforms.padk6727|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\padk6727\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_padk6727;
+    ti_catalog_arm_cortexm3 [shape=record,label="ti.catalog.arm.cortexm3|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\arm\cortexm3\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_arm_cortexm3;
+    ti_platforms_sdp4430 [shape=record,label="ti.platforms.sdp4430|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\sdp4430\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_sdp4430;
+    ti_platforms_evm6670 [shape=record,label="ti.platforms.evm6670|not found"style=rounded, ];
+    ti_sysbios -> ti_platforms_evm6670;
+    ti_catalog_arp32 [shape=record,label="ti.catalog.arp32|not found"style=rounded, ];
+    ti_sysbios -> ti_catalog_arp32;
+    ti_platforms_simArctic [shape=record,label="ti.platforms.simArctic|not found"style=rounded, ];
+    ti_sysbios -> ti_platforms_simArctic;
+    ti_targets_elf_arp32_rts [shape=record,label="ti.targets.elf.arp32.rts|not found"style=rounded, ];
+    ti_sysbios -> ti_targets_elf_arp32_rts;
+    ti_catalog_arm [shape=record,label="ti.catalog.arm|1, 0, 1", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\arm\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_arm;
+    ti_platforms_expOMAPL138 [shape=record,label="ti.platforms.expOMAPL138|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\expOMAPL138\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_expOMAPL138;
+    ti_targets_arm_rtsarm [shape=record,label="ti.targets.arm.rtsarm|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\targets\arm\rtsarm\package/package.rel.svg"];
+    ti_sysbios -> ti_targets_arm_rtsarm;
+    ti_catalog_arm_cortexa8 [shape=record,label="ti.catalog.arm.cortexa8|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\arm\cortexa8\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_arm_cortexa8;
+    ti_platforms_sdp3430 [shape=record,label="ti.platforms.sdp3430|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\sdp3430\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_sdp3430;
+    ti_catalog_arm_cortexm3_lm3init [shape=record,label="ti.catalog.arm.cortexm3.lm3init|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\arm\cortexm3\lm3init\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_arm_cortexm3_lm3init;
+    ti_platforms_evmLM3S8962 [shape=record,label="ti.platforms.evmLM3S8962|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\evmLM3S8962\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_evmLM3S8962;
+    ti_catalog_arm_cortexr4 [shape=record,label="ti.catalog.arm.cortexr4|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\arm\cortexr4\package/package.rel.svg"];
+    ti_sysbios -> ti_catalog_arm_cortexr4;
+    ti_platforms_evmTMS570LS20216 [shape=record,label="ti.platforms.evmTMS570LS20216|1, 0, 1, 1", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\platforms\evmTMS570LS20216\package/package.rel.svg"];
+    ti_sysbios -> ti_platforms_evmTMS570LS20216;
+
+    edge [style=solid, color=blue]
+    ti_platforms_evmTMS570LS20216 -> ti_catalog_arm_cortexr4;
+    ti_platforms_evmTMS570LS20216 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_evmTMS570LS20216 -> xdc_services_intern_cmd;
+    ti_platforms_evmTMS570LS20216 -> ti_catalog_arm_cortexr4;
+    ti_platforms_evmTMS570LS20216 -> xdc_platform;
+    ti_platforms_evmTMS570LS20216 -> gnu_targets;
+    ti_platforms_evmTMS570LS20216 -> ti_targets_arm;
+    ti_platforms_evmTMS570LS20216 -> gnu_targets_arm;
+    ti_platforms_evmTMS570LS20216 -> xdc_services_intern_gen;
+    ti_platforms_evmTMS570LS20216 -> ti_targets_elf;
+    ti_platforms_evmTMS570LS20216 -> xdc_shelf;
+    ti_platforms_evmTMS570LS20216 -> xdc_services_spec;
+    ti_platforms_evmTMS570LS20216 -> microsoft_targets;
+    ti_platforms_evmTMS570LS20216 -> xdc_services_intern_xsr;
+    ti_platforms_evmTMS570LS20216 -> ti_targets_arm_elf;
+    ti_platforms_evmTMS570LS20216 -> xdc_services_global;
+    ti_platforms_evmTMS570LS20216 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_catalog_arm_cortexr4 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_arm_cortexr4 -> xdc_services_intern_cmd;
+    ti_catalog_arm_cortexr4 -> xdc_platform;
+    ti_catalog_arm_cortexr4 -> gnu_targets;
+    ti_catalog_arm_cortexr4 -> ti_targets_arm;
+    ti_catalog_arm_cortexr4 -> gnu_targets_arm;
+    ti_catalog_arm_cortexr4 -> xdc_services_intern_gen;
+    ti_catalog_arm_cortexr4 -> ti_targets_elf;
+    ti_catalog_arm_cortexr4 -> xdc_shelf;
+    ti_catalog_arm_cortexr4 -> xdc_services_spec;
+    ti_catalog_arm_cortexr4 -> microsoft_targets;
+    ti_catalog [shape=record,label="ti.catalog|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\package/package.rel.svg"];
+    ti_catalog_arm_cortexr4 -> ti_catalog;
+    ti_catalog_arm_cortexr4 -> xdc_services_intern_xsr;
+    ti_catalog_arm_cortexr4 -> ti_targets_arm_elf;
+    ti_catalog_arm_cortexr4 -> xdc_services_global;
+    ti_catalog_arm_cortexr4 -> ti_targets;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog -> xdc_services_intern_gen;
+    ti_catalog -> ti_targets;
+    ti_catalog -> xdc_services_spec;
+    ti_catalog -> microsoft_targets;
+    ti_catalog -> ti_targets_elf;
+    ti_catalog -> ti_targets_arm_elf;
+    ti_catalog -> gnu_targets_arm;
+    ti_catalog -> xdc_shelf;
+    ti_catalog -> ti_targets_arm;
+    ti_catalog -> xdc_services_global;
+    ti_catalog -> xdc_services_intern_cmd;
+    ti_catalog -> xdc_services_intern_xsr;
+    ti_catalog -> xdc_platform;
+    ti_catalog -> gnu_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_evmLM3S8962 -> ti_catalog_c6000;
+    ti_platforms_evmLM3S8962 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_evmLM3S8962 -> xdc_services_intern_cmd;
+    ti_platforms_evmLM3S8962 -> ti_catalog_c6000;
+    ti_platforms_evmLM3S8962 -> xdc_platform;
+    ti_platforms_evmLM3S8962 -> gnu_targets;
+    ti_platforms_evmLM3S8962 -> ti_targets_arm;
+    ti_platforms_evmLM3S8962 -> gnu_targets_arm;
+    ti_platforms_evmLM3S8962 -> xdc_services_intern_gen;
+    ti_platforms_evmLM3S8962 -> ti_targets_elf;
+    ti_platforms_evmLM3S8962 -> ti_catalog_arm_cortexm3_lm3init;
+    ti_platforms_evmLM3S8962 -> xdc_shelf;
+    ti_platforms_evmLM3S8962 -> xdc_services_spec;
+    ti_platforms_evmLM3S8962 -> microsoft_targets;
+    ti_platforms_evmLM3S8962 -> xdc_services_intern_xsr;
+    ti_platforms_evmLM3S8962 -> ti_targets_arm_elf;
+    ti_platforms_evmLM3S8962 -> xdc_services_global;
+    ti_platforms_evmLM3S8962 -> xdc_rov;
+    ti_platforms_evmLM3S8962 -> ti_targets;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_arm_cortexm3_lm3init -> xdc_services_intern_cmd;
+    ti_catalog_arm_cortexm3_lm3init -> gnu_targets;
+    ti_catalog_arm_cortexm3_lm3init -> ti_targets_arm;
+    ti_catalog_arm_cortexm3_lm3init -> gnu_targets_arm;
+    ti_catalog_arm_cortexm3_lm3init -> xdc_services_intern_gen;
+    ti_catalog_arm_cortexm3_lm3init -> ti_targets_elf;
+    ti_catalog_arm_cortexm3_lm3init -> xdc_shelf;
+    ti_catalog_arm_cortexm3_lm3init -> xdc_services_spec;
+    ti_catalog_arm_cortexm3_lm3init -> microsoft_targets;
+    ti_catalog_arm_cortexm3_lm3init -> xdc_services_intern_xsr;
+    ti_catalog_arm_cortexm3_lm3init -> ti_targets_arm_elf;
+    ti_catalog_arm_cortexm3_lm3init -> xdc_services_global;
+    ti_catalog_arm_cortexm3_lm3init -> xdc_rov;
+    ti_catalog_arm_cortexm3_lm3init -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_sdp3430 -> ti_catalog_c6000;
+    ti_platforms_sdp3430 -> ti_catalog_arm_cortexa8;
+    ti_platforms_sdp3430 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_sdp3430 -> xdc_services_intern_cmd;
+    ti_platforms_sdp3430 -> ti_catalog_arm_cortexa8;
+    ti_platforms_sdp3430 -> ti_catalog_c6000;
+    ti_platforms_sdp3430 -> xdc_platform;
+    ti_platforms_sdp3430 -> gnu_targets;
+    ti_platforms_sdp3430 -> ti_targets_arm;
+    ti_platforms_sdp3430 -> gnu_targets_arm;
+    ti_platforms_sdp3430 -> xdc_services_intern_gen;
+    ti_platforms_sdp3430 -> ti_targets_elf;
+    ti_platforms_sdp3430 -> xdc_shelf;
+    ti_platforms_sdp3430 -> xdc_services_spec;
+    ti_platforms_sdp3430 -> microsoft_targets;
+    ti_platforms_sdp3430 -> xdc_services_intern_xsr;
+    ti_platforms_sdp3430 -> ti_targets_arm_elf;
+    ti_platforms_sdp3430 -> xdc_services_global;
+    ti_platforms_sdp3430 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_catalog_arm_cortexa8 -> xdc_platform;
+    ti_catalog_peripherals_hdvicp2 [shape=record,label="ti.catalog.peripherals.hdvicp2|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\peripherals\hdvicp2\package/package.rel.svg"];
+    ti_catalog_arm_cortexa8 -> ti_catalog_peripherals_hdvicp2;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_arm_cortexa8 -> xdc_services_intern_cmd;
+    ti_catalog_arm_cortexa8 -> xdc_platform;
+    ti_catalog_arm_cortexa8 -> gnu_targets;
+    ti_catalog_arm_cortexa8 -> ti_targets_arm;
+    ti_catalog_arm_cortexa8 -> gnu_targets_arm;
+    ti_catalog_arm_cortexa8 -> xdc_services_intern_gen;
+    ti_catalog_arm_cortexa8 -> ti_catalog_peripherals_hdvicp2;
+    ti_catalog_arm_cortexa8 -> ti_targets_elf;
+    ti_catalog_arm_cortexa8 -> xdc_shelf;
+    ti_catalog_arm_cortexa8 -> xdc_services_spec;
+    ti_catalog_arm_cortexa8 -> microsoft_targets;
+    ti_catalog_arm_cortexa8 -> ti_catalog;
+    ti_catalog_arm_cortexa8 -> xdc_services_intern_xsr;
+    ti_catalog_arm_cortexa8 -> ti_targets_arm_elf;
+    ti_catalog_arm_cortexa8 -> xdc_services_global;
+    ti_catalog_arm_cortexa8 -> ti_targets;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_peripherals_hdvicp2 -> xdc_services_intern_gen;
+    ti_catalog_peripherals_hdvicp2 -> ti_targets;
+    ti_catalog_peripherals_hdvicp2 -> xdc_services_spec;
+    ti_catalog_peripherals_hdvicp2 -> microsoft_targets;
+    ti_catalog_peripherals_hdvicp2 -> ti_targets_elf;
+    ti_catalog_peripherals_hdvicp2 -> ti_targets_arm_elf;
+    ti_catalog_peripherals_hdvicp2 -> gnu_targets_arm;
+    ti_catalog_peripherals_hdvicp2 -> xdc_shelf;
+    ti_catalog_peripherals_hdvicp2 -> ti_targets_arm;
+    ti_catalog_peripherals_hdvicp2 -> xdc_services_global;
+    ti_catalog_peripherals_hdvicp2 -> xdc_services_intern_cmd;
+    ti_catalog_peripherals_hdvicp2 -> xdc_services_intern_xsr;
+    ti_catalog_peripherals_hdvicp2 -> xdc_platform;
+    ti_catalog_peripherals_hdvicp2 -> gnu_targets;
+
+    edge [style=solid, color=blue]
+    ti_targets_arm_rtsarm -> xdc_runtime;
+
+    edge [style=solid, color=lightgrey]
+    ti_targets_arm_rtsarm -> xdc_services_intern_gen;
+    ti_targets_arm_rtsarm -> gnu_targets_arm;
+    ti_targets_arm_rtsarm -> xdc_shelf;
+    ti_targets_arm_rtsarm -> xdc_services_intern_xsr;
+    microsoft_targets_arm [shape=record,label="microsoft.targets.arm|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\microsoft\targets\arm\package/package.rel.svg"];
+    ti_targets_arm_rtsarm -> microsoft_targets_arm;
+    ti_targets_arm_rtsarm -> gnu_targets;
+    ti_targets_arm_rtsarm -> ti_targets;
+    ti_targets_arm_rtsarm -> xdc_services_global;
+    ti_targets_arm_rtsarm -> xdc_services_intern_cmd;
+    ti_targets_arm_rtsarm -> ti_targets_arm;
+    ti_targets_arm_rtsarm -> xdc_runtime;
+    ti_targets_arm_rtsarm -> ti_targets_elf;
+    ti_targets_arm_rtsarm -> microsoft_targets;
+    ti_targets_arm_rtsarm -> xdc_runtime_knl;
+    ti_targets_arm_rtsarm -> ti_targets_arm_elf;
+    ti_targets_arm_rtsarm -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+    microsoft_targets_arm -> microsoft_targets;
+
+    edge [style=solid, color=lightgrey]
+    microsoft_targets_arm -> xdc_services_global;
+    microsoft_targets_arm -> xdc_services_intern_cmd;
+    microsoft_targets_arm -> xdc_services_intern_xsr;
+    microsoft_targets_arm -> xdc_services_spec;
+    microsoft_targets_arm -> xdc_shelf;
+    microsoft_targets_arm -> xdc_services_intern_gen;
+    microsoft_targets_arm -> microsoft_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_expOMAPL138 -> ti_catalog_c6000;
+    ti_platforms_expOMAPL138 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_expOMAPL138 -> xdc_services_intern_cmd;
+    ti_platforms_expOMAPL138 -> ti_catalog_c6000;
+    ti_platforms_expOMAPL138 -> xdc_platform;
+    ti_platforms_expOMAPL138 -> gnu_targets;
+    ti_platforms_expOMAPL138 -> ti_targets_arm;
+    ti_platforms_expOMAPL138 -> gnu_targets_arm;
+    ti_platforms_expOMAPL138 -> xdc_services_intern_gen;
+    ti_platforms_expOMAPL138 -> ti_targets_elf;
+    ti_platforms_expOMAPL138 -> xdc_shelf;
+    ti_platforms_expOMAPL138 -> xdc_services_spec;
+    ti_platforms_expOMAPL138 -> microsoft_targets;
+    ti_platforms_expOMAPL138 -> xdc_services_intern_xsr;
+    ti_platforms_expOMAPL138 -> ti_targets_arm_elf;
+    ti_platforms_expOMAPL138 -> xdc_services_global;
+    ti_platforms_expOMAPL138 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_catalog_arm -> xdc_platform;
+    ti_catalog_arm_peripherals_timers [shape=record,label="ti.catalog.arm.peripherals.timers|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\arm\peripherals\timers\package/package.rel.svg"];
+    ti_catalog_arm -> ti_catalog_arm_peripherals_timers;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_arm -> xdc_services_intern_cmd;
+    ti_catalog_arm -> xdc_platform;
+    ti_catalog_arm -> ti_catalog_arm_peripherals_timers;
+    ti_catalog_arm -> gnu_targets;
+    ti_catalog_arm -> ti_targets_arm;
+    ti_catalog_arm -> gnu_targets_arm;
+    ti_catalog_arm -> xdc_services_intern_gen;
+    ti_catalog_arm -> ti_targets_elf;
+    ti_catalog_arm -> xdc_shelf;
+    ti_catalog_arm -> xdc_services_spec;
+    ti_catalog_arm -> microsoft_targets;
+    ti_catalog_arm -> ti_catalog;
+    ti_catalog_arm -> xdc_services_intern_xsr;
+    ti_catalog_arm -> ti_targets_arm_elf;
+    ti_catalog_arm -> xdc_services_global;
+    ti_catalog_arm -> ti_targets;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_arm_peripherals_timers -> xdc_services_intern_gen;
+    ti_catalog_arm_peripherals_timers -> ti_targets;
+    ti_catalog_arm_peripherals_timers -> xdc_services_spec;
+    ti_catalog_arm_peripherals_timers -> microsoft_targets;
+    ti_catalog_arm_peripherals_timers -> ti_targets_elf;
+    ti_catalog_arm_peripherals_timers -> ti_targets_arm_elf;
+    ti_catalog_arm_peripherals_timers -> gnu_targets_arm;
+    ti_catalog_arm_peripherals_timers -> xdc_shelf;
+    ti_catalog_arm_peripherals_timers -> ti_targets_arm;
+    ti_catalog_arm_peripherals_timers -> xdc_services_global;
+    ti_catalog_arm_peripherals_timers -> xdc_services_intern_cmd;
+    ti_catalog_arm_peripherals_timers -> xdc_services_intern_xsr;
+    ti_catalog_arm_peripherals_timers -> xdc_platform;
+    ti_catalog_arm_peripherals_timers -> gnu_targets;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+    ti_platforms_sdp4430 -> ti_catalog_c6000;
+    ti_platforms_sdp4430 -> ti_catalog_arm_cortexm3;
+    ti_platforms_sdp4430 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_sdp4430 -> xdc_services_intern_cmd;
+    ti_platforms_sdp4430 -> ti_catalog_c6000;
+    ti_platforms_sdp4430 -> ti_catalog_arm_cortexm3;
+    ti_platforms_sdp4430 -> xdc_platform;
+    ti_platforms_sdp4430 -> gnu_targets;
+    ti_platforms_sdp4430 -> ti_targets_arm;
+    ti_platforms_sdp4430 -> gnu_targets_arm;
+    ti_platforms_sdp4430 -> xdc_services_intern_gen;
+    ti_platforms_sdp4430 -> ti_targets_elf;
+    ti_platforms_sdp4430 -> xdc_shelf;
+    ti_platforms_sdp4430 -> xdc_services_spec;
+    ti_platforms_sdp4430 -> microsoft_targets;
+    ti_platforms_sdp4430 -> xdc_services_intern_xsr;
+    ti_platforms_sdp4430 -> ti_targets_arm_elf;
+    ti_platforms_sdp4430 -> xdc_services_global;
+    ti_platforms_sdp4430 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_catalog_arm_cortexm3 -> xdc_platform;
+    ti_catalog_arm_cortexm3 -> ti_catalog_peripherals_hdvicp2;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_arm_cortexm3 -> xdc_services_intern_cmd;
+    ti_catalog_arm_cortexm3 -> xdc_platform;
+    ti_catalog_arm_cortexm3 -> ti_catalog_arm_peripherals_timers;
+    ti_catalog_arm_cortexm3 -> gnu_targets;
+    ti_catalog_arm_cortexm3 -> ti_targets_arm;
+    ti_catalog_arm_cortexm3 -> gnu_targets_arm;
+    ti_catalog_arm_cortexm3 -> xdc_services_intern_gen;
+    ti_catalog_arm_cortexm3 -> ti_catalog_peripherals_hdvicp2;
+    ti_catalog_arm_cortexm3 -> ti_targets_elf;
+    ti_catalog_arm_cortexm3 -> xdc_shelf;
+    ti_catalog_arm_cortexm3 -> xdc_services_spec;
+    ti_catalog_arm_cortexm3 -> microsoft_targets;
+    ti_catalog_arm_cortexm3 -> ti_catalog;
+    ti_catalog_arm_cortexm3 -> xdc_services_intern_xsr;
+    ti_catalog_arm_cortexm3 -> ti_targets_arm_elf;
+    ti_catalog_arm_cortexm3 -> xdc_services_global;
+    ti_catalog_arm_cortexm3 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_padk6727 -> ti_catalog_c6000;
+    ti_platforms_padk6727 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_padk6727 -> xdc_services_intern_cmd;
+    ti_platforms_padk6727 -> ti_catalog_c6000;
+    ti_platforms_padk6727 -> xdc_platform;
+    ti_platforms_padk6727 -> gnu_targets;
+    ti_platforms_padk6727 -> ti_targets_arm;
+    ti_platforms_padk6727 -> gnu_targets_arm;
+    ti_platforms_padk6727 -> xdc_services_intern_gen;
+    ti_platforms_padk6727 -> ti_targets_elf;
+    ti_platforms_padk6727 -> xdc_shelf;
+    ti_platforms_padk6727 -> xdc_services_spec;
+    ti_platforms_padk6727 -> microsoft_targets;
+    ti_platforms_padk6727 -> xdc_services_intern_xsr;
+    ti_platforms_padk6727 -> ti_targets_arm_elf;
+    ti_platforms_padk6727 -> xdc_services_global;
+    ti_platforms_padk6727 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_evm6472 -> ti_catalog_c6000;
+    ti_platforms_evm6472 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_evm6472 -> xdc_services_intern_cmd;
+    ti_platforms_evm6472 -> ti_catalog_c6000;
+    ti_platforms_evm6472 -> xdc_platform;
+    ti_platforms_evm6472 -> gnu_targets;
+    ti_platforms_evm6472 -> ti_targets_arm;
+    ti_platforms_evm6472 -> gnu_targets_arm;
+    ti_platforms_evm6472 -> xdc_services_intern_gen;
+    ti_platforms_evm6472 -> ti_targets_elf;
+    ti_platforms_evm6472 -> xdc_shelf;
+    ti_platforms_evm6472 -> xdc_services_spec;
+    ti_platforms_evm6472 -> microsoft_targets;
+    ti_platforms_evm6472 -> xdc_services_intern_xsr;
+    ti_platforms_evm6472 -> ti_targets_arm_elf;
+    ti_platforms_evm6472 -> xdc_services_global;
+    ti_platforms_evm6472 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_targets_msp430_rts430 -> xdc_runtime;
+
+    edge [style=solid, color=lightgrey]
+    ti_targets_msp430_rts430 -> xdc_services_intern_gen;
+    ti_targets_msp430_rts430 -> ti_targets_msp430;
+    ti_targets_msp430_rts430 -> xdc_services_spec;
+    ti_targets_msp430_rts430 -> xdc_shelf;
+    ti_targets_msp430_rts430 -> xdc_services_global;
+    ti_targets_msp430_rts430 -> xdc_services_intern_cmd;
+    ti_targets_msp430_rts430 -> xdc_services_intern_xsr;
+    ti_targets_msp430_rts430 -> xdc_runtime_knl;
+    ti_targets_msp430_rts430 -> xdc_runtime;
+    ti_targets_msp430_rts430 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_exp430F5438 -> ti_catalog_msp430;
+    ti_platforms_exp430F5438 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_exp430F5438 -> xdc_services_intern_gen;
+    ti_platforms_exp430F5438 -> xdc_services_spec;
+    ti_platforms_exp430F5438 -> xdc_shelf;
+    ti_platforms_exp430F5438 -> xdc_platform;
+    ti_platforms_exp430F5438 -> xdc_services_global;
+    ti_platforms_exp430F5438 -> xdc_services_intern_cmd;
+    ti_platforms_exp430F5438 -> xdc_services_intern_xsr;
+
+    edge [style=solid, color=blue]
+    ti_catalog_msp430_peripherals_watchdog -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430_peripherals_watchdog -> ti_catalog_msp430_peripherals_special_function;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_watchdog -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_watchdog -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_watchdog -> xdc_shelf;
+    ti_catalog_msp430_peripherals_watchdog -> xdc_platform;
+    ti_catalog_msp430_peripherals_watchdog -> xdc_services_global;
+    ti_catalog_msp430_peripherals_watchdog -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_watchdog -> xdc_services_intern_xsr;
+    ti_catalog_msp430_peripherals_watchdog -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430_peripherals_watchdog -> ti_catalog_msp430_peripherals_special_function;
+
+    edge [style=solid, color=blue]
+    ti_catalog_msp430_peripherals_timer -> ti_catalog_msp430_peripherals_clock;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_timer -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_timer -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_timer -> xdc_shelf;
+    ti_catalog_msp430_peripherals_timer -> xdc_platform;
+    ti_catalog_msp430_peripherals_timer -> xdc_services_global;
+    ti_catalog_msp430_peripherals_timer -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_timer -> xdc_services_intern_xsr;
+    ti_catalog_msp430_peripherals_timer -> ti_catalog_msp430_peripherals_clock;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_special_function -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_special_function -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_special_function -> xdc_shelf;
+    ti_catalog_msp430_peripherals_special_function -> xdc_platform;
+    ti_catalog_msp430_peripherals_special_function -> xdc_services_global;
+    ti_catalog_msp430_peripherals_special_function -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_special_function -> xdc_services_intern_xsr;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_oa -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_oa -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_oa -> xdc_shelf;
+    ti_catalog_msp430_peripherals_oa -> xdc_platform;
+    ti_catalog_msp430_peripherals_oa -> xdc_services_global;
+    ti_catalog_msp430_peripherals_oa -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_oa -> xdc_services_intern_xsr;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_memory -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_memory -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_memory -> xdc_shelf;
+    ti_catalog_msp430_peripherals_memory -> xdc_platform;
+    ti_catalog_msp430_peripherals_memory -> xdc_services_global;
+    ti_catalog_msp430_peripherals_memory -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_memory -> xdc_services_intern_xsr;
+    ti_catalog_msp430_peripherals_memory -> ti_catalog_msp430_peripherals_clock;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_gpio -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_gpio -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_gpio -> xdc_shelf;
+    ti_catalog_msp430_peripherals_gpio -> xdc_platform;
+    ti_catalog_msp430_peripherals_gpio -> xdc_services_global;
+    ti_catalog_msp430_peripherals_gpio -> ti_catalog_msp430_peripherals_adc;
+    ti_catalog_msp430_peripherals_gpio -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_gpio -> xdc_services_intern_xsr;
+    ti_catalog_msp430_peripherals_gpio -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430_peripherals_gpio -> ti_catalog_msp430_peripherals_timer;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+    ti_catalog_msp430_peripherals_communication -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430_peripherals_communication -> ti_catalog_msp430_peripherals_special_function;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_communication -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_communication -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_communication -> xdc_shelf;
+    ti_catalog_msp430_peripherals_communication -> xdc_platform;
+    ti_catalog_msp430_peripherals_communication -> xdc_services_global;
+    ti_catalog_msp430_peripherals_communication -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_communication -> xdc_services_intern_xsr;
+    ti_catalog_msp430_peripherals_communication -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430_peripherals_communication -> ti_catalog_msp430_peripherals_special_function;
+
+    edge [style=solid, color=blue]
+    ti_catalog_msp430_peripherals_clock -> ti_catalog_msp430_peripherals_special_function;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_clock -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_clock -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_clock -> xdc_shelf;
+    ti_catalog_msp430_peripherals_clock -> xdc_platform;
+    ti_catalog_msp430_peripherals_clock -> xdc_services_global;
+    ti_catalog_msp430_peripherals_clock -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_clock -> xdc_services_intern_xsr;
+    ti_catalog_msp430_peripherals_clock -> ti_catalog_msp430_peripherals_special_function;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_adc -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_adc -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_adc -> xdc_shelf;
+    ti_catalog_msp430_peripherals_adc -> xdc_platform;
+    ti_catalog_msp430_peripherals_adc -> xdc_services_global;
+    ti_catalog_msp430_peripherals_adc -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_adc -> xdc_services_intern_xsr;
+    ti_catalog_msp430_peripherals_adc -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430_peripherals_adc -> ti_catalog_msp430_peripherals_timer;
+
+    edge [style=solid, color=blue]
+    ti_catalog_msp430_init -> xdc_runtime;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_init -> xdc_services_intern_gen;
+    ti_catalog_msp430_init -> ti_targets_msp430;
+    ti_catalog_msp430_init -> xdc_services_spec;
+    ti_catalog_msp430_init -> xdc_shelf;
+    ti_catalog_msp430_init -> xdc_services_global;
+    ti_catalog_msp430_init -> xdc_services_intern_cmd;
+    ti_catalog_msp430_init -> xdc_services_intern_xsr;
+    ti_catalog_msp430_init -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_catalog_msp430 -> xdc_platform;
+    ti_catalog_msp430 -> ti_catalog;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_timer;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_adc;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_communication;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_gpio;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_oa;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_special_function;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_watchdog;
+    ti_catalog_msp430_peripherals_interrupt [shape=record,label="ti.catalog.msp430.peripherals.interrupt|", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\msp430\peripherals\interrupt\package/package.rel.svg"];
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_interrupt;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_special_function;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_memory;
+    ti_catalog_msp430 -> xdc_platform;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_clock;
+    ti_catalog_msp430 -> xdc_services_intern_xsr;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_interrupt;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_adc;
+    ti_catalog_msp430 -> xdc_services_intern_cmd;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_communication;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_watchdog;
+    ti_catalog_msp430 -> xdc_services_spec;
+    ti_catalog_msp430 -> xdc_services_global;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_gpio;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_timer;
+    ti_catalog_msp430 -> ti_catalog;
+    ti_catalog_msp430 -> xdc_services_intern_gen;
+    ti_catalog_msp430 -> ti_catalog_msp430_peripherals_oa;
+    ti_catalog_msp430 -> xdc_shelf;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_msp430_peripherals_interrupt -> xdc_services_intern_gen;
+    ti_catalog_msp430_peripherals_interrupt -> xdc_services_spec;
+    ti_catalog_msp430_peripherals_interrupt -> xdc_shelf;
+    ti_catalog_msp430_peripherals_interrupt -> xdc_platform;
+    ti_catalog_msp430_peripherals_interrupt -> xdc_services_global;
+    ti_catalog_msp430_peripherals_interrupt -> xdc_services_intern_cmd;
+    ti_catalog_msp430_peripherals_interrupt -> xdc_services_intern_xsr;
+
+    edge [style=solid, color=blue]
+    ti_platforms_evmDA830 -> ti_catalog_c6000;
+    ti_platforms_evmDA830 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_evmDA830 -> xdc_services_intern_cmd;
+    ti_platforms_evmDA830 -> ti_catalog_c6000;
+    ti_platforms_evmDA830 -> xdc_platform;
+    ti_platforms_evmDA830 -> gnu_targets;
+    ti_platforms_evmDA830 -> ti_targets_arm;
+    ti_platforms_evmDA830 -> gnu_targets_arm;
+    ti_platforms_evmDA830 -> xdc_services_intern_gen;
+    ti_platforms_evmDA830 -> ti_targets_elf;
+    ti_platforms_evmDA830 -> xdc_shelf;
+    ti_platforms_evmDA830 -> xdc_services_spec;
+    ti_platforms_evmDA830 -> microsoft_targets;
+    ti_platforms_evmDA830 -> xdc_services_intern_xsr;
+    ti_platforms_evmDA830 -> ti_targets_arm_elf;
+    ti_platforms_evmDA830 -> xdc_services_global;
+    ti_platforms_evmDA830 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_evmDM6437 -> ti_catalog_c6000;
+    ti_platforms_evmDM6437 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_evmDM6437 -> xdc_services_intern_cmd;
+    ti_platforms_evmDM6437 -> ti_catalog_c6000;
+    ti_platforms_evmDM6437 -> xdc_platform;
+    ti_platforms_evmDM6437 -> gnu_targets;
+    ti_platforms_evmDM6437 -> ti_targets_arm;
+    ti_platforms_evmDM6437 -> gnu_targets_arm;
+    ti_platforms_evmDM6437 -> xdc_services_intern_gen;
+    ti_platforms_evmDM6437 -> ti_targets_elf;
+    ti_platforms_evmDM6437 -> xdc_shelf;
+    ti_platforms_evmDM6437 -> xdc_services_spec;
+    ti_platforms_evmDM6437 -> microsoft_targets;
+    ti_platforms_evmDM6437 -> xdc_services_intern_xsr;
+    ti_platforms_evmDM6437 -> ti_targets_arm_elf;
+    ti_platforms_evmDM6437 -> xdc_services_global;
+    ti_platforms_evmDM6437 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_evmDM6446 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_evmDM6446 -> xdc_services_intern_gen;
+    ti_platforms_evmDM6446 -> ti_targets;
+    ti_platforms_evmDM6446 -> xdc_services_spec;
+    ti_platforms_evmDM6446 -> microsoft_targets;
+    ti_platforms_evmDM6446 -> ti_targets_elf;
+    ti_platforms_evmDM6446 -> ti_targets_arm_elf;
+    ti_platforms_evmDM6446 -> gnu_targets_arm;
+    ti_platforms_evmDM6446 -> xdc_shelf;
+    ti_platforms_evmDM6446 -> ti_targets_arm;
+    ti_platforms_evmDM6446 -> xdc_services_global;
+    ti_platforms_evmDM6446 -> xdc_services_intern_cmd;
+    ti_platforms_evmDM6446 -> xdc_services_intern_xsr;
+    ti_platforms_evmDM6446 -> xdc_platform;
+    ti_platforms_evmDM6446 -> gnu_targets;
+
+    edge [style=solid, color=blue]
+    ti_targets_rts6000 -> xdc_runtime;
+
+    edge [style=solid, color=lightgrey]
+    ti_targets_rts6000 -> xdc_services_intern_gen;
+    ti_targets_rts6000 -> gnu_targets_arm;
+    ti_targets_rts6000 -> xdc_shelf;
+    ti_targets_rts6000 -> xdc_services_intern_xsr;
+    ti_targets_rts6000 -> microsoft_targets_arm;
+    ti_targets_rts6000 -> gnu_targets;
+    ti_targets_rts6000 -> ti_targets;
+    ti_targets_rts6000 -> xdc_services_global;
+    ti_targets_rts6000 -> xdc_services_intern_cmd;
+    ti_targets_rts6000 -> ti_targets_arm;
+    ti_targets_rts6000 -> xdc_runtime;
+    ti_targets_rts6000 -> ti_targets_elf;
+    ti_targets_rts6000 -> microsoft_targets;
+    ti_targets_rts6000 -> xdc_runtime_knl;
+    ti_targets_rts6000 -> ti_targets_arm_elf;
+    ti_targets_rts6000 -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+    ti_platforms_dsk6416 -> ti_catalog_c6000;
+    ti_platforms_dsk6416 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_dsk6416 -> xdc_services_intern_cmd;
+    ti_platforms_dsk6416 -> ti_catalog_c6000;
+    ti_platforms_dsk6416 -> xdc_platform;
+    ti_platforms_dsk6416 -> gnu_targets;
+    ti_platforms_dsk6416 -> ti_targets_arm;
+    ti_platforms_dsk6416 -> gnu_targets_arm;
+    ti_platforms_dsk6416 -> xdc_services_intern_gen;
+    ti_platforms_dsk6416 -> ti_targets_elf;
+    ti_platforms_dsk6416 -> xdc_shelf;
+    ti_platforms_dsk6416 -> xdc_services_spec;
+    ti_platforms_dsk6416 -> microsoft_targets;
+    ti_platforms_dsk6416 -> xdc_services_intern_xsr;
+    ti_platforms_dsk6416 -> ti_targets_arm_elf;
+    ti_platforms_dsk6416 -> xdc_services_global;
+    ti_platforms_dsk6416 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_catalog_c6000 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_c6000 -> xdc_services_intern_cmd;
+    ti_catalog_c6000 -> xdc_platform;
+    ti_catalog_c6000 -> gnu_targets;
+    ti_catalog_c6000 -> ti_targets_arm;
+    ti_catalog_c6000 -> gnu_targets_arm;
+    ti_catalog_c6000 -> xdc_services_intern_gen;
+    ti_catalog_c6000 -> ti_catalog_peripherals_hdvicp2;
+    ti_catalog_c6000 -> ti_targets_elf;
+    ti_catalog_c6000 -> xdc_shelf;
+    ti_catalog_c6000 -> xdc_services_spec;
+    ti_catalog_c6000 -> microsoft_targets;
+    ti_catalog_c6000 -> ti_catalog;
+    ti_catalog_c6000 -> xdc_services_intern_xsr;
+    ti_catalog_c6000 -> ti_targets_arm_elf;
+    ti_catalog_c6000 -> xdc_services_global;
+    ti_catalog_c6000 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_platforms_ezdsp28335 -> ti_catalog_c2800;
+    ti_platforms_ezdsp28335 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_ezdsp28335 -> xdc_services_intern_cmd;
+    ti_platforms_ezdsp28335 -> ti_catalog_c2800_init;
+    ti_platforms_ezdsp28335 -> xdc_platform;
+    ti_platforms_ezdsp28335 -> ti_catalog_c2800;
+    ti_platforms_ezdsp28335 -> gnu_targets;
+    ti_platforms_ezdsp28335 -> ti_targets_arm;
+    ti_platforms_ezdsp28335 -> gnu_targets_arm;
+    ti_platforms_ezdsp28335 -> xdc_services_intern_gen;
+    ti_platforms_ezdsp28335 -> ti_targets_elf;
+    ti_platforms_ezdsp28335 -> xdc_shelf;
+    ti_platforms_ezdsp28335 -> xdc_services_spec;
+    ti_platforms_ezdsp28335 -> microsoft_targets;
+    ti_platforms_ezdsp28335 -> xdc_services_intern_xsr;
+    ti_platforms_ezdsp28335 -> ti_targets_arm_elf;
+    ti_platforms_ezdsp28335 -> xdc_services_global;
+    ti_platforms_ezdsp28335 -> xdc_rov;
+    ti_platforms_ezdsp28335 -> ti_targets;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_io -> xdc_runtime;
+    xdc_services_io -> xdc_utils_tconf;
+    microsoft_targets_rts [shape=record,label="microsoft.targets.rts|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\microsoft\targets\rts\package/package.rel.svg"];
+    xdc_services_io -> microsoft_targets_rts;
+    xdc_services_io -> microsoft_targets;
+    xdc_services_io -> xdc_services_global;
+    xdc_services_io -> xdc_rov;
+    xdc_services_io -> xdc_shelf;
+    xdc_services_io -> xdc_services_intern_gen;
+    xdc_services_io -> xdc_services_spec;
+    xdc_services_io -> xdc_platform;
+    xdc_services_io -> xdc_cfg;
+    xdc_services_io -> gnu_targets;
+    xdc_services_io -> xdc_services_intern_xsr;
+    xdc_corevers [shape=record,label="xdc.corevers|16, 0, 2, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\corevers\package/package.rel.svg"];
+    xdc_services_io -> xdc_corevers;
+    host_platforms_PC [shape=record,label="host.platforms.PC|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\host\platforms\PC\package/package.rel.svg"];
+    xdc_services_io -> host_platforms_PC;
+    xdc_services_io -> xdc_services_intern_cmd;
+
+    edge [style=solid, color=blue]
+    host_platforms_PC -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    host_platforms_PC -> xdc_services_spec;
+    host_platforms_PC -> gnu_targets;
+    host_platforms_PC -> xdc_services_intern_cmd;
+    host_platforms_PC -> xdc_utils_tconf;
+    host_platforms_PC -> xdc_services_intern_xsr;
+    host_platforms_PC -> xdc_platform;
+    host_platforms_PC -> xdc_shelf;
+    host_platforms_PC -> xdc_services_intern_gen;
+    host_platforms_PC -> xdc_services_global;
+    host_platforms_PC -> microsoft_targets;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_corevers -> xdc_services_spec;
+    xdc_corevers -> xdc_services_intern_cmd;
+    xdc_corevers -> xdc_utils_tconf;
+    xdc_corevers -> xdc_services_intern_xsr;
+    xdc_corevers -> xdc_shelf;
+    xdc_corevers -> xdc_services_intern_gen;
+    xdc_corevers -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+    microsoft_targets_rts -> xdc_runtime;
+
+    edge [style=solid, color=lightgrey]
+    microsoft_targets_rts -> xdc_services_intern_gen;
+    microsoft_targets_rts -> gnu_targets_arm;
+    microsoft_targets_rts -> xdc_shelf;
+    microsoft_targets_rts -> xdc_services_intern_xsr;
+    microsoft_targets_rts -> microsoft_targets_arm;
+    microsoft_targets_rts -> gnu_targets;
+    microsoft_targets_rts -> ti_targets;
+    microsoft_targets_rts -> xdc_services_global;
+    microsoft_targets_rts -> xdc_services_intern_cmd;
+    microsoft_targets_rts -> ti_targets_arm;
+    microsoft_targets_rts -> xdc_runtime;
+    microsoft_targets_rts -> ti_targets_elf;
+    microsoft_targets_rts -> microsoft_targets;
+    microsoft_targets_rts -> xdc_runtime_knl;
+    microsoft_targets_rts -> ti_targets_arm_elf;
+    microsoft_targets_rts -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_getset -> xdc_services_spec;
+    xdc_services_getset -> xdc_services_intern_cmd;
+    xdc_services_getset -> xdc_utils_tconf;
+    xdc_services_getset -> xdc_services_intern_xsr;
+    xdc_services_getset -> xdc_shelf;
+    xdc_services_getset -> xdc_services_intern_gen;
+    xdc_services_getset -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_rov -> xdc_services_spec;
+    xdc_rov -> gnu_targets;
+    xdc_rov -> xdc_services_intern_cmd;
+    xdc_rov -> xdc_utils_tconf;
+    xdc_rov -> xdc_services_intern_xsr;
+    xdc_rov -> xdc_shelf;
+    xdc_rov -> xdc_services_intern_gen;
+    xdc_rov -> xdc_services_global;
+    xdc_rov -> microsoft_targets;
+
+    edge [style=solid, color=blue]
+    ti_targets_rts2800 -> xdc_runtime;
+
+    edge [style=solid, color=lightgrey]
+    ti_targets_rts2800 -> xdc_services_intern_gen;
+    ti_targets_rts2800 -> gnu_targets_arm;
+    ti_targets_rts2800 -> xdc_shelf;
+    ti_targets_rts2800 -> xdc_services_intern_xsr;
+    ti_targets_rts2800 -> microsoft_targets_arm;
+    ti_targets_rts2800 -> gnu_targets;
+    ti_targets_rts2800 -> ti_targets;
+    ti_targets_rts2800 -> xdc_services_global;
+    ti_targets_rts2800 -> xdc_services_intern_cmd;
+    ti_targets_rts2800 -> ti_targets_arm;
+    ti_targets_rts2800 -> xdc_runtime;
+    ti_targets_rts2800 -> ti_targets_elf;
+    ti_targets_rts2800 -> microsoft_targets;
+    ti_targets_rts2800 -> xdc_runtime_knl;
+    ti_targets_rts2800 -> ti_targets_arm_elf;
+    ti_targets_rts2800 -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+    ti_platforms_ezdsp28235 -> ti_catalog_c2800;
+    ti_platforms_ezdsp28235 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_platforms_ezdsp28235 -> xdc_services_intern_cmd;
+    ti_platforms_ezdsp28235 -> ti_catalog_c2800_init;
+    ti_platforms_ezdsp28235 -> xdc_platform;
+    ti_platforms_ezdsp28235 -> ti_catalog_c2800;
+    ti_platforms_ezdsp28235 -> gnu_targets;
+    ti_platforms_ezdsp28235 -> ti_targets_arm;
+    ti_platforms_ezdsp28235 -> gnu_targets_arm;
+    ti_platforms_ezdsp28235 -> xdc_services_intern_gen;
+    ti_platforms_ezdsp28235 -> ti_targets_elf;
+    ti_platforms_ezdsp28235 -> xdc_shelf;
+    ti_platforms_ezdsp28235 -> xdc_services_spec;
+    ti_platforms_ezdsp28235 -> microsoft_targets;
+    ti_platforms_ezdsp28235 -> xdc_services_intern_xsr;
+    ti_platforms_ezdsp28235 -> ti_targets_arm_elf;
+    ti_platforms_ezdsp28235 -> xdc_services_global;
+    ti_platforms_ezdsp28235 -> xdc_rov;
+    ti_platforms_ezdsp28235 -> ti_targets;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_c2800_init -> xdc_services_intern_cmd;
+    ti_catalog_c2800_init -> gnu_targets;
+    ti_catalog_c2800_init -> ti_targets_arm;
+    ti_catalog_c2800_init -> gnu_targets_arm;
+    ti_catalog_c2800_init -> xdc_services_intern_gen;
+    ti_catalog_c2800_init -> ti_targets_elf;
+    ti_catalog_c2800_init -> xdc_shelf;
+    ti_catalog_c2800_init -> xdc_services_spec;
+    ti_catalog_c2800_init -> microsoft_targets;
+    ti_catalog_c2800_init -> xdc_services_intern_xsr;
+    ti_catalog_c2800_init -> ti_targets_arm_elf;
+    ti_catalog_c2800_init -> xdc_services_global;
+    ti_catalog_c2800_init -> xdc_rov;
+    ti_catalog_c2800_init -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_catalog_c2800 -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_c2800 -> xdc_services_intern_cmd;
+    ti_catalog_c2800 -> xdc_platform;
+    ti_catalog_c2800 -> gnu_targets;
+    ti_catalog_c2800 -> ti_targets_arm;
+    ti_catalog_c2800 -> gnu_targets_arm;
+    ti_catalog_c2800 -> xdc_services_intern_gen;
+    ti_catalog_c2800 -> ti_targets_elf;
+    ti_catalog_c2800 -> xdc_shelf;
+    ti_catalog_c2800 -> xdc_services_spec;
+    ti_catalog_c2800 -> microsoft_targets;
+    ti_catalog_c2800 -> ti_catalog;
+    ti_catalog_c2800 -> xdc_services_intern_xsr;
+    ti_catalog_c2800 -> ti_targets_arm_elf;
+    ti_catalog_c2800 -> xdc_services_global;
+    ti_catalog_c2800 -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_sysbios_family_c28 -> ti_sysbios_interfaces;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_family_c28 -> xdc_services_global;
+    ti_sysbios_family_c28 -> ti_targets;
+    ti_sysbios_family_c28 -> ti_targets_msp430;
+    ti_sysbios_family_c28 -> ti_targets_elf_arp32;
+    ti_sysbios_family_c28 -> ti_targets_elf;
+    ti_sysbios_family_c28 -> ti_targets_arm;
+    ti_sysbios_family_c28 -> ti_targets_arm_elf;
+    ti_sysbios_family_c28 -> gnu_targets;
+    ti_sysbios_family_c28 -> microsoft_targets;
+    ti_sysbios_family_c28 -> ti_sysbios_build;
+    ti_sysbios_family_c28 -> tisb_release_filters;
+    ti_sysbios_family_c28 -> xdc_runtime;
+    ti_sysbios_family_c28 -> ti_sysbios_interfaces;
+    ti_sysbios_family_c28 -> xdc_shelf;
+    ti_sysbios_family_c28 -> xdc_services_intern_gen;
+    ti_sysbios_family_c28 -> xdc_services_intern_cmd;
+    ti_sysbios_family_c28 -> xdc_services_intern_xsr;
+    ti_sysbios_family_c28 -> xdc_services_spec;
+    ti_sysbios_knl [shape=record,label="ti.sysbios.knl|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\knl\package/package.rel.svg"];
+    ti_sysbios_family_c28 -> ti_sysbios_knl;
+    ti_sysbios_family_c28 -> ti_sysbios_hal;
+    ti_sysbios_family_c28 -> ti_sysbios;
+
+    edge [style=solid, color=blue]
+    ti_sysbios_knl -> ti_sysbios_interfaces;
+    ti_sysbios_knl -> ti_sysbios_family;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_knl -> xdc_services_global;
+    ti_sysbios_knl -> ti_targets;
+    ti_sysbios_knl -> ti_targets_msp430;
+    ti_sysbios_knl -> ti_targets_elf_arp32;
+    ti_sysbios_knl -> ti_targets_elf;
+    ti_sysbios_knl -> ti_targets_arm;
+    ti_sysbios_knl -> ti_targets_arm_elf;
+    ti_sysbios_knl -> gnu_targets;
+    ti_sysbios_knl -> microsoft_targets;
+    ti_sysbios_knl -> ti_sysbios_build;
+    ti_sysbios_knl -> tisb_release_filters;
+    ti_sysbios_knl -> xdc_runtime;
+    ti_sysbios_knl -> ti_sysbios_hal;
+    ti_sysbios_knl -> ti_sysbios_interfaces;
+    ti_sysbios_knl -> xdc_shelf;
+    ti_sysbios_knl -> xdc_services_intern_gen;
+    ti_sysbios_knl -> xdc_services_intern_cmd;
+    ti_sysbios_knl -> xdc_services_intern_xsr;
+    ti_sysbios_knl -> xdc_services_spec;
+    ti_sysbios_knl -> ti_sysbios;
+    ti_sysbios_knl -> ti_sysbios_family_arm_m3;
+    ti_sysbios_knl -> ti_sysbios_family_c28;
+
+    edge [style=solid, color=blue]
+    ti_sysbios_family_arm_m3 -> ti_sysbios_interfaces;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_family_arm_m3 -> xdc_services_global;
+    ti_sysbios_family_arm_m3 -> ti_targets;
+    ti_sysbios_family_arm_m3 -> ti_targets_msp430;
+    ti_sysbios_family_arm_m3 -> ti_targets_elf_arp32;
+    ti_sysbios_family_arm_m3 -> ti_targets_elf;
+    ti_sysbios_family_arm_m3 -> ti_targets_arm;
+    ti_sysbios_family_arm_m3 -> ti_targets_arm_elf;
+    ti_sysbios_family_arm_m3 -> gnu_targets;
+    ti_sysbios_family_arm_m3 -> microsoft_targets;
+    ti_sysbios_family_arm_m3 -> ti_sysbios_build;
+    ti_sysbios_family_arm_m3 -> tisb_release_filters;
+    ti_sysbios_family_arm_m3 -> xdc_runtime;
+    ti_sysbios_family_arm_m3 -> ti_sysbios;
+    ti_sysbios_family_arm_m3 -> ti_sysbios_interfaces;
+    ti_sysbios_family_arm_m3 -> xdc_shelf;
+    ti_sysbios_family_arm_m3 -> xdc_services_intern_gen;
+    ti_sysbios_family_arm_m3 -> xdc_services_intern_cmd;
+    ti_sysbios_family_arm_m3 -> xdc_services_intern_xsr;
+    ti_sysbios_family_arm_m3 -> xdc_services_spec;
+    ti_sysbios_family_arm_m3 -> ti_sysbios_knl;
+    ti_sysbios_family_arm_m3 -> ti_sysbios_hal;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_build -> xdc_services_global;
+    ti_sysbios_build -> ti_targets;
+    ti_sysbios_build -> ti_targets_msp430;
+    ti_sysbios_build -> ti_targets_elf_arp32;
+    ti_sysbios_build -> ti_targets_elf;
+    ti_sysbios_build -> ti_targets_arm;
+    ti_sysbios_build -> ti_targets_arm_elf;
+    ti_sysbios_build -> gnu_targets;
+    ti_sysbios_build -> microsoft_targets;
+    ti_sysbios_build -> xdc_shelf;
+    ti_sysbios_build -> xdc_services_intern_gen;
+    ti_sysbios_build -> xdc_services_intern_cmd;
+    ti_sysbios_build -> xdc_services_intern_xsr;
+    ti_sysbios_build -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+    ti_sysbios_family -> ti_sysbios_interfaces;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_family -> xdc_services_global;
+    ti_sysbios_family -> ti_targets;
+    ti_sysbios_family -> ti_targets_msp430;
+    ti_sysbios_family -> ti_targets_elf_arp32;
+    ti_sysbios_family -> ti_targets_elf;
+    ti_sysbios_family -> ti_targets_arm;
+    ti_sysbios_family -> ti_targets_arm_elf;
+    ti_sysbios_family -> gnu_targets;
+    ti_sysbios_family -> microsoft_targets;
+    ti_sysbios_family_c64p [shape=record,label="ti.sysbios.family.c64p|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\family\c64p\package/package.rel.svg"];
+    ti_sysbios_family -> ti_sysbios_family_c64p;
+    ti_sysbios_family -> ti_sysbios_family_c28;
+    ti_sysbios_family_arm [shape=record,label="ti.sysbios.family.arm|2, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\family\arm\package/package.rel.svg"];
+    ti_sysbios_family -> ti_sysbios_family_arm;
+    ti_sysbios_family -> xdc_platform;
+    ti_sysbios_family -> ti_catalog_arm;
+    ti_sysbios_family -> ti_catalog_arm_cortexm3;
+    ti_catalog_arm_nda [shape=record,label="ti.catalog.arm.nda|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\ti\catalog\arm\nda\package/package.rel.svg"];
+    ti_sysbios_family -> ti_catalog_arm_nda;
+    ti_sysbios_family -> ti_catalog_arm_cortexa8;
+    ti_sysbios_family_msp430 [shape=record,label="ti.sysbios.family.msp430|1, 0, 0, 0", URL="../E:\WriteHere\bios_6_32_01_38\packages\ti\sysbios\family\msp430\package/package.rel.svg"];
+    ti_sysbios_family -> ti_sysbios_family_msp430;
+    ti_sysbios_family -> ti_sysbios_interfaces;
+    ti_sysbios_family -> xdc_shelf;
+    ti_sysbios_family -> xdc_services_intern_gen;
+    ti_sysbios_family -> xdc_services_intern_cmd;
+    ti_sysbios_family -> xdc_services_intern_xsr;
+    ti_sysbios_family -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+    ti_sysbios_family_msp430 -> ti_sysbios_interfaces;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_family_msp430 -> xdc_services_global;
+    ti_sysbios_family_msp430 -> ti_targets;
+    ti_sysbios_family_msp430 -> ti_targets_msp430;
+    ti_sysbios_family_msp430 -> ti_targets_elf_arp32;
+    ti_sysbios_family_msp430 -> ti_targets_elf;
+    ti_sysbios_family_msp430 -> ti_targets_arm;
+    ti_sysbios_family_msp430 -> ti_targets_arm_elf;
+    ti_sysbios_family_msp430 -> gnu_targets;
+    ti_sysbios_family_msp430 -> microsoft_targets;
+    ti_sysbios_family_msp430 -> ti_sysbios_build;
+    ti_sysbios_family_msp430 -> tisb_release_filters;
+    ti_sysbios_family_msp430 -> xdc_runtime;
+    ti_sysbios_family_msp430 -> ti_sysbios_interfaces;
+    ti_sysbios_family_msp430 -> xdc_shelf;
+    ti_sysbios_family_msp430 -> xdc_services_intern_gen;
+    ti_sysbios_family_msp430 -> xdc_services_intern_cmd;
+    ti_sysbios_family_msp430 -> xdc_services_intern_xsr;
+    ti_sysbios_family_msp430 -> xdc_services_spec;
+    ti_sysbios_family_msp430 -> ti_sysbios_knl;
+    ti_sysbios_family_msp430 -> ti_sysbios_hal;
+    ti_sysbios_family_msp430 -> ti_sysbios;
+    ti_sysbios_family_msp430 -> ti_catalog_msp430_peripherals_timer;
+    ti_sysbios_family_msp430 -> ti_sysbios_family_arm_m3;
+    ti_sysbios_family_msp430 -> ti_sysbios_family_c28;
+
+    edge [style=solid, color=blue]
+    ti_catalog_arm_nda -> xdc_platform;
+
+    edge [style=solid, color=lightgrey]
+    ti_catalog_arm_nda -> xdc_services_intern_cmd;
+    ti_catalog_arm_nda -> xdc_platform;
+    ti_catalog_arm_nda -> gnu_targets;
+    ti_catalog_arm_nda -> ti_targets_arm;
+    ti_catalog_arm_nda -> gnu_targets_arm;
+    ti_catalog_arm_nda -> xdc_services_intern_gen;
+    ti_catalog_arm_nda -> ti_targets_elf;
+    ti_catalog_arm_nda -> xdc_shelf;
+    ti_catalog_arm_nda -> xdc_services_spec;
+    ti_catalog_arm_nda -> microsoft_targets;
+    ti_catalog_arm_nda -> ti_catalog;
+    ti_catalog_arm_nda -> xdc_services_intern_xsr;
+    ti_catalog_arm_nda -> ti_targets_arm_elf;
+    ti_catalog_arm_nda -> xdc_services_global;
+    ti_catalog_arm_nda -> ti_targets;
+
+    edge [style=solid, color=blue]
+    ti_sysbios_family_arm -> ti_sysbios_interfaces;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_family_arm -> xdc_services_global;
+    ti_sysbios_family_arm -> ti_targets;
+    ti_sysbios_family_arm -> ti_targets_msp430;
+    ti_sysbios_family_arm -> ti_targets_elf_arp32;
+    ti_sysbios_family_arm -> ti_targets_elf;
+    ti_sysbios_family_arm -> ti_targets_arm;
+    ti_sysbios_family_arm -> ti_targets_arm_elf;
+    ti_sysbios_family_arm -> gnu_targets;
+    ti_sysbios_family_arm -> microsoft_targets;
+    ti_sysbios_family_arm -> ti_sysbios_build;
+    ti_sysbios_family_arm -> tisb_release_filters;
+    ti_sysbios_family_arm -> ti_sysbios_interfaces;
+    ti_sysbios_family_arm -> xdc_shelf;
+    ti_sysbios_family_arm -> xdc_services_intern_gen;
+    ti_sysbios_family_arm -> xdc_services_intern_cmd;
+    ti_sysbios_family_arm -> xdc_services_intern_xsr;
+    ti_sysbios_family_arm -> xdc_services_spec;
+    ti_sysbios_family_arm -> xdc_runtime;
+    ti_sysbios_family_arm -> ti_sysbios_knl;
+    ti_sysbios_family_arm -> ti_sysbios_hal;
+
+    edge [style=solid, color=blue]
+    ti_sysbios_family_c64p -> ti_sysbios_interfaces;
+
+    edge [style=solid, color=lightgrey]
+    ti_sysbios_family_c64p -> xdc_services_global;
+    ti_sysbios_family_c64p -> ti_targets;
+    ti_sysbios_family_c64p -> ti_targets_msp430;
+    ti_sysbios_family_c64p -> ti_targets_elf_arp32;
+    ti_sysbios_family_c64p -> ti_targets_elf;
+    ti_sysbios_family_c64p -> ti_targets_arm;
+    ti_sysbios_family_c64p -> ti_targets_arm_elf;
+    ti_sysbios_family_c64p -> gnu_targets;
+    ti_sysbios_family_c64p -> microsoft_targets;
+    ti_sysbios_family_c64p -> ti_sysbios_build;
+    ti_sysbios_family_c64p -> tisb_release_filters;
+    ti_sysbios_family_c64p -> ti_sysbios_interfaces;
+    ti_sysbios_family_c64p -> xdc_runtime;
+    ti_sysbios_family_c64p -> xdc_shelf;
+    ti_sysbios_family_c64p -> xdc_services_intern_gen;
+    ti_sysbios_family_c64p -> xdc_services_intern_cmd;
+    ti_sysbios_family_c64p -> xdc_services_intern_xsr;
+    ti_sysbios_family_c64p -> xdc_services_spec;
+    ti_sysbios_family_c64p -> ti_sysbios_knl;
+    ti_sysbios_family_c64p -> ti_sysbios;
+    ti_sysbios_family_c64p -> ti_sysbios_hal;
+    ti_sysbios_family_c64p -> ti_sysbios_family_arm_m3;
+    ti_sysbios_family_c64p -> ti_sysbios_family_c28;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_dman3 -> xdc_services_global;
+    ti_sdo_fc_dman3 -> ti_targets;
+    ti_sdo_fc_dman3 -> ti_targets_elf;
+    ti_sdo_fc_dman3 -> ti_targets_elf_arp32;
+    ti_sdo_fc_dman3 -> gnu_targets;
+    ti_sdo_fc_dman3 -> gnu_targets_arm;
+    ti_sdo_fc_dman3 -> ti_targets_arm;
+    ti_sdo_fc_dman3 -> ti_targets_arm_elf;
+    ti_sdo_fc_dman3 -> build_filter;
+    ti_sdo_fc_dman3 -> xdc_services_intern_cmd;
+    ti_sdo_fc_dman3 -> xdc_services_intern_gen;
+    ti_sdo_fc_dman3 -> xdc_services_intern_xsr;
+    ti_sdo_fc_dman3 -> xdc_shelf;
+    ti_sdo_fc_dman3 -> xdc_services_spec;
+    ti_sdo_fc_dman3 -> xdc_runtime;
+    ti_sdo_fc_dman3 -> ti_xdais;
+    ti_sdo_fc_dman3 -> xdc_runtime_knl;
+    ti_sdo_fc_dman3 -> ti_sdo_fc_utils_osalsupport;
+    ti_sdo_fc_dman3 -> ti_sdo_fc_global;
+    ti_sdo_fc_dman3 -> ti_sdo_utils_trace;
+    ti_sdo_fc_utils_gtinfra [shape=record,label="ti.sdo.fc.utils.gtinfra|1, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\utils\gtinfra\package/package.rel.svg"];
+    ti_sdo_fc_dman3 -> ti_sdo_fc_utils_gtinfra;
+    ti_sdo_fc_edma3 [shape=record,label="ti.sdo.fc.edma3|3, 0, 0", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\fc\edma3\package/package.rel.svg"];
+    ti_sdo_fc_dman3 -> ti_sdo_fc_edma3;
+    ti_sdo_edma3_rm [shape=record,label="ti.sdo.edma3.rm|02, 02, 02", URL="../E:\WriteHere\codec_engine_3_21_00_19\cetools\packages\ti\sdo\edma3\rm\package/package.rel.svg"];
+    ti_sdo_fc_dman3 -> ti_sdo_edma3_rm;
+    ti_sdo_fc_dman3 -> ti_sdo_fc_ires;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_edma3 -> xdc_services_global;
+    ti_sdo_fc_edma3 -> ti_targets;
+    ti_sdo_fc_edma3 -> ti_targets_elf;
+    ti_sdo_fc_edma3 -> ti_targets_elf_arp32;
+    ti_sdo_fc_edma3 -> gnu_targets;
+    ti_sdo_fc_edma3 -> gnu_targets_arm;
+    ti_sdo_fc_edma3 -> ti_targets_arm;
+    ti_sdo_fc_edma3 -> ti_targets_arm_elf;
+    ti_sdo_fc_edma3 -> build_filter;
+    ti_sdo_fc_edma3 -> xdc_services_intern_cmd;
+    ti_sdo_fc_edma3 -> xdc_services_intern_gen;
+    ti_sdo_fc_edma3 -> xdc_services_intern_xsr;
+    ti_sdo_fc_edma3 -> xdc_shelf;
+    ti_sdo_fc_edma3 -> xdc_services_spec;
+    ti_sdo_fc_edma3 -> xdc_runtime;
+    ti_sdo_fc_edma3 -> ti_sysbios_knl;
+    ti_sdo_fc_edma3 -> ti_sysbios_hal;
+    ti_sdo_fc_edma3 -> ti_sdo_fc_global;
+    ti_sdo_fc_edma3 -> ti_xdais;
+    ti_sdo_fc_edma3 -> ti_sdo_edma3_rm;
+    ti_sdo_fc_edma3 -> xdc_runtime_knl;
+    ti_sdo_fc_edma3 -> ti_sdo_fc_utils_osalsupport;
+    ti_sdo_fc_edma3 -> ti_sysbios_interfaces;
+    ti_sdo_fc_edma3 -> ti_sdo_fc_ires;
+    ti_sdo_fc_edma3 -> ti_sysbios_family_arm_m3;
+    ti_sdo_fc_edma3 -> ti_sysbios_family_c28;
+    ti_sdo_fc_edma3 -> ti_sysbios;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_utils_gtinfra -> xdc_services_global;
+    ti_sdo_fc_utils_gtinfra -> ti_targets;
+    ti_sdo_fc_utils_gtinfra -> ti_targets_elf;
+    ti_sdo_fc_utils_gtinfra -> ti_targets_elf_arp32;
+    ti_sdo_fc_utils_gtinfra -> gnu_targets;
+    ti_sdo_fc_utils_gtinfra -> gnu_targets_arm;
+    ti_sdo_fc_utils_gtinfra -> ti_targets_arm;
+    ti_sdo_fc_utils_gtinfra -> ti_targets_arm_elf;
+    ti_sdo_fc_utils_gtinfra -> build_filter;
+    ti_sdo_fc_utils_gtinfra -> xdc_services_intern_cmd;
+    ti_sdo_fc_utils_gtinfra -> xdc_services_intern_gen;
+    ti_sdo_fc_utils_gtinfra -> xdc_services_intern_xsr;
+    ti_sdo_fc_utils_gtinfra -> xdc_shelf;
+    ti_sdo_fc_utils_gtinfra -> xdc_services_spec;
+    ti_sdo_fc_utils_gtinfra -> xdc_runtime;
+    ti_sdo_fc_utils_gtinfra -> xdc_runtime_knl;
+    ti_sdo_fc_utils_gtinfra -> ti_sysbios;
+    ti_sdo_fc_utils_gtinfra -> ti_sysbios_knl;
+    ti_sdo_fc_utils_gtinfra -> ti_sdo_utils_trace;
+    ti_sdo_fc_utils_gtinfra -> ti_sysbios_interfaces;
+    ti_sdo_fc_utils_gtinfra -> ti_sysbios_hal;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_fc_dskt2 -> xdc_services_global;
+    ti_sdo_fc_dskt2 -> ti_targets;
+    ti_sdo_fc_dskt2 -> ti_targets_elf;
+    ti_sdo_fc_dskt2 -> ti_targets_elf_arp32;
+    ti_sdo_fc_dskt2 -> gnu_targets;
+    ti_sdo_fc_dskt2 -> gnu_targets_arm;
+    ti_sdo_fc_dskt2 -> ti_targets_arm;
+    ti_sdo_fc_dskt2 -> ti_targets_arm_elf;
+    ti_sdo_fc_dskt2 -> build_filter;
+    ti_sdo_fc_dskt2 -> xdc_services_intern_cmd;
+    ti_sdo_fc_dskt2 -> xdc_services_intern_gen;
+    ti_sdo_fc_dskt2 -> xdc_services_intern_xsr;
+    ti_sdo_fc_dskt2 -> xdc_shelf;
+    ti_sdo_fc_dskt2 -> xdc_services_spec;
+    ti_sdo_fc_dskt2 -> xdc_runtime;
+    ti_sdo_fc_dskt2 -> ti_xdais;
+    ti_sdo_fc_dskt2 -> ti_sdo_fc_utils_osalsupport;
+    ti_sdo_fc_dskt2 -> ti_sdo_fc_global;
+    ti_sdo_fc_dskt2 -> ti_sdo_fc_utils_gtinfra;
+    ti_sdo_fc_dskt2 -> xdc_runtime_knl;
+    ti_sdo_fc_dskt2 -> ti_sdo_fc_utils;
+    ti_sdo_fc_dskt2 -> ti_sysbios_hal;
+    ti_sdo_fc_dskt2 -> ti_sysbios_interfaces;
+    ti_sdo_fc_dskt2 -> ti_sysbios_knl;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_ce_global -> xdc_services_global;
+    ti_sdo_ce_global -> ti_targets;
+    ti_sdo_ce_global -> ti_targets_elf;
+    ti_sdo_ce_global -> gnu_targets;
+    ti_sdo_ce_global -> gnu_targets_arm;
+    ti_sdo_ce_global -> ti_targets_arm;
+    ti_sdo_ce_global -> ti_targets_arm_elf;
+    ti_sdo_ce_global -> build_filter;
+    ti_sdo_ce_global -> ti_sdo_tools_build;
+    ti_sdo_ce_global -> xdc_services_intern_cmd;
+    ti_sdo_ce_global -> xdc_services_intern_gen;
+    ti_sdo_ce_global -> xdc_services_intern_xsr;
+    ti_sdo_ce_global -> xdc_shelf;
+    ti_sdo_ce_global -> xdc_services_spec;
+    ti_sdo_ce_global -> xdc_runtime;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_ce_osal -> xdc_services_global;
+    ti_sdo_ce_osal -> ti_targets;
+    ti_sdo_ce_osal -> ti_targets_elf;
+    ti_sdo_ce_osal -> gnu_targets;
+    ti_sdo_ce_osal -> gnu_targets_arm;
+    ti_sdo_ce_osal -> ti_targets_arm;
+    ti_sdo_ce_osal -> ti_targets_arm_elf;
+    ti_sdo_ce_osal -> build_filter;
+    ti_sdo_ce_osal -> xdc_services_intern_cmd;
+    ti_sdo_ce_osal -> xdc_services_intern_gen;
+    ti_sdo_ce_osal -> xdc_services_intern_xsr;
+    ti_sdo_ce_osal -> xdc_shelf;
+    ti_sdo_ce_osal -> xdc_services_spec;
+    ti_sdo_ce_osal -> xdc_runtime;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_utils_trace -> xdc_services_global;
+    ti_sdo_utils_trace -> ti_targets;
+    ti_sdo_utils_trace -> ti_targets_elf;
+    ti_sdo_utils_trace -> ti_targets_elf_arp32;
+    ti_sdo_utils_trace -> gnu_targets;
+    ti_sdo_utils_trace -> gnu_targets_arm;
+    ti_sdo_utils_trace -> ti_targets_arm;
+    ti_sdo_utils_trace -> ti_targets_arm_elf;
+    ti_sdo_utils_trace -> build_filter;
+    ti_sdo_utils_trace -> xdc_services_intern_cmd;
+    ti_sdo_utils_trace -> xdc_services_intern_gen;
+    ti_sdo_utils_trace -> xdc_services_intern_xsr;
+    ti_sdo_utils_trace -> xdc_shelf;
+    ti_sdo_utils_trace -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_utils_loggers -> xdc_services_global;
+    ti_sdo_utils_loggers -> ti_targets;
+    ti_sdo_utils_loggers -> ti_targets_elf;
+    ti_sdo_utils_loggers -> ti_targets_arm;
+    ti_sdo_utils_loggers -> ti_targets_arm_elf;
+    ti_sdo_utils_loggers -> gnu_targets;
+    ti_sdo_utils_loggers -> gnu_targets_arm;
+    ti_sdo_utils_loggers -> xdc_runtime;
+    ti_sdo_utils_loggers -> xdc_services_intern_cmd;
+    ti_sdo_utils_loggers -> xdc_services_intern_gen;
+    ti_sdo_utils_loggers -> xdc_services_intern_xsr;
+    ti_sdo_utils_loggers -> xdc_shelf;
+    ti_sdo_utils_loggers -> xdc_services_spec;
+    ti_sdo_utils_loggers -> xdc_runtime_knl;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_xdais -> xdc_services_intern_gen;
+    ti_xdais -> gnu_targets_arm;
+    ti_xdais -> ti_targets_arm_elf;
+    ti_xdais -> ti_targets_elf;
+    ti_xdais -> xdc_shelf;
+    ti_xdais -> ti_targets_arm;
+    ti_xdais -> xdc_services_spec;
+    ti_xdais -> gnu_targets;
+    ti_xdais -> ti_targets;
+    ti_xdais -> microsoft_targets;
+    ti_xdais -> xdc_services_intern_cmd;
+    ti_xdais -> xdc_services_intern_xsr;
+    ti_xdais -> microsoft_targets_arm;
+    ti_xdais -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_runtime_knl -> xdc_utils_tconf;
+    xdc_runtime_knl -> xdc_services_global;
+    xdc_runtime_knl -> xdc_runtime;
+    xdc_runtime_knl -> xdc_shelf;
+    xdc_runtime_knl -> xdc_services_intern_xsr;
+    xdc_runtime_knl -> xdc_services_intern_gen;
+    xdc_runtime_knl -> xdc_services_spec;
+    xdc_runtime_knl -> xdc_services_intern_cmd;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_runtime -> xdc_utils_tconf;
+    xdc_runtime -> xdc_services_global;
+    xdc_runtime -> xdc_rov;
+    xdc_runtime -> xdc_shelf;
+    xdc_runtime -> xdc_services_intern_xsr;
+    xdc_runtime -> xdc_services_intern_gen;
+    xdc_runtime -> xdc_services_spec;
+    xdc_runtime -> xdc_services_intern_cmd;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_ce_ipc -> xdc_services_global;
+    ti_sdo_ce_ipc -> ti_targets;
+    ti_sdo_ce_ipc -> ti_targets_elf;
+    ti_sdo_ce_ipc -> gnu_targets;
+    ti_sdo_ce_ipc -> gnu_targets_arm;
+    ti_sdo_ce_ipc -> ti_targets_arm;
+    ti_sdo_ce_ipc -> ti_targets_arm_elf;
+    ti_sdo_ce_ipc -> build_filter;
+    ti_sdo_ce_ipc -> xdc_services_intern_cmd;
+    ti_sdo_ce_ipc -> xdc_services_intern_gen;
+    ti_sdo_ce_ipc -> xdc_services_intern_xsr;
+    ti_sdo_ce_ipc -> xdc_shelf;
+    ti_sdo_ce_ipc -> xdc_services_spec;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_targets_arm_elf -> xdc_services_global;
+    ti_targets_arm_elf -> ti_targets;
+    ti_targets_arm_elf -> ti_targets_arm;
+    ti_targets_arm_elf -> xdc_services_intern_cmd;
+    ti_targets_arm_elf -> xdc_services_intern_xsr;
+    ti_targets_arm_elf -> xdc_services_spec;
+    ti_targets_arm_elf -> xdc_shelf;
+    ti_targets_arm_elf -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+    ti_targets_arm -> ti_targets;
+
+    edge [style=solid, color=lightgrey]
+    ti_targets_arm -> xdc_services_global;
+    ti_targets_arm -> ti_targets;
+    ti_targets_arm -> xdc_services_intern_cmd;
+    ti_targets_arm -> xdc_services_intern_xsr;
+    ti_targets_arm -> xdc_services_spec;
+    ti_targets_arm -> xdc_shelf;
+    ti_targets_arm -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+    gnu_targets_arm -> gnu_targets;
+
+    edge [style=solid, color=lightgrey]
+    gnu_targets_arm -> xdc_services_global;
+    gnu_targets_arm -> gnu_targets;
+    gnu_targets_arm -> xdc_shelf;
+    gnu_targets_arm -> xdc_services_spec;
+    gnu_targets_arm -> xdc_services_intern_cmd;
+    gnu_targets_arm -> xdc_services_intern_xsr;
+    gnu_targets_arm -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    gnu_targets -> xdc_services_global;
+    gnu_targets -> xdc_shelf;
+    gnu_targets -> xdc_services_spec;
+    gnu_targets -> xdc_services_intern_cmd;
+    gnu_targets -> xdc_services_intern_xsr;
+    gnu_targets -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_targets_elf -> xdc_services_global;
+    ti_targets_elf -> ti_targets;
+    ti_targets_elf -> xdc_services_intern_cmd;
+    ti_targets_elf -> xdc_services_intern_xsr;
+    ti_targets_elf -> xdc_services_spec;
+    ti_targets_elf -> xdc_shelf;
+    ti_targets_elf -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_targets -> xdc_services_global;
+    ti_targets -> xdc_services_intern_cmd;
+    ti_targets -> xdc_services_intern_xsr;
+    ti_targets -> xdc_shelf;
+    ti_targets -> xdc_services_spec;
+    ti_targets -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_shelf -> xdc_services_spec;
+    xdc_shelf -> xdc_services_intern_cmd;
+    xdc_shelf -> xdc_utils_tconf;
+    xdc_shelf -> xdc_services_intern_xsr;
+    xdc_shelf -> xdc_services_intern_gen;
+    xdc_shelf -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+    xdc_services_intern_gen -> xdc_shelf;
+    xdc_services_intern_gen -> xdc_services_spec;
+    xdc_services_intern_gen -> xdc_services_global;
+    xdc_services_intern_gen -> xdc_services_intern_xsr;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_intern_gen -> xdc_services_spec;
+    xdc_services_intern_gen -> xdc_services_intern_cmd;
+    xdc_services_intern_gen -> xdc_utils_tconf;
+    xdc_services_intern_gen -> xdc_services_intern_xsr;
+    xdc_services_intern_gen -> xdc_shelf;
+    xdc_services_intern_gen -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_codecs_universal -> xdc_services_intern_gen;
+    ti_sdo_codecs_universal -> xdc_shelf;
+    ti_sdo_codecs_universal -> xdc_services_global;
+    ti_sdo_codecs_universal -> xdc_services_spec;
+    ti_sdo_codecs_universal -> xdc_services_intern_cmd;
+    ti_sdo_codecs_universal -> xdc_services_intern_xsr;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    ti_sdo_ce_universal -> xdc_services_intern_gen;
+    ti_sdo_ce_universal -> xdc_shelf;
+    ti_sdo_ce_universal -> ti_sdo_ce;
+    ti_sdo_ce_universal -> xdc_services_global;
+    ti_sdo_ce_universal -> xdc_platform;
+    ti_sdo_ce_universal -> xdc_services_spec;
+    ti_sdo_ce_universal -> xdc_services_intern_cmd;
+    ti_sdo_ce_universal -> xdc_services_intern_xsr;
+    ti_sdo_ce_universal -> xdc_cfg;
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.rel.xml b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package.rel.xml
new file mode 100644 (file)
index 0000000..e866fc4
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="windows-1252"?>\r
+<!--  This file conforms to the DTD xdc/bld/release.dtd -->\r
+<release name="ti_sdo_codecs_universal_ce" label="default" date="1384185679125" buildCount="1" producerId="undefined">\r
+<package name="ti.sdo.codecs.universal.ce"\r
+    version="1, 0, 0"/>\r
+<imports>\r
+    <package name="ti.sdo.ce.universal"\r
+        version=""/>\r
+    <package name="ti.sdo.codecs.universal"\r
+        version=""/>\r
+</imports>\r
+<references>\r
+    <package name="xdc.services.intern.gen"\r
+        version="1, 0, 0, 0, 1284507405214"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.shelf"\r
+        version="1, 0, 0, 1284507424737"\r
+        providerId="xdccore">\r
+        <file name="java\antlr.jar"/>\r
+        <file name="java\ecj.jar"/>\r
+        <file name="java\js.jar"/>\r
+        <file name="java\jsr173_api.jar"/>\r
+        <file name="java\tar.jar"/>\r
+        <file name="java\xbean.jar"/>\r
+    </package>\r
+    <package name="ti.sdo.ce"\r
+        version="1, 0, 6, 1313607868501"\r
+        providerId="codec_engine_3_21_00_19">\r
+        <file name="ICodec.xdc"/>\r
+    </package>\r
+    <package name="xdc.bld"\r
+        version="1, 0, 2, 1284507372516"\r
+        providerId="xdccore">\r
+        <file name="BuildEnvironment.xs"/>\r
+        <file name="Executable.xs"/>\r
+        <file name="ITarget.xs"/>\r
+        <file name="ITargetFilter.xs"/>\r
+        <file name="Library.xs"/>\r
+        <file name="Manifest.xs"/>\r
+        <file name="PackageContents.xs"/>\r
+        <file name="Repository.xs"/>\r
+        <file name="Script.xs"/>\r
+        <file name="Utils.xs"/>\r
+        <file name="_gen.xs"/>\r
+        <file name="bld.js"/>\r
+        <file name="package.xs"/>\r
+    </package>\r
+    <package name="xdc"\r
+        version="1, 1, 1, 1284507365742"\r
+        providerId="xdccore">\r
+        <file name="IPackage.xdc"/>\r
+        <file name="IPackage.xs"/>\r
+        <file name="om2.xs"/>\r
+        <file name="package.xs"/>\r
+        <file name="template.xs"/>\r
+        <file name="xdc.tci"/>\r
+        <file name="xmlgen.xs"/>\r
+        <file name="xmlgen2.xs"/>\r
+    </package>\r
+    <package name="ti.sdo.codecs.universal"\r
+        version="1, 0, 0, 1384185676281"\r
+        providerId="G:/from_sayanna/RTSC_Release">\r
+        <file name="UNIVERSAL.xdc"/>\r
+    </package>\r
+    <package name="ti.sdo.ce.universal"\r
+        version="1, 0, 0, 1313608056406"\r
+        providerId="codec_engine_3_21_00_19">\r
+        <file name="IUNIVERSAL.xdc"/>\r
+    </package>\r
+    <package name="xdc.services.global"\r
+        version="1, 0, 0, 1284507401675"\r
+        providerId="xdccore">\r
+        <file name="Clock.xs"/>\r
+        <file name="Trace.xs"/>\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.platform"\r
+        version="1, 0, 1, 0, 1284507379983"\r
+        providerId="xdccore">\r
+        <file name="ICpuDataSheet.xdc"/>\r
+        <file name="IExeContext.xdc"/>\r
+        <file name="IPeripheral.xdc"/>\r
+        <file name="IPlatform.xdc"/>\r
+    </package>\r
+    <package name="xdc.services.spec"\r
+        version="1, 0, 0, 0, 1284507414889"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.intern.cmd"\r
+        version="1, 0, 0, 0, 1284507405123"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.intern.xsr"\r
+        version="1, 0, 0, 1284507408194"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.cfg"\r
+        version="1, 0, 2, 0, 1284507375537"\r
+        providerId="xdccore">\r
+        <file name="Program.xdc"/>\r
+    </package>\r
+    <xdcRoot base="E:/WriteHere/xdctools_3_20_04_68/">\r
+        <file name="/packages/xdc/package.xdc"/>\r
+        <file name="etc\config.bld"/>\r
+        <file name="include\utils.tci"/>\r
+        <xdcCorePkg version="16, 0, 2, 0, 1284507377139" producerId="undefined" buildCount="279" releaseName="xdc_corevers" label="default" date="1284507377139"/>\r
+    </xdcRoot>\r
+</references>\r
+<orphans>\r
+</orphans>\r
+</release>\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package_ti.sdo.codecs.universal.ce.c b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/package_ti.sdo.codecs.universal.ce.c
new file mode 100644 (file)
index 0000000..c225117
--- /dev/null
@@ -0,0 +1,21 @@
+/*\r
+ *  Do not modify this file; it is automatically \r
+ *  generated and any modifications will be overwritten.\r
+ *\r
+ * @(#) xdc-v49\r
+ */\r
+\r
+#include <xdc/std.h>\r
+\r
+__FAR__ char ti_sdo_codecs_universal_ce__dummy__;\r
+\r
+#define __xdc_PKGVERS 1, 0, 0\r
+#define __xdc_PKGNAME ti.sdo.codecs.universal.ce\r
+#define __xdc_PKGPREFIX ti_sdo_codecs_universal_ce_\r
+\r
+#ifdef __xdc_bld_pkg_c__\r
+#define __stringify(a) #a\r
+#define __local_include(a) __stringify(a)\r
+#include __local_include(__xdc_bld_pkg_c__)\r
+#endif\r
+\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti.sdo.codecs.universal.ce.ccs b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti.sdo.codecs.universal.ce.ccs
new file mode 100644 (file)
index 0000000..fa18885
Binary files /dev/null and b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti.sdo.codecs.universal.ce.ccs differ
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti.sdo.codecs.universal.ce.sch b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti.sdo.codecs.universal.ce.sch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti_sdo_codecs_universal_ce.class b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti_sdo_codecs_universal_ce.class
new file mode 100644 (file)
index 0000000..6dc19aa
Binary files /dev/null and b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti_sdo_codecs_universal_ce.class differ
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti_sdo_codecs_universal_ce.java b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/ce/package/ti_sdo_codecs_universal_ce.java
new file mode 100644 (file)
index 0000000..aaea013
--- /dev/null
@@ -0,0 +1,250 @@
+/*
+ *  Do not modify this file; it is automatically 
+ *  generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-v49
+ */
+import java.util.*;
+import org.mozilla.javascript.*;
+import xdc.services.intern.xsr.*;
+import xdc.services.spec.*;
+
+public class ti_sdo_codecs_universal_ce
+{
+    static final String VERS = "@(#) xdc-v49\n";
+
+    static final Proto.Elm $$T_Bool = Proto.Elm.newBool();
+    static final Proto.Elm $$T_Num = Proto.Elm.newNum();
+    static final Proto.Elm $$T_Str = Proto.Elm.newStr();
+    static final Proto.Elm $$T_Obj = Proto.Elm.newObj();
+
+    static final Proto.Fxn $$T_Met = new Proto.Fxn(null, null, 0, -1, false);
+    static final Proto.Map $$T_Map = new Proto.Map($$T_Obj);
+    static final Proto.Arr $$T_Vec = new Proto.Arr($$T_Obj);
+
+    static final XScriptO $$DEFAULT = Value.DEFAULT;
+    static final Object $$UNDEF = Undefined.instance;
+
+    static final Proto.Obj $$Package = (Proto.Obj)Global.get("$$Package");
+    static final Proto.Obj $$Module = (Proto.Obj)Global.get("$$Module");
+    static final Proto.Obj $$Instance = (Proto.Obj)Global.get("$$Instance");
+    static final Proto.Obj $$Params = (Proto.Obj)Global.get("$$Params");
+
+    static final Object $$objFldGet = Global.get("$$objFldGet");
+    static final Object $$objFldSet = Global.get("$$objFldSet");
+    static final Object $$proxyGet = Global.get("$$proxyGet");
+    static final Object $$proxySet = Global.get("$$proxySet");
+    static final Object $$delegGet = Global.get("$$delegGet");
+    static final Object $$delegSet = Global.get("$$delegSet");
+
+    Scriptable xdcO;
+    Session ses;
+    Value.Obj om;
+
+    boolean isROV;
+    boolean isCFG;
+
+    Proto.Obj pkgP;
+    Value.Obj pkgV;
+
+    ArrayList<Object> imports = new ArrayList<Object>();
+    ArrayList<Object> loggables = new ArrayList<Object>();
+    ArrayList<Object> mcfgs = new ArrayList<Object>();
+    ArrayList<Object> proxies = new ArrayList<Object>();
+    ArrayList<Object> sizes = new ArrayList<Object>();
+    ArrayList<Object> tdefs = new ArrayList<Object>();
+
+    void $$IMPORTS()
+    {
+        Global.callFxn("loadPackage", xdcO, "ti.sdo.ce.universal");
+        Global.callFxn("loadPackage", xdcO, "ti.sdo.codecs.universal");
+        Global.callFxn("loadPackage", xdcO, "xdc");
+        Global.callFxn("loadPackage", xdcO, "xdc.corevers");
+    }
+
+    void $$OBJECTS()
+    {
+        pkgP = (Proto.Obj)om.bind("ti.sdo.codecs.universal.ce.Package", new Proto.Obj());
+        pkgV = (Value.Obj)om.bind("ti.sdo.codecs.universal.ce", new Value.Obj("ti.sdo.codecs.universal.ce", pkgP));
+    }
+
+    void UNIVERSAL$$OBJECTS()
+    {
+        Proto.Obj po, spo;
+        Value.Obj vo;
+
+        po = (Proto.Obj)om.bind("ti.sdo.codecs.universal.ce.UNIVERSAL.Module", new Proto.Obj());
+        vo = (Value.Obj)om.bind("ti.sdo.codecs.universal.ce.UNIVERSAL", new Value.Obj("ti.sdo.codecs.universal.ce.UNIVERSAL", po));
+        pkgV.bind("UNIVERSAL", vo);
+        // decls 
+    }
+
+    void UNIVERSAL$$CONSTS()
+    {
+        // module UNIVERSAL
+    }
+
+    void UNIVERSAL$$CREATES()
+    {
+        Proto.Fxn fxn;
+        StringBuilder sb;
+
+    }
+
+    void UNIVERSAL$$FUNCTIONS()
+    {
+        Proto.Fxn fxn;
+
+    }
+
+    void UNIVERSAL$$SIZES()
+    {
+    }
+
+    void UNIVERSAL$$TYPES()
+    {
+        Scriptable cap;
+        Proto.Obj po;
+        Proto.Str ps;
+        Proto.Typedef pt;
+        Object fxn;
+
+        cap = (Scriptable)Global.callFxn("loadCapsule", xdcO, "ti/sdo/codecs/universal/ce/UNIVERSAL.xs");
+        om.bind("ti.sdo.codecs.universal.ce.UNIVERSAL$$capsule", cap);
+        po = (Proto.Obj)om.findStrict("ti.sdo.codecs.universal.ce.UNIVERSAL.Module", "ti.sdo.codecs.universal.ce");
+        po.init("ti.sdo.codecs.universal.ce.UNIVERSAL.Module", om.findStrict("ti.sdo.ce.universal.IUNIVERSAL.Module", "ti.sdo.codecs.universal.ce"));
+                po.addFld("$hostonly", $$T_Num, 1, "r");
+        po.addFld("alg", (Proto)om.findStrict("ti.sdo.codecs.universal.UNIVERSAL.Module", "ti.sdo.codecs.universal.ce"), om.find("ti.sdo.codecs.universal.UNIVERSAL"), "rh");
+        po.addFld("ialgFxns", $$T_Str, "UNIVERSALCOPY_TI_IUNIVERSALCOPY", "rh");
+        fxn = Global.get(cap, "module$use");
+        if (fxn != null) om.bind("ti.sdo.codecs.universal.ce.UNIVERSAL$$module$use", true);
+        if (fxn != null) po.addFxn("module$use", $$T_Met, fxn);
+        fxn = Global.get(cap, "module$meta$init");
+        if (fxn != null) om.bind("ti.sdo.codecs.universal.ce.UNIVERSAL$$module$meta$init", true);
+        if (fxn != null) po.addFxn("module$meta$init", $$T_Met, fxn);
+        fxn = Global.get(cap, "module$validate");
+        if (fxn != null) om.bind("ti.sdo.codecs.universal.ce.UNIVERSAL$$module$validate", true);
+        if (fxn != null) po.addFxn("module$validate", $$T_Met, fxn);
+                fxn = Global.get(cap, "getCreationStackSize");
+                if (fxn != null) po.addFxn("getCreationStackSize", (Proto.Fxn)om.findStrict("ti.sdo.ce.ICodec$$getCreationStackSize", "ti.sdo.codecs.universal.ce"), fxn);
+                fxn = Global.get(cap, "getDaramScratchSize");
+                if (fxn != null) po.addFxn("getDaramScratchSize", (Proto.Fxn)om.findStrict("ti.sdo.ce.ICodec$$getDaramScratchSize", "ti.sdo.codecs.universal.ce"), fxn);
+                fxn = Global.get(cap, "getSaramScratchSize");
+                if (fxn != null) po.addFxn("getSaramScratchSize", (Proto.Fxn)om.findStrict("ti.sdo.ce.ICodec$$getSaramScratchSize", "ti.sdo.codecs.universal.ce"), fxn);
+                fxn = Global.get(cap, "getStackSize");
+                if (fxn != null) po.addFxn("getStackSize", (Proto.Fxn)om.findStrict("ti.sdo.ce.ICodec$$getStackSize", "ti.sdo.codecs.universal.ce"), fxn);
+                fxn = Global.get(cap, "getUUID");
+                if (fxn != null) po.addFxn("getUUID", (Proto.Fxn)om.findStrict("ti.sdo.ce.ICodec$$getUUID", "ti.sdo.codecs.universal.ce"), fxn);
+    }
+
+    void UNIVERSAL$$ROV()
+    {
+    }
+
+    void $$SINGLETONS()
+    {
+        pkgP.init("ti.sdo.codecs.universal.ce.Package", (Proto.Obj)om.findStrict("xdc.IPackage.Module", "ti.sdo.codecs.universal.ce"));
+        pkgP.bind("$capsule", $$UNDEF);
+        pkgV.init2(pkgP, "ti.sdo.codecs.universal.ce", Value.DEFAULT, false);
+        pkgV.bind("$name", "ti.sdo.codecs.universal.ce");
+        pkgV.bind("$category", "Package");
+        pkgV.bind("$$qn", "ti.sdo.codecs.universal.ce.");
+        pkgV.bind("$vers", Global.newArray("1, 0, 0"));
+        Value.Map atmap = (Value.Map)pkgV.getv("$attr");
+        atmap.seal("length");
+        imports.clear();
+        imports.add(Global.newArray("ti.sdo.ce.universal", Global.newArray()));
+        imports.add(Global.newArray("ti.sdo.codecs.universal", Global.newArray()));
+        pkgV.bind("$imports", imports);
+        StringBuilder sb = new StringBuilder();
+        sb.append("var pkg = xdc.om['ti.sdo.codecs.universal.ce'];\n");
+        sb.append("if (pkg.$vers.length >= 3) {\n");
+            sb.append("pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\n");
+        sb.append("}\n");
+        sb.append("pkg.build.libraries = [\n");
+        sb.append("];\n");
+        sb.append("pkg.build.libDesc = [\n");
+        sb.append("];\n");
+        sb.append("if('suffix' in xdc.om['xdc.IPackage$$LibDesc']) {\n");
+        sb.append("}\n");
+        Global.eval(sb.toString());
+    }
+
+    void UNIVERSAL$$SINGLETONS()
+    {
+        Proto.Obj po;
+        Value.Obj vo;
+
+        vo = (Value.Obj)om.findStrict("ti.sdo.codecs.universal.ce.UNIVERSAL", "ti.sdo.codecs.universal.ce");
+        po = (Proto.Obj)om.findStrict("ti.sdo.codecs.universal.ce.UNIVERSAL.Module", "ti.sdo.codecs.universal.ce");
+        vo.init2(po, "ti.sdo.codecs.universal.ce.UNIVERSAL", $$DEFAULT, false);
+        vo.bind("Module", po);
+        vo.bind("$category", "Module");
+        vo.bind("$capsule", om.findStrict("ti.sdo.codecs.universal.ce.UNIVERSAL$$capsule", "ti.sdo.codecs.universal.ce"));
+        vo.bind("$package", om.findStrict("ti.sdo.codecs.universal.ce", "ti.sdo.codecs.universal.ce"));
+        tdefs.clear();
+        proxies.clear();
+        mcfgs.clear();
+        vo.bind("$$tdefs", Global.newArray(tdefs.toArray()));
+        vo.bind("$$proxies", Global.newArray(proxies.toArray()));
+        vo.bind("$$mcfgs", Global.newArray(mcfgs.toArray()));
+        ((Value.Arr)pkgV.getv("$modules")).add(vo);
+        ((Value.Arr)om.findStrict("$modules", "ti.sdo.codecs.universal.ce")).add(vo);
+        vo.bind("$$instflag", 0);
+        vo.bind("$$iobjflag", 1);
+        vo.bind("$$sizeflag", 1);
+        vo.bind("$$dlgflag", 0);
+        vo.bind("$$iflag", 1);
+        vo.bind("$$romcfgs", "|");
+        Proto.Str ps = (Proto.Str)vo.find("Module_State");
+        if (ps != null) vo.bind("$object", ps.newInstance());
+        vo.bind("$$meta_iobj", om.has("ti.sdo.codecs.universal.ce.UNIVERSAL$$instance$static$init", null) ? 1 : 0);
+        vo.bind("$$fxntab", Global.newArray());
+        vo.bind("$$logEvtCfgs", Global.newArray());
+        vo.bind("$$errorDescCfgs", Global.newArray());
+        vo.bind("$$assertDescCfgs", Global.newArray());
+        Value.Map atmap = (Value.Map)vo.getv("$attr");
+        atmap.seal("length");
+        pkgV.bind("UNIVERSAL", vo);
+        ((Value.Arr)pkgV.getv("$unitNames")).add("UNIVERSAL");
+    }
+
+    void $$INITIALIZATION()
+    {
+        Value.Obj vo;
+
+        if (isCFG) {
+        }//isCFG
+        Global.callFxn("module$meta$init", (Scriptable)om.findStrict("ti.sdo.codecs.universal.ce.UNIVERSAL", "ti.sdo.codecs.universal.ce"));
+        Global.callFxn("init", pkgV);
+        ((Value.Obj)om.getv("ti.sdo.codecs.universal.ce.UNIVERSAL")).bless();
+        ((Value.Arr)om.findStrict("$packages", "ti.sdo.codecs.universal.ce")).add(pkgV);
+    }
+
+    public void exec( Scriptable xdcO, Session ses )
+    {
+        this.xdcO = xdcO;
+        this.ses = ses;
+        om = (Value.Obj)xdcO.get("om", null);
+
+        Object o = om.geto("$name");
+        String s = o instanceof String ? (String)o : null;
+        isCFG = s != null && s.equals("cfg");
+        isROV = s != null && s.equals("rov");
+
+        $$IMPORTS();
+        $$OBJECTS();
+        UNIVERSAL$$OBJECTS();
+        UNIVERSAL$$CONSTS();
+        UNIVERSAL$$CREATES();
+        UNIVERSAL$$FUNCTIONS();
+        UNIVERSAL$$SIZES();
+        UNIVERSAL$$TYPES();
+        if (isROV) {
+            UNIVERSAL$$ROV();
+        }//isROV
+        $$SINGLETONS();
+        UNIVERSAL$$SINGLETONS();
+        $$INITIALIZATION();
+    }
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/iuniversal.h b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/iuniversal.h
new file mode 100644 (file)
index 0000000..e2868b1
--- /dev/null
@@ -0,0 +1,302 @@
+/*\r
+ * Copyright (c) 2006-2012, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+ */\r
+\r
+/**\r
+ *  @file       ti/xdais/dm/iuniversal.h\r
+ *\r
+ *  @brief      This header defines all types, constants, and functions\r
+ *              shared by all implementations of the "universal" XDM\r
+ *              algorithm.\r
+ */\r
+/**\r
+ *  @defgroup   ti_xdais_dm_IUNIVERSAL   IUNIVERSAL - XDM Beta Universal Algorithm Interface\r
+ *\r
+ *  This is the XDM Beta Universal Algorithm Interface.\r
+ */\r
+\r
+#ifndef ti_xdais_dm_IUNIVERSAL_\r
+#define ti_xdais_dm_IUNIVERSAL_\r
+\r
+#include <ti/xdais/ialg.h>\r
+#include <ti/xdais/xdas.h>\r
+#include "xdm.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/** @ingroup    ti_xdais_dm_IUNIVERSAL */\r
+/*@{*/\r
+\r
+#define IUNIVERSAL_EOK      XDM_EOK              /**< @copydoc XDM_EOK */\r
+#define IUNIVERSAL_EFAIL    XDM_EFAIL            /**< @copydoc XDM_EFAIL */\r
+#define IUNIVERSAL_EUNSUPPORTED XDM_EUNSUPPORTED /**< @copydoc XDM_EUNSUPPORTED */\r
+\r
+/**\r
+ *  @brief      This must be the first field of all IUNIVERSAL\r
+ *              instance objects.\r
+ */\r
+typedef struct IUNIVERSAL_Obj {\r
+    struct IUNIVERSAL_Fxns *fxns;\r
+} IUNIVERSAL_Obj;\r
+\r
+\r
+/**\r
+ *  @brief      Opaque handle to an IUNIVERSAL objects.\r
+ */\r
+typedef struct IUNIVERSAL_Obj  *IUNIVERSAL_Handle;\r
+\r
+\r
+/**\r
+ *  @brief      Defines the creation time parameters for\r
+ *              all IUNIVERSAL instance objects.\r
+ *\r
+ *  @extensibleStruct\r
+ */\r
+typedef struct IUNIVERSAL_Params {\r
+    XDAS_Int32 size;            /**< @sizeField */\r
+} IUNIVERSAL_Params;\r
+\r
+\r
+/**\r
+ *  @brief      This structure defines the codec parameters that can be\r
+ *              modified after creation via control() calls.\r
+ *\r
+ *  @remarks    It is not necessary that a given implementation support all\r
+ *              dynamic parameters to be configurable at run time.  If a\r
+ *              particular algorithm does not support run-time updates to\r
+ *              a parameter that the application is attempting to change\r
+ *              at runtime, it may indicate this as an error.\r
+ *\r
+ *  @extensibleStruct\r
+ *\r
+ *  @sa         IUNIVERSAL_Fxns::control()\r
+ */\r
+typedef struct IUNIVERSAL_DynamicParams {\r
+    XDAS_Int32 size;            /**< @sizeField */\r
+} IUNIVERSAL_DynamicParams;\r
+\r
+\r
+/**\r
+ *  @brief      Defines the input arguments for all IUNIVERSAL instance\r
+ *              process function.\r
+ *\r
+ *  @extensibleStruct\r
+ *\r
+ *  @sa         IUNIVERSAL_Fxns::process()\r
+ */\r
+typedef struct IUNIVERSAL_InArgs {\r
+    XDAS_Int32 size;            /**< @sizeField */\r
+} IUNIVERSAL_InArgs;\r
+\r
+\r
+/**\r
+ *  @brief      Defines instance status parameters (read-only).\r
+ *\r
+ *  @extensibleStruct\r
+ *\r
+ *  @sa         IUNIVERSAL_Fxns::control()\r
+ */\r
+typedef struct IUNIVERSAL_Status {\r
+    XDAS_Int32 size;            /**< @sizeField */\r
+    XDAS_Int32 extendedError;   /**< @extendedErrorField */\r
+    XDM1_BufDesc data;          /**< Buffer descriptor for data passing.\r
+                                 *\r
+                                 *   @remarks   These buffers can be used as\r
+                                 *              either input, output, or\r
+                                 *              input/output buffers,\r
+                                 *              depending on the command.\r
+                                 *\r
+                                 *   @remarks   The buffers will be provided\r
+                                 *              by the application, and\r
+                                 *              returned to the application\r
+                                 *              upon return of the control()\r
+                                 *              call.  The algorithm must\r
+                                 *              not retain a pointer to this\r
+                                 *              data.\r
+                                 *\r
+                                 *   @sa    #XDM_GETVERSION\r
+                                 */\r
+} IUNIVERSAL_Status;\r
+\r
+\r
+/**\r
+ *  @brief      Defines the run time output arguments for\r
+ *              all IUNIVERSAL instance objects.\r
+ *\r
+ *  @extensibleStruct\r
+ *\r
+ *  @sa         IUNIVERSAL_Fxns::process()\r
+ */\r
+typedef struct IUNIVERSAL_OutArgs {\r
+    XDAS_Int32 size;            /**< @sizeField */\r
+    XDAS_Int32 extendedError;   /**< @extendedErrorField */\r
+} IUNIVERSAL_OutArgs;\r
+\r
+\r
+/**\r
+ *  @brief      Defines the control commands for the IUNIVERSAL module.\r
+ *\r
+ *  @remarks    This ID can be extended in IMOD interface for\r
+ *              additional controls.\r
+ *\r
+ *  @sa         XDM_CmdId\r
+ *\r
+ *  @sa         IUNIVERSAL_Fxns::control()\r
+ */\r
+typedef  IALG_Cmd IUNIVERSAL_Cmd;\r
+\r
+\r
+/**\r
+ *  @brief      Defines all of the operations on IUNIVERSAL objects.\r
+ */\r
+typedef struct IUNIVERSAL_Fxns{\r
+    IALG_Fxns   ialg;             /**< XDAIS algorithm interface.\r
+                                   *\r
+                                   *   @sa      IALG_Fxns\r
+                                   */\r
+\r
+/**\r
+ *  @brief      Basic audio decoding call.\r
+ *\r
+ *  @param[in]  handle          Handle to an algorithm instance.\r
+ *  @param[in,out] inBufs       Input buffer descriptors.\r
+ *  @param[in,out] outBufs      Output buffer descriptors.\r
+ *  @param[in,out] inOutBufs    Input/Output buffer descriptors.\r
+ *  @param[in]  inArgs          Input arguments.  This is a required\r
+ *                              parameter.\r
+ *  @param[out] outArgs         Ouput results.  This is a required parameter.\r
+ *\r
+ *  @remarks    process() is a blocking call.  When process() returns, the\r
+ *              algorithm's processing is complete.\r
+ *\r
+ *  @pre        @c handle must be a valid algorithm instance handle.\r
+ *\r
+ *  @pre        @c inArgs must not be NULL, and must point to a valid\r
+ *              IUNIVERSAL_InArgs structure.\r
+ *\r
+ *  @pre        @c outArgs must not be NULL, and must point to a valid\r
+ *              IUNIVERSAL_OutArgs structure.\r
+ *\r
+ *  @pre        @c inBufs must either be NULL or point to a valid\r
+ *              XDM1_BufDesc structure.\r
+ *\r
+ *  @pre        @c outBufs must either be NULL or point to a valid\r
+ *              XDM1_BufDesc structure.\r
+ *\r
+ *  @pre        @c inOutBufs must either be NULL or point to a valid\r
+ *              XDM1_BufDesc structure.\r
+ *\r
+ *  @pre        The buffers in @c inBufs, @c outBufs and @c inOutBufs are\r
+ *              physically contiguous and owned by the calling application.\r
+ *\r
+ *  @post       The algorithm <b>must not</b> modify the contents of @c inArgs.\r
+ *\r
+ *  @post       The algorithm <b>must not</b> modify the contents of\r
+ *              @c inBufs, with the exception of @c inBufs.descs[].accessMask.\r
+ *              That is, the data and buffers pointed to by these parameters\r
+ *              must be treated as read-only.\r
+ *\r
+ *  @post       The algorithm <b>must</b> appropriately set/clear the\r
+ *              @c XDM1_BufDesc::descs[].accessMask field in @c inBufs,\r
+ *              @c outBufs, and @c inOutBufs.\r
+ *              For example, if the algorithm only read from\r
+ *              @c inBufs.descs[0].buf using the algorithm processor, it\r
+ *              could utilize #XDM_SETACCESSMODE_READ to update the appropriate\r
+ *              @c accessMask fields.\r
+ *              The application <i>may</i> utilize these\r
+ *              returned values to appropriately manage cache.\r
+ *\r
+ *  @post       The buffers in @c inBufs, @c outBufs, and @c inOutBufs are\r
+ *              owned by the calling application.\r
+ *\r
+ *  @retval     IUNIVERSAL_EOK          @copydoc IUNIVERSAL_EOK\r
+ *  @retval     IUNIVERSAL_EFAIL        @copydoc IUNIVERSAL_EFAIL\r
+ *                                      See IUNIVERSAL_Status#extendedError\r
+ *                                      for more detailed further error\r
+ *                                      conditions.\r
+ *  @retval     IUNIVERSAL_EUNSUPPORTED @copydoc IUNIVERSAL_EUNSUPPORTED\r
+ */\r
+    XDAS_Int32   (*process)(IUNIVERSAL_Handle handle, XDM1_BufDesc *inBufs,\r
+            XDM1_BufDesc *outBufs, XDM1_BufDesc *inOutBufs,\r
+            IUNIVERSAL_InArgs *inArgs, IUNIVERSAL_OutArgs *outArgs);\r
+\r
+\r
+/**\r
+ *  @brief      Control behaviour of an algorithm.\r
+ *\r
+ *  @param[in]  handle          Handle to an algorithm instance.\r
+ *  @param[in]  id              Command id.  See #XDM_CmdId.\r
+ *  @param[in]  params          Dynamic parameters.  This is a required\r
+ *                              parameter.\r
+ *  @param[out] status          Output results.  This is a required parameter.\r
+ *\r
+ *  @pre        @c handle must be a valid algorithm instance handle.\r
+ *\r
+ *  @pre        @c params must not be NULL, and must point to a valid\r
+ *              IUNIVERSAL_DynamicParams structure.\r
+ *\r
+ *  @pre        @c status must not be NULL, and must point to a valid\r
+ *              IUNIVERSAL_Status structure.\r
+ *\r
+ *  @pre        If a buffer is provided in the @c status->data field,\r
+ *              it must be physically contiguous and owned by the calling\r
+ *              application.\r
+ *\r
+ *  @post       The algorithm <b>must not</b> modify the contents of @c params.\r
+ *              That is, the data pointed to by this parameter must be\r
+ *              treated as read-only.\r
+ *\r
+ *  @post       If a buffer was provided in the @c status->data field,\r
+ *              it is owned by the calling application.\r
+ *\r
+ *  @retval     IUNIVERSAL_EOK          @copydoc IUNIVERSAL_EOK\r
+ *  @retval     IUNIVERSAL_EFAIL        @copydoc IUNIVERSAL_EFAIL\r
+ *                                      See IUNIVERSAL_Status#extendedError\r
+ *                                      for more detailed further error\r
+ *                                      conditions.\r
+ *  @retval     IUNIVERSAL_EUNSUPPORTED @copydoc IUNIVERSAL_EUNSUPPORTED\r
+ */\r
+    XDAS_Int32   (*control)(IUNIVERSAL_Handle handle, IUNIVERSAL_Cmd id,\r
+        IUNIVERSAL_DynamicParams *params, IUNIVERSAL_Status *status);\r
+\r
+} IUNIVERSAL_Fxns;\r
+\r
+\r
+/*@}*/\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/lib/universal_copy.ae66 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/lib/universal_copy.ae66
new file mode 100644 (file)
index 0000000..c95d294
Binary files /dev/null and b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/lib/universal_copy.ae66 differ
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/link.xdt b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/link.xdt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.bld b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.bld
new file mode 100644 (file)
index 0000000..369664b
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ *  ======== package.bld ========
+ */
+
+
+Pkg.attrs.exportAll = true;
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.xdc b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.xdc
new file mode 100644 (file)
index 0000000..68b0acc
--- /dev/null
@@ -0,0 +1,7 @@
+/*!
+ *  ======== universal========
+ */
+
+package ti.sdo.codecs.universal [1, 0, 0] {
+    module UNIVERSAL;
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.xs b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package.xs
new file mode 100644 (file)
index 0000000..e2e672f
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ *  ======== package.xs ========
+ *
+ */
+
+/*
+ *  ======== getLibs ========
+ */
+function getLibs(prog)
+{
+    var lib = null;
+  
+    if (prog.build.target.isa == "66") {        
+        if ( this.UNIVERSAL.watermark == false ) {
+                lib = "lib/universal_copy.ae66";
+        }
+        else {
+                lib = null;
+        }
+        print("    will link with " + this.$name + ":" + lib);
+    }
+    return (lib);
+}
+
+/*
+ *  ======== getSects ========
+ */
+function getSects()
+{
+    var template = null;
+
+    if (Program.build.target.isa == "66") {
+        template = "ti/sdo/codecs/universal/link.xdt";
+    }
+
+    return (template);
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_b150 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_b150
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_c150 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_c150
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_g180 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_g180
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_r170 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.vers_r170
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.xdc-v49 b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/.xdc-v49
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/build.cfg b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/build.cfg
new file mode 100644 (file)
index 0000000..610f62f
--- /dev/null
@@ -0,0 +1,12 @@
+if (pkg.$vers.length >= 3) {\r
+    pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\r
+}\r
+\r
+pkg.build.libraries = [\r
+];\r
+\r
+pkg.build.libDesc = [\r
+];\r
+if ('suffix' in xdc.om['xdc.IPackage$$LibDesc']) {\r
+}\r
+\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.bld.xml b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.bld.xml
new file mode 100644 (file)
index 0000000..f959898
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--  This file conforms to the DTD xdc/bld/build.dtd -->\r
+<package name="ti.sdo.codecs.universal" version="1, 0, 0" producerId="undefined">\r
+    <units>\r
+        <module name="UNIVERSAL"/>\r
+    </units>\r
+    <sources>\r
+    </sources>\r
+    <configurations>\r
+    </configurations>\r
+    <makefiles>\r
+        <srcFile name="package.mak" src="package.bld"/>\r
+        <srcFile name="package/package.xdc.dep" src="package.xdc"/>\r
+        <srcFile name="package/package.cfg.dep" src="package.xdc"/>\r
+        <srcFile name="package/rel/ti_sdo_codecs_universal.tar.dep" src="package/rel/ti_sdo_codecs_universal.xdc.inc"/>\r
+    </makefiles>\r
+    <targets>\r
+    </targets>\r
+    <libraries>\r
+    </libraries>\r
+    <executables>\r
+    </executables>\r
+    <tests>\r
+    </tests>\r
+    <releases relDir="package/rel/">\r
+    <release name="ti_sdo_codecs_universal"\r
+        pname="ti_sdo_codecs_universal.tar"\r
+        label="default"\r
+    >\r
+        <file name="package/build.cfg"/>\r
+        <file name="package/package.cfg.xdc.inc"/>\r
+        <file name="package/package.ext.xml"/>\r
+        <file name="package/package.xdc.inc"/>\r
+        <file name="package/package.bld.xml"/>\r
+        <file name="package/package.rel.dot"/>\r
+    </release>\r
+    </releases>\r
+    <repositories>\r
+    </repositories>\r
+</package>\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.defs.h b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.defs.h
new file mode 100644 (file)
index 0000000..f763a46
--- /dev/null
@@ -0,0 +1,13 @@
+/*\r
+ *  Do not modify this file; it is automatically \r
+ *  generated and any modifications will be overwritten.\r
+ *\r
+ * @(#) xdc-v49\r
+ */\r
+\r
+#ifndef ti_sdo_codecs_universal__\r
+#define ti_sdo_codecs_universal__\r
+\r
+\r
+\r
+#endif /* ti_sdo_codecs_universal__ */ \r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.doc.xml b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.doc.xml
new file mode 100644 (file)
index 0000000..c6e779b
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<package kind='package' name='ti.sdo.codecs.universal' nodoc='0' root='../../../../' summary=''>\r
+    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Epackage%3C%2Fspan%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Eti.sdo.codecs.universal%3C%2Fspan%3E%3C%2Fgo%3E+%5B1%2C+0%2C+0%5D+%7B'/>\r
+    <line tab='0' content='%7D'/>\r
+    <unit name='UNIVERSAL' kind='module' nodoc='0' metaonly='1' summary=''>\r
+        <synopSpec>\r
+            <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Epackage%3C%2Fspan%3E+%3Ca+class%3D%22xdoc-link%22+href%3D%22..%2F..%2F..%2F..%2Fti%2Fsdo%2Fcodecs%2Funiversal%2Fpackage.html%22+title%3D%22ti.sdo.codecs.universal%22%3Eti.sdo.codecs.universal%3C%2Fa%3E%3B'/>\r
+            <line blank='1' always='0'/>\r
+            <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Emetaonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Emodule%3C%2Fspan%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EUNIVERSAL%3C%2Fspan%3E%3C%2Fgo%3E+%7B'/>\r
+            <line tab='0' content='%7D'/>\r
+        </synopSpec>\r
+        <specInfo>\r
+            <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Emetaonly+%3C%2Fspan%3E%3Cspan+class%3D%22xdoc-kw1%22%3Emodule%3C%2Fspan%3E+%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EUNIVERSAL%3C%2Fspan%3E%3C%2Fgo%3E+%7B%3Cb%3E%26nbsp%3B%26nbsp%3B...%3C%2Fb%3E'/>\r
+        </specInfo>\r
+        <synopMeta>\r
+            <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Evar%3C%2Fspan%3E+UNIVERSAL+%3D+%3Cspan+class%3D%22xdoc-kw3%22%3Exdc.useModule%3C%2Fspan%3E%28%3Cspan+class%3D%22xdoc-id%22%3E%27ti.sdo.codecs.universal.UNIVERSAL%27%3C%2Fspan%3E%29%3B'/>\r
+        </synopMeta>\r
+        <group name='module-wide constants &amp; types'>\r
+            <decl spacer='1'/>\r
+        </group>\r
+        <group name='module-wide config parameters'>\r
+            <decl spacer='1'/>\r
+            <decl spacer='1'/>\r
+            <decl spacer='1'/>\r
+            <decl kind='config' name='codeSection' anchor='code.Section' altext='ti.sdo.codecs.universal.UNIVERSAL.codeSection' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary=''>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EcodeSection%3C%2Fspan%3E%3C%2Fgo%3E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EcodeSection%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%3C%2Fi%3E+%3Cspan+class%3D%22xdoc-kw2%22%3Eundefined%3C%2Fspan%3E%3B'/>\r
+                </synopMeta>\r
+            </decl>\r
+            <decl kind='config' name='dataSection' anchor='data.Section' altext='ti.sdo.codecs.universal.UNIVERSAL.dataSection' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary=''>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EdataSection%3C%2Fspan%3E%3C%2Fgo%3E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EdataSection%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%3C%2Fi%3E+%3Cspan+class%3D%22xdoc-kw2%22%3Eundefined%3C%2Fspan%3E%3B'/>\r
+                </synopMeta>\r
+            </decl>\r
+            <decl kind='config' name='udataSection' anchor='udata.Section' altext='ti.sdo.codecs.universal.UNIVERSAL.udataSection' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary=''>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3EudataSection%3C%2Fspan%3E%3C%2Fgo%3E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3EudataSection%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EString%3C%2Fspan%3E%3C%2Fi%3E+%3Cspan+class%3D%22xdoc-kw2%22%3Eundefined%3C%2Fspan%3E%3B'/>\r
+                </synopMeta>\r
+            </decl>\r
+            <decl kind='config' name='watermark' anchor='watermark' altext='ti.sdo.codecs.universal.UNIVERSAL.watermark' nodoc='0' external='1' overrides='0' readonly='0' instance='0' summary='This+config+param+allows+the+user+to+indicate+whether+to+include%0A++a+watermark+or+not'>\r
+                <synopSpec>\r
+                    <line tab='0' content='%3Cspan+class%3D%22xdoc-kw1%22%3Econfig%3C%2Fspan%3E+%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%26nbsp%3B%3Cgo%3E%3Cspan+class%3D%22xdoc-id%22%3Ewatermark%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Efalse%253C%252Fspan%253E%3B'/>\r
+                </synopSpec>\r
+                <synopMeta>\r
+                    <line tab='0' content='%3Cgo%3EUNIVERSAL.%3Cspan+class%3D%22xdoc-id%22%3Ewatermark%3C%2Fspan%3E%3C%2Fgo%3E+%3D+%3Ci%3E%3Cspan+class%3D%22xdoc-kw2%22%3EBool%3C%2Fspan%3E%3C%2Fi%3E+%253Cspan%2Bclass%253D%2522xdoc-kw2%2522%253Efalse%253C%252Fspan%253E%3B'/>\r
+                </synopMeta>\r
+            </decl>\r
+        </group>\r
+        <group name='module-wide functions'>\r
+            <decl spacer='1'/>\r
+        </group>\r
+    </unit>\r
+</package>\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.ext.xml b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.ext.xml
new file mode 100644 (file)
index 0000000..2ae8a8a
--- /dev/null
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="windows-1252"?>\r
+<!--  This file conforms to the DTD xdc/bld/release.dtd -->\r
+<release name="" label="" date="" buildCount="" producerId="">\r
+<package name="ti.sdo.codecs.universal"\r
+    version="1, 0, 0"/>\r
+<imports>\r
+</imports>\r
+<references>\r
+    <package name="xdc.services.intern.gen"\r
+        version="1, 0, 0, 0, 1284507405214"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.shelf"\r
+        version="1, 0, 0, 1284507424737"\r
+        providerId="xdccore">\r
+        <file name="java\antlr.jar"/>\r
+        <file name="java\ecj.jar"/>\r
+        <file name="java\js.jar"/>\r
+        <file name="java\jsr173_api.jar"/>\r
+        <file name="java\tar.jar"/>\r
+        <file name="java\xbean.jar"/>\r
+    </package>\r
+    <package name="xdc.bld"\r
+        version="1, 0, 2, 1284507372516"\r
+        providerId="xdccore">\r
+        <file name="BuildEnvironment.xs"/>\r
+        <file name="Executable.xs"/>\r
+        <file name="ITarget.xs"/>\r
+        <file name="ITargetFilter.xs"/>\r
+        <file name="Library.xs"/>\r
+        <file name="Manifest.xs"/>\r
+        <file name="PackageContents.xs"/>\r
+        <file name="Repository.xs"/>\r
+        <file name="Script.xs"/>\r
+        <file name="Utils.xs"/>\r
+        <file name="_gen.xs"/>\r
+        <file name="bld.js"/>\r
+        <file name="package.xs"/>\r
+    </package>\r
+    <package name="xdc"\r
+        version="1, 1, 1, 1284507365742"\r
+        providerId="xdccore">\r
+        <file name="IPackage.xdc"/>\r
+        <file name="IPackage.xs"/>\r
+        <file name="om2.xs"/>\r
+        <file name="package.xs"/>\r
+        <file name="template.xs"/>\r
+        <file name="xdc.tci"/>\r
+        <file name="xmlgen.xs"/>\r
+        <file name="xmlgen2.xs"/>\r
+    </package>\r
+    <package name="xdc.services.global"\r
+        version="1, 0, 0, 1284507401675"\r
+        providerId="xdccore">\r
+        <file name="Clock.xs"/>\r
+        <file name="Trace.xs"/>\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.spec"\r
+        version="1, 0, 0, 0, 1284507414889"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.intern.cmd"\r
+        version="1, 0, 0, 0, 1284507405123"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.intern.xsr"\r
+        version="1, 0, 0, 1284507408194"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <xdcRoot base="E:/WriteHere/xdctools_3_20_04_68/">\r
+        <file name="/packages/xdc/package.xdc"/>\r
+        <file name="etc\config.bld"/>\r
+        <file name="include\utils.tci"/>\r
+        <xdcCorePkg version="16, 0, 2, 0, 1284507377139" producerId="undefined" buildCount="279" releaseName="xdc_corevers" label="default" date="1284507377139"/>\r
+    </xdcRoot>\r
+</references>\r
+<orphans>\r
+</orphans>\r
+</release>\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.rel.dot b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.rel.dot
new file mode 100644 (file)
index 0000000..a32b591
--- /dev/null
@@ -0,0 +1,126 @@
+digraph dependencies {
+    label="\nPackage ti.sdo.codecs.universal Dependency Graph";
+    size="7.5,10";
+    rankdir=LR;
+    ranksep=".75";
+    concentrate="true";
+    node [fixedsize=true, width=1.5, style=filled, color=black];
+    node [font=Helvetica, fontsize=12, fillcolor=lightgrey];
+    ti_sdo_codecs_universal [shape=record,label="ti.sdo.codecs.universal|1, 0, 0", URL="package.rel.xml"];
+    node [fontsize=10, fillcolor=white];
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_intern_gen [shape=record,label="xdc.services.intern.gen|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\intern\gen\package/package.rel.svg"];
+    ti_sdo_codecs_universal -> xdc_services_intern_gen;
+    xdc_shelf [shape=record,label="xdc.shelf|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\shelf\package/package.rel.svg"];
+    ti_sdo_codecs_universal -> xdc_shelf;
+    xdc_bld [shape=record,label="xdc.bld|1, 0, 2", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\bld\package/package.rel.svg"];
+    ti_sdo_codecs_universal -> xdc_bld;
+    xdc [shape=record,label="xdc|1, 1, 1", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\package/package.rel.svg"];
+    ti_sdo_codecs_universal -> xdc;
+    xdc_services_global [shape=record,label="xdc.services.global|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\global\package/package.rel.svg"];
+    ti_sdo_codecs_universal -> xdc_services_global;
+    xdc_services_spec [shape=record,label="xdc.services.spec|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\spec\package/package.rel.svg"];
+    ti_sdo_codecs_universal -> xdc_services_spec;
+    xdc_services_intern_cmd [shape=record,label="xdc.services.intern.cmd|1, 0, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\intern\cmd\package/package.rel.svg"];
+    ti_sdo_codecs_universal -> xdc_services_intern_cmd;
+    xdc_services_intern_xsr [shape=record,label="xdc.services.intern.xsr|1, 0, 0", URL="../E:\WriteHere\xdctools_3_20_04_68\packages\xdc\services\intern\xsr\package/package.rel.svg"];
+    ti_sdo_codecs_universal -> xdc_services_intern_xsr;
+
+    edge [style=solid, color=blue]
+    xdc_services_intern_xsr -> xdc_services_global;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_intern_xsr -> xdc_services_spec;
+    xdc_services_intern_xsr -> xdc_services_intern_cmd;
+    xdc_utils_tconf [shape=record,label="xdc.utils.tconf|not found"style=rounded, ];
+    xdc_services_intern_xsr -> xdc_utils_tconf;
+    xdc_services_intern_xsr -> xdc_shelf;
+    xdc_services_intern_xsr -> xdc_services_intern_gen;
+    xdc_services_intern_xsr -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+
+    edge [style=solid, color=blue]
+    xdc_services_intern_cmd -> xdc_shelf;
+    xdc_services_intern_cmd -> xdc_services_spec;
+    xdc_services_intern_cmd -> xdc_services_global;
+    xdc_services_intern_cmd -> xdc_services_intern_gen;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_intern_cmd -> xdc_services_spec;
+    xdc_services_intern_cmd -> xdc_utils_tconf;
+    xdc_services_intern_cmd -> xdc_services_intern_xsr;
+    xdc_services_intern_cmd -> xdc_shelf;
+    xdc_services_intern_cmd -> xdc_services_intern_gen;
+    xdc_services_intern_cmd -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+    xdc_services_spec -> xdc_shelf;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_spec -> xdc_services_intern_cmd;
+    xdc_services_spec -> xdc_utils_tconf;
+    xdc_services_spec -> xdc_services_intern_xsr;
+    xdc_services_spec -> xdc_shelf;
+    xdc_services_spec -> xdc_services_intern_gen;
+    xdc_services_spec -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_global -> xdc_services_spec;
+    xdc_services_global -> xdc_services_intern_cmd;
+    xdc_services_global -> xdc_utils_tconf;
+    xdc_services_global -> xdc_services_intern_xsr;
+    xdc_services_global -> xdc_shelf;
+    xdc_services_global -> xdc_services_intern_gen;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc -> xdc_services_global;
+    xdc -> xdc_utils_tconf;
+
+    edge [style=solid, color=blue]
+    xdc_bld -> xdc_services_global;
+    xdc_bld -> xdc_services_intern_cmd;
+
+    edge [style=solid, color=lightgrey]
+    xdc_bld -> xdc_services_spec;
+    xdc_bld -> xdc_services_intern_cmd;
+    xdc_bld -> xdc_utils_tconf;
+    xdc_bld -> xdc;
+    xdc_bld -> xdc_services_intern_xsr;
+    xdc_bld -> xdc_shelf;
+    xdc_bld -> xdc_services_intern_gen;
+    xdc_bld -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+
+    edge [style=solid, color=lightgrey]
+    xdc_shelf -> xdc_services_spec;
+    xdc_shelf -> xdc_services_intern_cmd;
+    xdc_shelf -> xdc_utils_tconf;
+    xdc_shelf -> xdc_services_intern_xsr;
+    xdc_shelf -> xdc_services_intern_gen;
+    xdc_shelf -> xdc_services_global;
+
+    edge [style=solid, color=blue]
+    xdc_services_intern_gen -> xdc_shelf;
+    xdc_services_intern_gen -> xdc_services_spec;
+    xdc_services_intern_gen -> xdc_services_global;
+    xdc_services_intern_gen -> xdc_services_intern_xsr;
+
+    edge [style=solid, color=lightgrey]
+    xdc_services_intern_gen -> xdc_services_spec;
+    xdc_services_intern_gen -> xdc_services_intern_cmd;
+    xdc_services_intern_gen -> xdc_utils_tconf;
+    xdc_services_intern_gen -> xdc_services_intern_xsr;
+    xdc_services_intern_gen -> xdc_shelf;
+    xdc_services_intern_gen -> xdc_services_global;
+}
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.rel.xml b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package.rel.xml
new file mode 100644 (file)
index 0000000..16a4d7e
--- /dev/null
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="windows-1252"?>\r
+<!--  This file conforms to the DTD xdc/bld/release.dtd -->\r
+<release name="ti_sdo_codecs_universal" label="default" date="1384185676296" buildCount="1" producerId="undefined">\r
+<package name="ti.sdo.codecs.universal"\r
+    version="1, 0, 0"/>\r
+<imports>\r
+</imports>\r
+<references>\r
+    <package name="xdc.services.intern.gen"\r
+        version="1, 0, 0, 0, 1284507405214"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.shelf"\r
+        version="1, 0, 0, 1284507424737"\r
+        providerId="xdccore">\r
+        <file name="java\antlr.jar"/>\r
+        <file name="java\ecj.jar"/>\r
+        <file name="java\js.jar"/>\r
+        <file name="java\jsr173_api.jar"/>\r
+        <file name="java\tar.jar"/>\r
+        <file name="java\xbean.jar"/>\r
+    </package>\r
+    <package name="xdc.bld"\r
+        version="1, 0, 2, 1284507372516"\r
+        providerId="xdccore">\r
+        <file name="BuildEnvironment.xs"/>\r
+        <file name="Executable.xs"/>\r
+        <file name="ITarget.xs"/>\r
+        <file name="ITargetFilter.xs"/>\r
+        <file name="Library.xs"/>\r
+        <file name="Manifest.xs"/>\r
+        <file name="PackageContents.xs"/>\r
+        <file name="Repository.xs"/>\r
+        <file name="Script.xs"/>\r
+        <file name="Utils.xs"/>\r
+        <file name="_gen.xs"/>\r
+        <file name="bld.js"/>\r
+        <file name="package.xs"/>\r
+    </package>\r
+    <package name="xdc"\r
+        version="1, 1, 1, 1284507365742"\r
+        providerId="xdccore">\r
+        <file name="IPackage.xdc"/>\r
+        <file name="IPackage.xs"/>\r
+        <file name="om2.xs"/>\r
+        <file name="package.xs"/>\r
+        <file name="template.xs"/>\r
+        <file name="xdc.tci"/>\r
+        <file name="xmlgen.xs"/>\r
+        <file name="xmlgen2.xs"/>\r
+    </package>\r
+    <package name="xdc.services.global"\r
+        version="1, 0, 0, 1284507401675"\r
+        providerId="xdccore">\r
+        <file name="Clock.xs"/>\r
+        <file name="Trace.xs"/>\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.spec"\r
+        version="1, 0, 0, 0, 1284507414889"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.intern.cmd"\r
+        version="1, 0, 0, 0, 1284507405123"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <package name="xdc.services.intern.xsr"\r
+        version="1, 0, 0, 1284507408194"\r
+        providerId="xdccore">\r
+        <file name="java\package.jar"/>\r
+    </package>\r
+    <xdcRoot base="E:/WriteHere/xdctools_3_20_04_68/">\r
+        <file name="/packages/xdc/package.xdc"/>\r
+        <file name="etc\config.bld"/>\r
+        <file name="include\utils.tci"/>\r
+        <xdcCorePkg version="16, 0, 2, 0, 1284507377139" producerId="undefined" buildCount="279" releaseName="xdc_corevers" label="default" date="1284507377139"/>\r
+    </xdcRoot>\r
+</references>\r
+<orphans>\r
+</orphans>\r
+</release>\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package_ti.sdo.codecs.universal.c b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/package_ti.sdo.codecs.universal.c
new file mode 100644 (file)
index 0000000..3949a12
--- /dev/null
@@ -0,0 +1,21 @@
+/*\r
+ *  Do not modify this file; it is automatically \r
+ *  generated and any modifications will be overwritten.\r
+ *\r
+ * @(#) xdc-v49\r
+ */\r
+\r
+#include <xdc/std.h>\r
+\r
+__FAR__ char ti_sdo_codecs_universal__dummy__;\r
+\r
+#define __xdc_PKGVERS 1, 0, 0\r
+#define __xdc_PKGNAME ti.sdo.codecs.universal\r
+#define __xdc_PKGPREFIX ti_sdo_codecs_universal_\r
+\r
+#ifdef __xdc_bld_pkg_c__\r
+#define __stringify(a) #a\r
+#define __local_include(a) __stringify(a)\r
+#include __local_include(__xdc_bld_pkg_c__)\r
+#endif\r
+\r
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti.sdo.codecs.universal.ccs b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti.sdo.codecs.universal.ccs
new file mode 100644 (file)
index 0000000..a785dc5
Binary files /dev/null and b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti.sdo.codecs.universal.ccs differ
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti.sdo.codecs.universal.sch b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti.sdo.codecs.universal.sch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti_sdo_codecs_universal.class b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti_sdo_codecs_universal.class
new file mode 100644 (file)
index 0000000..7b765a0
Binary files /dev/null and b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti_sdo_codecs_universal.class differ
diff --git a/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti_sdo_codecs_universal.java b/extrel/ti/dsp_codecs/packages/ti/sdo/codecs/universal/package/ti_sdo_codecs_universal.java
new file mode 100644 (file)
index 0000000..7389de0
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+ *  Do not modify this file; it is automatically 
+ *  generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-v49
+ */
+import java.util.*;
+import org.mozilla.javascript.*;
+import xdc.services.intern.xsr.*;
+import xdc.services.spec.*;
+
+public class ti_sdo_codecs_universal
+{
+    static final String VERS = "@(#) xdc-v49\n";
+
+    static final Proto.Elm $$T_Bool = Proto.Elm.newBool();
+    static final Proto.Elm $$T_Num = Proto.Elm.newNum();
+    static final Proto.Elm $$T_Str = Proto.Elm.newStr();
+    static final Proto.Elm $$T_Obj = Proto.Elm.newObj();
+
+    static final Proto.Fxn $$T_Met = new Proto.Fxn(null, null, 0, -1, false);
+    static final Proto.Map $$T_Map = new Proto.Map($$T_Obj);
+    static final Proto.Arr $$T_Vec = new Proto.Arr($$T_Obj);
+
+    static final XScriptO $$DEFAULT = Value.DEFAULT;
+    static final Object $$UNDEF = Undefined.instance;
+
+    static final Proto.Obj $$Package = (Proto.Obj)Global.get("$$Package");
+    static final Proto.Obj $$Module = (Proto.Obj)Global.get("$$Module");
+    static final Proto.Obj $$Instance = (Proto.Obj)Global.get("$$Instance");
+    static final Proto.Obj $$Params = (Proto.Obj)Global.get("$$Params");
+
+    static final Object $$objFldGet = Global.get("$$objFldGet");
+    static final Object $$objFldSet = Global.get("$$objFldSet");
+    static final Object $$proxyGet = Global.get("$$proxyGet");
+    static final Object $$proxySet = Global.get("$$proxySet");
+    static final Object $$delegGet = Global.get("$$delegGet");
+    static final Object $$delegSet = Global.get("$$delegSet");
+
+    Scriptable xdcO;
+    Session ses;
+    Value.Obj om;
+
+    boolean isROV;
+    boolean isCFG;
+
+    Proto.Obj pkgP;
+    Value.Obj pkgV;
+
+    ArrayList<Object> imports = new ArrayList<Object>();
+    ArrayList<Object> loggables = new ArrayList<Object>();
+    ArrayList<Object> mcfgs = new ArrayList<Object>();
+    ArrayList<Object> proxies = new ArrayList<Object>();
+    ArrayList<Object> sizes = new ArrayList<Object>();
+    ArrayList<Object> tdefs = new ArrayList<Object>();
+
+    void $$IMPORTS()
+    {
+        Global.callFxn("loadPackage", xdcO, "xdc");
+        Global.callFxn("loadPackage", xdcO, "xdc.corevers");
+    }
+
+    void $$OBJECTS()
+    {
+        pkgP = (Proto.Obj)om.bind("ti.sdo.codecs.universal.Package", new Proto.Obj());
+        pkgV = (Value.Obj)om.bind("ti.sdo.codecs.universal", new Value.Obj("ti.sdo.codecs.universal", pkgP));
+    }
+
+    void UNIVERSAL$$OBJECTS()
+    {
+        Proto.Obj po, spo;
+        Value.Obj vo;
+
+        po = (Proto.Obj)om.bind("ti.sdo.codecs.universal.UNIVERSAL.Module", new Proto.Obj());
+        vo = (Value.Obj)om.bind("ti.sdo.codecs.universal.UNIVERSAL", new Value.Obj("ti.sdo.codecs.universal.UNIVERSAL", po));
+        pkgV.bind("UNIVERSAL", vo);
+        // decls 
+    }
+
+    void UNIVERSAL$$CONSTS()
+    {
+        // module UNIVERSAL
+    }
+
+    void UNIVERSAL$$CREATES()
+    {
+        Proto.Fxn fxn;
+        StringBuilder sb;
+
+    }
+
+    void UNIVERSAL$$FUNCTIONS()
+    {
+        Proto.Fxn fxn;
+
+    }
+
+    void UNIVERSAL$$SIZES()
+    {
+    }
+
+    void UNIVERSAL$$TYPES()
+    {
+        Scriptable cap;
+        Proto.Obj po;
+        Proto.Str ps;
+        Proto.Typedef pt;
+        Object fxn;
+
+        po = (Proto.Obj)om.findStrict("ti.sdo.codecs.universal.UNIVERSAL.Module", "ti.sdo.codecs.universal");
+        po.init("ti.sdo.codecs.universal.UNIVERSAL.Module", $$Module);
+                po.addFld("$hostonly", $$T_Num, 1, "r");
+        po.addFld("watermark", $$T_Bool, false, "wh");
+        po.addFld("codeSection", $$T_Str, $$UNDEF, "wh");
+        po.addFld("udataSection", $$T_Str, $$UNDEF, "wh");
+        po.addFld("dataSection", $$T_Str, $$UNDEF, "wh");
+    }
+
+    void UNIVERSAL$$ROV()
+    {
+    }
+
+    void $$SINGLETONS()
+    {
+        pkgP.init("ti.sdo.codecs.universal.Package", (Proto.Obj)om.findStrict("xdc.IPackage.Module", "ti.sdo.codecs.universal"));
+        Scriptable cap = (Scriptable)Global.callFxn("loadCapsule", xdcO, "ti/sdo/codecs/universal/package.xs");
+        om.bind("xdc.IPackage$$capsule", cap);
+        Object fxn;
+                fxn = Global.get(cap, "init");
+                if (fxn != null) pkgP.addFxn("init", (Proto.Fxn)om.findStrict("xdc.IPackage$$init", "ti.sdo.codecs.universal"), fxn);
+                fxn = Global.get(cap, "close");
+                if (fxn != null) pkgP.addFxn("close", (Proto.Fxn)om.findStrict("xdc.IPackage$$close", "ti.sdo.codecs.universal"), fxn);
+                fxn = Global.get(cap, "validate");
+                if (fxn != null) pkgP.addFxn("validate", (Proto.Fxn)om.findStrict("xdc.IPackage$$validate", "ti.sdo.codecs.universal"), fxn);
+                fxn = Global.get(cap, "exit");
+                if (fxn != null) pkgP.addFxn("exit", (Proto.Fxn)om.findStrict("xdc.IPackage$$exit", "ti.sdo.codecs.universal"), fxn);
+                fxn = Global.get(cap, "getLibs");
+                if (fxn != null) pkgP.addFxn("getLibs", (Proto.Fxn)om.findStrict("xdc.IPackage$$getLibs", "ti.sdo.codecs.universal"), fxn);
+                fxn = Global.get(cap, "getSects");
+                if (fxn != null) pkgP.addFxn("getSects", (Proto.Fxn)om.findStrict("xdc.IPackage$$getSects", "ti.sdo.codecs.universal"), fxn);
+        pkgP.bind("$capsule", cap);
+        pkgV.init2(pkgP, "ti.sdo.codecs.universal", Value.DEFAULT, false);
+        pkgV.bind("$name", "ti.sdo.codecs.universal");
+        pkgV.bind("$category", "Package");
+        pkgV.bind("$$qn", "ti.sdo.codecs.universal.");
+        pkgV.bind("$vers", Global.newArray("1, 0, 0"));
+        Value.Map atmap = (Value.Map)pkgV.getv("$attr");
+        atmap.seal("length");
+        imports.clear();
+        pkgV.bind("$imports", imports);
+        StringBuilder sb = new StringBuilder();
+        sb.append("var pkg = xdc.om['ti.sdo.codecs.universal'];\n");
+        sb.append("if (pkg.$vers.length >= 3) {\n");
+            sb.append("pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\n");
+        sb.append("}\n");
+        sb.append("pkg.build.libraries = [\n");
+        sb.append("];\n");
+        sb.append("pkg.build.libDesc = [\n");
+        sb.append("];\n");
+        sb.append("if('suffix' in xdc.om['xdc.IPackage$$LibDesc']) {\n");
+        sb.append("}\n");
+        Global.eval(sb.toString());
+    }
+
+    void UNIVERSAL$$SINGLETONS()
+    {
+        Proto.Obj po;
+        Value.Obj vo;
+
+        vo = (Value.Obj)om.findStrict("ti.sdo.codecs.universal.UNIVERSAL", "ti.sdo.codecs.universal");
+        po = (Proto.Obj)om.findStrict("ti.sdo.codecs.universal.UNIVERSAL.Module", "ti.sdo.codecs.universal");
+        vo.init2(po, "ti.sdo.codecs.universal.UNIVERSAL", $$DEFAULT, false);
+        vo.bind("Module", po);
+        vo.bind("$category", "Module");
+        vo.bind("$capsule", $$UNDEF);
+        vo.bind("$package", om.findStrict("ti.sdo.codecs.universal", "ti.sdo.codecs.universal"));
+        tdefs.clear();
+        proxies.clear();
+        mcfgs.clear();
+        vo.bind("$$tdefs", Global.newArray(tdefs.toArray()));
+        vo.bind("$$proxies", Global.newArray(proxies.toArray()));
+        vo.bind("$$mcfgs", Global.newArray(mcfgs.toArray()));
+        ((Value.Arr)pkgV.getv("$modules")).add(vo);
+        ((Value.Arr)om.findStrict("$modules", "ti.sdo.codecs.universal")).add(vo);
+        vo.bind("$$instflag", 0);
+        vo.bind("$$iobjflag", 1);
+        vo.bind("$$sizeflag", 1);
+        vo.bind("$$dlgflag", 0);
+        vo.bind("$$iflag", 0);
+        vo.bind("$$romcfgs", "|");
+        Proto.Str ps = (Proto.Str)vo.find("Module_State");
+        if (ps != null) vo.bind("$object", ps.newInstance());
+        vo.bind("$$meta_iobj", om.has("ti.sdo.codecs.universal.UNIVERSAL$$instance$static$init", null) ? 1 : 0);
+        vo.bind("$$fxntab", Global.newArray());
+        vo.bind("$$logEvtCfgs", Global.newArray());
+        vo.bind("$$errorDescCfgs", Global.newArray());
+        vo.bind("$$assertDescCfgs", Global.newArray());
+        Value.Map atmap = (Value.Map)vo.getv("$attr");
+        atmap.seal("length");
+        pkgV.bind("UNIVERSAL", vo);
+        ((Value.Arr)pkgV.getv("$unitNames")).add("UNIVERSAL");
+    }
+
+    void $$INITIALIZATION()
+    {
+        Value.Obj vo;
+
+        if (isCFG) {
+        }//isCFG
+        Global.callFxn("module$meta$init", (Scriptable)om.findStrict("ti.sdo.codecs.universal.UNIVERSAL", "ti.sdo.codecs.universal"));
+        Global.callFxn("init", pkgV);
+        ((Value.Obj)om.getv("ti.sdo.codecs.universal.UNIVERSAL")).bless();
+        ((Value.Arr)om.findStrict("$packages", "ti.sdo.codecs.universal")).add(pkgV);
+    }
+
+    public void exec( Scriptable xdcO, Session ses )
+    {
+        this.xdcO = xdcO;
+        this.ses = ses;
+        om = (Value.Obj)xdcO.get("om", null);
+
+        Object o = om.geto("$name");
+        String s = o instanceof String ? (String)o : null;
+        isCFG = s != null && s.equals("cfg");
+        isROV = s != null && s.equals("rov");
+
+        $$IMPORTS();
+        $$OBJECTS();
+        UNIVERSAL$$OBJECTS();
+        UNIVERSAL$$CONSTS();
+        UNIVERSAL$$CREATES();
+        UNIVERSAL$$FUNCTIONS();
+        UNIVERSAL$$SIZES();
+        UNIVERSAL$$TYPES();
+        if (isROV) {
+            UNIVERSAL$$ROV();
+        }//isROV
+        $$SINGLETONS();
+        UNIVERSAL$$SINGLETONS();
+        $$INITIALIZATION();
+    }
+}
diff --git a/platform/ti/dce/baseimage/custom_rsc_table_omap5_dsp.h b/platform/ti/dce/baseimage/custom_rsc_table_omap5_dsp.h
new file mode 100644 (file)
index 0000000..b3ed494
--- /dev/null
@@ -0,0 +1,298 @@
+/*\r
+ * Copyright (c) 2013, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
\r
+/*\r
+ *  ======== custom_rsc_table_omap5_ipu.h ========\r
+ *\r
+ *  Define the OMAP5 custom resource table entries for all IPU cores. This will be\r
+ *  incorporated into corresponding base images, and used by the remoteproc\r
+ *  on the host-side to allocated/reserve resources.\r
+ *\r
+ */\r
+\r
+#ifndef __CUSTOM_RSC_TABLE_OMAP5_DSP_H__\r
+#define __CUSTOM_RSC_TABLE_OMAP5_DSP_H__\r
+\r
+#include <ti/ipc/remoteproc/rsc_types.h>\r
+\r
+/* DSP Memory Map */\r
+#define L4_44XX_BASE            0x4A000000\r
+\r
+#define L4_PERIPHERAL_L4CFG     (L4_44XX_BASE)\r
+#define DSP_PERIPHERAL_L4CFG    0x4A000000\r
+\r
+#define L4_PERIPHERAL_L4PER     0x48000000\r
+#define DSP_PERIPHERAL_L4PER    0x48000000\r
+\r
+#define L4_PERIPHERAL_L4EMU     0x54000000\r
+#define DSP_PERIPHERAL_L4EMU    0x54000000\r
+\r
+#define L3_PERIPHERAL_DMM       0x4E000000\r
+#define DSP_PERIPHERAL_DMM      0x4E000000\r
+\r
+\r
+#define L3_PERIPHERAL_ISS       0x52000000\r
+#define DSP_PERIPHERAL_ISS      0x52000000\r
+\r
+#define L3_TILER_MODE_0_1       0x60000000\r
+#define DSP_TILER_MODE_0_1      0x60000000\r
+\r
+#define L3_TILER_MODE_2         0x70000000\r
+#define DSP_TILER_MODE_2        0x70000000\r
+\r
+#define L3_TILER_MODE_3         0x78000000\r
+#define DSP_TILER_MODE_3        0x78000000\r
+\r
+#define DSP_MEM_TEXT            0x20000000\r
+#define DSP_MEM_IOBUFS          0x80000000\r
+#define DSP_MEM_DATA            0x90000000\r
+#define DSP_MEM_HEAP            0x90100000\r
+\r
+#define DSP_MEM_IPC_DATA        0x9F000000\r
+#define DSP_MEM_IPC_VRING       0xA0000000\r
+#define DSP_MEM_RPMSG_VRING0    0xA0000000\r
+#define DSP_MEM_RPMSG_VRING1    0xA0004000\r
+#define DSP_MEM_VRING_BUFS0     0xA0040000\r
+#define DSP_MEM_VRING_BUFS1     0xA0080000\r
+\r
+#define DSP_MEM_IPC_VRING_SIZE  SZ_1M\r
+#define DSP_MEM_IPC_DATA_SIZE   SZ_1M\r
+#define DSP_MEM_TEXT_SIZE       SZ_1M\r
+\r
+#define DSP_MEM_DATA_SIZE       SZ_1M\r
+#define DSP_MEM_HEAP_SIZE       (SZ_1M * 3)\r
+#define DSP_MEM_IOBUFS_SIZE     (SZ_1M * 90)\r
+\r
+/*\r
+ * Assign fixed RAM addresses to facilitate a fixed MMU table.\r
+ * PHYS_MEM_IPC_VRING & PHYS_MEM_IPC_DATA MUST be together.\r
+ */\r
+#define PHYS_MEM_IPC_VRING      0x95000000\r
+\r
+#define PHYS_MEM_IOBUFS         0xBA300000\r
+\r
+/*\r
+ * Sizes of the virtqueues (expressed in number of buffers supported,\r
+ * and must be power of 2)\r
+ */\r
+#define DSP_RPMSG_VQ0_SIZE      256\r
+#define DSP_RPMSG_VQ1_SIZE      256\r
+\r
+/* flip up bits whose indices represent features we support */\r
+#define RPMSG_DSP_C0_FEATURES   1\r
+\r
+struct my_resource_table {\r
+    struct resource_table base;\r
+\r
+    UInt32 offset[16];  /* Should match 'num' in actual definition */\r
+\r
+    /* rpmsg vdev entry */\r
+    struct fw_rsc_vdev rpmsg_vdev;\r
+    struct fw_rsc_vdev_vring rpmsg_vring0;\r
+    struct fw_rsc_vdev_vring rpmsg_vring1;\r
+\r
+    /* text carveout entry */\r
+    struct fw_rsc_carveout text_cout;\r
+\r
+    /* data carveout entry */\r
+    struct fw_rsc_carveout data_cout;\r
+    /* heap carveout entry */\r
+    struct fw_rsc_carveout heap_cout;\r
+\r
+    /* ipcdata carveout entry */\r
+    struct fw_rsc_carveout ipcdata_cout;\r
+\r
+    /* trace entry */\r
+    struct fw_rsc_trace trace;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem0;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem1;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem2;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem3;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem4;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem5;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem6;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem7;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem8;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem9;\r
+};\r
+\r
+extern char ti_trace_SysMin_Module_State_0_outbuf__A;\r
+#define TRACEBUFADDR (UInt32)&ti_trace_SysMin_Module_State_0_outbuf__A\r
+\r
+#pragma DATA_SECTION(ti_ipc_remoteproc_ResourceTable, ".resource_table")\r
+#pragma DATA_ALIGN(ti_ipc_remoteproc_ResourceTable, 4096)\r
+\r
+struct my_resource_table ti_ipc_remoteproc_ResourceTable = {\r
+    1,      /* we're the first version that implements this */\r
+    16,     /* number of entries in the table */\r
+    0, 0,   /* reserved, must be zero */\r
+    /* offsets to entries */\r
+    {\r
+        offsetof(struct my_resource_table, rpmsg_vdev),\r
+        offsetof(struct my_resource_table, text_cout),\r
+        offsetof(struct my_resource_table, data_cout),\r
+        offsetof(struct my_resource_table, heap_cout),\r
+        offsetof(struct my_resource_table, ipcdata_cout),\r
+        offsetof(struct my_resource_table, trace),\r
+        offsetof(struct my_resource_table, devmem0),\r
+        offsetof(struct my_resource_table, devmem1),\r
+        offsetof(struct my_resource_table, devmem2),\r
+        offsetof(struct my_resource_table, devmem3),\r
+        offsetof(struct my_resource_table, devmem4),\r
+        offsetof(struct my_resource_table, devmem5),\r
+        offsetof(struct my_resource_table, devmem6),\r
+        offsetof(struct my_resource_table, devmem7),\r
+        offsetof(struct my_resource_table, devmem8),\r
+        offsetof(struct my_resource_table, devmem9),\r
+    },\r
+\r
+    /* rpmsg vdev entry */\r
+    {\r
+        TYPE_VDEV, VIRTIO_ID_RPMSG, 0,\r
+        RPMSG_DSP_C0_FEATURES, 0, 0, 0, 2, { 0, 0 },\r
+        /* no config data */\r
+    },\r
+    /* the two vrings */\r
+    { DSP_MEM_RPMSG_VRING0, 4096, DSP_RPMSG_VQ0_SIZE, 1, 0 },\r
+    { DSP_MEM_RPMSG_VRING1, 4096, DSP_RPMSG_VQ1_SIZE, 2, 0 },\r
+\r
+    {\r
+        TYPE_CARVEOUT,\r
+        DSP_MEM_TEXT, 0,\r
+        DSP_MEM_TEXT_SIZE, 0, 0, "DSP_MEM_TEXT",\r
+    },\r
+\r
+    {\r
+        TYPE_CARVEOUT,\r
+        DSP_MEM_DATA, 0,\r
+        DSP_MEM_DATA_SIZE, 0, 0, "DSP_MEM_DATA",\r
+    },\r
+\r
+    {\r
+        TYPE_CARVEOUT,\r
+        DSP_MEM_HEAP, 0,\r
+        DSP_MEM_HEAP_SIZE, 0, 0, "DSP_MEM_HEAP",\r
+    },\r
+\r
+    {\r
+        TYPE_CARVEOUT,\r
+        DSP_MEM_IPC_DATA, 0,\r
+        DSP_MEM_IPC_DATA_SIZE, 0, 0, "DSP_MEM_IPC_DATA",\r
+    },\r
+\r
+    {\r
+        TYPE_TRACE, TRACEBUFADDR, 0x8000, 0, "trace:dsp",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_MEM_IPC_VRING, PHYS_MEM_IPC_VRING,\r
+        DSP_MEM_IPC_VRING_SIZE, 0, 0, "DSP_MEM_IPC_VRING",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_MEM_IOBUFS, PHYS_MEM_IOBUFS,\r
+        DSP_MEM_IOBUFS_SIZE, 0, 0, "DSP_MEM_IOBUFS",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_TILER_MODE_0_1, L3_TILER_MODE_0_1,\r
+        SZ_256M, 0, 0, "DSP_TILER_MODE_0_1",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_TILER_MODE_2, L3_TILER_MODE_2,\r
+        SZ_128M, 0, 0, "DSP_TILER_MODE_2",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_TILER_MODE_3, L3_TILER_MODE_3,\r
+        SZ_128M, 0, 0, "DSP_TILER_MODE_3",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_L4CFG, L4_PERIPHERAL_L4CFG,\r
+        SZ_16M, 0, 0, "DSP_PERIPHERAL_L4CFG",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_L4PER, L4_PERIPHERAL_L4PER,\r
+        SZ_16M, 0, 0, "DSP_PERIPHERAL_L4PER",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_L4EMU, L4_PERIPHERAL_L4EMU,\r
+        SZ_16M, 0, 0, "DSP_PERIPHERAL_L4EMU",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_DMM, L3_PERIPHERAL_DMM,\r
+        SZ_1M, 0, 0, "DSP_PERIPHERAL_DMM",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_ISS, L3_PERIPHERAL_ISS,\r
+        SZ_256K, 0, 0, "DSP_PERIPHERAL_ISS",\r
+    },\r
+};\r
+\r
+#endif /* __CUSTOM_RSC_TABLE_OMAP5_DSP_H__ */\r
+\r
diff --git a/platform/ti/dce/baseimage/custom_rsc_table_vayu_dsp.h b/platform/ti/dce/baseimage/custom_rsc_table_vayu_dsp.h
new file mode 100644 (file)
index 0000000..c8891cf
--- /dev/null
@@ -0,0 +1,327 @@
+/*\r
+ * Copyright (c) 2013, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
\r
+/*\r
+ *  ======== custom_rsc_table_vayu_ipu.h ========\r
+ *\r
+ *  Define the VAYU/DRA7xx custom resource table entries for all IPU cores. This will be\r
+ *  incorporated into corresponding base images, and used by the remoteproc\r
+ *  on the host-side to allocated/reserve resources.\r
+ *\r
+ */\r
+\r
+#ifndef __CUSTOM_RSC_TABLE_VAYU_DSP_H__\r
+#define __CUSTOM_RSC_TABLE_VAYU_DSP_H__\r
+\r
+#include <ti/ipc/remoteproc/rsc_types.h>\r
+\r
+/* DSP Memory Map */\r
+#define L4_DRA7XX_BASE          0x4A000000\r
+\r
+/* L4_CFG & L4_WKUP */\r
+#define L4_PERIPHERAL_L4CFG     (L4_DRA7XX_BASE)\r
+#define DSP_PERIPHERAL_L4CFG    0x4A000000\r
+\r
+#define L4_PERIPHERAL_L4PER1    0x48000000\r
+#define DSP_PERIPHERAL_L4PER1   0x48000000\r
+\r
+#define L4_PERIPHERAL_L4PER2    0x48400000\r
+#define DSP_PERIPHERAL_L4PER2   0x48400000\r
+\r
+#define L4_PERIPHERAL_L4PER3    0x48800000\r
+#define DSP_PERIPHERAL_L4PER3   0x48800000\r
+\r
+#define L4_PERIPHERAL_L4EMU     0x54000000\r
+#define DSP_PERIPHERAL_L4EMU    0x54000000\r
+\r
+#define L3_PERIPHERAL_DMM       0x4E000000\r
+#define DSP_PERIPHERAL_DMM      0x4E000000\r
+\r
+\r
+#define L3_PERIPHERAL_ISS       0x52000000\r
+#define DSP_PERIPHERAL_ISS      0x52000000\r
+\r
+#define L3_TILER_MODE_0_1       0x60000000\r
+#define DSP_TILER_MODE_0_1      0x60000000\r
+\r
+#define L3_TILER_MODE_2         0x70000000\r
+#define DSP_TILER_MODE_2        0x70000000\r
+\r
+#define L3_TILER_MODE_3         0x78000000\r
+#define DSP_TILER_MODE_3        0x78000000\r
+\r
+#define DSP_MEM_TEXT            0x95000000\r
+#define DSP_MEM_IOBUFS          0x80000000\r
+#define DSP_MEM_DATA            0x95100000\r
+#define DSP_MEM_HEAP            0x95200000\r
+\r
+#define DSP_MEM_IPC_DATA        0x9F000000\r
+#define DSP_MEM_IPC_VRING       0xA0000000\r
+#define DSP_MEM_RPMSG_VRING0    0xA0000000\r
+#define DSP_MEM_RPMSG_VRING1    0xA0004000\r
+#define DSP_MEM_VRING_BUFS0     0xA0040000\r
+#define DSP_MEM_VRING_BUFS1     0xA0080000\r
+\r
+#define DSP_MEM_IPC_VRING_SIZE  SZ_1M\r
+#define DSP_MEM_IPC_DATA_SIZE   SZ_1M\r
+\r
+#define DSP_MEM_TEXT_SIZE       SZ_1M\r
+\r
+#define DSP_MEM_DATA_SIZE       SZ_1M\r
+#define DSP_MEM_HEAP_SIZE       (SZ_1M * 3)\r
+#define DSP_MEM_IOBUFS_SIZE     (SZ_1M * 90)\r
+\r
+/*\r
+ * Assign fixed RAM addresses to facilitate a fixed MMU table.\r
+ * PHYS_MEM_IPC_VRING & PHYS_MEM_IPC_DATA MUST be together.\r
+ */\r
+/* See CMA BASE addresses in Linux side: arch/arm/mach-omap2/remoteproc.c */\r
+\r
+#define PHYS_MEM_IPC_VRING      0x95000000\r
+#define PHYS_MEM_IOBUFS         0xBA300000\r
+\r
+/*\r
+ * Sizes of the virtqueues (expressed in number of buffers supported,\r
+ * and must be power of 2)\r
+ */\r
+#define DSP_RPMSG_VQ0_SIZE      256\r
+#define DSP_RPMSG_VQ1_SIZE      256\r
+\r
+/* flip up bits whose indices represent features we support */\r
+#define RPMSG_DSP_C0_FEATURES   1\r
+\r
+struct my_resource_table {\r
+    struct resource_table base;\r
+\r
+    UInt32 offset[18];  /* Should match 'num' in actual definition */\r
+\r
+    /* rpmsg vdev entry */\r
+    struct fw_rsc_vdev rpmsg_vdev;\r
+    struct fw_rsc_vdev_vring rpmsg_vring0;\r
+    struct fw_rsc_vdev_vring rpmsg_vring1;\r
+\r
+    /* text carveout entry */\r
+    struct fw_rsc_carveout text_cout;\r
+\r
+    /* data carveout entry */\r
+    struct fw_rsc_carveout data_cout;\r
+    /* heap carveout entry */\r
+    struct fw_rsc_carveout heap_cout;\r
+\r
+    /* ipcdata carveout entry */\r
+    struct fw_rsc_carveout ipcdata_cout;\r
+\r
+    /* trace entry */\r
+    struct fw_rsc_trace trace;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem0;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem1;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem2;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem3;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem4;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem5;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem6;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem7;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem8;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem9;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem10;\r
+\r
+    /* devmem entry */\r
+    struct fw_rsc_devmem devmem11;\r
+};\r
+\r
+extern char ti_trace_SysMin_Module_State_0_outbuf__A;\r
+#define TRACEBUFADDR (UInt32)&ti_trace_SysMin_Module_State_0_outbuf__A\r
+\r
+#pragma DATA_SECTION(ti_ipc_remoteproc_ResourceTable, ".resource_table")\r
+#pragma DATA_ALIGN(ti_ipc_remoteproc_ResourceTable, 4096)\r
+\r
+struct my_resource_table ti_ipc_remoteproc_ResourceTable = {\r
+    1,      /* we're the first version that implements this */\r
+    18,     /* number of entries in the table */\r
+    0, 0,   /* reserved, must be zero */\r
+    /* offsets to entries */\r
+    {\r
+        offsetof(struct my_resource_table, rpmsg_vdev),\r
+        offsetof(struct my_resource_table, text_cout),\r
+        offsetof(struct my_resource_table, data_cout),\r
+        offsetof(struct my_resource_table, heap_cout),\r
+        offsetof(struct my_resource_table, ipcdata_cout),\r
+        offsetof(struct my_resource_table, trace),\r
+        offsetof(struct my_resource_table, devmem0),\r
+        offsetof(struct my_resource_table, devmem1),\r
+        offsetof(struct my_resource_table, devmem2),\r
+        offsetof(struct my_resource_table, devmem3),\r
+        offsetof(struct my_resource_table, devmem4),\r
+        offsetof(struct my_resource_table, devmem5),\r
+        offsetof(struct my_resource_table, devmem6),\r
+        offsetof(struct my_resource_table, devmem7),\r
+        offsetof(struct my_resource_table, devmem8),\r
+        offsetof(struct my_resource_table, devmem9),\r
+        offsetof(struct my_resource_table, devmem10),\r
+        offsetof(struct my_resource_table, devmem11),\r
+    },\r
+\r
+    /* rpmsg vdev entry */\r
+    {\r
+        TYPE_VDEV, VIRTIO_ID_RPMSG, 0,\r
+        RPMSG_DSP_C0_FEATURES, 0, 0, 0, 2, { 0, 0 },\r
+        /* no config data */\r
+    },\r
+    /* the two vrings */\r
+    { DSP_MEM_RPMSG_VRING0, 4096, DSP_RPMSG_VQ0_SIZE, 1, 0 },\r
+    { DSP_MEM_RPMSG_VRING1, 4096, DSP_RPMSG_VQ1_SIZE, 2, 0 },\r
+\r
+    {\r
+        TYPE_CARVEOUT,\r
+        DSP_MEM_TEXT, 0,\r
+        DSP_MEM_TEXT_SIZE, 0, 0, "DSP_MEM_TEXT",\r
+    },\r
+\r
+    {\r
+        TYPE_CARVEOUT,\r
+        DSP_MEM_DATA, 0,\r
+        DSP_MEM_DATA_SIZE, 0, 0, "DSP_MEM_DATA",\r
+    },\r
+\r
+    {\r
+        TYPE_CARVEOUT,\r
+        DSP_MEM_HEAP, 0,\r
+        DSP_MEM_HEAP_SIZE, 0, 0, "DSP_MEM_HEAP",\r
+    },\r
+\r
+    {\r
+        TYPE_CARVEOUT,\r
+        DSP_MEM_IPC_DATA, 0,\r
+        DSP_MEM_IPC_DATA_SIZE, 0, 0, "DSP_MEM_IPC_DATA",\r
+    },\r
+\r
+    {\r
+        TYPE_TRACE, TRACEBUFADDR, 0x8000, 0, "trace:dsp",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_MEM_IPC_VRING, PHYS_MEM_IPC_VRING,\r
+        DSP_MEM_IPC_VRING_SIZE, 0, 0, "DSP_MEM_IPC_VRING",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_MEM_IOBUFS, PHYS_MEM_IOBUFS,\r
+        DSP_MEM_IOBUFS_SIZE, 0, 0, "DSP_MEM_IOBUFS",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_TILER_MODE_0_1, L3_TILER_MODE_0_1,\r
+        SZ_256M, 0, 0, "DSP_TILER_MODE_0_1",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_TILER_MODE_2, L3_TILER_MODE_2,\r
+        SZ_128M, 0, 0, "DSP_TILER_MODE_2",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_TILER_MODE_3, L3_TILER_MODE_3,\r
+        SZ_128M, 0, 0, "DSP_TILER_MODE_3",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_L4CFG, L4_PERIPHERAL_L4CFG,\r
+        SZ_16M, 0, 0, "DSP_PERIPHERAL_L4CFG",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_L4PER1, L4_PERIPHERAL_L4PER1,\r
+        SZ_2M, 0, 0, "DSP_PERIPHERAL_L4PER1",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_L4PER2, L4_PERIPHERAL_L4PER2,\r
+        SZ_4M, 0, 0, "DSP_PERIPHERAL_L4PER2",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_L4PER3, L4_PERIPHERAL_L4PER3,\r
+        SZ_8M, 0, 0, "DSP_PERIPHERAL_L4PER3",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_L4EMU, L4_PERIPHERAL_L4EMU,\r
+        SZ_16M, 0, 0, "DSP_PERIPHERAL_L4EMU",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_DMM, L3_PERIPHERAL_DMM,\r
+        SZ_1M, 0, 0, "DSP_PERIPHERAL_DMM",\r
+    },\r
+\r
+    {\r
+        TYPE_DEVMEM,\r
+        DSP_PERIPHERAL_ISS, L3_PERIPHERAL_ISS,\r
+        SZ_256K, 0, 0, "DSP_PERIPHERAL_ISS",\r
+    },\r
+};\r
+\r
+#endif /* __CUSTOM_RSC_TABLE_VAYU_DSP_H__ */\r
+\r
diff --git a/platform/ti/dce/baseimage/dce_dsp.cfg b/platform/ti/dce/baseimage/dce_dsp.cfg
new file mode 100644 (file)
index 0000000..c4e1544
--- /dev/null
@@ -0,0 +1,195 @@
+/*\r
+ * Copyright (c) 2011, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+\r
+var hw_OMAP4 = 0;\r
+var hw_OMAP5 = 1;\r
+var hw_VAYU = 2;\r
+var VIRTIO = 0;\r
+var ZEBU = 0;\r
+var ES10 = 1;\r
+var ES20 = 2;\r
+\r
+var Program                    = xdc.useModule('xdc.cfg.Program');\r
+\r
+var cfgArgs = prog.build.cfgArgs;\r
+\r
+Program.global.HwType = cfgArgs.HwType;\r
+Program.global.enableSMP = cfgArgs.enableSMP;\r
+Program.global.HwVer = cfgArgs.HwVer;\r
+Program.global.coreName = "dsp";\r
+\r
+print("HwType = " + Program.global.HwType);\r
+\r
+if(Program.global.HwType == hw_VAYU)\r
+{\r
+  //  xdc.loadCapsule("ti/configs/vayu/IpcCommon.cfg.xs");\r
+    xdc.includeFile("ti/configs/vayu/Dsp1.cfg");\r
+    \r
+}\r
+else\r
+{\r
+  //  xdc.loadCapsule("ti/configs/omap54xx/IpcCommon.cfg.xs");\r
+    xdc.includeFile("ti/configs/omap54xx/Dsp.cfg");\r
+    xdc.includeFile("ti/configs/omap54xx/DspAmmu.cfg");\r
+}\r
+\r
+xdc.loadPackage('ti.ipc.mm');\r
+xdc.loadPackage('ti.ipc.ipcmgr');\r
+xdc.loadPackage('ti.srvmgr');\r
+xdc.loadPackage('ti.srvmgr.omaprpc');\r
+\r
+// Disabling default IpcCommon trace\r
+var Registry = xdc.useModule('xdc.runtime.Registry');\r
+var Diags = xdc.useModule('xdc.runtime.Diags');\r
+var Task = xdc.useModule('ti.sysbios.knl.Task');\r
+Task.common$.namedInstance = true;\r
+\r
+Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;\r
+Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;\r
+Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;\r
+Registry.common$.diags_INFO = Diags.RUNTIME_OFF;\r
+Registry.common$.diags_LIFECYCLE = Diags.ALWAYS_ON;\r
+Registry.common$.diags_STATUS = Diags.ALWAYS_ON;\r
+Diags.setMaskEnabled = true;\r
+\r
+var Memory                     = xdc.useModule('xdc.runtime.Memory');\r
+var HeapMem                    = xdc.useModule('ti.sysbios.heaps.HeapMem');\r
+var GateHwi                    = xdc.useModule('ti.sysbios.gates.GateHwi');\r
+HeapMem.common$.gate = GateHwi.create();\r
+\r
+\r
+var heapMemParams                      = new HeapMem.Params;\r
+heapMemParams.size                     = 0x280000; // 2.5MB\r
+heapMemParams.sectionName      = ".systemHeap";\r
+var heap0                                      = HeapMem.create(heapMemParams);\r
+Memory.defaultHeapInstance     = heap0;\r
+Program.global.heap0           = heap0;\r
+\r
+/*\r
+ * Setup memory map.\r
+ */\r
+\r
+/* Mark heaps as NOINIT for optimizing boot-time */\r
+Program.sectMap[".systemHeap"] = new Program.SectionSpec();\r
+Program.sectMap[".systemHeap"].loadSegment = "EXT_HEAP";\r
+Program.sectMap[".systemHeap"].type = "NOINIT";\r
+\r
+\r
+/* ----------------------------- VERSION CONFIGURATION ---------------------*/\r
+var commonBld = xdc.loadCapsule("build/common.bld");\r
+commonBld.GetVersionTag();\r
+\r
+/*\r
+ *  ======== CODEC ENGINE configurations  ========\r
+ */\r
+\r
+var Global = xdc.useModule('ti.sdo.ce.osal.Global');\r
+Global.runtimeEnv = Global.DSPBIOS;\r
+\r
+xdc.useModule('ti.sdo.ce.global.Settings').profile    = "debug";\r
+xdc.loadPackage('ti.sdo.ce.video').profile            = "debug";\r
+xdc.loadPackage('ti.sdo.ce.video3').profile           = "debug";\r
+xdc.loadPackage('ti.sdo.ce.alg').profile              = "debug";\r
+\r
+var HeapBufMP                  = xdc.useModule('ti.sdo.ipc.heaps.HeapBufMP');\r
+\r
+var ipcSettings = xdc.useModule('ti.sdo.ce.ipc.Settings');\r
+ipcSettings.ipc = xdc.useModule('ti.sdo.ce.ipc.bios.Ipc');\r
+// set to true to enable debugging of codec engine\r
+xdc.useModule('ti.sdo.ce.Settings').checked         = true;\r
+\r
+/* Enable Memory Translation module that operates on the BIOS Resource Table */\r
+var Resource = xdc.useModule('ti.ipc.remoteproc.Resource');\r
+Resource.customTable = true;\r
+\r
+// Load decoder/encoder APIs:\r
+var VIDDEC2 = xdc.useModule('ti.sdo.ce.video2.IVIDDEC2');\r
+var UNIVERSAL = xdc.useModule('ti.sdo.ce.universal.IUNIVERSAL');\r
+\r
+// load whatever codecs are available in the build\r
+var codecs = [];\r
+\r
+function loadCodec(pkg, name)\r
+{\r
+   try {\r
+               var codec = xdc.useModule(pkg);\r
+               print('loading: ' + name);\r
+               codecs.push({ name: name, mod: codec, local: true });\r
+       } catch(e) {\r
+               print('no package: ' + pkg);\r
+       }\r
+}\r
+\r
+loadCodec('ti.sdo.codecs.universal.ce.UNIVERSAL', 'dsp_universalCopy');\r
+\r
+var engine         = xdc.useModule('ti.sdo.ce.Engine');\r
+var myEngine       = engine.create("dsp_vidsvr", codecs);\r
+\r
+xdc.useModule('ti.sysbios.knl.Task');\r
+var Task = xdc.useModule('ti.sysbios.knl.Task');\r
+Task.defaultStackSize = 12 * 0x400;\r
+\r
+/* ----------------------------- Configure BIOS--------------------------------*/\r
+\r
+BIOS                = xdc.useModule('ti.sysbios.BIOS');\r
+BIOS.addUserStartupFunction('&IpcMgr_rpmsgStartup');\r
+\r
+BIOS.clockEnabled   = true;\r
+BIOS.libType = BIOS.LibType_Custom;\r
+BIOS.smpEnabled = false;\r
+\r
+\r
+var Timer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');\r
+if(Program.global.HwType == hw_OMAP5 || Program.global.HwType == hw_VAYU)\r
+{\r
+    /*\r
+    BIOS assumes that default frequency is 38.4 MHz. On OMAP5, SYS_CLK is used to source\r
+    Hence it is clocked at 19.2 MHz.\r
+\r
+    Locally setting the BIOS configuration for GPT and CTM for OMAP5 till actual changes are\r
+    present in omap54xx/ipu/Platform.xdc\r
+    */\r
+    Timer.intFreq.hi = 0;\r
+    Timer.intFreq.lo = 19200000;\r
+    BIOS.cpuFreq.hi = 0;\r
+    BIOS.cpuFreq.lo = 600000000;\r
+}\r
+\r
+Program.sectMap[".plt"] = "EXT_DATA";\r
+\r
+\r
+/* IPC 3.x is no longer providing version capability. If needed, then IPC needs to implement it. */\r
+    /* Version module; this will produce a .version section with trees infos. Read\r
+     * with "readelf -p .version <base_image>" */\r
+//    xdc.useModule('ti.utils.Version');\r
+\r
diff --git a/platform/ti/dce/baseimage/load_task.c b/platform/ti/dce/baseimage/load_task.c
new file mode 100644 (file)
index 0000000..1d4e549
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * Monitor load and trace any change.\r
+ * Author: Vincent StehlĂ© <v-stehle@ti.com>, copied from ping_tasks.c\r
+ *\r
+ * Copyright (c) 2011, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+#include <xdc/std.h>\r
+#include <xdc/cfg/global.h>\r
+#include <xdc/runtime/System.h>\r
+\r
+#include <ti/sysbios/BIOS.h>\r
+#include <ti/sysbios/knl/Task.h>\r
+#include <ti/sysbios/smp/Load.h>\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+\r
+/*\r
+ * Time to sleep between load reporting attempts, in ticks.\r
+ * On TI platforms, 1 tick == 1 ms.\r
+ */\r
+#define SLEEP_TICKS 1000\r
+\r
+/*\r
+ * Load reporting "threshold". When the new load is within previous reported\r
+ * load +- this value, we do not report it.\r
+ */\r
+#define THRESHOLD 1\r
+\r
+/* Monitor load and trace any change. */\r
+static Void loadTaskFxn(UArg arg0, UArg arg1)\r
+{\r
+    UInt32 prev_load = 0;\r
+\r
+    /* Suppress warnings. */\r
+    (void)arg0;\r
+    (void)arg1;\r
+\r
+    System_printf(\r
+        "loadTask: started\n"\r
+        "  SLEEP_TICKS: %u\n"\r
+        "  Load_hwiEnabled: %d\n"\r
+        "  Load_swiEnabled: %d\n"\r
+        "  Load_taskEnabled: %d\n"\r
+        "  Load_updateInIdle: %d\n"\r
+        "  Load_windowInMs: %u\n"\r
+        ,\r
+        SLEEP_TICKS,\r
+        Load_hwiEnabled,\r
+        Load_swiEnabled,\r
+        Load_taskEnabled,\r
+        Load_updateInIdle,\r
+        Load_windowInMs\r
+    );\r
+\r
+    /* Infinite loop to trace load. */\r
+    for (;;) {\r
+        UInt32 load;\r
+        unsigned delta;\r
+\r
+        /* Get load. */\r
+        load = Load_getCPULoad();\r
+\r
+        /* Trace if changed and delta above threshold. */\r
+        delta = abs((int)load - (int)prev_load);\r
+\r
+        if (delta > THRESHOLD) {\r
+            System_printf("loadTask: cpu load = %u%%\n", load);\r
+            prev_load = load;\r
+        }\r
+\r
+        /* Delay. */\r
+        Task_sleep(SLEEP_TICKS);\r
+    }\r
+}\r
+\r
+void start_load_task(void)\r
+{\r
+    Task_Params params;\r
+\r
+    /* Monitor load and trace any change. */\r
+    Task_Params_init(&params);\r
+    params.instance->name = "loadtsk";\r
+    params.priority = 1;\r
+\r
+    if(!Task_create(loadTaskFxn, &params, NULL))\r
+        System_printf("Could not create load task!\n");\r
+}\r
diff --git a/platform/ti/dce/baseimage/main.c b/platform/ti/dce/baseimage/main.c
new file mode 100644 (file)
index 0000000..0186203
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * Copyright (c) 2011, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+#include <xdc/std.h>\r
+#include <xdc/cfg/global.h>\r
+#include <xdc/runtime/System.h>\r
+#include <xdc/runtime/Diags.h>\r
+#include <xdc/runtime/Error.h>\r
+\r
+#include <ti/ipc/MultiProc.h>\r
+#include <ti/sysbios/BIOS.h>\r
+#include <ti/sysbios/knl/Task.h>\r
+#include <ti/ipc/rpmsg/_RPMessage.h>\r
+#include <ti/ipc/remoteproc/Resource.h>\r
+\r
+#include <ti/grcm/RcmTypes.h>\r
+#include <ti/grcm/RcmServer.h>\r
+#include <ti/framework/dce/dce_priv.h>\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+\r
+// Include the custom resource table for memory configuration.\r
+#if (defined VAYU_ES10)\r
+#include "custom_rsc_table_vayu_dsp.h"\r
+#elif (defined OMAP5432_ES20)\r
+#include "custom_rsc_table_omap5_dsp.h"\r
+#endif\r
+\r
+extern uint32_t    dce_debug;\r
+\r
+/* Legacy function to allow Linux side rpmsg sample tests to work: */\r
+extern void start_ping_tasks();\r
+\r
+static unsigned int SyslinkMemUtils_VirtToPhys(Ptr Addr)\r
+{\r
+    unsigned int    pa;\r
+\r
+    if( !Addr || Resource_virtToPhys((unsigned int) Addr, &pa)) {\r
+        return (0);\r
+    }\r
+    return (pa);\r
+}\r
+\r
+void *MEMUTILS_getPhysicalAddr(Ptr vaddr)\r
+{\r
+    unsigned int    paddr = SyslinkMemUtils_VirtToPhys(vaddr);\r
+\r
+    DEBUG("virtual addr:%x\tphysical addr:%x", vaddr, paddr);\r
+    return ((void *)paddr);\r
+}\r
+\r
+void tools_ShowVersion()\r
+{\r
+    System_printf("\n\n **** DSPMM VERSION INFO **** \n\nCompile DATE %s TIME %s \n", __DATE__, __TIME__);\r
+\r
+    System_printf("\n** DSPMM VERSION INFO END ** \n");\r
+\r
+    System_printf("Trace Buffer PA 0x%x Trace Level %d\\r
+                   \nTrace Usage: level:[0-4: 0-no trace, 1-err, 2-debug, 3-info, 4-CE,FC,IPC traces] \n\n",\r
+                  MEMUTILS_getPhysicalAddr((Ptr)(TRACEBUFADDR)), dce_debug);\r
+}\r
+\r
+int main(int argc, char * *argv)\r
+{\r
+    extern void start_load_task(void);\r
+    UInt16    hostId;\r
+\r
+    /* Set up interprocessor notifications */\r
+    System_printf("%s starting..\n", MultiProc_getName(MultiProc_self()));\r
+\r
+    hostId = MultiProc_getId("HOST");\r
+    RPMessage_init(hostId);\r
+\r
+    /* Some background ping testing tasks, used by rpmsg samples: */\r
+    start_ping_tasks();\r
+\r
+    /* CPU load reporting in the trace. */\r
+   // start_load_task();\r
+\r
+    /* Dump Tools version */\r
+    tools_ShowVersion();\r
+\r
+    BIOS_start();\r
+\r
+    return (0);\r
+}\r
+\r
diff --git a/platform/ti/dce/baseimage/package.bld b/platform/ti/dce/baseimage/package.bld
new file mode 100644 (file)
index 0000000..4b0d769
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ *  ======== WTSD_DucatiMMSW/platform/baseimage/package.bld ========
+ */
+
+var Build = xdc.useModule('xdc.bld.BuildEnvironment');
+var Pkg = xdc.useModule('xdc.bld.PackageContents');
+var compileOpts = " "
+var waval = 0;
+
+var commonBld = xdc.loadCapsule("../build/common.bld");
+
+var SRC_FILES_APP = [
+     "main.c",
+     "ping_tasks.c"
+     
+ ];
+
+var SRC_FILES_SYS = [
+];
+
+coreNames = commonBld.getCores(arguments);
+/* select default as dsp */
+if (coreNames.length==0) {
+    coreNames[0] = "dsp";
+}
+
+var profiles  = commonBld.getProfiles(arguments);
+/* If no profiles were assigned, build for release */
+if (profiles.length == 0) {
+    profiles[0] = "release";
+}
+
+
+for (var i = 0; i < Build.targets.length; i++) {
+
+    var targ = Build.targets[i];
+
+    for (var j = 0; j < coreNames.length; j++) {
+        var coreName = coreNames[j];
+
+        var cfgFileName = 'dce_' + coreName + '.cfg';
+
+        if(coreName.match(/dsp/)){
+            var SRC_FILES = SRC_FILES_APP;
+        }
+
+        for( var k = 0; k< profiles.length; k++)
+        {
+            var profile        = profiles[k];
+            var profileOpts    = commonBld.buildOptions(arguments, compileOpts, coreName);
+
+
+            var out_name = 'out/' + coreName + '/' + profile + '/' + coreName;
+
+            print ("config file: " + cfgFileName + "\n");
+            print ("profile: " + profile + "\n");
+            print(profileOpts+"\r\n");
+            print("HwType = " + HwType);
+            print("HwVer = " + HwVer);
+            var exe = Pkg.addExecutable(out_name, targ, targ.platform, {cfgScript:cfgFileName, profile:profile, copts: profileOpts, cfgArgs:"{HwType:" + HwType + "}" });
+
+            exe.addObjects(SRC_FILES);
+
+        }
+    }
+}
+
+
diff --git a/platform/ti/dce/baseimage/package.xdc b/platform/ti/dce/baseimage/package.xdc
new file mode 100644 (file)
index 0000000..d8e8e9e
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2011, Texas Instruments Incorporated
+ * 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 Texas Instruments Incorporated 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 BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE 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.xdc ========
+ *
+ */
+requires ti.framework.dce;
+
+
+/*!
+ *  ======== platform.ti.dce.baseimage ========
+ */
+package platform.ti.dce.baseimage [1,0,0,0] {
+}
diff --git a/platform/ti/dce/baseimage/ping_tasks.c b/platform/ti/dce/baseimage/ping_tasks.c
new file mode 100644 (file)
index 0000000..085f5a3
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * Copyright (c) 2011, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+/*\r
+ *  ======== ping_tasks.c ========\r
+ *\r
+ *  Works with the rpmsg_client_sample and rpmsg_server_sample Linux drivers.\r
+ */\r
+\r
+#include <xdc/std.h>\r
+#include <xdc/cfg/global.h>\r
+#include <xdc/runtime/System.h>\r
+\r
+#include <ti/ipc/MultiProc.h>\r
+#include <ti/sysbios/BIOS.h>\r
+#include <ti/sysbios/knl/Task.h>\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
+\r
+#include <ti/ipc/rpmsg/RPMessage.h>\r
+#include <ti/ipc/rpmsg/_RPMessage.h>\r
+//#include <ti/ipc/rpmsg/NameMap.h>\r
+\r
+#define APP_NUM_ITERATIONS 100000\r
+\r
+/* Needed due to preprocessing flag in <ti/ipc/rpmsg/NameMap.h> */\r
+extern void NameMap_register(Char *name, Char *desc, UInt32 value);\r
+\r
+Void copyTaskFxn(UArg arg0, UArg arg1)\r
+{\r
+    RPMessage_Handle    handle;\r
+    Char                buffer[128];\r
+    UInt32              myEndpoint = 0;\r
+    UInt32              remoteEndpoint;\r
+    UInt16              dstProc;\r
+    UInt16              len;\r
+    Int                 i;\r
+\r
+    System_printf("copyTask %d: Entered...:\n", arg0);\r
+\r
+    dstProc = MultiProc_getId("HOST");\r
+\r
+    RPMessage_init(dstProc);\r
+\r
+    /* Create the messageQ for receiving (and get our endpoint for sending). */\r
+    handle = RPMessage_create(arg0, NULL, NULL, &myEndpoint);\r
+    \r
+    //NameMap_register("rpmsg-client-sample", "sample-desc", arg0);\r
+    NameMap_register("rpmsg-client-sample", "sample-desc", arg0);\r
+    \r
+    for( i = 0; i < APP_NUM_ITERATIONS; i++ ) {\r
+        /* Await a character message: */\r
+        RPMessage_recv(handle, (Ptr)buffer, &len, &remoteEndpoint,\r
+                       RPMessage_FOREVER);\r
+\r
+        buffer[len] = '\0';\r
+        System_printf("copyTask %d: Received data: %s, len:%d\n", i + 1,\r
+                      buffer, len);\r
+\r
+        /* Send data back to remote endpoint: */\r
+        RPMessage_send(dstProc, remoteEndpoint, myEndpoint, (Ptr)buffer, len);\r
+    }\r
+\r
+    /* Teardown our side: */\r
+    RPMessage_delete(&handle);\r
+\r
+    /* Free MessageQCopy module wide resources: */\r
+    RPMessage_finalize();\r
+}\r
+\r
+void start_ping_tasks()\r
+{\r
+    Task_Params    params;\r
+\r
+    /* Respond to ping tests from Linux side rpmsg sample drivers: */\r
+    Task_Params_init(&params);\r
+    params.instance->name = "copy0";\r
+    params.priority = 3;\r
+    params.arg0 = 54;\r
+    Task_create(copyTaskFxn, &params, NULL);\r
+\r
+    Task_Params_init(&params);\r
+    params.instance->name = "copy1";\r
+    params.priority = 3;\r
+    params.arg0 = 55;\r
+    Task_create(copyTaskFxn, &params, NULL);\r
+}\r
+\r
diff --git a/src/ti/framework/dce/dce.c b/src/ti/framework/dce/dce.c
new file mode 100644 (file)
index 0000000..0b7093d
--- /dev/null
@@ -0,0 +1,811 @@
+/*\r
+ * Copyright (c) 2011, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+  \r
+#include <stdlib.h>\r
+#include <stdint.h>\r
+#include <string.h>\r
+#include <stdio.h>\r
+#include <ti/grcm/RcmServer.h>\r
+#include <ti/grcm/RcmTypes.h>\r
+#include <ti/ipc/mm/MmServiceMgr.h>\r
+#include <ti/ipc/mm/MmRpc.h>\r
+#include <ti/ipc/MultiProc.h>\r
+#include <ti/ipc/rpmsg/RPMessage.h>\r
+#include <ti/ipc/rpmsg/NameMap.h>\r
+#include <ti/pm/IpcPower.h>\r
+#include <ti/sdo/ce/global/CESettings.h>\r
+#include <ti/sdo/ce/CERuntime.h>\r
+#include <ti/sdo/ce/Engine.h>\r
+#include <ti/sdo/ce/video2/viddec2.h>\r
+#include <ti/sdo/ce/universal/universal.h>\r
+#include <ti/sdo/fc/global/FCSettings.h>\r
+#include <ti/sdo/fc/utils/fcutils.h>\r
+#include <ti/sysbios/BIOS.h>\r
+#include <ti/sysbios/hal/Cache.h>\r
+#include <ti/sysbios/knl/Task.h>\r
+#include <ti/xdais/dm/xdm.h>\r
+#include <xdc/cfg/global.h>\r
+#include <xdc/runtime/System.h>\r
+#include <xdc/runtime/Diags.h>\r
+#include <xdc/runtime/Memory.h>\r
+#include <xdc/runtime/IHeap.h>\r
+#include <xdc/runtime/knl/Thread.h>\r
+#include <xdc/std.h>\r
+\r
+#include "dce_priv.h"\r
+#include "dce_rpc.h"\r
+\r
+static uint32_t    suspend_initialised = 0;\r
+uint32_t           dce_debug = DCE_DEBUG_LEVEL;\r
+\r
+#define SERVER_NAME "rpmsg-dce-dsp"\r
+#define MEMORYSTATS_DEBUG\r
+\r
+#define MmRpc_NUM_PARAMETERS(size) \\r
+    (size / sizeof(MmType_Param))\r
+\r
+/* dce_inv, dce_clean needs to be modified to expect buffers */\r
+/* without headers (relevant for GLP                                    */\r
+static void dce_inv(void *ptr)\r
+{\r
+    if( ptr ) {\r
+        Cache_inv(ptr, P2H(ptr)->size, Cache_Type_ALL, TRUE);\r
+    }\r
+}\r
+\r
+static void dce_clean(void *ptr)\r
+{\r
+    if( ptr ) {\r
+        Cache_wbInv(ptr, P2H(ptr)->size, Cache_Type_ALL, TRUE);\r
+    }\r
+}\r
+\r
+typedef void * (*CreateFxn)(Engine_Handle, String, void *);\r
+typedef Int32 (*ControlFxn)(void *, int, void *, void *);\r
+typedef Int32 (*ProcessFxn)(void *, void *, void *, void *, void *);\r
+typedef Int32 (*RelocFxn)(void *, uint8_t *ptr, uint32_t len);\r
+typedef void (*DeleteFxn)(void *);\r
+\r
+/* DCE Server static function declarations */\r
+static Int32 engine_open(UInt32 size, UInt32 *data);\r
+static Int32 engine_close(UInt32 size, UInt32 *data);\r
+\r
+/* VIDDEC2 Decoder Server static function declarations */\r
+static VIDDEC2_Handle viddec2_create(Engine_Handle engine, String name, VIDDEC2_Params *params);\r
+static int viddec2_reloc(VIDDEC2_Handle handle, uint8_t *ptr, uint32_t len);                                    \r
+static int viddec2_control(VIDDEC2_Handle handle, VIDDEC2_Cmd id, VIDDEC2_DynamicParams *dynParams, \r
+                              VIDDEC2_Status *status );\r
+static int viddec2_process(VIDDEC2_Handle handle, XDM1_BufDesc *inBufs,\r
+                         XDM_BufDesc *outBufs, VIDDEC2_InArgs *inArgs, VIDDEC2_OutArgs *outArgs );\r
+static int viddec2_delete(VIDDEC2_Handle handle);                                                       \r
+                                                \r
+static struct {\r
+    CreateFxn  create;\r
+    ControlFxn control;\r
+    ProcessFxn process;\r
+    DeleteFxn  delete;\r
+    RelocFxn   reloc;   /* handle buffer relocation table */\r
+} codec_fxns[] =\r
+{\r
+    [OMAP_DCE_VIDDEC2] =\r
+    {\r
+        (CreateFxn)viddec2_create,   (ControlFxn)viddec2_control,\r
+        (ProcessFxn)viddec2_process, (DeleteFxn)viddec2_delete,\r
+        (RelocFxn)viddec2_reloc,\r
+    },\r
+};\r
+\r
+\r
+/* Static version string buffer.\r
+ * Note: codec version can be large. For example, h264vdec needs more than\r
+ * 58 characters, or the query will fail. */\r
+#define VERSION_SIZE 128\r
+static char    version_buffer[VERSION_SIZE];\r
+\r
+/* the following callbacks are needed for suspend/resume\r
+ * on the linux side.\r
+ * - FC_suspend() waits for all algorithms to get deactivated and\r
+ * and takes care of the resources acquired.\r
+ * - FC_resume() does nothing for now, but we add it just in case\r
+ * it gets populated in the future versions of framework components.\r
+ *\r
+ * Forced off mode during video decode/encode is not supported. */\r
+#if 0 \r
+static void dce_suspend()\r
+{\r
+    INFO("Preparing for suspend...");\r
+    FC_suspend();\r
+}\r
+\r
+static void dce_resume()\r
+{\r
+    INFO("Restoring after suspend...");\r
+    FC_resume();\r
+}\r
+#endif\r
+\r
+static void get_universal_version(UNIVERSAL_Handle h, char *buffer, unsigned size)\r
+{\r
+    UNIVERSAL_DynamicParams    params =\r
+    {\r
+        .size = sizeof(UNIVERSAL_DynamicParams),\r
+    };\r
+\r
+    UNIVERSAL_Status    status =\r
+    {\r
+        .size = sizeof(UNIVERSAL_Status),\r
+        .data =\r
+        {\r
+                   .numBufs = 1,\r
+            .descs[0].buf = (XDAS_Int8 *)buffer,\r
+            .descs[0].bufSize = (XDAS_Int32)size,\r
+        },\r
+    };\r
+\r
+    XDAS_Int32    s;\r
+\r
+    memset(buffer, 0, size);\r
+    s = UNIVERSAL_control(h, XDM_GETVERSION, &params, &status);\r
+\r
+    if( s != IUNIVERSAL_EOK ) {\r
+        ERROR("Unknown version Error = %d:: buffer = %p size = %d", s, buffer, size);\r
+    }\r
+}\r
+\r
+// VIDDEC2_create wrapper, to display version string in the trace.\r
+static VIDDEC2_Handle viddec2_create(Engine_Handle engine, String name, VIDDEC2_Params *params)\r
+{\r
+    UNIVERSAL_Handle   h;\r
+\r
+    DEBUG(">> engine=%08x, name=%s, params=%p", engine, name, params);\r
+\r
+    h = UNIVERSAL_create(engine, name, (IUNIVERSAL_Params*)params);\r
+       \r
+       get_universal_version(h, version_buffer, VERSION_SIZE);\r
+       \r
+    INFO("Created codec %s: version %s", name, version_buffer);\r
+\r
+    return ((VIDDEC2_Handle)h);\r
+}\r
+\r
+/* needs to be updated when XDM_MOVEBUFS added in XDC tools */\r
+static int viddec2_reloc(VIDDEC2_Handle handle, uint8_t *ptr, uint32_t len)\r
+{\r
+    return (-1); // TODO\r
+\r
+}\r
+\r
+static int viddec2_control(VIDDEC2_Handle handle, VIDDEC2_Cmd id, VIDDEC2_DynamicParams *dynParams, \r
+                              VIDDEC2_Status *status )\r
+{\r
+   int ret = 0;\r
+   UNIVERSAL_DynamicParams udynParam;\r
+   UNIVERSAL_Status ustatus;\r
+   \r
+   udynParam.size = sizeof(UNIVERSAL_DynamicParams);\r
+   ustatus.size = sizeof(UNIVERSAL_Status);\r
+   //System_printf("command id is %d\n", id);\r
+\r
+   if(id == XDM_GETVERSION){\r
+       ustatus.data.numBufs = 1;\r
+          ustatus.data.descs[0].buf = status->data.buf;\r
+          ustatus.data.descs[0].bufSize = status->data.bufSize;\r
+     }\r
+  \r
+   ret = UNIVERSAL_control((UNIVERSAL_Handle)handle, (UNIVERSAL_Cmd)id, \r
+                              &udynParam, &ustatus);\r
+\r
+   /*universal copy supports only XDM_GETVERSION cmd id    */\r
+   /*This is to return success to VIDDEC2 application in case of other cmd ids */   \r
+   if(ret == IUNIVERSAL_EFAIL)ret = IUNIVERSAL_EOK;\r
+   \r
+   return ret;\r
+}\r
+\r
+static int viddec2_process(VIDDEC2_Handle handle, XDM1_BufDesc *inBufs,\r
+                         XDM_BufDesc *outBufs, VIDDEC2_InArgs *inArgs, VIDDEC2_OutArgs *outArgs )\r
+{    \r
+     int ret = 0;\r
+        XDM1_BufDesc inBuf, outBuf;\r
+        UNIVERSAL_InArgs inArg;\r
+        UNIVERSAL_OutArgs outArg;\r
+     \r
+     inArg.size = sizeof(UNIVERSAL_InArgs);\r
+     outArg.size = sizeof(UNIVERSAL_OutArgs);  \r
+     outArg.extendedError = 0;\r
+        //System_printf("Before VIDDEC2 process\n");\r
+        \r
+        //System_printf("outptr = 0x%x, size = %d\n",outBufs->bufs[0],outBufs->bufSizes[0]);\r
+        inBuf.numBufs = 1;\r
+        outBuf.numBufs = 1;\r
+        inBuf.descs[0].buf = inBufs->descs[0].buf;\r
+        inBuf.descs[0].bufSize = inBufs->descs[0].bufSize;\r
+                \r
+        outBuf.descs[0].buf = outBufs->bufs[0];\r
+        outBuf.descs[0].bufSize = outBufs->bufSizes[0];\r
+                  \r
+     ret = UNIVERSAL_process((UNIVERSAL_Handle)handle, &inBuf, &outBuf, NULL, \r
+                               &inArg, &outArg);\r
+\r
+        //System_printf("After VIDDEC2 process\n");\r
+        return ret;                                     \r
+}\r
+\r
+static int viddec2_delete(VIDDEC2_Handle handle)\r
+{\r
+   //System_printf("Deleting VIDDEC2\n"); \r
+   UNIVERSAL_delete((UNIVERSAL_Handle)handle);\r
+   return 0;\r
+}\r
+                                                 \r
+\r
+/*\r
+ * RPC message handlers\r
+ */\r
+static int connect(void *msg)\r
+{\r
+    //dce_connect   *req = msg;\r
+    //DEBUG(">> chipset_id=0x%x, debug=%d", req->chipset_id, req->debug);\r
+\r
+    if( dce_debug >= MAX_DEBUG_LEVEL ) {\r
+        DEBUG("Enable FC, CE and IPC traces");\r
+\r
+        FCSettings_init();\r
+        Diags_setMask(FCSETTINGS_MODNAME "+12345678LEXAIZFS");\r
+                               \r
+               CESettings_init();\r
+        Diags_setMask(CESETTINGS_MODNAME "+12345678LEXAIZFS");\r
+                                       \r
+        /*\r
+            * Enable use of runtime Diags_setMask per module:\r
+            *\r
+            * Codes: E = ENTRY, X = EXIT, L = LIFECYCLE, F = INFO, S = STATUS\r
+            */\r
+        Diags_setMask("ti.ipc.rpmsg.RPMessage=EXLFS");\r
+        Diags_setMask("ti.ipc.rpmsg.VirtQueue=EXLFS");\r
+    }\r
+       \r
+         CERuntime_init();\r
+\r
+      if( !suspend_initialised ) {\r
+\r
+        /* registering sysbios-rpmsg callbacks for suspend/resume */\r
+     //   IpcPower_registerCallback(IpcPower_Event_SUSPEND, (IpcPower_CallbackFuncPtr)dce_suspend, 0);\r
+     //   IpcPower_registerCallback(IpcPower_Event_RESUME, (IpcPower_CallbackFuncPtr)dce_resume, 0);\r
+        suspend_initialised++;\r
+    }\r
+\r
+    DEBUG("<<");\r
+\r
+    return (0);\r
+}\r
+\r
+/*\r
+ * Engine_open:\r
+ */\r
+static Int32 engine_open(UInt32 size, UInt32 *data)\r
+{\r
+    MmType_Param      *payload = (MmType_Param *)data;\r
+    dce_engine_open   *engine_open_msg = (dce_engine_open *)payload[0].data;\r
+    Engine_Handle      eng_handle = NULL;\r
+    Uint32             num_params = MmRpc_NUM_PARAMETERS(size);\r
+    \r
+    DEBUG(">> engine_open");\r
+    if( num_params != 1 ) {\r
+        ERROR("Invalid number of params sent");\r
+        return (-1);\r
+    }\r
+\r
+    dce_inv(engine_open_msg);\r
+    \r
+       eng_handle = Engine_open(engine_open_msg->name, engine_open_msg->engine_attrs, &engine_open_msg->error_code);\r
+       DEBUG("<< engine=%08x, ec=%d", eng_handle, engine_open_msg->error_code);\r
+    \r
+    dce_clean(engine_open_msg);\r
+\r
+    return ((Int32)eng_handle);\r
+}\r
+\r
+/*\r
+ * Engine_close:\r
+ */\r
+static Int32 engine_close(UInt32 size, UInt32 *data)\r
+{\r
+    MmType_Param    *payload = (MmType_Param *)data;\r
+    Engine_Handle    eng_handle = (Engine_Handle)payload[0].data;\r
+    Uint32           num_params = MmRpc_NUM_PARAMETERS(size);\r
+\r
+    if( num_params != 1 ) {\r
+        ERROR("invalid number of params sent");\r
+        return (-1);\r
+    }\r
+\r
+    Engine_close(eng_handle);\r
+    DEBUG("<<");\r
+\r
+    return (0);\r
+}\r
+\r
+/*\r
+  * codec_create\r
+  */\r
+static Int32 codec_create(UInt32 size, UInt32 *data)\r
+{\r
+    MmType_Param    *payload = (MmType_Param *)data;\r
+    Uint32           codec_id      = (Uint32)payload[0].data;\r
+    Engine_Handle    engine = (Engine_Handle)payload[1].data;\r
+    char            *codec_name    = (char *)payload[2].data;\r
+    void            *static_params = (void *)payload[3].data;\r
+    Uint32           num_params = MmRpc_NUM_PARAMETERS(size);\r
+    void            *codec_handle;\r
+\r
+#ifdef MEMORYSTATS_DEBUG\r
+    Memory_Stats    stats;\r
+#endif\r
+    DEBUG(">> codec_create");\r
+\r
+    if( num_params != 4 ) {\r
+        ERROR("invalid number of params sent");\r
+        return (-1);\r
+    }\r
+       \r
+       if(codec_id != OMAP_DCE_VIDDEC2){\r
+        ERROR("invalid codec id sent");\r
+        return (-1);\r
+    }\r
+\r
+    dce_inv(static_params);\r
+\r
+    codec_handle = (void *)codec_fxns[codec_id].create(engine, codec_name, static_params);\r
+  \r
+    DEBUG("<< codec_handle=%08x", codec_handle);\r
+\r
+    dce_clean(static_params);\r
+\r
+#ifdef MEMORYSTATS_DEBUG\r
+    Memory_getStats(NULL, &stats);\r
+    INFO("Total: %d\tFree: %d\tLargest: %d", stats.totalSize,\r
+         stats.totalFreeSize, stats.largestFreeSize);\r
+#endif\r
+    return ((Int32)codec_handle);\r
+}\r
+\r
+/*\r
+  * codec_control\r
+  */\r
+static int codec_control(UInt32 size, UInt32 *data)\r
+{\r
+    MmType_Param   *payload = (MmType_Param *)data;\r
+    Uint32          codec_id            = (Uint32)payload[0].data;\r
+    void           *codec_handle = (Engine_Handle)payload[1].data;\r
+    uint32_t        cmd_id              = (Uint32)payload[2].data;\r
+    void           *dyn_params          = (void *)payload[3].data;\r
+    void           *status              = (void *)payload[4].data;\r
+    Uint32          num_params = MmRpc_NUM_PARAMETERS(size);\r
+    Int32           ret = 0;\r
+\r
+\r
+    DEBUG(">> codec_control");\r
+\r
+    if( num_params != 5 ) {\r
+        ERROR("invalid number of params sent");\r
+        return (-1);\r
+    }\r
+       \r
+       if(codec_id != OMAP_DCE_VIDDEC2){\r
+        ERROR("invalid codec id sent");\r
+        return (-1);\r
+    }\r
+\r
+    dce_inv(dyn_params);\r
+    dce_inv(status);\r
+\r
+    ret = (uint32_t) codec_fxns[codec_id].control(codec_handle, cmd_id, dyn_params, status);\r
\r
+    DEBUG("<< result=%d", ret);\r
+\r
+    dce_clean(dyn_params);\r
+    dce_clean(status);\r
+\r
+    return (ret);\r
+}\r
+\r
+/*\r
+  * codec get version\r
+  */\r
+static int codec_get_version(UInt32 size, UInt32 *data)\r
+{\r
+    MmType_Param   *payload = (MmType_Param *)data;\r
+    Uint32          codec_id            = (Uint32)payload[0].data;\r
+    void           *codec_handle = (Engine_Handle)payload[1].data;\r
+    void           *dyn_params          = (void *)payload[2].data;\r
+    void           *status              = (void *)payload[3].data;\r
+    Uint32          num_params = MmRpc_NUM_PARAMETERS(size);\r
+    void           *version_buf = NULL;\r
+    Int32           ret = 0;\r
+\r
+    DEBUG(">> codec_get_version");\r
+\r
+    if( num_params != 4 ) {\r
+        ERROR("invalid number of params sent");\r
+        return (-1);\r
+    }\r
+       \r
+       if(codec_id != OMAP_DCE_VIDDEC2){\r
+        ERROR("invalid codec id sent");\r
+        return (-1);\r
+    }\r
+               \r
+    version_buf = (void *)(H2P((MemHeader *)((IVIDDEC2_Status *)status)->data.buf));\r
+    \r
+    dce_inv(dyn_params);\r
+    dce_inv(status);\r
+    dce_inv(version_buf);\r
+  \r
+    ret = (uint32_t) codec_fxns[codec_id].control(codec_handle, XDM_GETVERSION, dyn_params, status);\r
+\r
+    DEBUG("<< result=%d", ret);\r
+\r
+    dce_clean(dyn_params);\r
+    dce_clean(status);\r
+    dce_clean(version_buf);\r
+\r
+    return (ret);\r
+}\r
+\r
+/* Notes about serialization of process command:\r
+ *\r
+ * Since codec_process code on kernel side is doing buffer mapping/unmapping,\r
+ * and keeping track of codec's locked buffers, it is necessary for it to\r
+ * look into the contents of some of the parameter structs, and in some cases\r
+ * re-write them.  For this reason inArgs/outBufs/inBufs are serialized within\r
+ * the rpmsg rather than just passed by pointer.\r
+\r
+XDAS_Int32 VIDDEC3_process(VIDDEC3_Handle handle, XDM1_BufDesc *inBufs,\r
+    XDM_BufDesc *outBufs, VIDDEC3_InArgs *inArgs, VIDDEC3_OutArgs *outArgs);\r
+\r
+  REQ:\r
+    struct dce_rpc_hdr hdr   -> 4\r
+    codec_id                 -> 4\r
+    codec                    -> 4\r
+    reloc length             -> 1   (length/4)\r
+    inArgs length            -> 1   (length/4)\r
+    outBufs length           -> 1   (length/4)\r
+    inBufs length            -> 1   (length/4)\r
+    VIDDEC3_OutArgs *outArgs -> 4   (pass by pointer)\r
+    reloc table              -> 12 * nreloc (typically <= 16)\r
+    VIDDEC3_InArgs   inArgs  -> 12  (need inputID from userspace)\r
+    XDM_BufDesc     outBufs -> 44  (4 + 2 * 20)\r
+    XDM1_BufDesc     inBufs  -> 24  (4 + 1 * 20)\r
+    -------------------------------\r
+                               99\r
+\r
+  RSP\r
+    struct dce_rpc_hdr hdr   -> 4\r
+    result                   -> 4\r
+    inBufs length            -> 1   (length/4)\r
+    XDAS_Int32 freeBufID[]   -> 4*n (n typically 0 or 2, but could be up to 20)\r
+    -------------------------------\r
+                               9-89\r
+    Note: freeBufID[] duplicates what is returned in outArgs, but avoids\r
+    needing to create kernel mappings of these objects which are to big\r
+    to copy inline.  Also it avoids differences between VIDDEC3/VIDDENC2.\r
+\r
+\r
+XDAS_Int32 VIDENC2_process(VIDENC2_Handle handle, IVIDEO2_BufDesc *inBufs,\r
+    XDM2_BufDesc *outBufs, IVIDENC2_InArgs *inArgs, IVIDENC2_OutArgs *outArgs);\r
+\r
+  REQ:\r
+    struct dce_rpc_hdr hdr   -> 4\r
+    codec_id                 -> 4\r
+    codec                    -> 4\r
+    reloc length             -> 1   (length/4)\r
+    inArgs length            -> 1   (length/4)\r
+    outBufs length           -> 1   (length/4)\r
+    inBufs length            -> 1   (length/4)\r
+    VIDENC2_OutArgs *outArgs -> 4   (pass by pointer)\r
+    reloc table              -> ???\r
+    VIDENC2_InArgs   inArgs  -> 12  (need inputID from userspace)\r
+    XDM2_BufDesc     outBufs -> 24  (4 + 1 * 20)\r
+    IVIDEO2_BufDesc  inBufs  -> 252\r
+    -------------------------------\r
+                              307\r
+\r
+  RSP\r
+    struct dce_rpc_hdr hdr   -> 4\r
+    result                   -> 4\r
+    inBufs length            -> 1   (length/4)\r
+    XDAS_Int32 freeBufID[]   -> 4*n (n typically 0 or 2, but could be up to 20)\r
+    -------------------------------\r
+                               9-89\r
+ */\r
+\r
+static int codec_process(UInt32 size, UInt32 *data)\r
+{\r
+    MmType_Param   *payload = (MmType_Param *)data;\r
+    Uint32          num_params = MmRpc_NUM_PARAMETERS(size);\r
+    Uint32          codec_id = (Uint32) payload[0].data;\r
+    Uint32          codec    = (Uint32) payload[1].data;\r
+    void           *inBufs   = (void *) payload[2].data;\r
+    void           *outBufs  = (void *) payload[3].data;\r
+    void           *inArgs   = (void *) payload[4].data;\r
+    void           *outArgs  = (void *) payload[5].data;\r
+       void           *outBufptr  = (void *)payload[6].data;\r
+    Int32           ret = 0;\r
+    void           *outBufSize = NULL;\r
+       \r
+    DEBUG(">> codec_process");\r
+\r
+    if( num_params != 7 ) {\r
+        ERROR("invalid number of params sent");\r
+        return (-1);\r
+    }\r
+\r
+       if(codec_id != OMAP_DCE_VIDDEC2){\r
+        ERROR("invalid codec id sent");\r
+        return (-1);\r
+    }\r
+               \r
+       outBufSize = (void *)(H2P((MemHeader *)((XDM_BufDesc *)outBufs)->bufSizes));\r
+\r
+    dce_inv(inBufs);\r
+    dce_inv(outBufs);\r
+    dce_inv(inArgs);\r
+    dce_inv(outArgs);\r
+       dce_inv(outBufptr);\r
+    dce_inv(outBufSize);\r
+        \r
+    DEBUG(">> codec=%p, inBufs=%p, outBufs=%p, inArgs=%p, outArgs=%p codec_id=%d",\r
+          codec, inBufs, outBufs, inArgs, outArgs, codec_id);\r
+\r
+    ret = codec_fxns[codec_id].process((void *)codec, inBufs, outBufs, inArgs, outArgs);\r
+         \r
+\r
+    DEBUG("<< ret=%d extendedError=%08x", ret, ((VIDDEC3_OutArgs *)outArgs)->extendedError);\r
+\r
+    dce_clean(inBufs);\r
+    dce_clean(outBufs);\r
+    dce_clean(inArgs);\r
+    dce_clean(outArgs);\r
+       dce_clean(outBufptr);\r
+       dce_clean(outBufSize);\r
+\r
+    return ((Int32)ret);\r
+}\r
+\r
+/*\r
+  * codec delete\r
+  */\r
+\r
+static int codec_delete(UInt32 size, UInt32 *data)\r
+{\r
+    MmType_Param   *payload = (MmType_Param *)data;\r
+    Uint32          num_params = MmRpc_NUM_PARAMETERS(size);\r
+    Uint32          codec_id = (Uint32) payload[0].data;\r
+    Uint32          codec    = (Uint32) payload[1].data;\r
+\r
+#ifdef MEMORYSTATS_DEBUG\r
+    Memory_Stats    stats;\r
+#endif\r
+\r
+    DEBUG(">> codec_delete");\r
+\r
+    if( num_params != 2 ) {\r
+        ERROR("invalid number of params sent");\r
+        return (-1);\r
+    }\r
+       \r
+       if(codec_id != OMAP_DCE_VIDDEC2){\r
+        ERROR("invalid codec id sent");\r
+        return (-1);\r
+    }\r
+\r
+    codec_fxns[codec_id].delete((void *)codec);\r
+\r
+#ifdef MEMORYSTATS_DEBUG\r
+    Memory_getStats(NULL, &stats);\r
+    INFO("Total: %d\tFree: %d\tLargest: %d", stats.totalSize,\r
+         stats.totalFreeSize, stats.largestFreeSize);\r
+#endif\r
+\r
+    DEBUG("<<");\r
+\r
+    return (0);\r
+}\r
+\r
+/* the server create parameters, must be in persistent memory */\r
+static RcmServer_Params    rpc_Params;\r
+\r
+/* DCE Server skel function array */\r
+static RcmServer_FxnDesc    DCEServerFxnAry[] =\r
+{\r
+    { "engine_open",       (RcmServer_MsgFxn) engine_open },\r
+    { "engine_close",      (RcmServer_MsgFxn) engine_close },\r
+    { "codec_create",      (RcmServer_MsgFxn) codec_create },\r
+    { "codec_control",     (RcmServer_MsgFxn) codec_control },\r
+    { "codec_get_version", (RcmServer_MsgFxn) codec_get_version },\r
+    { "codec_process",     (RcmServer_MsgFxn) codec_process },\r
+    { "codec_delete",      (RcmServer_MsgFxn) codec_delete }\r
+};\r
+\r
+/* DCE Server skel function table */\r
+#define DCEServerFxnAryLen (sizeof(DCEServerFxnAry) / sizeof(DCEServerFxnAry[0]))\r
+\r
+static const RcmServer_FxnDescAry    DCEServer_fxnTab =\r
+{\r
+    DCEServerFxnAryLen,\r
+    DCEServerFxnAry\r
+};\r
+\r
+static MmType_FxnSig    DCEServer_sigAry[] =\r
+{\r
+    { "engine_open", 2,\r
+      {\r
+          { MmType_Dir_Out, MmType_Param_S32, 1 }, // return\r
+          { MmType_Dir_Bi, MmType_PtrType(MmType_Param_VOID), 1 }\r
+      } },\r
+    { "engine_close", 2,\r
+      {\r
+          { MmType_Dir_Out, MmType_Param_S32, 1 }, // return\r
+          { MmType_Dir_In, MmType_Param_U32, 1 }\r
+\r
+      } },\r
+    { "codec_create", 5,\r
+      {\r
+          { MmType_Dir_Out, MmType_Param_S32, 1 }, // return\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_PtrType(MmType_Param_VOID), 1 },\r
+          { MmType_Dir_In, MmType_PtrType(MmType_Param_VOID), 1 }\r
+      } },\r
+    { "codec_control", 6,\r
+      {\r
+          { MmType_Dir_Out, MmType_Param_S32, 1 }, // return\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_PtrType(MmType_Param_VOID), 1 },\r
+          { MmType_Dir_Bi, MmType_PtrType(MmType_Param_VOID), 1 }\r
+      } },\r
+    { "codec_get_version", 5,\r
+      {\r
+          { MmType_Dir_Out, MmType_Param_S32, 1 }, // return\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_PtrType(MmType_Param_VOID), 1 },\r
+          { MmType_Dir_Bi, MmType_PtrType(MmType_Param_VOID), 1 }\r
+      } },\r
+\r
+     { "codec_process", 8,\r
+      {\r
+          { MmType_Dir_Out, MmType_Param_S32, 1 }, // return\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_Bi, MmType_PtrType(MmType_Param_VOID), 1 },\r
+          { MmType_Dir_Bi, MmType_PtrType(MmType_Param_VOID), 1 },\r
+          { MmType_Dir_Bi, MmType_PtrType(MmType_Param_VOID), 1 },\r
+          { MmType_Dir_Bi, MmType_PtrType(MmType_Param_VOID), 1 },\r
+                 { MmType_Dir_Bi, MmType_PtrType(MmType_Param_VOID), 1 }\r
+      } },\r
+\r
+    { "codec_delete", 3,\r
+      {\r
+          { MmType_Dir_Out, MmType_Param_S32, 1 }, // return\r
+          { MmType_Dir_In, MmType_Param_U32, 1 },\r
+          { MmType_Dir_In, MmType_Param_U32, 1 }\r
+      } }\r
+};\r
+\r
+static MmType_FxnSigTab    dce_fxnSigTab =\r
+{\r
+    MmType_NumElem(DCEServer_sigAry), DCEServer_sigAry\r
+};\r
+\r
+Void dce_SrvDelNotification(Void)\r
+{\r
+    DEBUG("dce_SrvDelNotification: Nothing to cleanup\n");\r
+}\r
+\r
+static void dce_main(uint32_t arg0, uint32_t arg1)\r
+{\r
+    int            err = 0;\r
+    dce_connect    dce_connect_msg;\r
+    \r
+    err = MmServiceMgr_init();  // MmServiceMgr_init() will always return MmServiceMgr_S_SUCCESS.\r
+\r
+    // setup the RCM Server create params\r
+    RcmServer_Params_init(&rpc_Params);\r
+    rpc_Params.priority = Thread_Priority_ABOVE_NORMAL;\r
+    rpc_Params.stackSize = 0x1000;\r
+    rpc_Params.fxns.length = DCEServer_fxnTab.length;\r
+    rpc_Params.fxns.elem = DCEServer_fxnTab.elem;\r
+\r
+    // Get the Service Manager handle\r
+    err = MmServiceMgr_register(SERVER_NAME, &rpc_Params, &dce_fxnSigTab, dce_SrvDelNotification);\r
+       \r
+    if( err < 0 ) {\r
+        DEBUG("failed to start " SERVER_NAME " \n");\r
+               //err = -1;\r
+    } else {\r
+        DEBUG(SERVER_NAME " running through MmServiceMgr");\r
+       }\r
+\r
+    // Question to IPC team: where is the call to OmapRpc_deleteChannel(handle). The OmapRpc_createChannel is part of MmServiceMgr_register\r
+    // missing the call to OmapRpc_deleteChannel(handle).\r
+    MmServiceMgr_exit();\r
+\r
+    DEBUG("deleted " SERVER_NAME);\r
+\r
+    /* Read the register for ID_CODE to figure out the correct configuration: */\r
+    /* CONTROL_STD_FUSE_ID_CODE[31:0] ID_CODE STD_FUSE_IDCODE */\r
+    /* physical address: 0x4A00 2204 Address offset: 0x204                       */\r
+#ifdef OMAP5430_ES10\r
+    dce_connect_msg.chipset_id = 0x5430;\r
+#elif OMAP5432_ES20\r
+    dce_connect_msg.chipset_id = 0x5432;\r
+#elif VAYU_ES10\r
+    dce_connect_msg.chipset_id = 0x5436;\r
+#endif\r
+    dce_connect_msg.debug = dce_debug;\r
+    connect(&dce_connect_msg);\r
+\r
+    return;\r
+}\r
+\r
+/*\r
+  * dce init : Startup Function\r
+  */\r
+Bool dce_init(void)\r
+{\r
+    Task_Params    params;\r
+\r
+    INFO("Creating DCE server thread...");\r
+\r
+\r
+    /* Create DCE task. */\r
+    Task_Params_init(&params);\r
+    params.instance->name = "dce-server";\r
+    params.priority = Thread_Priority_ABOVE_NORMAL;\r
+       Task_create(dce_main, &params, NULL);\r
+    \r
+    return (TRUE);\r
+}\r
+\r
+/*\r
+  * dce deinit\r
+  */\r
+\r
+void dce_deinit(void)\r
+{\r
+    DEBUG("dce_deinit");\r
+}\r
+\r
diff --git a/src/ti/framework/dce/dce_priv.h b/src/ti/framework/dce/dce_priv.h
new file mode 100644 (file)
index 0000000..1e46955
--- /dev/null
@@ -0,0 +1,90 @@
+/*\r
+ * Copyright (c) 2010, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+#ifndef __DCE_PRIV_H__\r
+#define __DCE_PRIV_H__\r
+#include <ti/utils/osal/trace.h>\r
+\r
+#if defined(CORE0) || defined(CORE1)\r
+#  define SERVER\r
+Bool dce_init(void);\r
+#else\r
+#  define CLIENT\r
+#endif\r
+\r
+#ifdef SERVER\r
+/* these acquire/release functions should be implemented by the platform,\r
+ * ie. to use OMX RM if integrated with OMX build, or use directly slpm\r
+ * and/or register programming otherwise.  These are called from dce.c\r
+ * before/after the process() call\r
+ */\r
+void ivahd_acquire(void);\r
+void ivahd_release(void);\r
+void ivahd_init(uint32_t chipset_id);\r
+void ivahd_boot();\r
+#endif\r
+\r
+#ifndef   DIM\r
+#  define DIM(a) (sizeof((a)) / sizeof((a)[0]))\r
+#endif\r
+\r
+\r
+#ifndef TRUE\r
+#  define TRUE 1\r
+#endif\r
+#ifndef FALSE\r
+#  define FALSE 0\r
+#endif\r
+#ifndef NULL\r
+#  define NULL ((void *)0)\r
+#endif\r
+\r
+typedef struct MemHeader {\r
+    uint32_t size;\r
+    void    *ptr;       /* when used for BIOS heap blocks, just a raw ptr */\r
+    int32_t dma_buf_fd; /* shared dma buf fd */\r
+    uint32_t region;    /* mem region the buffer allocated from */\r
+    /* internal meta data for the buffer */\r
+    uint32_t offset;    /* offset for the actual data with in the buffer */\r
+    int32_t map_fd;     /* mmapped fd */\r
+    void * handle;      /*custom handle for the HLOS memallocator*/\r
+} MemHeader;\r
+\r
+#define P2H(p) (&(((MemHeader *)(p))[-1]))\r
+#define H2P(h) ((void *)&(h)[1])\r
+\r
+#ifndef __packed\r
+#  define __packed __attribute__((packed))\r
+#endif\r
+\r
+#endif /* __DCE_PRIV_H__ */\r
+\r
diff --git a/src/ti/framework/dce/dce_rpc.h b/src/ti/framework/dce/dce_rpc.h
new file mode 100644 (file)
index 0000000..e3f2a2f
--- /dev/null
@@ -0,0 +1,80 @@
+/*\r
+ * Copyright (c) 2013, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+#ifndef __DCE_RPC_H__\r
+#define __DCE_RPC_H__\r
+\r
+/* RPC layer types.. these define the payload of messages between IPUMM\r
+ * and MPU.  This should be kept in sync between firmware build and\r
+ * driver.\r
+ *\r
+ * TODO: xxx_control(XDM_GETVERSION) is a bit awkward to deal with, because\r
+ * this seems to be the one special case where status->data is used..\r
+ * possibly we should define a special ioctl and msg to handle this case.\r
+ */\r
+\r
+/* Message-Ids:\r
+ */\r
+typedef enum dce_rpc_call {\r
+    DCE_RPC_ENGINE_OPEN = 0,\r
+    DCE_RPC_ENGINE_CLOSE,\r
+    DCE_RPC_CODEC_CREATE,\r
+    DCE_RPC_CODEC_CONTROL,\r
+    DCE_RPC_CODEC_GET_VERSION,\r
+    DCE_RPC_CODEC_PROCESS,\r
+    DCE_RPC_CODEC_DELETE\r
+} dce_rpc_call;\r
+\r
+\r
+\r
+#define MAX_NAME_LENGTH           32\r
+\r
+typedef enum dce_codec_type {\r
+    OMAP_DCE_VIDDEC3 = 1,\r
+    OMAP_DCE_VIDENC2 = 2,\r
+    OMAP_DCE_VIDDEC2 = 3\r
+} dce_codec_type;\r
+\r
+/* Structures of RPC */\r
+typedef struct dce_connect {\r
+    uint32_t chipset_id;\r
+    uint32_t debug;\r
+} dce_connect;\r
+\r
+typedef struct dce_engine_open {\r
+    char          name[MAX_NAME_LENGTH];      /* engine name (in) */\r
+    Engine_Attrs *engine_attrs;               /* engine attributes (in) */\r
+    Engine_Error  error_code;                 /* error code (out) */\r
+} dce_engine_open;\r
+\r
+#endif /* __DCE_RPC_H__ */\r
+\r
diff --git a/src/ti/framework/dce/package.bld b/src/ti/framework/dce/package.bld
new file mode 100644 (file)
index 0000000..70d7c3d
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011, Texas Instruments Incorporated
+ * 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 Texas Instruments Incorporated 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 BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE 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.bld ========
+ */
+/* explicit references to global objects */
+var Build = xdc.useModule('xdc.bld.BuildEnvironment');
+var Pkg = xdc.useModule('xdc.bld.PackageContents');
+var commonBld = xdc.loadCapsule("../build/common.bld");
+
+/* clean lib folder */
+//Pkg.generatedFiles.$add("lib/");
+//Pkg.libDir = "package/";
+var compileOpts = "-DDSP --gcc "
+
+
+/*
+ *  Export everything necessary to build this package with (almost) no
+ *  generated files.
+ */
+//Pkg.attrs.exportAll = true;
+
+var LIB_NAME = "lib/" + Pkg.name;
+var objList = ["dce.c"];
+
+
+var profiles  = commonBld.getProfiles(arguments);
+/* If no profiles were assigned, build for release */
+if (profiles.length == 0) {
+    profiles[0] = "release";
+}
+
+coreNames = commonBld.getCores(arguments);
+
+if (coreNames.length==0) {
+    /* select default as dsp */
+    commonBld.buildLibs(objList, null, arguments, compileOpts,"dsp");
+}
+else {
+    for (var j = 0; j < coreNames.length; j++) {
+        var coreName = coreNames[j];
+
+        /* skip core if not supported */
+        if (!commonBld.supportsCore(coreName, null)) {
+            continue;
+        }
+
+        /* generate makefiles */
+        commonBld.buildLibs(objList, null, arguments, compileOpts, coreName);
+        print("built for coreName =" + coreName);
+    }
+    print("end of For loop ************");
+}
+
diff --git a/src/ti/framework/dce/package.xdc b/src/ti/framework/dce/package.xdc
new file mode 100644 (file)
index 0000000..fd76ea3
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2011, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Re