summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-04-16 20:16:57 +0200
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-04-16 20:16:57 +0200
commitaadeb8892bd10afe952fce02a8a6abd4fa9f0ea4 (patch)
treefaf81d36f775cb4d4e063ffb9c5acb96758f2a71
parent2bad39b645c4166c3a32eb56cf8a2ba90ce5584b (diff)
Diff of the 8.0.2 code-drop against stock AGL 8.0.2sandbox/jsmoeller/diff_to_halibut_8.0.2
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
-rw-r--r--meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass32
-rw-r--r--meta-agl/meta-agl-basesystem/classes/agl-basesystem-common.bbclass48
-rw-r--r--meta-agl/meta-agl-basesystem/conf/include/agl-basesystem-base.inc18
-rw-r--r--meta-agl/meta-agl-basesystem/conf/layer.conf16
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ns-backupmanager/agl-service-ns-backupmanager_1.0.0.bb38
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ns-notificationpersistent/agl-service-ns-notificationpersistent_1.0.0.bb31
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ps-communication/agl-service-ps-communication_1.0.0.bb39
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-loggerservice/agl-service-ss-loggerservice_1.0.0.bb51
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-powerservice/agl-service-ss-powerservice_1.0.0.bb32
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-resourcemanager/agl-service-ss-resourcemanager_1.0.0.bb44
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-systemmanager/agl-service-ss-systemmanager_1.0.0.bb47
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-taskmanager/agl-service-ss-taskmanager_1.0.0.bb50
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-apis/agl-service-vs-positioning/agl-service-vs-positioning_1.0.0.bb53
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/agl-basefiles_1.0.0.bb61
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/LICENSE177
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/ev_common.h135
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/ev_id.h104
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/evk_lib.h116
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/moduleid.h69
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/bin/launch_xml2cfg.sh138
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_thread.h1385
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_types_obsoluted.h132
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_wakeup_order.h27
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/aglpath.h200
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/sm_launch_conf.h1385
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/npp/version.txt1
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/agl.mk677
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/rpc_rule.mk42
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/system_launcher_main.xml40
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/agl-systemd_1.0.0.bb84
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/99-agl.rules11
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/LICENSE177
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/agl-trigger.service18
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/env.txt130
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/launch_sm.service22
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/options.conf2
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/setup_refhw.service15
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/systemd-udev-trigger.service22
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/agl_set_capability.sh82
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/launch_sm.sh26
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh82
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_cgroup_rt_runtime_us.sh33
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/setup_refhw.sh83
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/agl/conf/systemmanager/sm_launch.cfg10
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/agl/conf/systemmanager/sm_launch__CWORD84_.xml116
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/target/agl_cap.lst34
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/target/cap.lst24
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/elfio/elfio_3.2.bb19
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/Makefile30
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/agldd.h94
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/ev_common.h135
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/ev_id.h104
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/evk_lib.h116
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/moduleid.h69
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/evk_lib.c2246
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib_1.0.0.bb26
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ns-backupmanager/ns-backupmanager_1.0.0.bb30
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ns-commonlibrary/ns-commonlibrary_1.0.0.bb25
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ns-frameworkunified/ns-frameworkunified_1.0.0.bb42
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ns-loglibrary/ns-loglibrary_1.0.0.bb25
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/os-eventlibrary/os-eventlibrary_1.0.0.bb26
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/os-posixbasedos001legacylibrary/os-posixbasedos001legacylibrary_1.0.0.bb22
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/os-rpclibrary/os-rpclibrary-tool_1.0.0.bb37
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/os-rpclibrary/os-rpclibrary_1.0.0.bb32
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/os-vehicleparameterlibrary/os-vehicleparameterlibrary_1.0.0.bb24
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ps-communication/ps-communication_1.0.0.bb28
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ss-config/ss-config_1.0.0.bb35
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ss-interfaceunified/ss-interfaceunified_1.0.0.bb43
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ss-resourcemanager/ss-resourcemanager_1.0.0.bb41
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ss-romaccesslibrary/ss-romaccesslibrary_1.0.0.bb27
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ss-taskmanager/ss-taskmanager_1.0.0.bb45
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/ss-versionlibrary/ss-versionlibrary_1.0.0.bb32
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/vs-positioning/vs-positioning_1.0.0.bb35
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-graphics/vs-positioningbaselibrary/vs-positioningbaselibrary_1.0.0.bb31
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-core.bb34
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-graphics.bb36
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-service.bb29
-rw-r--r--meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem.bb26
-rw-r--r--meta-agl/templates/feature/agl-basesystem/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/agl-basesystem/50_local.conf.inc2
-rw-r--r--meta-agl/templates/feature/agl-basesystem/README_feature_agl-basesystem.md3
-rw-r--r--meta-agl/templates/feature/ns-backupmanager/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ns-backupmanager/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ns-backupmanager/README_feature_ns-backupmanager.md3
-rw-r--r--meta-agl/templates/feature/ns-commonlibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ns-commonlibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ns-commonlibrary/README_feature_ns-commonlibrary.md3
-rw-r--r--meta-agl/templates/feature/ns-frameworkunified/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ns-frameworkunified/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ns-frameworkunified/README_feature_ns-frameworkunified.md3
-rw-r--r--meta-agl/templates/feature/ns-loglibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ns-loglibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ns-loglibrary/README_feature_ns-loglibrary.md3
-rw-r--r--meta-agl/templates/feature/ns-notificationpersistent/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ns-notificationpersistent/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ns-notificationpersistent/README_feature_ns-notificationpersistent.md3
-rw-r--r--meta-agl/templates/feature/os-eventlibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/os-eventlibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/os-eventlibrary/README_feature_os-eventlibrary.md3
-rw-r--r--meta-agl/templates/feature/os-posixbasedos001legacylibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/os-posixbasedos001legacylibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/os-posixbasedos001legacylibrary/README_feature_os-posixbasedos001legacylibrary.md3
-rw-r--r--meta-agl/templates/feature/os-rpclibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/os-rpclibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/os-rpclibrary/README_feature_os-rpclibrary.md3
-rw-r--r--meta-agl/templates/feature/os-vehicleparameterlibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/os-vehicleparameterlibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/os-vehicleparameterlibrary/README_feature_os-vehicleparameterlibrary.md3
-rw-r--r--meta-agl/templates/feature/ps-communication/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ps-communication/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ps-communication/README_feature_ps-communication.md3
-rw-r--r--meta-agl/templates/feature/ss-config/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-config/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-config/README_feature_ss-config.md3
-rw-r--r--meta-agl/templates/feature/ss-interfaceunified/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-interfaceunified/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-interfaceunified/README_feature_ss-interfaceunified.md3
-rw-r--r--meta-agl/templates/feature/ss-loggerservice/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-loggerservice/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-loggerservice/README_feature_ss-loggerservice.md3
-rw-r--r--meta-agl/templates/feature/ss-powerservice/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-powerservice/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-powerservice/README_feature_ss-powerservice.md3
-rw-r--r--meta-agl/templates/feature/ss-resourcemanager/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-resourcemanager/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-resourcemanager/README_feature_ss-resourcemanager.md3
-rw-r--r--meta-agl/templates/feature/ss-romaccesslibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-romaccesslibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-romaccesslibrary/README_feature_ss-romaccesslibrary.md3
-rw-r--r--meta-agl/templates/feature/ss-systemmanager/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-systemmanager/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-systemmanager/README_feature_ss-systemmanager.md3
-rw-r--r--meta-agl/templates/feature/ss-taskmanager/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-taskmanager/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-taskmanager/README_feature_ss-taskmanager.md3
-rw-r--r--meta-agl/templates/feature/ss-versionlibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/ss-versionlibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/ss-versionlibrary/README_feature_ss-versionlibrary.md3
-rw-r--r--meta-agl/templates/feature/vs-positioning/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/vs-positioning/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/vs-positioning/README_feature_vs-positioning.md3
-rw-r--r--meta-agl/templates/feature/vs-positioningbaselibrary/50_bblayers.conf.inc3
-rw-r--r--meta-agl/templates/feature/vs-positioningbaselibrary/50_local.conf.inc9
-rw-r--r--meta-agl/templates/feature/vs-positioningbaselibrary/README_feature_vs-positioningbaselibrary.md3
144 files changed, 10026 insertions, 0 deletions
diff --git a/meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass b/meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass
new file mode 100644
index 00000000..3170cc9c
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/classes/agl-basesystem-capability.bbclass
@@ -0,0 +1,32 @@
+pkg_postinst_ontarget_${PN}_append () {
+df / --exclude-type=nfs > /dev/null
+IS_EMMC_BOOT=$?
+
+if [ $IS_EMMC_BOOT -eq 0 ]; then
+ CAPVARS="${CAPABILITY}"
+ IFS=" "
+ for cap in $CAPVARS; do
+ capability=`echo $cap | cut -f 1 -d ":"`
+ file=`echo $cap | cut -f 2 -d ":"`
+ setcap $capability $D$file
+ done
+else
+ CAPVARS="${CAPABILITY}"
+ IFS=" "
+ for cap in $CAPVARS; do
+ capability=`echo $cap | cut -f 1 -d ":"`
+ file=`echo $cap | cut -f 2 -d ":"`
+ TCAP_NAME="/tmp/${file##*/}"
+ if [ ! -L ${file} ]; then
+ cp -a ${file} ${TCAP_NAME}
+ mv ${file} ${file}.org
+ ln -fs ${TCAP_NAME} ${file}
+ else
+ cp -a ${file}.org ${TCAP_NAME}
+ fi
+ setcap ${capability} ${TCAP_NAME}
+ done
+fi
+}
+#RDEPENDS_${PN} += "libcap-bin"
+PACKAGE_WRITE_DEPS = "libcap-native"
diff --git a/meta-agl/meta-agl-basesystem/classes/agl-basesystem-common.bbclass b/meta-agl/meta-agl-basesystem/classes/agl-basesystem-common.bbclass
new file mode 100644
index 00000000..cde65275
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/classes/agl-basesystem-common.bbclass
@@ -0,0 +1,48 @@
+FILES_${PN}-staticdev = ""
+
+INHIBIT_SYSROOT_STRIP = "1"
+INSANE_SKIP_${PN} = "ldflags"
+INSANE_SKIP_${PN}-dev = "dev-elf"
+BUILD_OPTIMIZATION = "-Os -pipe"
+
+SOLIBS = ".so"
+SECTION = "libs"
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+DEPENDS = " packagegroup-agl-basesystem-core openssl"
+RDEPENDS_${PN} += " agl-basefiles "
+BBCLASSEXTEND = "nativesdk"
+
+do_compile[depends] += "agl-basefiles:do_populate_sysroot"
+do_compile[depends] += "agl-basefiles-native:do_populate_sysroot"
+
+EXTRA_OEMAKE = "'CXX=${CXX} ${CODINGRULES_CPP_21MM}' 'CC=${CC} ${CODINGRULES_C_21MM}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'DESTDIR=${D}' 'SDKTARGETSYSROOT=${STAGING_DIR_HOST}' 'OECORE_NATIVE_SYSROOT=${STAGING_DIR_NATIVE}' 'MACHINE=${MACHINE}'"
+
+EXTRA_OEMAKE_append_salvator-x += " ARCH=arm64"
+EXTRA_OEMAKE_append_m3ulcb += " ARCH=arm64"
+EXTRA_OEMAKE_append_qemux86-64 += " ARCH=x86"
+EXTRA_OEMAKE_append_qemuarm64 += " ARCH=arm64"
+
+do_compile (){
+ cd ${S}/${MAKE_DIR}
+ oe_runmake
+}
+
+do_install (){
+ cd ${S}/${MAKE_DIR}
+ oe_runmake DESTDIR=${D} install
+}
+
+
+sysroot_stage_all_append(){
+ sysroot_stage_dir ${D}/usr/agl ${SYSROOT_DESTDIR}/usr/agl
+ sysroot_stage_dir ${D}/usr/agl/conf/systemmanager ${SYSROOT_DESTDIR}/usr/agl/conf/systemmanager
+ sysroot_stage_dir ${D}/usr/agl/conf/backup_manager ${SYSROOT_DESTDIR}/usr/agl/conf/backup_manager
+ sysroot_stage_dir ${D}/nv/npp ${SYSROOT_DESTDIR}/nv/npp
+ sysroot_stage_dir ${D}/etc/udev/rules.d ${SYSROOT_DESTDIR}/etc/udev/rules.d
+ sysroot_stage_dir ${D}/etc ${SYSROOT_DESTDIR}/etc
+ sysroot_stage_dir ${D}/etc/ppp ${SYSROOT_DESTDIR}/etc/ppp
+}
+
+
diff --git a/meta-agl/meta-agl-basesystem/conf/include/agl-basesystem-base.inc b/meta-agl/meta-agl-basesystem/conf/include/agl-basesystem-base.inc
new file mode 100644
index 00000000..b8f14408
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/conf/include/agl-basesystem-base.inc
@@ -0,0 +1,18 @@
+# AGL specific package configuration
+#
+# Add systemd configuration
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+#VIRTUAL-RUNTIME_init_manager = "systemd"
+
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary-tool"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+# for agl-basefiles recipe
+IMAGE_INSTALL_append += "\
+ packagegroup-agl-basesystem \
+"
+
diff --git a/meta-agl/meta-agl-basesystem/conf/layer.conf b/meta-agl/meta-agl-basesystem/conf/layer.conf
new file mode 100644
index 00000000..d983f9fa
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/conf/layer.conf
@@ -0,0 +1,16 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbclass \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "agl-basesystem"
+BBFILE_PATTERN_agl-basesystem = "^${LAYERDIR}/"
+BBFILE_PRIORITY_agl-basesystem = "70"
+
+# for agl-basefiles recipe
+HOSTTOOLS += "xpath"
+
+LAYERSERIES_COMPAT_agl-basesystem = "thud"
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ns-backupmanager/agl-service-ns-backupmanager_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ns-backupmanager/agl-service-ns-backupmanager_1.0.0.bb
new file mode 100644
index 00000000..b9cea80f
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ns-backupmanager/agl-service-ns-backupmanager_1.0.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "agl-service-ns-backupmanager for AGL software"
+DESCRIPTION = "agl-service-ns-backupmanager to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common agl-basesystem-capability
+
+CAPABILITY = "cap_dac_override+ep:/usr/agl/bin/NS_BackupMgr"
+
+FILES_${PN} += " \
+ /usr/agl/conf/backup_manager/* \
+ /usr/agl/bin/* \
+"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ns-backupmanager"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ libxml2-native \
+ ns-frameworkunified \
+ ns-backupmanager \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+ ns-backupmanager \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+"
+EXTRA_MAKEFILE = " -f Makefile.server"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR = "backup_manager"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ns-notificationpersistent/agl-service-ns-notificationpersistent_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ns-notificationpersistent/agl-service-ns-notificationpersistent_1.0.0.bb
new file mode 100644
index 00000000..360f6972
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ns-notificationpersistent/agl-service-ns-notificationpersistent_1.0.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "agl-service-ns-notificationpersistent for AGL software"
+DESCRIPTION = "agl-service-ns-notificationpersistent to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " /usr/agl/bin/* "
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ns-notificationpersistent"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ libtar \
+ ns-frameworkunified \
+ os-posixbasedos001legacylibrary \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+ os-posixbasedos001legacylibrary \
+"
+
+EXTRA_MAKEFILE = " -f Makefile.server"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="notification_persistent_service"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ps-communication/agl-service-ps-communication_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ps-communication/agl-service-ps-communication_1.0.0.bb
new file mode 100644
index 00000000..d147ceb9
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ps-communication/agl-service-ps-communication_1.0.0.bb
@@ -0,0 +1,39 @@
+SUMMARY = "agl-service-ps-communication for AGL software"
+DESCRIPTION = "agl-service-ps-communication to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common agl-basesystem-capability
+
+CAPABILITY = "cap_dac_override+ep:/usr/agl/bin/communication"
+
+FILES_${PN} += " /usr/agl/bin/* "
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ps-communication"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ns-frameworkunified \
+ ps-communication \
+ os-posixbasedos001legacylibrary \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ os-vehicleparameterlibrary \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+ ps-communication \
+ os-posixbasedos001legacylibrary \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ os-vehicleparameterlibrary \
+"
+
+EXTRA_MAKEFILE = " -f Makefile.server"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="communication"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-loggerservice/agl-service-ss-loggerservice_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-loggerservice/agl-service-ss-loggerservice_1.0.0.bb
new file mode 100644
index 00000000..5012ebf0
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-loggerservice/agl-service-ss-loggerservice_1.0.0.bb
@@ -0,0 +1,51 @@
+SUMMARY = "agl-service-ss-loggerservice for AGL software"
+DESCRIPTION = "agl-service-ss-loggerservice to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common agl-basesystem-capability
+
+CAPABILITY = "cap_dac_override+ep:/usr/agl/bin/SS_LoggerService"
+
+FILES_${PN} += " \
+ /usr/agl/bin/* \
+ /usr/agl/conf/* \
+ /usr/agl/conf/syslogd/* \
+ /usr/agl/share/logrotate/* \
+"
+FILES_${PN}-staticdev += " /usr/agl/lib/*.a "
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-loggerservice"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " libtar \
+ ss-config \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ ss-resourcemanager \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ ns-backupmanager \
+ os-vehicleparameterlibrary \
+ os-posixbasedos001legacylibrary \
+ logrotate \
+"
+RDEPENDS_${PN} += " \
+ ss-config \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ ss-resourcemanager \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ ns-backupmanager \
+ os-vehicleparameterlibrary \
+ os-posixbasedos001legacylibrary \
+"
+EXTRA_MAKEFILE = " -f Makefile.server"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="logger_service"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-powerservice/agl-service-ss-powerservice_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-powerservice/agl-service-ss-powerservice_1.0.0.bb
new file mode 100644
index 00000000..a63ad92f
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-powerservice/agl-service-ss-powerservice_1.0.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "agl-service-ss-powerservice for AGL software"
+DESCRIPTION = "agl-service-ss-powerserice to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " /usr/agl/bin/* "
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-powerservice"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ ns-frameworkunified \
+ os-posixbasedos001legacylibrary \
+"
+RDEPENDS_${PN} += " \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ ns-frameworkunified \
+ os-posixbasedos001legacylibrary \
+"
+
+EXTRA_MAKEFILE=" -f Makefile.server"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="power_service"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-resourcemanager/agl-service-ss-resourcemanager_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-resourcemanager/agl-service-ss-resourcemanager_1.0.0.bb
new file mode 100644
index 00000000..148231f1
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-resourcemanager/agl-service-ss-resourcemanager_1.0.0.bb
@@ -0,0 +1,44 @@
+SUMMARY = "agl-service-agl-service-ss-resourcemanager for AGL software"
+DESCRIPTION = "agl-service-agl-service-ss-resourcemanager to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common agl-basesystem-capability
+
+CAPABILITY = "cap_setuid+ep:/usr/agl/bin/resm"
+
+FILES_${PN} += " /usr/agl/bin/* "
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-resourcemanager"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ os-rpclibrary-tool-native \
+ ss-interfaceunified \
+ ss-resourcemanager \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ os-vehicleparameterlibrary \
+ os-rpclibrary \
+ os-eventlibrary \
+"
+RDEPENDS_${PN} += " \
+ ss-interfaceunified \
+ ss-resourcemanager \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ os-vehicleparameterlibrary \
+ os-rpclibrary \
+ os-eventlibrary \
+"
+EXTRA_MAKEFILE=" -f Makefile.server"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE} -j 1 'CXX=${CXX} -Wl,--warn-unresolved-symbols' 'CC=${CC} -Wl,--warn-unresolved-symbols' "
+MAKE_DIR ="resource_manager"
+
+do_compile_prepend() {
+ cd ${S}/${MAKE_DIR}
+ oe_runmake -f Makefile.client
+}
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-systemmanager/agl-service-ss-systemmanager_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-systemmanager/agl-service-ss-systemmanager_1.0.0.bb
new file mode 100644
index 00000000..397c349b
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-systemmanager/agl-service-ss-systemmanager_1.0.0.bb
@@ -0,0 +1,47 @@
+SUMMARY = "agl-service-ss-systemmanager for AGL software"
+DESCRIPTION = "agl-service-ss-systemmanager to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common agl-basesystem-capability
+
+CAPABILITY = "cap_sys_nice,cap_setuid,cap_setgid,cap_sys_resource+ep:/usr/agl/bin/SS_SystemManager"
+
+FILES_${PN} += " /usr/agl/bin/* "
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-systemmanager"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ agl-service-ss-resourcemanager \
+ agl-service-ss-loggerservice \
+ agl-service-ps-communication \
+ ss-config \
+ ss-interfaceunified \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ os-vehicleparameterlibrary \
+ os-posixbasedos001legacylibrary \
+ os-rpclibrary \
+"
+RDEPENDS_${PN} += " \
+ agl-service-ss-resourcemanager \
+ agl-service-ss-loggerservice \
+ agl-service-ps-communication \
+ ss-config \
+ ss-interfaceunified \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ os-vehicleparameterlibrary \
+ os-posixbasedos001legacylibrary \
+ os-rpclibrary \
+"
+
+EXTRA_MAKEFILE = " -f Makefile.server"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="system_manager"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-taskmanager/agl-service-ss-taskmanager_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-taskmanager/agl-service-ss-taskmanager_1.0.0.bb
new file mode 100644
index 00000000..683cda2d
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-ss-taskmanager/agl-service-ss-taskmanager_1.0.0.bb
@@ -0,0 +1,50 @@
+SUMMARY = "agl-service-ss-taskmanager for AGL software"
+DESCRIPTION = "agl-service-ss-taskmanager to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common agl-basesystem-capability
+
+CAPABILITY = "cap_sys_nice,cap_setuid,cap_setgid=ep:/usr/agl/bin/tskmgr"
+
+FILES_${PN} += " \
+ /usr/agl/bin/* \
+"
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-taskmanager"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+# Common Dependencies
+DEPENDS += " \
+ os-rpclibrary-tool-native \
+ ss-interfaceunified \
+ ss-resourcemanager \
+ ss-romaccesslibrary \
+ ss-taskmanager \
+ ns-frameworkunified \
+ ns-commonlibrary \
+ os-rpclibrary \
+ os-vehicleparameterlibrary \
+ libxml2-native \
+"
+RDEPENDS_${PN} += " \
+ ss-interfaceunified \
+ ss-resourcemanager \
+ ss-romaccesslibrary \
+ ss-taskmanager \
+ ns-frameworkunified \
+ ns-commonlibrary \
+ os-rpclibrary \
+ os-vehicleparameterlibrary \
+"
+EXTRA_MAKEFILE=" -f Makefile.server"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE} -j 1 'CXX=${CXX} -Wl,--warn-unresolved-symbols' 'CC=${CC} -Wl,--warn-unresolved-symbols'"
+MAKE_DIR ="task_manager"
+
+do_compile_prepend() {
+ cd ${S}/${MAKE_DIR}
+ oe_runmake -f Makefile.client
+}
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-vs-positioning/agl-service-vs-positioning_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-vs-positioning/agl-service-vs-positioning_1.0.0.bb
new file mode 100644
index 00000000..e9a0c795
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-apis/agl-service-vs-positioning/agl-service-vs-positioning_1.0.0.bb
@@ -0,0 +1,53 @@
+SUMMARY = "agl-service-vs-positioning for AGL software"
+DESCRIPTION = "agl-service-vs-positioning to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common agl-basesystem-capability
+
+CAPABILITY = "cap_dac_override+ep:/usr/agl/bin/Positioning"
+
+FILES_${PN} += " \
+ /usr/agl/bin/* \
+"
+FILES_${PN}-staticdev += " \
+ /usr/agl/lib/*.a \
+"
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/vs-positioning"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+# Common Dependencies
+DEPENDS += " \
+ ss-config \
+ ss-interfaceunified \
+ ss-versionlibrary \
+ ns-frameworkunified \
+ ns-commonlibrary \
+ ns-backupmanager \
+ os-vehicleparameterlibrary \
+ os-eventlibrary \
+ ps-communication \
+ vs-positioningbaselibrary \
+ vs-positioning \
+"
+RDEPENDS_${PN} += " \
+ ss-config \
+ ss-interfaceunified \
+ ss-versionlibrary \
+ ns-frameworkunified \
+ ns-commonlibrary \
+ ns-backupmanager \
+ os-vehicleparameterlibrary \
+ os-eventlibrary \
+ ps-communication \
+ vs-positioningbaselibrary \
+ vs-positioning \
+"
+EXTRA_MAKEFILE=" -f Makefile.server"
+EXTRA_OEMAKE += " ${EXTRA_MAKEFILE} -j 1 'CXX=${CXX} -Wl,--warn-unresolved-symbols' 'CC=${CC} -Wl,--warn-unresolved-symbols' "
+MAKE_DIR ="positioning"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/agl-basefiles_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/agl-basefiles_1.0.0.bb
new file mode 100644
index 00000000..bbe6f008
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/agl-basefiles_1.0.0.bb
@@ -0,0 +1,61 @@
+SUMMARY = "base-files for AGL software"
+DESCRIPTION = "install base-files to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://LICENSE \
+ file://bin \
+ file://share \
+ file://npp \
+ file://include \
+ file://agldd \
+"
+
+FILES_${PN} += " \
+ /bin/* \
+ /agldd/* \
+ /include/* \
+ /npp/* \
+ /share/* \
+ /usr/agl/conf/backup_manager/* \
+ /usr/agl/conf/systemmanager/* \
+ /nv/npp/* \
+"
+#ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-dev += " \
+ /usr/agl/share/* \
+ /usr/agl/include/* \
+ /usr/agl/include/agldd/* \
+ /usr/include/linux/* \
+"
+S = "${WORKDIR}"
+
+#RDEPENDS_${PN} += " libcap-bin sudo"
+#RDEPENDS_${PN}-dbg += " sysklogd strace"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_package_qa[noexec] = "1"
+do_install[depends] += "virtual/kernel:do_shared_workdir"
+
+do_install() {
+ install -C -d ${D}/nv/npp/
+ install -C -d ${D}/usr/agl/share/
+ install -C -d ${D}/usr/agl/include/agldd/
+ install -C -d ${D}/usr/include/linux/
+ install -m 644 ${WORKDIR}/agldd/* ${D}/usr/agl/include/agldd/
+ install -m 644 ${WORKDIR}/include/* ${D}/usr/agl/include/
+ install -m 644 ${WORKDIR}/share/* ${D}/usr/agl/share/
+ install -m 644 ${WORKDIR}/npp/* ${D}/nv/npp/
+ install -m 775 ${WORKDIR}/bin/launch_xml2cfg.sh ${D}/usr/agl/share/
+ install -D -m 0644 ${TMPDIR}/work-shared/${MACHINE}/kernel-build-artifacts/include/generated/autoconf.h ${D}/usr/include/linux/
+}
+
+sysroot_stage_all_append(){
+ sysroot_stage_dir ${D}/usr/agl ${SYSROOT_DESTDIR}${base_prefix}/usr/agl
+}
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/LICENSE b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/LICENSE
new file mode 100644
index 00000000..f433b1a5
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/LICENSE
@@ -0,0 +1,177 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/ev_common.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/ev_common.h
new file mode 100644
index 00000000..1a68fead
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/ev_common.h
@@ -0,0 +1,135 @@
+/**
+ * @file ev_common.h
+ * @brief Event library -- User kernel common data structure
+ *
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _ev_common_h_
+#define _ev_common_h_
+
+#include <agldd/ev_id.h>
+
+/** @addtogroup EV
+ * @{ */
+/** @brief Maximum number of bytes for message event */
+#define EV_MAX_MESSAGE_LENGTH 2048
+
+/** @brief -Maximum number of flag queue that can be created within a thread */
+#define EV_MAX_IDS_IN_THREAD 24
+
+/** @brief -Muximum number of threads that can be registered to the EV in a process */
+#define EV_MAX_THREADS_IN_PROCESS 16
+
+/** @brief -Maximum number of flag queue that can be creat within a process
+ */
+#define EV_MAX_IDS_IN_PROCESS \
+ (EV_MAX_IDS_IN_THREAD * EV_MAX_THREADS_IN_PROCESS)
+
+/** @brief Return values for even library function
+ *
+ * @see EV_ERR
+ */
+enum ev_err
+{
+ EV_OK = 0, /**< Normal completion */
+ EV_ERR_Exist, /**< The specified flag message queue does exist */
+ EV_ERR_Invalid_ID, /**< The specified flag message queue does not exist */
+ EV_ERR_Busy, /**< Message queue full failed to send */
+ EV_ERR_Interrupted, /**< Waiting function was interrupted by an interrupt */
+ EV_ERR_Thread_Over, /**< Exceeding the number of threads in the process */
+ EV_ERR_Invalid_Thread, /**< Invalid thread ID */
+ EV_ERR_Fatal, /**< Fatal error */
+};
+/** @brief Return values type for even library function
+ *
+ * @see ev_err
+ */
+typedef INT32 EV_ERR;
+
+/** @brief Event type
+ *
+ * Use in the type of EV_Event structs
+ * @see ev_type
+ */
+typedef UINT32 EV_Type;
+
+/** @brief Bit value representing the type of event */
+enum ev_type {
+ EV_EVENT_None = 0x00000000,
+
+ /** Flag event: Judged by EV_EVENT_IS_FLAG() */
+ EV_EVENT_Flag = 0x0001,
+#define EV_EVENT_IS_FLAG(tp) (((tp) & EV_EVENT_Flag) != 0)
+
+ /** Message event: Judged by EV_EVENT_IS_MESSAGE() */
+ EV_EVENT_Message = 0x0002,
+#define EV_EVENT_IS_MESSAGE(tp) (((tp) & EV_EVENT_Message) != 0)
+
+ /** 64bit flag event: Judged by EV_EVENT_IS_FLAG64() */
+ EV_EVENT_Flag64 = 0x0003,
+#define EV_EVENT_IS_FLAG64(tp) (((tp) & EV_EVENT_Flag64) != 0)
+
+};
+
+/** @brief Flag event structure */
+typedef struct {
+ EV_ID flagID;/**< Flag ID */
+ UINT32 bits;/**< Bit pattern */
+} EV_Flag;
+
+/** @brief 64bit flag event structure */
+typedef struct {
+ EV_ID flagID;/**< Flag ID */
+ UINT64 bits;/**< Bit pattern */
+} EV_Flag64;
+
+/** @brief Message event structure */
+typedef struct {
+ EV_ID queueID;/**< queue ID */
+ UINT32 senderInfo;/**< Source information */
+ UINT32 length;/**< Number of bytes in the message */
+ UINT32 dummy;/** dummy for pading */
+ UINT8 message[EV_MAX_MESSAGE_LENGTH];/**< Message */
+} EV_Message;
+
+/** @brief Event structure */
+typedef struct {
+ EV_Type type; /**< Event type */
+ union {
+ EV_Flag flag; /**< Flag event structure */
+ EV_Flag64 flag64; /**< Flag event structure */
+ EV_Message message; /**< Message event structure */
+ } u; /**< Union of structures per event type */
+} EV_Event;
+
+/** @brief Message event queue type
+ *
+ * Specify the action to be taken when the queue overflows (more events are received when the queue is full).
+ */
+enum ev_message_queue_type {
+ EV_MESSAGE_QUEUE_TYPE_BUSY,/**< Return a BUSY to the source */
+ EV_MESSAGE_QUEUE_TYPE_FIFO,/**< Delete the oldest event */
+ EV_MESSAGE_QUEUE_TYPE_REPLACE,/**< Replace the most recent event */
+};
+
+/** @brief Messge event queue type
+ *
+ * @see ev_message_queue_type
+ */
+typedef UINT8 EV_Message_Queue_Type;
+
+/** @} */
+
+#endif /* !_ev_common_h_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/ev_id.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/ev_id.h
new file mode 100644
index 00000000..2026ef79
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/ev_id.h
@@ -0,0 +1,104 @@
+/**
+ * @file ev_id.h
+ * @brief Event library(kernel) -- Defining flag queue ID
+ *
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _ev_id_h_
+#define _ev_id_h_
+
+/** @addtogroup EV_ID_spec
+ * @{ */
+
+/** @brief Flag ID and queue ID types used when sending and receiving events
+ *
+ * Assign a 32-bit value as follows
+ *
+ * - Most significant 8 bits: Reserved
+ * - Next 16 bits: Modue ID
+ * - Lower 8 bits: Define in module
+ *
+ * Where module is the modules that creates the queue.
+ * The modules define ID according to the above assignments using EV_Flag_ID_Base and EV_Queue_ID_Base macros.
+ * @see EV_Flag_ID_Base
+ * @see EV_Queue_ID_Base
+ */
+typedef UINT32 EV_ID;
+
+#define EV_ID_BIT 0x80000000UL
+#define EV_FLAG64_BIT 0x40000000UL
+#define EV_FLAG_BIT 0x20000000UL
+#define EV_QUEUE_BIT 0x10000000UL
+#define EV_AUTO_ID_BIT 0x08000000UL
+#define EV_RESERVED_BIT 0xff000000UL
+#define EV_INVALID_ID EV_ID_BIT
+#define EV_NO_ID EV_INVALID_ID
+
+#define EV_ID_IS_FLAG(queueID) \
+ (((queueID) & (EV_ID_BIT|EV_FLAG_BIT)) == (EV_ID_BIT|EV_FLAG_BIT))
+#define EV_ID_IS_FLAG64(queueID) \
+ (((queueID) & (EV_ID_BIT|EV_FLAG64_BIT)) == (EV_ID_BIT|EV_FLAG64_BIT))
+#define EV_ID_IS_QUEUE(queueID) \
+ (((queueID) & (EV_ID_BIT|EV_QUEUE_BIT)) == (EV_ID_BIT|EV_QUEUE_BIT))
+#define EV_ID_IS_AUTO_ID(queueID) \
+ (((queueID) & (EV_ID_BIT|EV_AUTO_ID_BIT)) == (EV_ID_BIT|EV_AUTO_ID_BIT))
+#define EV_ID_IS_VALID(queueID) \
+ (EV_ID_IS_FLAG(queueID) || EV_ID_IS_FLAG64(queueID) || EV_ID_IS_QUEUE(queueID))
+
+/** @brief Macros for defining flag ID
+ *
+ * Define the module ID as an argument as follows.
+ * - #define XXX_Module_ID 1
+ * - #define XXX_Flag_ID_Base EV_Flag_ID_Base(XXX_Module_ID)
+ * -
+ * - #define XXX_Flag_foo (XXX_Flag_ID_Base + 1)
+ * - #define XXX_Flag_bar (XXX_Flag_ID_Base + 2)
+ *
+ * The module ID is 16 bits and 0 to 65535 can be specified.
+ * In addition, 0 to 255 added to Base can be defined as ID.
+ */
+#define EV_Flag_ID_Base(mod) (EV_ID_BIT|EV_FLAG_BIT|((mod)<<8))
+
+/** @brief Macros for defining 64 bits flag ID
+ *
+ * Define the module ID as an argument as follows.
+ * - #define XXX_Module_ID 1
+ * - #define XXX_Flag64_ID_Base EV_Flag64_ID_Base(XXX_Module_ID)
+ * -
+ * - #define XXX_Flag64_foo (XXX_Flag64_ID_Base + 1)
+ * - #define XXX_Flag64_bar (XXX_Flag64_ID_Base + 2)
+ *
+ * The module ID is 16 bits and 0 to 65535 can be specified.
+ * In addition, 0 to 255 added to Base can be defined as ID.
+ */
+#define EV_Flag64_ID_Base(mod) (EV_ID_BIT|EV_FLAG64_BIT|((mod)<<8))
+
+/** @brief Macros for defining mesage queue ID
+ *
+ * Define the module ID as an argument as follows.
+ * - #define XXX_Module_ID 1
+ * - #define XXX_Queue_ID_Base EV_Queue_ID_Base(XXX_Module_ID)
+ * -
+ * - #define XXX_Queue_foo (XXX_Queue_ID_Base + 1)
+ * - #define XXX_Queue_bar (XXX_Queue_ID_Base + 2)
+ *
+ * The module ID is 16 bits and 0 to 65535 can be specified.
+ * In addition, 0 to 255 added to Base can be defined as ID.
+ */
+#define EV_Queue_ID_Base(mod) (EV_ID_BIT|EV_QUEUE_BIT|((mod)<<8))
+
+/** @} */
+
+#endif /* ! _ev_id_h_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/evk_lib.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/evk_lib.h
new file mode 100644
index 00000000..378df13d
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/evk_lib.h
@@ -0,0 +1,116 @@
+/**
+ * @file evk_lib.h
+ * @brief Event library -- API specifications for kernel modules
+ *
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _evk_lib_h_
+#define _evk_lib_h_
+
+#include <agldd/ev_common.h>
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+/* API definition */
+
+/** @addtogroup EV
+ * @{ */
+#ifdef __KERNEL__
+/* Flag message queue create/delete */
+EV_ERR EVK_create_flag(EV_ID flagID);
+EV_ERR EVK_create_flag64(EV_ID flagID);
+EV_ERR EVK_create_queue(EV_ID queueID,
+ UINT8 length,
+ UINT16 max_bytes,
+ EV_Message_Queue_Type type);
+
+EV_ERR EVK_create_flag_auto_id(/* OUT */EV_ID *flagID);
+EV_ERR EVK_create_flag64_auto_id(/* OUT */EV_ID *flagID);
+EV_ERR EVK_create_queue_auto_id(/* OUT */EV_ID *queueID,
+ UINT8 length,
+ UINT16 max_bytes,
+ EV_Message_Queue_Type type);
+
+EV_ERR EVK_destroy_flag(EV_ID flagID);
+EV_ERR EVK_destroy_queue(EV_ID queueID);
+
+/* Send events */
+EV_ERR EVK_set_flag(EV_ID flagID, UINT32 bits);
+EV_ERR EVK_set_flag64(EV_ID flagID, UINT64 bits);
+EV_ERR EVK_send_message(EV_ID queueID, UINT16 bytes, const void *message,
+ UINT32 senderInfo);
+
+/* Get event(with search conditions) */
+EV_ERR EVK_get_flag(EV_ID flagID, /* OUT */EV_Flag *flag);
+EV_ERR EVK_wait_flag(EV_ID flagID, /* OUT */EV_Flag *flag);/* block */
+EV_ERR EVK_peek_flag(EV_ID flagID, /* OUT */EV_Flag *flag);
+EV_ERR EVK_get_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);
+EV_ERR EVK_wait_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);/* block */
+EV_ERR EVK_peek_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);
+
+EV_ERR EVK_get_message(EV_ID queueID, /* OUT */EV_Message *message);
+EV_ERR EVK_wait_message(EV_ID queueID, /* OUT */EV_Message *message);/* block */
+EV_ERR EVK_peek_message(EV_ID queueID, /* OUT */EV_Message *message);
+
+EV_ERR EVK_find_message_by_sender(EV_ID queueID, UINT32 senderInfo,
+ /* OUT */EV_Message *message);
+EV_ERR EVK_find_message_by_content(EV_ID queueID, UINT16 length,
+ const void *compare_bytes,
+ /* OUT */EV_Message *message);
+#endif
+
+/** @} */
+
+/** @addtogroup EVK_in
+ * @{ */
+#define EVK_NAME "evk"
+#define EVK_DEV_NAME "/dev/agl/"EVK_NAME
+#define EVK_DEV_MAJOR 1033
+#define EVK_IOC_MAGIC 0xE7
+
+#define EVK_IOC_CREATE_FLAG _IO(EVK_IOC_MAGIC, 0x00)
+#define EVK_IOC_CREATE_FLAG64 _IO(EVK_IOC_MAGIC, 0x01)
+#define EVK_IOC_CREATE_MESSAGE_QUEUE _IO(EVK_IOC_MAGIC, 0x02)
+#define EVK_IOC_ALLOC_FLAG_ID _IO(EVK_IOC_MAGIC, 0x03)
+#define EVK_IOC_ALLOC_FLAG64_ID _IO(EVK_IOC_MAGIC, 0x04)
+#define EVK_IOC_ALLOC_QUEUE_ID _IO(EVK_IOC_MAGIC, 0x05)
+#define EVK_IOC_DESTROY_QUEUE _IO(EVK_IOC_MAGIC, 0x06)
+#define EVK_IOC_STORE_FLAG _IO(EVK_IOC_MAGIC, 0x07)
+#define EVK_IOC_STORE_FLAG64 _IO(EVK_IOC_MAGIC, 0x08)
+#define EVK_IOC_STORE_MESSAGE _IO(EVK_IOC_MAGIC, 0x09)
+#define EVK_IOC_SET_POLL _IO(EVK_IOC_MAGIC, 0x0a)
+#define EVK_IOC_GET_EVENT _IO(EVK_IOC_MAGIC, 0x0b)
+#define EVK_IOC_PEEK_EVENT _IO(EVK_IOC_MAGIC, 0x0c)
+#define EVK_IOC_WAIT_EVENT _IO(EVK_IOC_MAGIC, 0x0d)
+#define EVK_IOC_GET_NEXT_EVENT _IO(EVK_IOC_MAGIC, 0x0e)
+#define EVK_IOC_PEEK_NEXT_EVENT _IO(EVK_IOC_MAGIC, 0x0f)
+#define EVK_IOC_DEBUG_LIST _IO(EVK_IOC_MAGIC, 0x10)
+
+typedef struct {
+ EV_ID queueID;/**< Queue ID */
+ UINT32 max_bytes;/**< Maximum number of bytes for an event */
+ UINT8 length;/**< Queue length */
+ EV_Message_Queue_Type type;/**< Type */
+} EVK_Message_Queue_Request;
+
+typedef struct {
+ INT32 num; /**< Number of queue ID of search */
+ EV_ID ids[EV_MAX_IDS_IN_PROCESS]; /**< Queue ID of search */
+ EV_Event ev; /**< [OUT] First event that occured */
+} EVK_Next_Event_Query;
+
+/** @} */
+
+#endif /* !_evk_lib_h */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/moduleid.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/moduleid.h
new file mode 100644
index 00000000..b18c1a1e
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/agldd/moduleid.h
@@ -0,0 +1,69 @@
+/*
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <linux/autoconf.h>
+#ifndef _AGLDD_MODULEID_H_
+#define _AGLDD_MODULEID_H_
+
+/*
+ * Define module ID to be used by programs in moduleid_id.h .
+ * Define in the format of "#define XXX_MID ID number" (XXX is the module name).
+ *
+ * MID allocation policy shall be as follows.
+ * - UI Application : 0xxxh
+ * - Application Service : 1xxxh to 2xxxh
+ * + HMI : 10xxh
+ * + AV : 12xxh
+ * + Radio : 14xxh
+ * + Connectivity : 16xxh
+ * + Navigation/Location: 18xxh
+ * + Vehicle : 1Axxh
+ * + Communication : 1Cxxh
+ * + BasePF : 1Exxh
+ * + System : 20xxh
+ * + Other : 22xxh
+ * - Common Service : 3xxxh
+ * - Extension Service : 4xxxh
+ * - System/Device Driver : 5xxxh
+ */
+
+/* UI Application : 0xxxh */
+
+/* Application Service : 1xxxh to 2xxxh */
+#define MODEMANAGER_MID 0x1000
+#define ACTIVITYMANAGER_MID 0x1001
+
+/* Common Service : 3xxxh */
+#define IPMANAGER_MID 0x3000
+#define DEVICEMANAGER_MID 0x3001
+#define MSGBRK_MID 0x3002
+#define TIMERENTRYDRV_MID 0x3003
+#define SOUNDAGENT_MID 0x3004
+#define CAN_MID 0x3006
+#define _CWORD83__MID 0x3007
+#define SENSOR_MID 0x3008
+#define GPS_MID 0x3009
+#define RESMGR_MID 0x300A
+#define GRAPHICS_MID 0x300B
+
+/* Extension Service : 4xxxh */
+
+/* System/Device Driver : 5xxxh */
+#define EV_MID 0x5001
+#define RPC_MID 0x5002
+#define EVK_MID 0x5801
+
+#endif /* !_AGLDD_MODULEID_H_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/bin/launch_xml2cfg.sh b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/bin/launch_xml2cfg.sh
new file mode 100644
index 00000000..dfa1fa99
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/bin/launch_xml2cfg.sh
@@ -0,0 +1,138 @@
+#!/bin/bash
+#
+# @copyright Copyright (c) 2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#Since xpath is slow, use sed as much as possible.
+
+infile=$1
+main_file=system_launcher_main.xml
+body_file=system_launcher_body.xml
+
+
+#check xmllint is exist
+if ! which xmllint > /dev/null ; then
+ echo "It need xmllint. Please install it."
+ exit 1;
+fi
+
+#check xpath is exist
+if ! which xpath > /dev/null ; then
+ echo "It need xpath Please install it."
+ exit 1;
+fi
+
+#arg check
+if ! [[ "$infile" =~ .+\.xml ]] ;then
+ echo "$infile is not *.xml"
+ exit 1
+elif ! [ -e $infile ];then
+ echo "$infile not found"
+ exit 1
+fi
+
+cp -f `dirname $0`/$main_file `dirname $1`
+cp -f $infile $body_file
+
+#check xml vaild
+if ! xmllint --noout --valid $main_file ;then
+ echo "XML is Invalid. "
+ exit 1;
+fi
+
+#Format into xpath and read into memory
+xmem=`xpath -q -e /system_launcher $main_file`
+
+echo "# This file is created from $infile."
+echo "# created date : `LANG=en date`"
+echo "[ModulesLaunchConfig]"
+
+#GROUP LOOP
+group_num=`echo $xmem | xpath -e /system_launcher/group 2>&1 | grep Found | cut -d ' ' -f2`
+
+l_idx=1
+cur_group=1
+until [ $cur_group -gt $group_num ];
+do
+ #LAUNCH LOOP
+ group_text=`echo $xmem | xpath -q -e /system_launcher/group[$cur_group]` #ALL XML text for group
+ group_attr=`echo $group_text | sed 's/\(<group[^>]\+>\)\(.*\)/\1/g'`
+
+ g_name=`echo $group_attr | sed 's/\(.* name="\)\([^"]*\)\(.*\)/\2/g'`
+ g_wait_time=`echo $group_attr | sed 's/\(.* wait_time="\)\([^"]*\)\(.*\)/\2/g'`
+ g_trigger=`echo $group_attr | sed 's/\(.* trigger="\)\([^"]*\)\(.*\)/\2/g'`
+
+# echo $g_name $g_wait_time $g_trigger
+ l_launch_num=`echo $xmem | xpath -e /system_launcher/group[$cur_group]/launch 2>&1 | grep Found | cut -d ' ' -f2`
+
+ cur_launch=1;
+ until [ $cur_launch -gt $l_launch_num ]; do
+ launch_text=`echo $xmem | xpath -q -e /system_launcher/group[$cur_group]/launch[$cur_launch]`
+
+ l_attr="Launch${l_idx}=$g_name|$cur_group|$g_wait_time|$g_trigger"
+ l_attr+="|"`echo $launch_text | sed 's/\(.* name="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* path="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* priority="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* critical="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* retry_cnt="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* arguments="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* logging_mask="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* restart="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* is_start_required="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* shutdown_critical="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* shutdown_wait_time="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* fast_shutdown_wait_time="\)\([^"]*\)\(.*\)/\2/g'`
+ l_attr+="|"`echo $launch_text | sed 's/\(.* user_name="\)\([^"]*\)\(.*\)/\2/g'`
+ if echo "$launch_text" | grep -sq 'is_agl_unit=' ; then
+ l_attr+="|"`echo $launch_text | sed 's/\(.* is_agl_unit="\)\([^"]*\)\(.*\)/\2/g'`
+ else
+ l_attr+="|"
+ fi
+ if echo "$launch_text" | grep -sq 'disable_agl_resethistory=' ; then
+ l_attr+="|"`echo $launch_text | sed 's/\(.* disable_agl_resethistory="\)\([^"]*\)\(.*\)/\2/g'`
+ else
+ l_attr+="|"
+ fi
+ if echo "$launch_text" | grep -sq 'disable_nonagl_resethistory=' ; then
+ l_attr+="|"`echo $launch_text | sed 's/\(.* disable_nonagl_resethistory="\)\([^"]*\)\(.*\)/\2/g'`
+ else
+ l_attr+="|"
+ fi
+ if echo "$launch_text" | grep -sq 'env_cond=' ; then
+ l_attr+="|"`echo $launch_text | sed 's/\(.* env_cond="\)\([^"]*\)\(.*\)/\2/g'`
+ else
+ l_attr+="|"
+ fi
+
+ if echo "$launch_text" | grep -sq 'cpu_assign=' ; then
+ l_attr+="|"`echo $launch_text | sed 's/\(.* cpu_assign="\)\([^"]*\)\(.*\)/\2/g'`
+ else
+ l_attr+="|0x0"
+ fi
+
+ echo $l_attr
+
+ cur_launch=$(($cur_launch+1))
+ l_idx=$(($l_idx+1))
+ done
+
+ cur_group=$(($cur_group+1))
+done
+
+
+rm $body_file
+rm $main_file
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_thread.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_thread.h
new file mode 100644
index 00000000..4f10c162
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_thread.h
@@ -0,0 +1,1385 @@
+/*
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __AGL_THREAD_H__
+#define __AGL_THREAD_H__
+
+//MACRO
+#define PR_TSS_S "0"
+#define PR_TSS 0
+
+/*
+ Main thread name. It need to be same as service name in sm_launch.xml or tskm_launch.xml
+ Max name length is 15
+ #define MN_XXXXX "MainName"
+
+ Thread name
+ Max name length is 15
+ #define TN_XXXXX "ThreadName"
+
+ Thread priority 0:TSS 1-99:FIFO
+ #define PR_XXXXX_S "(0-99)" //for xml
+ #define PR_XXXXX 0-99 //for program
+*/
+
+#define MN_SS_SYSMANAGER "SS_SysManager"
+#define PR_SS_SYSMANAGER_S "20"
+#define PR_SS_SYSMANAGER (20)
+
+ #define TN_SMHEARTBEAT "SM.Heartbeat"
+ #define PR_SMHEARTBEAT_S "20"
+ #define PR_SMHEARTBEAT (20)
+
+ #define TN_SMPROCLAUNCH "SM.ProcLaunch"
+ #define PR_SMPROCLAUNCH_S "20"
+ #define PR_SMPROCLAUNCH (20)
+
+ #define TN_SMLOWMEMMON "SM.LowMemMon"
+ #define PR_SMLOWMEMMON_S "20"
+ #define PR_SMLOWMEMMON (20)
+
+ #define TN_LOGGERRTIME "LoggerRtime"
+ #define PR_LOGGERRTIME_S PR_TSS_S
+ #define PR_LOGGERRTIME PR_TSS
+
+
+//======= exec from system manager =============
+#define MN_NS_SHAREDMEM "NS_SharedMem"
+#define PR_NS_SHAREDMEM_S "25"
+#define PR_NS_SHAREDMEM (25)
+
+
+#define MN_NS_NPPSERVICE "NS_NPPService"
+#define PR_NS_NPPSERVICE_S "25"
+#define PR_NS_NPPSERVICE (25)
+
+ #define TN_NS_NPPREADWKR "NS_NPPReadWkr"
+ #define PR_NS_NPPREADWKR_S "25"
+ #define PR_NS_NPPREADWKR (25)
+
+ #define TN_NS_NPPWRITEWKR "NS_NPPWriteWkr"
+ #define PR_NS_NPPWRITEWKR_S "25"
+ #define PR_NS_NPPWRITEWKR (25)
+
+ #define TN_NS_NPPIPWKR "NS_NPPIPWkr"
+ #define PR_NS_NPPIPWKR_S "25"
+ #define PR_NS_NPPIPWKR (25)
+
+#define MN_NS_BACKUPMGR "NS_BackupMgr"
+#define PR_NS_BACKUPMGR_S "25"
+#define PR_NS_BACKUPMGR (25)
+
+ #define TN_NS_BKUPNAND "NS_BkupNAND"
+ #define PR_NS_BKUPNAND_S "25"
+ #define PR_NS_BKUPNAND (25)
+
+ #define TN_NS_BKUPDELAY "NS_BkupDelay"
+ #define PR_NS_BKUPDELAY_S "25"
+ #define PR_NS_BKUPDELAY (25)
+
+#define MN_SS_DEVDETECTSRV "SS_DevDetectSrv"
+#define PR_SS_DEVDETECTSRV_S "20"
+#define PR_SS_DEVDETECTSRV (20)
+
+ #define TN_SS_DETECT_USB "SS_Detect_USB"
+ #define PR_SS_DETECT_USB_S "20"
+ #define PR_SS_DETECT_USB (20)
+
+ #define TN_SS_DETECT_SD "SS_Detect_SD"
+ #define PR_SS_DETECT_SD_S "20"
+ #define PR_SS_DETECT_SD (20)
+
+ #define TN_SS_MONITOR_OVC "SS_Monitor_OVC"
+ #define PR_SS_MONITOR_OVC_S "20"
+ #define PR_SS_MONITOR_OVC (20)
+
+#define MN_SS_LOGGERSRV "SS_LoggerSrv"
+#define PR_SS_LOGGERSRV_S PR_TSS_S
+#define PR_SS_LOGGERSRV PR_TSS
+
+ #define TN_PDGLOGQUER "pdg.LogQueR"
+ #define PR_PDGLOGQUER_S PR_TSS_S
+ #define PR_PDGLOGQUER PR_TSS
+
+ #define TN_PDGTRANSQUER "pdg.TransQueR"
+ #define PR_PDGTRANSQUER_S PR_TSS_S
+ #define PR_PDGTRANSQUER PR_TSS
+
+ #define TN_PDGEVNTLOGQUE "pdg.EvntLogQue"
+ #define PR_PDGEVNTLOGQUE_S PR_TSS_S
+ #define PR_PDGEVNTLOGQUE PR_TSS
+
+ #define TN_SSLOGGERSTRAGE "SSLoggerStrage"
+ #define PR_SSLOGGERSTRAGE_S PR_TSS_S
+ #define PR_SSLOGGERSTRAGE PR_TSS
+
+ #define TN_PFDRECTHREAD "PFDRECThread"
+ #define PR_PFDRECTHREAD_S PR_TSS_S
+ #define PR_PFDRECTHREAD PR_TSS
+
+#define MN_PS_LOGGERSHADOW "PS_LoggerShadow"
+ #define PR_PSLOGGERSHADOW_S PR_TSS_S
+ #define PR_PSLOGGERSHADOW PR_TSS
+
+#define MN_UDEVD "udevd"
+#define PR_UDEVD_S "1"
+#define PR_UDEVD (1)
+
+#define MN_COMMUNICATION "Communication"
+#define PR_COMMUNICATION_S "30"
+#define PR_COMMUNICATION (30)
+
+ #define TN_DEV_SYSCOM_TMR "DEV_SYSCOM_TMR"
+ #define PR_DEV_SYSCOM_TMR_S "30"
+ #define PR_DEV_SYSCOM_TMR (30)
+
+ #define TN_DEV_SYSCOM_RCV "DEV_SYSCOM_RCV"
+ #define PR_DEV_SYSCOM_RCV_S "30"
+ #define PR_DEV_SYSCOM_RCV (30)
+
+ #define TN_DEV_SYSCOM_MAIN "DEV_SYSCOM_MAIN"
+ #define PR_DEV_SYSCOM_MAIN_S "30"
+ #define PR_DEV_SYSCOM_MAIN (30)
+
+ #define TN_TGWCOM "TGWCOM"
+ #define PR_TGWCOM_S "30"
+ #define PR_TGWCOM (30)
+
+ #define TN__CWORD83_ "_CWORD83_"
+ #define PR__CWORD83__S "30"
+ #define PR__CWORD83_ (30)
+
+ #define TN_CAN_COM_PROT "CAN_COM_PROT"
+ #define PR_CAN_COM_PROT_S "30"
+ #define PR_CAN_COM_PROT (30)
+
+#define MN_PS_PSMSHADOW "PS_PSMShadow"
+#define PR_PS_PSMSHADOW_S "30"
+#define PR_PS_PSMSHADOW (30)
+
+#define MN_COMMSH4A "CommSH4A"
+#define PR_COMMSH4A_S "30"
+#define PR_COMMSH4A (30)
+
+ #define TN_DEV_SH4A_SND "DEV_SH4ACOM_SND"
+ #define PR_DEV_SH4A_SND_S "30"
+ #define PR_DEV_SH4A_SND (30)
+
+ #define TN_DEV_SH4A_RCV "DEV_SH4ACOM_RCV"
+ #define PR_DEV_SH4A_RCV_S "30"
+ #define PR_DEV_SH4A_RCV (30)
+
+ #define TN_DEV_SH4A_MON "DEV_SH4ACOM_MON"
+ #define PR_DEV_SH4A_MON_S "30"
+ #define PR_DEV_SH4A_MON (30)
+
+#define MN_PS_COMMUSB "PS_CommUSB"
+#define PR_PS_COMMUSB_S "30"
+#define PR_PS_COMMUSB (30)
+
+ #define TN_COMMUSB_RCV "COMMUSB_RCV"
+ #define PR_COMMUSB_RCV_S "30"
+ #define PR_COMMUSB_RCV (30)
+
+ #define TN_COMMUSB_DIAG "COMMUSB_DIAG"
+ #define PR_COMMUSB_DIAG_S "30"
+ #define PR_COMMUSB_DIAG (30)
+
+#define MN_PS_CANGW_M "CANGW_M"
+#define PR_PS_CANGW_M_S PR_TSS_S
+#define PR_PS_CANGW_M PR_TSS
+
+ #define TN_CANGW_M_RCV "CANGW_M_RCV"
+ #define PR_CANGW_M_RCV_S PR_TSS_S
+ #define PR_CANGW_M_RCV PR_TSS
+
+ #define TN_CANGW_M_DIAG "CANGW_M_DIAG"
+ #define PR_CANGW_M_DIAG_S PR_TSS_S
+ #define PR_CANGW_M_DIAG PR_TSS
+
+#define MN_PS_CANGW_S "CANGW_S"
+#define PR_PS_CANGW_S_S PR_TSS_S
+#define PR_PS_CANGW_S PR_TSS
+
+ #define TN_CANGW_S_SND "CANGW_S_SND"
+ #define PR_CANGW_S_SND_S PR_TSS_S
+ #define PR_CANGW_S_SND PR_TSS
+
+ #define TN_CANGW_S_DIAG "CANGW_S_DIAG"
+ #define PR_CANGW_S_DIAG_S PR_TSS_S
+ #define PR_CANGW_S_DIAG PR_TSS
+
+#define MN_LANSERVER "LanServer"
+#define PR_LANSERVER_S "20"
+#define PR_LANSERVER (20)
+
+#define MN_PS_CDR "ps_cdr"
+#define PR_PS_CDR_S PR_TSS_S
+#define PR_PS_CDR PR_TSS
+
+ #define TN_PS_CDR_NBD "ps_cdr_nbd"
+ #define PR_PS_CDR_NBD_S PR_TSS_S
+ #define PR_PS_CDR_NBD PR_TSS
+
+ #define TN_PS_CDR_DOIT "ps_cdr_doit"
+ #define PR_PS_CDR_DOIT_S PR_TSS_S
+ #define PR_PS_CDR_DOIT PR_TSS
+
+ #define TN_PS_CDR_READ "ps_cdr_read"
+ #define PR_PS_CDR_READ_S PR_TSS_S
+ #define PR_PS_CDR_READ PR_TSS
+
+#define MN_POSITIONING "Positioning"
+#define PR_POSITIONING_S PR_TSS_S
+#define PR_POSITIONING PR_TSS
+
+ #define TN_POSITIONING_GPS_MAIN "POS_Main"
+ #define PR_POSITIONING_GPS_MAIN_S PR_TSS_S
+ #define PR_POSITIONING_GPS_MAIN PR_TSS
+
+ #define TN_POSITIONING_GPS_RECV "POS_Gps_Recv"
+ #define PR_POSITIONING_GPS_RECV_S PR_TSS_S
+ #define PR_POSITIONING_GPS_RECV PR_TSS
+
+ #define TN_POSITIONING_GPS "POS_Gps"
+ #define PR_POSITIONING_GPS_S PR_TSS_S
+ #define PR_POSITIONING_GPS PR_TSS
+
+ #define TN_POSITIONING_SENS "POS_Sens"
+ #define PR_POSITIONING_SENS_S PR_TSS_S
+ #define PR_POSITIONING_SENS PR_TSS
+
+ #define TN_POSITIONING_GPS_ROLOVR "POS_Gps_Rolovr"
+ #define PR_POSITIONING_GPS_ROLOVR_S PR_TSS_S
+ #define PR_POSITIONING_GPS_ROLOVR PR_TSS
+
+#define MN_CLOCK "clock"
+#define PR_CLOCK_S "20"
+#define PR_CLOCK (20)
+
+ #define TN_CLOCK_MNG "ClockMng"
+ #define PR_CLOCK_MNG_S "20"
+ #define PR_CLOCK_MNG (20)
+
+#define MN_VEHICLE "vehicle"
+#define PR_VEHICLE_S "20"
+#define PR_VEHICLE (20)
+
+ #define TN_VEHICLE_SENS "VehicleSens"
+ #define PR_VEHICLE_SENS_S "20"
+ #define PR_VEHICLE_SENS (20)
+
+ #define TN_LINE_SENS_DRV "LineSensDrv"
+ #define PR_LINE_SENS_DRV_S "20"
+ #define PR_LINE_SENS_DRV (20)
+
+#define MN_SS_POWERSERVICE "SS_PowerService"
+#define PR_SS_POWERSERVICE_S "30"
+#define PR_SS_POWERSERVICE (30)
+
+#define MN_SS_TASKMANAGER "SS_TaskManager"
+#define PR_SS_TASKMANAGER_S "20"
+#define PR_SS_TASKMANAGER (20)
+
+ #define TN_SS_TSKMTIMER "SS_TskmTimer"
+ #define PR_SS_TSKMTIMER_S "20"
+ #define PR_SS_TSKMTIMER (20)
+
+#define MN_SOUND "Sound"
+#define PR_SOUND_S "45"
+#define PR_SOUND (45)
+
+ #define TN_VG_SNDSRCMGR "VG_SNDSRCMGR"
+ #define PR_VG_SNDSRCMGR_S "40"
+ #define PR_VG_SNDSRCMGR (40)
+
+ #define TN_SND_INPUTCTRL "SND_INPUTCTRL"
+ #define PR_SND_INPUTCTRL_S "40"
+ #define PR_SND_INPUTCTRL (40)
+
+ #define TN_SND_DEVCTRL "SND_DEVCTRL"
+ #define PR_SND_DEVCTRL_S "40"
+ #define PR_SND_DEVCTRL (40)
+
+ #define TN_SND_VCETRFCTRL "SND_VCETRFCTRL"
+ #define PR_SND_VCETRFCTRL_S "45"
+ #define PR_SND_VCETRFCTRL (45)
+
+ #define TN_SND_VCETRFWRT1 "SND_VCETRFWRT1"
+ #define PR_SND_VCETRFWRT1_S "45"
+ #define PR_SND_VCETRFWRT1 (45)
+
+ #define TN_SND_VCETRFWRT2 "SND_VCETRFWRT2"
+ #define PR_SND_VCETRFWRT2_S "45"
+ #define PR_SND_VCETRFWRT2 (45)
+
+ #define TN_VG_SNDCTRL_BSCF "VG_SNDCTRL_BSCF"
+ #define PR_VG_SNDCTRL_BSCF_S "25"
+ #define PR_VG_SNDCTRL_BSCF (25)
+
+ #define TN_VG_SNDCTRL_BSCR "VG_SNDCTRL_BSCR"
+ #define PR_VG_SNDCTRL_BSCR_S "25"
+ #define PR_VG_SNDCTRL_BSCR (25)
+
+ #define TN_VG_SNDCTRL_ITRT "VG_SNDCTRL_ITRT"
+ #define PR_VG_SNDCTRL_ITRT_S "25"
+ #define PR_VG_SNDCTRL_ITRT (25)
+
+ #define TN_CVRS_OPRT_OUT_1 "CVRS_OPRT_OUT_1"
+ #define PR_CVRS_OPRT_OUT_1_S "45"
+ #define PR_CVRS_OPRT_OUT_1 (45)
+
+ #define TN_CVRS_OPRT_OUT_2 "CVRS_OPRT_OUT_2"
+ #define PR_CVRS_OPRT_OUT_2_S "45"
+ #define PR_CVRS_OPRT_OUT_2 (45)
+
+ #define TN_CVRS_OPRT_OUT_3 "CVRS_OPRT_OUT_3"
+ #define PR_CVRS_OPRT_OUT_3_S "45"
+ #define PR_CVRS_OPRT_OUT_3 (45)
+
+ #define TN_CVRS_OPRT_OUT_4 "CVRS_OPRT_OUT_4"
+ #define PR_CVRS_OPRT_OUT_4_S "45"
+ #define PR_CVRS_OPRT_OUT_4 (45)
+
+ #define TN_CVRS_OPRT_IN_1 "CVRS_OPRT_IN_1"
+ #define PR_CVRS_OPRT_IN_1_S "45"
+ #define PR_CVRS_OPRT_IN_1 (45)
+
+ #define TN_CVRS_OPRT_IN_2 "CVRS_OPRT_IN_2"
+ #define PR_CVRS_OPRT_IN_2_S "45"
+ #define PR_CVRS_OPRT_IN_2 (45)
+
+ #define TN_CVRS_OPRT_IN_3 "CVRS_OPRT_IN_3"
+ #define PR_CVRS_OPRT_IN_3_S "45"
+ #define PR_CVRS_OPRT_IN_3 (45)
+
+ #define TN_CVRS_OPRT_IN_4 "CVRS_OPRT_IN_4"
+ #define PR_CVRS_OPRT_IN_4_S "45"
+ #define PR_CVRS_OPRT_IN_4 (45)
+
+ #define TN_CVRS_OPRT_IN_5 "CVRS_OPRT_IN_5"
+ #define PR_CVRS_OPRT_IN_5_S "45"
+ #define PR_CVRS_OPRT_IN_5 (45)
+
+ #define TN_CVRS_OPRT_IN_6 "CVRS_OPRT_IN_6"
+ #define PR_CVRS_OPRT_IN_6_S "45"
+ #define PR_CVRS_OPRT_IN_6 (45)
+
+ #define TN_CVRS_OPRT_IN_7 "CVRS_OPRT_IN_7"
+ #define PR_CVRS_OPRT_IN_7_S "45"
+ #define PR_CVRS_OPRT_IN_7 (45)
+
+ #define TN_CVRS_OPRT_IN_8 "CVRS_OPRT_IN_8"
+ #define PR_CVRS_OPRT_IN_8_S "45"
+ #define PR_CVRS_OPRT_IN_8 (45)
+
+ #define TN_CVRS_OPRT_BS_I "CVRS_OPRT_BS_I"
+ #define PR_CVRS_OPRT_BS_I_S "45"
+ #define PR_CVRS_OPRT_BS_I (45)
+
+ #define TN_VR_NVR_RECO "VR_NVR_RECO"
+ #define PR_VR_NVR_RECO_S "20"
+ #define PR_VR_NVR_RECO (20)
+
+ #define TN_SND_ECNR "SND_ECNR"
+ #define PR_SND_ECNR_S "40"
+ #define PR_SND_ECNR (40)
+
+ #define TN_SNDAGENT_000 "SNDAGENT_000"
+ #define PR_SNDAGENT_000_S "45"
+ #define PR_SNDAGENT_000 (45)
+
+ #define TN_SNDAGENT_001 "SNDAGENT_001"
+ #define PR_SNDAGENT_001_S "45"
+ #define PR_SNDAGENT_001 (45)
+
+ #define TN_SNDAGENT_002 "SNDAGENT_002"
+ #define PR_SNDAGENT_002_S "45"
+ #define PR_SNDAGENT_002 (45)
+
+ #define TN_SNDAGENT_003 "SNDAGENT_003"
+ #define PR_SNDAGENT_003_S "45"
+ #define PR_SNDAGENT_003 (45)
+
+ #define TN_SNDAGENT_004 "SNDAGENT_004"
+ #define PR_SNDAGENT_004_S "45"
+ #define PR_SNDAGENT_004 (45)
+
+ #define TN_SNDAGENT_005 "SNDAGENT_005"
+ #define PR_SNDAGENT_005_S "45"
+ #define PR_SNDAGENT_005 (45)
+
+ #define TN_SNDAGENT_006 "SNDAGENT_006"
+ #define PR_SNDAGENT_006_S "45"
+ #define PR_SNDAGENT_006 (45)
+
+ #define TN_SNDAGENT_007 "SNDAGENT_007"
+ #define PR_SNDAGENT_007_S "45"
+ #define PR_SNDAGENT_007 (45)
+
+ #define TN_SNDAGENT_008 "SNDAGENT_008"
+ #define PR_SNDAGENT_008_S "45"
+ #define PR_SNDAGENT_008 (45)
+
+ #define TN_SNDAGENT_009 "SNDAGENT_009"
+ #define PR_SNDAGENT_009_S "45"
+ #define PR_SNDAGENT_009 (45)
+
+ #define TN_SNDAGENT_010 "SNDAGENT_010"
+ #define PR_SNDAGENT_010_S "45"
+ #define PR_SNDAGENT_010 (45)
+
+ #define TN_SNDAGENT_011 "SNDAGENT_011"
+ #define PR_SNDAGENT_011_S "45"
+ #define PR_SNDAGENT_011 (45)
+
+ #define TN_SNDAGENT_012 "SNDAGENT_012"
+ #define PR_SNDAGENT_012_S "45"
+ #define PR_SNDAGENT_012 (45)
+
+ #define TN_SNDAGENT_013 "SNDAGENT_013"
+ #define PR_SNDAGENT_013_S "45"
+ #define PR_SNDAGENT_013 (45)
+
+ #define TN_SNDAGENT_014 "SNDAGENT_014"
+ #define PR_SNDAGENT_014_S "45"
+ #define PR_SNDAGENT_014 (45)
+
+ #define TN_SNDAGENT_015 "SNDAGENT_015"
+ #define PR_SNDAGENT_015_S "45"
+ #define PR_SNDAGENT_015 (45)
+
+ #define TN_SNDAGENT_016 "SNDAGENT_016"
+ #define PR_SNDAGENT_016_S "45"
+ #define PR_SNDAGENT_016 (45)
+
+ #define TN_SNDAGENT_017 "SNDAGENT_017"
+ #define PR_SNDAGENT_017_S "45"
+ #define PR_SNDAGENT_017 (45)
+
+ #define TN_SNDAGENT_018 "SNDAGENT_018"
+ #define PR_SNDAGENT_018_S "45"
+ #define PR_SNDAGENT_018 (45)
+
+ #define TN_SNDAGENT_019 "SNDAGENT_019"
+ #define PR_SNDAGENT_019_S "45"
+ #define PR_SNDAGENT_019 (45)
+
+ #define TN_SNDAGENT_020 "SNDAGENT_020"
+ #define PR_SNDAGENT_020_S "45"
+ #define PR_SNDAGENT_020 (45)
+
+ #define TN_SNDAGENT_021 "SNDAGENT_021"
+ #define PR_SNDAGENT_021_S "45"
+ #define PR_SNDAGENT_021 (45)
+
+ #define TN_SNDAGENT_022 "SNDAGENT_022"
+ #define PR_SNDAGENT_022_S "45"
+ #define PR_SNDAGENT_022 (45)
+
+ #define TN_SNDAGENT_023 "SNDAGENT_023"
+ #define PR_SNDAGENT_023_S "45"
+ #define PR_SNDAGENT_023 (45)
+
+ #define TN_SNDAGENT_024 "SNDAGENT_024"
+ #define PR_SNDAGENT_024_S "45"
+ #define PR_SNDAGENT_024 (45)
+
+ #define TN_SNDAGENT_025 "SNDAGENT_025"
+ #define PR_SNDAGENT_025_S "45"
+ #define PR_SNDAGENT_025 (45)
+
+#define MN_SS_RESOURCEMGR "SS_ResourceMgr"
+#define PR_SS_RESOURCEMGR_S "49"
+#define PR_SS_RESOURCEMGR (49)
+
+ #define TN_RESOURCEHWDT "ResourceHWDT"
+ #define PR_RESOURCEHWDT_S "1"
+ #define PR_RESOURCEHWDT (1)
+
+#define MN_AS_AUDIOMANAGER "AS_AudioManager"
+#define PR_AS_AUDIOMANAGER_S PR_TSS_S
+#define PR_AS_AUDIOMANAGER PR_TSS
+
+ #define TN_AS_SOUNDBEEP "AS_SoundBeep"
+ #define PR_AS_SOUNDBEEP_S PR_TSS_S
+ #define PR_AS_SOUNDBEEP PR_TSS
+
+#define MN_GRAPHICS "Graphics"
+#define PR_GRAPHICS_S "4"
+#define PR_GRAPHICS (4)
+
+ #define TN_GR_MAIN_CTRL "Graphics_main"
+ #define PR_GR_MAIN_CTRL_S PR_TSS_S
+ #define PR_GR_MAIN_CTRL PR_TSS
+
+ #define TN_GR_SEQ_CTRL "Graphics_seq"
+ #define PR_GR_SEQ_CTRL_S PR_TSS_S
+ #define PR_GR_SEQ_CTRL PR_TSS
+
+ #define TN_GR_DEV_RCV_CTRL "Graphics_rcv"
+ #define PR_GR_DEV_RCV_CTRL_S PR_TSS_S
+ #define PR_GR_DEV_RCV_CTRL PR_TSS
+
+ #define TN_GR_VCAP1_CTRL "Graphics_cap1"
+ #define PR_GR_VCAP1_CTRL_S "4"
+ #define PR_GR_VCAP1_CTRL (4)
+
+ #define TN_GR_VCAP2_CTRL "Graphics_cap2"
+ #define PR_GR_VCAP2_CTRL_S "4"
+ #define PR_GR_VCAP2_CTRL (4)
+
+#define MN_VUPSERVICE "vupservice"
+#define PR_VUPSERVICE_S PR_TSS_S
+#define PR_VUPSERVICE PR_TSS
+
+#define MN_SS_UPDATESERVICE "UpdateService"
+#define PR_SS_UPDATESERVICE_S PR_TSS_S
+#define PR_SS_UPDATESERVICE PR_TSS
+
+ #define TN_UPSERVICE_VERI "t_update_veri"
+ #define PR_UPSERVICE_VERI_S PR_TSS_S
+ #define PR_UPSERVICE_VERI PR_TSS
+
+#define MN_NW_MICSERVICE "NW_MicService"
+#define PR_NW_MICSERVICE_S PR_TSS_S
+#define PR_NW_MICSERVICE PR_TSS
+
+#define MN_NS_LOCKMGR "LockMgr"
+#define PR_NS_LOCKMGR_S PR_TSS_S
+#define PR_NS_LOCKMGR PR_TSS
+
+#define MN_PS_SWITCHHANDLER "SwitchHandler"
+#define PR_PS_SWITCHHANDLER_S "30"
+#define PR_PS_SWITCHHANDLER (30)
+
+#define MN_SS_WINSYS "SS_WinSys"
+#define PR_SS_WINSYS_S "5"
+#define PR_SS_WINSYS 5
+
+#define MN_MODEMANAGER "modemanager"
+#define PR_MODEMANAGER_S PR_TSS_S
+#define PR_MODEMANAGER PR_TSS
+
+#define MN_BTSTACKMAIN "btstackmain"
+#define PR_BTSTACKMAIN_S PR_TSS_S
+#define PR_BTSTACKMAIN PR_TSS
+
+#define MN_MEDIASERVICE "MediaService"
+#define PR_MEDIASERVICE_S PR_TSS_S
+#define PR_MEDIASERVICE PR_TSS
+
+// REPRO START
+#define MN_REPROSERVICE "ReproService"
+#define PR_REPROSERVICE_S PR_TSS_S
+#define PR_REPROSERVICE PR_TSS
+
+ #define TN_REPROSEQUENCER "RPRS_Sequencer"
+ #define PR_REPROSEQUENCER_S PR_TSS_S
+ #define PR_REPROSEQUENCER PR_TSS
+
+ #define TN_REPROCTRL "RPRS_Control"
+ #define PR_REPROCTRL_S PR_TSS_S
+ #define PR_REPROCTRL PR_TSS
+
+ #define TN_REPROCENTERCOMM "RPRS_CenterComm"
+ #define PR_REPROCENTERCOMM_S PR_TSS_S
+ #define PR_REPROCENTERCOMM PR_TSS
+
+ #define TN_REPROUNITCOMM "RPRS_UnitComm"
+ #define PR_REPROUNITCOMM_S PR_TSS_S
+ #define PR_REPROUNITCOMM PR_TSS
+
+ #define TN_REPROWEBDAVMGR "RPRS_WebDAVMgr"
+ #define PR_REPROWEBDAVMGR_S PR_TSS_S
+ #define PR_REPROWEBDAVMGR PR_TSS
+
+#define MN_REPROAENDTEST "Repro_Testpro_Sender"
+#define PR_REPROAENDTEST_S PR_TSS_S
+#define PR_REPROAENDTEST PR_TSS
+
+ #define TN_REPROAENDTESTTN "Repro_TestproT"
+ #define PR_REPROAENDTESTTN_S PR_TSS_S
+ #define PR_REPROAENDTESTTN PR_TSS
+
+#define MN_REPROBACKVUP "BackVupCtrl"
+#define PR_REPROBACKVUP_S PR_TSS_S
+#define PR_REPROBACKVUP PR_TSS
+
+#define MN_REPRODEVELOP "DevReproService"
+#define PR_REPRODEVELOP_S PR_TSS_S
+#define PR_REPRODEVELOP PR_TSS
+// REPRO END
+
+ #define TN_MED_MMCOM_PLAY "mmcom_play"
+ #define PR_MED_MMCOM_PLAY_S PR_TSS_S
+ #define PR_MED_MMCOM_PLAY PR_TSS
+
+ #define TN_MED_MMCOM_MEDIA "mmcom_media"
+ #define PR_MED_MMCOM_MEDIA_S PR_TSS_S
+ #define PR_MED_MMCOM_MEDIA PR_TSS
+
+ #define TN_MED_MMCOM_DB "mmcom_db"
+ #define PR_MED_MMCOM_DB_S PR_TSS_S
+ #define PR_MED_MMCOM_DB PR_TSS
+
+ #define TN_MED_MMCOM_LIST "mmcom_list"
+ #define PR_MED_MMCOM_LIST_S PR_TSS_S
+ #define PR_MED_MMCOM_LIST PR_TSS
+
+ #define TN_MED_MMCOM_DBUSB "mmcom_dbusb"
+ #define PR_MED_MMCOM_DBUSB_S PR_TSS_S
+ #define PR_MED_MMCOM_DBUSB PR_TSS
+
+ #define TN_MED_MMCOM_DBSD "mmcom_dbsd"
+ #define PR_MED_MMCOM_DBSD_S PR_TSS_S
+ #define PR_MED_MMCOM_DBSD PR_TSS
+
+ #define TN_MED_MMCOM_DBCD "mmcom_dbcd"
+ #define PR_MED_MMCOM_DBCD_S PR_TSS_S
+ #define PR_MED_MMCOM_DBCD PR_TSS
+
+ #define TN_MED_MMCOM_PLAYRCV "mmcom_playrcv"
+ #define PR_MED_MMCOM_PLAYRCV_S PR_TSS_S
+ #define PR_MED_MMCOM_PLAYRCV PR_TSS
+
+ #define TN_MED_RIPCOM_MNG "MngRipComm"
+ #define PR_MED_RIPCOM_MNG_S PR_TSS_S
+ #define PR_MED_RIPCOM_MNG PR_TSS
+
+ #define TN_MED_RIPCOM_EXE01 "ExeRipComm01"
+ #define PR_MED_RIPCOM_EXE01_S PR_TSS_S
+ #define PR_MED_RIPCOM_EXE01 PR_TSS
+
+ #define TN_MED_RIPCOM_EXE02 "ExeRipComm02"
+ #define PR_MED_RIPCOM_EXE02_S PR_TSS_S
+ #define PR_MED_RIPCOM_EXE02 PR_TSS
+
+ #define TN_MED_DISCCOM_MAIN "disccom_main"
+ #define PR_MED_DISCCOM_MAIN_S PR_TSS_S
+ #define PR_MED_DISCCOM_MAIN PR_TSS
+
+ #define TN_MED_DISCCOM_DB "disccom_db"
+ #define PR_MED_DISCCOM_DB_S PR_TSS_S
+ #define PR_MED_DISCCOM_DB PR_TSS
+
+#define MN_PLAYBACKSERVICE "PlaybackService"
+#define PR_PLAYBACKSERVICE_S PR_TSS_S
+#define PR_PLAYBACKSERVICE PR_TSS
+
+ #define TN_PLAYSRV_AUDIO "playsrv_audio"
+ #define PR_PLAYSRV_AUDIO_S PR_TSS_S
+ #define PR_PLAYSRV_AUDIO PR_TSS
+
+ #define TN_PLAYSRV_RIP "playsrv_rip"
+ #define PR_PLAYSRV_RIP_S PR_TSS_S
+ #define PR_PLAYSRV_RIP PR_TSS
+
+ #define TN_PLAYSRV_PLAY "playsrv_play"
+ #define PR_PLAYSRV_PLAY_S PR_TSS_S
+ #define PR_PLAYSRV_PLAY PR_TSS
+
+ #define TN_PLAYSRV_DISC "playsrv_disc"
+ #define PR_PLAYSRV_DISC_S PR_TSS_S
+ #define PR_PLAYSRV_DISC PR_TSS
+
+ #define TN_PLAYSRV_ARTWORK "playsrv_artwork"
+ #define PR_PLAYSRV_ARTWORK_S PR_TSS_S
+ #define PR_PLAYSRV_ARTWORK PR_TSS
+
+#define MN_DISCSERVICE "DiscService"
+#define PR_DISCSERVICE_S PR_TSS_S
+#define PR_DISCSERVICE PR_TSS
+
+#define MN_RADIOSERVICE "RadioService"
+#define PR_RADIOSERVICE_S PR_TSS_S
+#define PR_RADIOSERVICE PR_TSS
+
+#define MN_RADIOHDARBITER "RadioHDArbiter"
+#define PR_RADIOHDARBITER_S "20"
+#define PR_RADIOHDARBITER (20)
+
+#define MN_HRDS_MANAGER "hrds_manager"
+#define PR_HRDS_MANAGER_S PR_TSS_S
+#define PR_HRDS_MANAGER PR_TSS
+
+ #define TN_HRDS_HDMNG "hrds_hdmng"
+ #define PR_HRDS_HDMNG_S PR_TSS_S
+ #define PR_HRDS_HDMNG PR_TSS
+
+ #define TN_HRDS_HDDEC "hrds_hddec"
+ #define PR_HRDS_HDDEC_S PR_TSS_S
+ #define PR_HRDS_HDDEC PR_TSS
+
+ #define TN_HRDS_WEBMNG "hrds_webmng"
+ #define PR_HRDS_WEBMNG_S PR_TSS_S
+ #define PR_HRDS_WEBMNG PR_TSS
+
+ #define TN_HRDS_WEBCOM "hrds_webcom"
+ #define PR_HRDS_WEBCOM_S PR_TSS_S
+ #define PR_HRDS_WEBCOM PR_TSS
+
+#define MN_BT_CONNECTIONSERVICE "BT_CnctSrv"
+#define PR_BT_CONNECTIONSERVICE_S PR_TSS_S
+#define PR_BT_CONNECTIONSERVICE PR_TSS
+
+#define MN_BT_PHONESERVICE "BT_PhoneSrv"
+#define PR_BT_PHONESERVICE_S PR_TSS_S
+#define PR_BT_PHONESERVICE PR_TSS
+
+#define MN_BT_PHONEBOOKSERVICE "BT_PbkSrv"
+#define PR_BT_PHONEBOOKSERVICE_S PR_TSS_S
+#define PR_BT_PHONEBOOKSERVICE PR_TSS
+
+#define MN_BT_MESSAGINGSERVICE "BT_MsgSrv"
+#define PR_BT_MESSAGINGSERVICE_S PR_TSS_S
+#define PR_BT_MESSAGINGSERVICE PR_TSS
+
+#define MN_BT_BLLSERVICE "TEL_BLLSrv"
+#define PR_BT_BLLSERVICE_S PR_TSS_S
+#define PR_BT_BLLSERVICE PR_TSS
+
+#define MN_BT_DCMPHONESERVICE "DCM_PhoneSrv"
+#define PR_BT_DCMPHONESERVICE_S PR_TSS_S
+#define PR_BT_DCMPHONESERVICE PR_TSS
+
+ #define TN_BT_CONSRV_HFPMULTIQ1 "HFPMultiQ1"
+ #define PR_TN_BT_CONSRV_HFPMULTIQ1_S PR_TSS_S
+ #define PR_TN_BT_CONSRV_HFPMULTIQ1 PR_TSS
+
+ #define TN_BT_CONSRV_HFPMULTIQ2 "HFPMultiQ2"
+ #define PR_TN_BT_CONSRV_HFPMULTIQ2_S PR_TSS_S
+ #define PR_TN_BT_CONSRV_HFPMULTIQ2 PR_TSS
+
+ #define TN_BT_PBKSRV_DATABASE "BTPB_Database"
+ #define PR_TN_BT_PBKSRV_DATABASE_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_DATABASE PR_TSS
+
+ #define TN_BT_PBKSRV_LOCALPBINST "LocalPBINST"
+ #define PR_TN_BT_PBKSRV_LOCALPBINST_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_LOCALPBINST PR_TSS
+
+ #define TN_BT_PBKSRV_RESOLVENAME "ResolveName"
+ #define PR_TN_BT_PBKSRV_RESOLVENAME_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_RESOLVENAME PR_TSS
+
+ #define TN_BT_PBKSRV_PBAPMULTIQ1 "PBAPMultiQ1"
+ #define PR_TN_BT_PBKSRV_PBAPMULTIQ1_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_PBAPMULTIQ1 PR_TSS
+
+ #define TN_BT_PBKSRV_OPPMULTI "OPPMulti"
+ #define PR_TN_BT_PBKSRV_OPPMULTI_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_OPPMULTI PR_TSS
+
+ #define TN_BT_PBKSRV_VCARDPARSER "VCardParser"
+ #define PR_TN_BT_PBKSRV_VCARDPARSER_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_VCARDPARSER PR_TSS
+
+ #define TN_BT_MSGSRV_MSGCNTRLTHREAD0 "MsgCntrlThread0"
+ #define PR_TN_BT_MSGSRV_MSGCNTRLTHREAD0_S PR_TSS_S
+ #define PR_TN_BT_MSGSRV_MSGCNTRLTHREAD0 PR_TSS
+
+ #define TN_BT_MSGSRV_MSGCNTRLTHREAD1 "MsgCntrlThread1"
+ #define PR_TN_BT_MSGSRV_MSGCNTRLTHREAD1_S PR_TSS_S
+ #define PR_TN_BT_MSGSRV_MSGCNTRLTHREAD1 PR_TSS
+
+ #define TN_BT_MSGSRV_MAPMULTI "MapMulti"
+ #define PR_TN_BT_MSGSRV_MAPMULTI_S PR_TSS_S
+ #define PR_TN_BT_MSGSRV_MAPMULTI PR_TSS
+
+#define MN_DTVSERVICE "DtvService"
+#define PR_DTVSERVICE_S PR_TSS_S
+#define PR_DTVSERVICE PR_TSS
+
+ #define TN_DTVTNC_TX "dtvtnc_tx"
+ #define PR_DTVTNC_TX_S PR_TSS_S
+ #define PR_DTVTNC_TX PR_TSS
+
+ #define TN_DTVTNC_RCV "dtvtnc_rcv"
+ #define PR_DTVTNC_RCV_S PR_TSS_S
+ #define PR_DTVTNC_RCV PR_TSS
+
+ #define TN_DTVTNC_TIMER "dtvtnc_timer"
+ #define PR_DTVTNC_TIMER_S PR_TSS_S
+ #define PR_DTVTNC_TIMER PR_TSS
+
+ #define TN_DTVTNC_CTL "dtvtnc_ctl"
+ #define PR_DTVTNC_CTL_S PR_TSS_S
+ #define PR_DTVTNC_CTL PR_TSS
+
+#define MN_DTVVUPSERVICE "DtvVupService"
+#define PR_DTVVUPSERVICE_S PR_TSS_S
+#define PR_DTVVUPSERVICE PR_TSS
+
+#define MN_SETTINGSERVICE "SettingService"
+#define PR_SETTINGSERVICE_S PR_TSS_S
+#define PR_SETTINGSERVICE PR_TSS
+
+#define MN_INFOSETTINGSRV "InfoSettingSrv"
+#define PR_INFOSETTINGSRV_S PR_TSS_S
+#define PR_INFOSETTINGSRV PR_TSS
+
+ #define TN_INFS_UIC "infs_uic"
+ #define PR_INFS_UIC_S PR_TSS_S
+ #define PR_INFS_UIC PR_TSS
+
+#define MN_DELPERSONALSRV "DelPersonalSrv"
+#define PR_DELPERSONALSRV_S PR_TSS_S
+#define PR_DELPERSONALSRV PR_TSS
+
+#define MN_MENUSERVICE "MenuService"
+#define PR_MENUSERVICE_S PR_TSS_S
+#define PR_MENUSERVICE PR_TSS
+
+#define MN_NAVIPROXY "NaviProxy"
+#define PR_NAVIPROXY_S PR_TSS_S
+#define PR_NAVIPROXY PR_TSS
+
+#define MN_AWBPROXY "AwbProxy"
+#define PR_AWBPROXY_S PR_TSS_S
+#define PR_AWBPROXY PR_TSS
+
+#define MN_TFFPROXY "TFFProxy"
+#define PR_TFFPROXY_S PR_TSS_S
+#define PR_TFFPROXY PR_TSS
+
+#define MN_TFFPROXYSLAVE "TFFProxySlave"
+#define PR_TFFPROXYSLAVE_S PR_TSS_S
+#define PR_TFFPROXYSLAVE PR_TSS
+
+#define MN_AWNPRIMARY "AwnPrimary"
+#define PR_AWNPRIMARY_S PR_TSS_S
+#define PR_AWNPRIMARY PR_TSS
+
+#define MN_AWBPRIMARY "AwbPrimary"
+#define PR_AWBPRIMARY_S PR_TSS_S
+#define PR_AWBPRIMARY PR_TSS
+
+#define MN_AWMPRIMARY "AwmPrimary"
+#define PR_AWMPRIMARY_S PR_TSS_S
+#define PR_AWMPRIMARY PR_TSS
+
+#define MN_AWTPRIMARY "AwtPrimary"
+#define PR_AWTPRIMARY_S PR_TSS_S
+#define PR_AWTPRIMARY PR_TSS
+
+#define MN_MISINKSERVICE "MisinkService"
+#define PR_MISINKSERVICE_S PR_TSS_S
+#define PR_MISINKSERVICE PR_TSS
+
+#define MN_TEXTCONVERTER "TextConverter"
+#define PR_TEXTCONVERTER_S PR_TSS_S
+#define PR_TEXTCONVERTER PR_TSS
+
+#define MN_HANDWRITING "HandWriting"
+#define PR_HANDWRITING_S PR_TSS_S
+#define PR_HANDWRITING PR_TSS
+
+#define MN_EXTUNITAUTH_D "EXTUNITAUTH_D"
+#define PR_EXTUNITAUTH_D_S "29"
+#define PR_EXTUNITAUTH_D 29
+
+ #define TN_VPSVC__CWORD84_ "VPSVC_D"
+ #define PR_VPSVC__CWORD84__S PR_TSS_S
+ #define PR_VPSVC__CWORD84_ PR_TSS
+
+#define MN_PROXYSERVICE "ProxyService"
+#define PR_PROXYSERVICE_S PR_TSS_S
+#define PR_PROXYSERVICE PR_TSS
+
+#define MN_FUELSERVICE "VS_FUCSrv"
+#define PR_FUELSERVICE_S PR_TSS_S
+#define PR_FUELSERVICE PR_TSS
+
+#define MN_ENERGYSERVICE "VS_ENMSrv"
+#define PR_ENERGYSERVICE_S PR_TSS_S
+#define PR_ENERGYSERVICE PR_TSS
+
+#define MN_CUSTOMIZESERVICE "VS_VSDSrv"
+#define PR_CUSTOMIZESERVICE_S PR_TSS_S
+#define PR_CUSTOMIZESERVICE PR_TSS
+
+#define MN_DMSSERVICE "VS_DMSSrv"
+#define PR_DMSSERVICE_S PR_TSS_S
+#define PR_DMSSERVICE PR_TSS
+
+#define MN_AIRCONSERVICE "VS_ACNSrv"
+#define PR_AIRCONSERVICE_S PR_TSS_S
+#define PR_AIRCONSERVICE PR_TSS
+
+#define MN_SEATSERVICE "VS_NMSSrv"
+#define PR_SEATSERVICE_S PR_TSS_S
+#define PR_SEATSERVICE PR_TSS
+
+#define MN_CAMERASERVICE "VS_CMRSrv"
+#define PR_CAMERASERVICE_S PR_TSS_S
+#define PR_CAMERASERVICE PR_TSS
+
+ #define TN_CAMERAQUICKRVC "QuickRVCThread"
+ #define PR_CAMERAQUICKRVC_S PR_TSS_S
+ #define PR_CAMERAQUICKRVC PR_TSS
+
+#define MN_METSERVICE "VS_METSrv"
+#define PR_METSERVICE_S PR_TSS_S
+#define PR_METSERVICE PR_TSS
+
+#define MN_TMCSERVICE "VS_TMCSrv"
+#define PR_TMCSERVICE_S PR_TSS_S
+#define PR_TMCSERVICE PR_TSS
+
+#define MN_DASSERVICE "VS_DASSrv"
+#define PR_DASSERVICE_S PR_TSS_S
+#define PR_DASSERVICE PR_TSS
+
+#define MN_EXTUNITAUTH_M "EXTUNITAUTH_M"
+#define PR_EXTUNITAUTH_M_S "29"
+#define PR_EXTUNITAUTH_M 29
+
+#define MN_DUMMYREAD "DummyRead"
+#define PR_DUMMYREAD_S PR_TSS_S
+#define PR_DUMMYREAD PR_TSS
+
+#define MN_SSTSERVICE "storage_access"
+#define PR_SSTSERVICE_S PR_TSS_S
+#define PR_SSTSERVICE PR_TSS
+
+#define MN_CCSAUDITD "ccs-auditd"
+#define PR_CCSAUDITD_S PR_TSS_S
+#define PR_CCSAUDITD PR_TSS
+
+//exec from task manager
+#define MN_ACTIVITYMANAGER "ActivityManager"
+#define PR_ACTIVITYMANAGER_S PR_TSS_S
+#define PR_ACTIVITYMANAGER PR_TSS
+
+#define MN_RESIDENT_SVC "RESIDENT_SVC"
+#define PR_RESIDENT_SVC_S PR_TSS_S
+#define PR_RESIDENT_SVC PR_TSS
+
+#define MN_TRANSIENT_SVC "TRANSIENT_SVC"
+#define PR_TRANSIENT_SVC_S PR_TSS_S
+#define PR_TRANSIENT_SVC PR_TSS
+
+#define MN_WLANSERVICE "wlan_ctrl_0700"
+#define PR_WLANSERVICE_S PR_TSS_S
+#define PR_WLANSERVICE PR_TSS
+
+#define MN_WLANEVTTHR "WlanEvtThr"
+#define PR_WLANEVTTHR_S PR_TSS_S
+#define PR_WLANEVTTHR PR_TSS
+
+#define MN_WLANMIDDLESERVICE "WlanMiddle"
+#define PR_WLANMIDDLESERVICE_S PR_TSS_S
+#define PR_WLANMIDDLESERVICE PR_TSS
+
+ #define TN_WLANMIDDLESERVICE0 "WM_MsgCtrlTh0"
+ #define PR_WLANMIDDLESERVICE0_S PR_TSS_S
+ #define PR_WLANMIDDLESERVICE0 PR_TSS
+
+ #define TN_WLANMIDDLESERVICE1 "WM_MsgCtrlTh1"
+ #define PR_WLANMIDDLESERVICE1_S PR_TSS_S
+ #define PR_WLANMIDDLESERVICE1 PR_TSS
+
+ #define TN_WLANMIDDLESERVICE2 "WM_MsgCtrlTh2"
+ #define PR_WLANMIDDLESERVICE2_S PR_TSS_S
+ #define PR_WLANMIDDLESERVICE2 PR_TSS
+
+#define MN_WLANSERVICE2 "wlan_ctrl_0701"
+#define PR_WLANSERVICE2_S PR_TSS_S
+#define PR_WLANSERVICE2 PR_TSS
+
+#define MN_WLANEVTTHR2 "WlanEvtThr2"
+#define PR_WLANEVTTHR2_S PR_TSS_S
+#define PR_WLANEVTTHR2 PR_TSS
+
+//exec from task manager, Test for vup
+#define MN_PS__CWORD52_VUP "_CWORD52_vup"
+#define PR_PS__CWORD52_VUP_S PR_TSS_S
+#define PR_PS__CWORD52_VUP PR_TSS
+
+#define MN_PS_SYSVUP "sysvup"
+#define PR_PS_SYSVUP_S PR_TSS_S
+#define PR_PS_SYSVUP PR_TSS
+
+#define MN_SS_ROOTFSVUP "rootfsvup"
+#define PR_SS_ROOTFSVUP_S PR_TSS_S
+#define PR_SS_ROOTFSVUP PR_TSS
+
+#define MN_SS_VUPPROGUI "vupprogressui"
+#define PR_SS_VUPPROGUI_S PR_TSS_S
+#define PR_SS_VUPPROGUI PR_TSS
+
+#define MN_SS_NORVUP "norvup"
+#define PR_SS_NORVUP_S PR_TSS_S
+#define PR_SS_NORVUP PR_TSS
+
+// OUTER_UPDATE START
+#define MN_XMVUPSERVICE "radio_xm_update"
+#define PR_XMVUPSERVICE_S PR_TSS_S
+#define PR_XMVUPSERVICE PR_TSS
+// OUTER_UPDATE END
+
+#define MN_BTPHONESRV "BT_PhoneSrv"
+#define PR_BTPHONESRV_S PR_TSS_S
+#define PR_BTPHONESRV PR_TSS
+
+#define MN_BTPBKSRV "BT_PbkSrv"
+#define PR_BTPBKSRV_S PR_TSS_S
+#define PR_BTPBKSRV PR_TSS
+
+#define MN_BTMSGSRV "BT_MsgSrv"
+#define PR_BTMSGSRV_S PR_TSS_S
+#define PR_BTMSGSRV PR_TSS
+
+// NON-resident, exec from task manager, Repro update
+#define MN_PS_SYSUPDATE "sysupdate"
+#define PR_PS_SYSUPDATE_S PR_TSS_S
+#define PR_PS_SYSUPDATE PR_TSS
+
+#define MN_SS_NANDUPDATE "nandupdate"
+#define PR_SS_NANDUPDATE_S PR_TSS_S
+#define PR_SS_NANDUPDATE PR_TSS
+
+ #define TN_NANDUPDATE_CLD "t_nandcld"
+ #define PR_NANDUPDATE_CLD_S PR_TSS_S
+ #define PR_NANDUPDATE_CLD PR_TSS
+
+#define MN_BTPHONESRV "BT_PhoneSrv"
+#define PR_BTPHONESRV_S PR_TSS_S
+#define PR_BTPHONESRV PR_TSS
+
+#define MN_BTPBKSRV "BT_PbkSrv"
+#define PR_BTPBKSRV_S PR_TSS_S
+#define PR_BTPBKSRV PR_TSS
+
+#define MN_BTMSGSRV "BT_MsgSrv"
+#define PR_BTMSGSRV_S PR_TSS_S
+#define PR_BTMSGSRV PR_TSS
+
+//exec from diag
+#define MN_DIAGSERVICE "DiagService"
+#define PR_DIAGSERVICE_S PR_TSS_S
+#define PR_DIAGSERVICE PR_TSS
+
+#define MN_DIAGWORKERTSK "diagworker_tsk"
+#define PR_DIAGWORKERTSK_S PR_TSS_S
+#define PR_DIAGWORKERTSK PR_TSS
+
+#define MN_DIAGTSK "diag_tsk"
+#define PR_DIAGTSK_S PR_TSS_S
+#define PR_DIAGTSK PR_TSS
+
+#define MN_DIAGMCTSK "diagmc_tsk"
+#define PR_DIAGMCTSK_S PR_TSS_S
+#define PR_DIAGMCTSK PR_TSS
+
+#define MN_DIAGUTCOL "diagutCol_tsk"
+#define PR_DIAGUTCOL_S PR_TSS_S
+#define PR_DIAGUTCOL PR_TSS
+
+#define MN_DIAGUTUPD "diagutUpd_tsk"
+#define PR_DIAGUTUPD_S PR_TSS_S
+#define PR_DIAGUTUPD PR_TSS
+
+//exec from Connectivity for _CWORD57_
+#define MN__CWORD57_UTILSERVICE "_CWORD57_UtilService"
+#define PR__CWORD57_UTILSERVICE_S PR_TSS_S
+#define PR__CWORD57_UTILSERVICE PR_TSS
+
+ #define TN_CON_IPUT_DETECT "iputsrv_detect"
+ #define PR_CON_IPUT_DETECT_S PR_TSS_S
+ #define PR_CON_IPUT_DETECT PR_TSS
+
+ #define TN_CON_IPUT_AUTH "iputsrv_auth"
+ #define PR_CON_IPUT_AUTH_S PR_TSS_S
+ #define PR_CON_IPUT_AUTH PR_TSS
+
+ #define TN_CON_IPUT_SERIAL "iputsrv_serial"
+ #define PR_CON_IPUT_SERIAL_S PR_TSS_S
+ #define PR_CON_IPUT_SERIAL PR_TSS
+
+ #define TN_CON_IPUT_USB_1 "iputsrv_usb1"
+ #define PR_CON_IPUT_USB_1_S PR_TSS_S
+ #define PR_CON_IPUT_USB_1 PR_TSS
+
+ #define TN_CON_IPUT_USB_2 "iputsrv_usb2"
+ #define PR_CON_IPUT_USB_2_S PR_TSS_S
+ #define PR_CON_IPUT_USB_2 PR_TSS
+
+ #define TN_CON_IPUT_SPP "iputsrv_spp"
+ #define PR_CON_IPUT_SPP_S PR_TSS_S
+ #define PR_CON_IPUT_SPP PR_TSS
+
+#define MN__CWORD57_DTSERVICE "_CWORD57_DTService"
+#define PR__CWORD57_DTSERVICE_S PR_TSS_S
+#define PR__CWORD57_DTSERVICE PR_TSS
+
+ #define TN_CON_IPDT_SERIAL "ipdtsrv_serial"
+ #define PR_CON_IPDT_SERIAL_S PR_TSS_S
+ #define PR_CON_IPDT_SERIAL PR_TSS
+
+ #define TN_CON_IPDT_USB_1 "ipdtsrv_usb1"
+ #define PR_CON_IPDT_USB_1_S PR_TSS_S
+ #define PR_CON_IPDT_USB_1 PR_TSS
+
+ #define TN_CON_IPDT_USB_2 "ipdtsrv_usb2"
+ #define PR_CON_IPDT_USB_2_S PR_TSS_S
+ #define PR_CON_IPDT_USB_2 PR_TSS
+
+ #define TN_CON_IPDT_SPP "ipdtsrv_spp"
+ #define PR_CON_IPDT_SPP_S PR_TSS_S
+ #define PR_CON_IPDT_SPP PR_TSS
+
+#define MN_WEBDAVMGR "webdavmgr"
+#define PR_WEBDAVMGR_S PR_TSS_S
+#define PR_WEBDAVMGR PR_TSS
+
+#define MN_DISPLAYSERVICE "DisplayService"
+#define PR_DISPLAYSERVICE_S PR_TSS_S
+#define PR_DISPLAYSERVICE PR_TSS
+
+#define MN_ENFORMSERVICE "EnformService"
+#define PR_ENFORMSERVICE_S PR_TSS_S
+#define PR_ENFORMSERVICE PR_TSS
+
+#define MN_CONNUTIL "ConnUtil"
+#define PR_CONNUTIL_S PR_TSS_S
+#define PR_CONNUTIL PR_TSS
+
+#define MN_CONNUTILSLAVE "ConnUtilSlave"
+#define PR_CONNUTILSLAVE_S PR_TSS_S
+#define PR_CONNUTILSLAVE PR_TSS
+
+#define MN_CONNMGR "ConnMgr"
+#define PR_CONNMGR_S PR_TSS_S
+#define PR_CONNMGR PR_TSS
+
+#define MN_SERVICEFLAGMGR "ServiceFlagMgr"
+#define PR_SERVICEFLAGMGR_S PR_TSS_S
+#define PR_SERVICEFLAGMGR PR_TSS
+
+//exec from VR
+#define MN_VRMANAGER "vrmanager"
+#define PR_VRMANAGER_S PR_TSS_S
+#define PR_VRMANAGER PR_TSS
+
+ #define TN_VR_WORKER "VrWorkerThread"
+ #define PR_VR_WORKER_S PR_TSS_S
+ #define PR_VR_WORKER PR_TSS
+
+ #define TN_VBT_PROPDISPATCH "PropDispatchThread"
+ #define PR_VBT_PROPDISPATCH_S PR_TSS_S
+ #define PR_VBT_PROPDISPATCH PR_TSS
+
+ #define TN_VBT_PROPRESPONSE "PropResponseThread"
+ #define PR_VBT_PROPRESPONSE_S PR_TSS_S
+ #define PR_VBT_PROPRESPONSE PR_TSS
+
+ #define TN_VBT_PROPAUDIOPLAY "PropAudioPlayThread"
+ #define PR_VBT_PROPAUDIOPLAY_S PR_TSS_S
+ #define PR_VBT_PROPAUDIOPLAY PR_TSS
+
+ #define TN_VBT_PROPAUDIORECORD "PropAudioRecordThread"
+ #define PR_VBT_PROPAUDIORECORD_S PR_TSS_S
+ #define PR_VBT_PROPAUDIORECORD PR_TSS
+
+ #define TN_VBT_MAINTHREADPRIO "MainThreadPriority"
+ #define PR_VBT_MAINTHREADPRIO_S PR_TSS_S
+ #define PR_VBT_MAINTHREADPRIO PR_TSS
+
+ #define TN_VBT_ASRMANAGERGRAMMAR "AsrManagerGrammarGenerationThread"
+ #define PR_VBT_ASRMANAGERGRAMMAR_S PR_TSS_S
+ #define PR_VBT_ASRMANAGERGRAMMAR PR_TSS
+
+ #define TN_VBT_ASRVOCONRECO "AsrVoconRecoProcessThread"
+ #define PR_VBT_ASRVOCONRECO_S PR_TSS_S
+ #define PR_VBT_ASRVOCONRECO PR_TSS
+
+ #define TN_VBT_BROADCASTREAD "BroadCastReadThread"
+ #define PR_VBT_BROADCASTREAD_S PR_TSS_S
+ #define PR_VBT_BROADCASTREAD PR_TSS
+
+ #define TN_VBT_FILEAGGREGATOR "FileAggregatorDecompressThread"
+ #define PR_VBT_FILEAGGREGATOR_S PR_TSS_S
+ #define PR_VBT_FILEAGGREGATOR PR_TSS
+
+ #define TN_VBT_HTTPCURLREQUEST "HttpCurlRequestThread"
+ #define PR_VBT_HTTPCURLREQUEST_S PR_TSS_S
+ #define PR_VBT_HTTPCURLREQUEST PR_TSS
+
+ #define TN_VBT_HTTPDRIVERREQUEST "HttpDriverRequestThread"
+ #define PR_VBT_HTTPDRIVERREQUEST_S PR_TSS_S
+ #define PR_VBT_HTTPDRIVERREQUEST PR_TSS
+
+ #define TN_VBT_HTTPREQUESTSESSION "HttpRequestSessionStateThread"
+ #define PR_VBT_HTTPREQUESTSESSION_S PR_TSS_S
+ #define PR_VBT_HTTPREQUESTSESSION PR_TSS
+
+ #define TN_VBT_PLAYMGRSTOPASYNC "PlayMgrStopAsyncStreamThread"
+ #define PR_VBT_PLAYMGRSTOPASYNC_S PR_TSS_S
+ #define PR_VBT_PLAYMGRSTOPASYNC PR_TSS
+
+ #define TN_VBT_RESOURCEMGRQUEUE "ResourceMgrQueueHandlerThread"
+ #define PR_VBT_RESOURCEMGRQUEUE_S PR_TSS_S
+ #define PR_VBT_RESOURCEMGRQUEUE PR_TSS
+
+ #define TN_VBT_SMURFDRIVERTIMEOUT "SmurfDriverTimeoutThread"
+ #define PR_VBT_SMURFDRIVERTIMEOUT_S PR_TSS_S
+ #define PR_VBT_SMURFDRIVERTIMEOUT PR_TSS
+
+ #define TN_NVR_NVRMAIN "NvrMainThread"
+ #define PR_NVR_NVRMAIN_S PR_TSS_S
+ #define PR_NVR_NVRMAIN PR_TSS
+
+ #define TN_NVR_NVRRECO "NvrRecoThread"
+ #define PR_NVR_NVRRECO_S PR_TSS_S
+ #define PR_NVR_NVRRECO PR_TSS
+
+ #define TN_NVR_NVRDICT "NvrDictThread"
+ #define PR_NVR_NVRDICT_S PR_TSS_S
+ #define PR_NVR_NVRDICT PR_TSS
+
+ #define TN_NVR_NVRENC "NvrEncThread"
+ #define PR_NVR_NVRENC_S PR_TSS_S
+ #define PR_NVR_NVRENC PR_TSS
+
+//exec from VehicleInfo
+#define MN_VEHICLEINFOSERVICE "VehicleInfoSrv"
+#define PR_VEHICLEINFOSERVICE_S PR_TSS_S
+#define PR_VEHICLEINFOSERVICE PR_TSS
+
+//exec from _CWORD58_
+#define MN__CWORD58_SERVICE "_CWORD58_Service"
+#define PR__CWORD58_SERVICE_S PR_TSS_S
+#define PR__CWORD58_SERVICE PR_TSS
+
+#define MN__CWORD8_SRV "_CWORD8_Srv"
+#define PR__CWORD8_SRV_S PR_TSS_S
+#define PR__CWORD8_SRV PR_TSS
+
+#define MN_SPCSERVICE "SPCService"
+#define PR_SPCSERVICE_S PR_TSS_S
+#define PR_SPCSERVICE PR_TSS
+
+#define MN_LOCALSERVERPROXY "LSP"
+#define PR_LOCALSERVERPROXY_S PR_TSS_S
+#define PR_LOCALSERVERPROXY PR_TSS
+
+#define MN_EOMSERVICE "eOMService"
+#define PR_EOMSERVICE_S PR_TSS_S
+#define PR_EOMSERVICE PR_TSS
+
+//exec from _CWORD89_
+#define MN__CWORD89_SERVICE "_CWORD89_Service"
+#define PR__CWORD89_SERVICE_S PR_TSS_S
+#define PR__CWORD89_SERVICE PR_TSS
+
+//exec from NetworkManager
+#define MN_NETWORKMANAGER "NetworkManager"
+#define PR_NETWORKMANAGER_S PR_TSS_S
+#define PR_NETWORKMANAGER PR_TSS
+
+ #define TN_NWM_TH_CMDRCV "NWM_Th_CmdRcv"
+ #define PR_NWM_TH_CMDRCV_S PR_TSS_S
+ #define PR_NWM_TH_CMDRCV PR_TSS
+
+ #define TN_NWM_TH_PROCMGR "NWM_Th_ProcMgr"
+ #define PR_NWM_TH_PROCMGR_S PR_TSS_S
+ #define PR_NWM_TH_PROCMGR PR_TSS
+
+ #define TN_NWM_TH_CMDPROC "NWM_Th_CmdProc"
+ #define PR_NWM_TH_CMDPROC_S PR_TSS_S
+ #define PR_NWM_TH_CMDPROC PR_TSS
+
+ #define TN_NWM_TH_DNSMGR "NWM_Th_DnsMgr"
+ #define PR_NWM_TH_DNSMGR_S PR_TSS_S
+ #define PR_NWM_TH_DNSMGR PR_TSS
+
+ #define TN_NWM_TH_DHCPD "NWM_Th_Dhcpd"
+ #define PR_NWM_TH_DHCPD_S PR_TSS_S
+ #define PR_NWM_TH_DHCPD PR_TSS
+
+// DCM Service
+#define MN_DCMSERVICE "DCMService"
+#define PR_DCMSERVICE_S PR_TSS_S
+#define PR_DCMSERVICE PR_TSS
+
+ #define TN_DCM_TH_CMDRCV "DCM_Th_CmdRcv"
+ #define PR_DCM_TH_CMDRCV_S PR_TSS_S
+ #define PR_DCM_TH_CMDRCV PR_TSS
+
+ #define TN_DCM_TH_MSGRCV "DCM_Th_MsgRcv"
+ #define PR_DCM_TH_MSGRCV_S PR_TSS_S
+ #define PR_DCM_TH_MSGRCV PR_TSS
+
+ #define TN_DCM_TH_TIMER "DCM_Th_Timer"
+ #define PR_DCM_TH_TIMER_S PR_TSS_S
+ #define PR_DCM_TH_TIMER PR_TSS
+
+// HELP Service
+#define MN_HELPSERVICE "HELPService"
+#define PR_HELPSERVICE_S PR_TSS_S
+#define PR_HELPSERVICE PR_TSS
+
+//exec from RemoteService
+#define MN_REMOTESERVICE "RemoteService"
+#define PR_REMOTESERVICE_S PR_TSS_S
+#define PR_REMOTESERVICE PR_TSS
+
+ #define TN_RS_TH_CANCTRL "RS_Th_CANCtrl"
+ #define PR_RS_TH_CANCTRL_S PR_TSS_S
+ #define PR_RS_TH_CANCTRL PR_TSS
+
+ #define TN_RS_TH_DISPCTRL "RS_Th_DispCtrl"
+ #define PR_RS_TH_DISPCTRL_S PR_TSS_S
+ #define PR_RS_TH_DISPCTRL PR_TSS
+
+ #define TN_RS_TH_PARTSCTRL "RS_Th_PartsCtrl"
+ #define PR_RS_TH_PARTSCTRL_S PR_TSS_S
+ #define PR_RS_TH_PARTSCTRL PR_TSS
+
+ #define TN_RS_TH_HTTPPROC "RS_Th_HttpProc"
+ #define PR_RS_TH_HTTPPROC_S PR_TSS_S
+ #define PR_RS_TH_HTTPPROC PR_TSS
+
+//exec from VR
+#define MN_CONTENTSMGR "contentsmgr"
+#define PR_CONTENTSMGR_S PR_TSS_S
+#define PR_CONTENTSMGR PR_TSS
+
+ #define TN_CDB_CONTENDB "contendbThread"
+ #define PR_CDB_CONTENDB_S PR_TSS_S
+ #define PR_CDB_CONTENDB PR_TSS
+
+/* COMARB Service */
+#define MN_NW_COMARB "ComArbService"
+#define PR_NW_COMARB_S PR_TSS_S
+#define PR_NW_COMARB PR_TSS
+
+/* ASND_FRthread */
+#define MN_ASND_FRTH "ASND_FRthread"
+#define PR_ASND_FRTH_S PR_SND_VCETRFCTRL_S
+#define PR_ASND_FRTH PR_SND_VCETRFCTRL
+
+/* MLINK Service */
+#define MN_MLINKSERVICE "MlinkService"
+#define PR_MLINKSERVICE_S PR_TSS_S
+#define PR_MLINKSERVICE PR_TSS
+
+#define MN__CWORD74_SERVICE "_CWORD74_Service"
+#define PR__CWORD74_SERVICE_S PR_TSS_S
+#define PR__CWORD74_SERVICE PR_TSS
+#endif //__AGL_THREAD_H__
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_types_obsoluted.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_types_obsoluted.h
new file mode 100644
index 00000000..0e427241
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_types_obsoluted.h
@@ -0,0 +1,132 @@
+/*
+ * @copyright Copyright (c) 2017-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _AGL_TYPES_OBSOLUTED_H_
+#define _AGL_TYPES_OBSOLUTED_H_
+
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <linux/types.h>
+#include <stdio.h>
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include <errno.h>
+
+typedef u_int64_t _Uint64t;
+typedef int64_t _Int64t;
+typedef u_int32_t _Uint32t;
+typedef int32_t _Int32t;
+typedef u_int16_t _Uint16t;
+typedef int16_t _Int16t;
+typedef u_int8_t _Uint8t;
+typedef int8_t _Int8t;
+
+typedef _Int8t _int8;
+typedef _Uint8t _uint8;
+typedef _Int16t _int16;
+typedef _Uint16t _uint16;
+typedef _Int32t _int32;
+typedef _Uint32t _uint32;
+typedef _Int64t _int64;
+typedef _Uint64t _uint64;
+
+
+#ifdef AGL_PosixBasedOS001LEGACY_USED
+#define AGL_PROTECTION_NO_CACHE 0x00000800
+#define AGL_MAP_NON_INIT 0x00004000
+#define AGL_MAP_PHYSICAL 0x00010000
+#define AGL_NON_FD (-1)
+#define AGL_MAP_DEV_FAILED ((unsigned long)MAP_FAILED)
+#endif /*AGL_PosixBasedOS001LEGACY_USED*/
+
+#define EOK 0
+
+#ifdef AGL_PosixBasedOS001LEGACY_USED
+#define agl_io_in32(_x) *(volatile unsigned long *)(_x)
+#define agl_io_out32(_x, _y) {*(volatile unsigned long *)((void*)(_x)) = (_y);}
+#endif /*AGL_PosixBasedOS001LEGACY_USED*/
+
+
+
+#define __AGLDD_TYPEDEF_I64
+typedef int64_t i64; /* 8-byte signed integer */
+
+#define __AGLDD_TYPEDEF_U64
+typedef uint64_t u64; /* 8-byte unsigned integer */
+
+#define __AGLDD_TYPEDEF_U32
+typedef uint32_t u32; /* 4-byte unsigned integer */
+
+#define __AGLDD_TYPEDEF_U16
+typedef uint16_t u16; /* 2-byte unsigned integer */
+
+#define __AGLDD_TYPEDEF_I16
+typedef int16_t i16; /* 2-byte signed integer */
+
+#define __AGLDD_TYPEDEF_U8
+typedef uint8_t u8; /* 1-byte unsigned integer */
+
+#define __AGLDD_TYPEDEF_I8
+typedef int8_t i8; /* 1-byte signed integer */
+
+#define __AGLDD_TYPEDEF_INT8
+typedef int8_t INT8;
+
+#define __AGLDD_TYPEDEF_INT16
+typedef int16_t INT16;
+
+#define __AGLDD_TYPEDEF_INT32
+typedef int32_t INT32;
+
+#define __AGLDD_TYPEDEF_INT64
+typedef int64_t INT64;
+
+#define __AGLDD_TYPEDEF_UINT8
+typedef uint8_t UINT8;
+
+#define __AGLDD_TYPEDEF_UINT16
+typedef uint16_t UINT16;
+
+#define __AGLDD_TYPEDEF_UINT32
+typedef uint32_t UINT32;
+
+#define __AGLDD_TYPEDEF_UINT64
+typedef uint64_t UINT64;
+
+#ifndef __KERNEL__
+#if !defined __WIN_TYPEDEF_BOOL
+#define __AGLDD_TYPEDEF_BOOL
+typedef uint32_t BOOL;
+#endif
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+// AGL ASSERT MACRO
+#define AGL_ASSERT_NOT_TESTED() \
+do {fprintf(stderr, "[%s][%s][%s:%d]AGL_ASSERT_NOT_TESTED.\n", \
+ program_invocation_short_name, __func__, __FILE__, __LINE__);} while(0)
+
+#endif /* _AGL_TYPES_OBSOLUTED_H_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_wakeup_order.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_wakeup_order.h
new file mode 100644
index 00000000..006f1bc4
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/agl_wakeup_order.h
@@ -0,0 +1,27 @@
+/*
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _AGL_WAKEUP_ORDER_H_
+#define _AGL_WAKEUP_ORDER_H_
+
+//This header define Wakeup Order Name
+//The max string length is 31
+
+#define WON_DEFAULT "DEFAULT"
+
+#endif
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/aglpath.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/aglpath.h
new file mode 100644
index 00000000..e278fbf9
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/aglpath.h
@@ -0,0 +1,200 @@
+/*
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * common path
+ */
+
+/* This definitions are matched as following document.
+ * eMMC Partition Specification V1.28
+ */
+
+#ifndef _AGL_PATH_H_
+#define _AGL_PATH_H_
+
+/* Common path */
+
+#define PF_ROOT "/"
+#define PF_NV PF_ROOT"nv/"
+#define PF_VAR PF_ROOT"var/"
+#define PF_TMP PF_ROOT"tmp/"
+#define PF_USR PF_ROOT"usr/"
+#define PF_MNT PF_ROOT"mnt/"
+#define PF_RAMD PF_ROOT"ramd/"
+#define PF_ENVPARAM PF_ROOT"env_param/"
+#define PF_NVSYSTEM PF_ROOT"nv_system/"
+
+#define PF_SHM PF_TMP"shm/"
+#define PF_SHARE PF_USR"share/"
+#define PF_P_SHARE PF_USR"agl/share/"
+
+#define PF_SYS_BS PF_NVSYSTEM"sys_bs/"
+
+#define PF_SYS_BACKUP PF_NV"backup/"
+#define PF_SYS_NPP PF_NV"npp/"
+
+#define PF_NV_REPRO PF_NV"repro/"
+#define PF_NV_LOG PF_NV"log/"
+#define PF_NV_VUI PF_NV"vui/"
+#define PF_NV_NAVI PF_NV"navi/"
+#define PF_NV_TFF PF_NV"tff/"
+#define PF_NV_FULLBROWSER PF_NV"fullbrowser/"
+#define PF_NV__CWORD8_ PF_NV"_CWORD8_/"
+#define PF_NV_MANUAL PF_NV"manual/"
+#define PF_NV_LOG2 PF_NV"log2/"
+#define PF_NV_PTDATA PF_NV"ptdata/"
+
+#define PF_NV_NORACCESS PF_NV_PTDATA"noraccess/"
+#define PF_NV_SEC PF_NV_PTDATA"sec/"
+#define PF_NVPT_GRAPHICS PF_NV_PTDATA"graphics/"
+#define PF_NVPT_HMI PF_NV_PTDATA"hmi/"
+#define PF_NVPT_VEHICLE PF_NV_PTDATA"vehicle/"
+#define PF_NVPT_CONNECTIVITY PF_NV_PTDATA"connectivity/"
+#define PF_NVPT_WLAN PF_NV_PTDATA"wlan/"
+#define PF_NVPT_SI PF_NV_PTDATA"si/"
+
+#define PF_NVLOG_AGLLOG PF_NV_LOG"agllog/"
+#define PF_NVLOG_WORK PF_NV_LOG"work/"
+#define PF_NVLOG_AWLOG PF_NV_LOG2"awlog/"
+#define PF_NVLOG_CORE PF_NV_LOG2"core/"
+
+
+/* Component domain */
+
+#define DOM_GRAPHICS "graphics"
+#define DOM_SOUND "sound"
+#define DOM_NS_STORAGE "ns_storage"
+#define DOM_NS_IMAGESTORAGE "ns_imagestorage"
+#define DOM_BS "bs"
+#define DOM__CWORD24_ "_CWORD24_"
+#define DOM_HMI "hmi"
+#define DOM_WLAN "wlan"
+#define DOM_BT "bt"
+#define DOM_CINEMO "cinemo"
+#define DOM_MEDIASRV "mediasrv"
+#define DOM_CONTENTMGR "contentmgr"
+#define DOM_USBAUDIO "usbaudio"
+#define DOM_CDDVD "cddvd"
+#define DOM_AV "av"
+#define DOM_DATASRV "datasrv"
+#define DOM_RADIO "radio"
+#define DOM_BTOOTH "Bluetooth"
+#define DOM__CWORD57_ "_CWORD57_"
+#define DOM_REMOTESERVICE "remoteservice"
+#define DOM_CONNECTIVITY "connectivity"
+#define DOM_NAVIGATION "navigation"
+#define DOM_VEHICLE "vehicle"
+#define DOM_ROMACCESS "romaccess"
+#define DOM_AUDIOMGR "audiomgr"
+#define DOM_BACKUP "backup"
+#define DOM_NPP "npp"
+
+#define DOM_DCMSERVICE "dcmservice"
+#define DOM_NETWORKMANAGER "NetworkManager"
+
+/* Others */
+#define DOM_AGLLOG "agllog"
+#define DOM_AWLOG "awlog"
+#define DOM_WORK "work"
+#define DOM_CORE "core"
+
+#define DOM_NORACCESS "noraccess"
+#define DOM_SEC "sec"
+#define DOM_DIAG "diag"
+
+
+/* For WebDAV */
+
+#define PF_EXP_INTR PF_NV"export/Internal/"
+#define PF_EXPINT_AUDIO PF_EXP_INTR"Audio/"
+#define PF_EXPINT_DATASERV PF_EXP_INTR"DataService/"
+#define PF_EXPINT_SCREENCAP PF_EXP_INTR"ScreenCapture/"
+#define PF_EXPINT_REPRO PF_EXP_INTR"Repro/"
+#define PF_EXPINT_VEHICLEINFO PF_EXP_INTR"VehicleInfoDraw/"
+#define PF_EXPINT_VEHICLEPARA PF_EXP_INTR"VehicleParameter/"
+#define PF_EXPINT_VR PF_EXP_INTR"VR/"
+#define PF_EXPINT_NAVI PF_EXP_INTR"Navi/"
+#define PF_EXPINT_TFF PF_EXP_INTR"TFF/"
+#define PF_EXPINT_OSS PF_EXP_INTR"OSS/"
+#define PF_EXPINT_SMARTPHONE PF_EXP_INTR"Smartphone/"
+
+/* For RAMD */
+#define PF_RAMD_LOG PF_RAMD"log/"
+#define PF_RAMD_BKUP PF_RAMD"bkup/"
+
+#define PF_RAMD_AWLOG PF_RAMD_LOG"awlog/"
+#define PF_RAMD_AGLLOG PF_RAMD_LOG"agllog/"
+
+#define PF_RAMD_COMMUNICATION PF_RAMD_AGLLOG"communication/"
+#define PF_RAMD_RADIO PF_RAMD_AGLLOG"radio/"
+#define PF_RAMD_CONNECTIVITY PF_RAMD_AGLLOG"connectivity/"
+#define PF_RAMD_DIAG PF_RAMD_AGLLOG"diag/"
+#define PF_RAMD_SYSLOG PF_RAMD_AGLLOG"syslog/"
+#define PF_RAMD_APPFW PF_RAMD_AGLLOG"appfw/"
+
+
+
+/* For Loopback */
+#define PF_MNTLOOP PF_ROOT"mnt_loop/"
+
+#define PF_MNTLOOP_AW0 PF_MNTLOOP"loopaw0/"
+#define PF_MNTLOOP_AW1 PF_MNTLOOP"loopaw1/"
+#define PF_MNTLOOP_AW2 PF_MNTLOOP"loopaw2/"
+#define PF_MNTLOOP_AW3 PF_MNTLOOP"loopaw3/"
+#define PF_MNTLOOP_AW4 PF_MNTLOOP"loopaw4/"
+#define PF_MNTLOOP_AW5 PF_MNTLOOP"loopaw5/"
+#define PF_MNTLOOP_AW6 PF_MNTLOOP"loopaw6/"
+#define PF_MNTLOOP_AW7 PF_MNTLOOP"loopaw7/"
+#define PF_MNTLOOP_AW8 PF_MNTLOOP"loopaw8/"
+#define PF_MNTLOOP_AW9 PF_MNTLOOP"loopaw9/"
+#define PF_MNTLOOP_AW10 PF_MNTLOOP"loopaw10/"
+#define PF_MNTLOOP_AW11 PF_MNTLOOP"loopaw11/"
+#define PF_MNTLOOP_AW12 PF_MNTLOOP"loopaw12/"
+#define PF_MNTLOOP_AW13 PF_MNTLOOP"loopaw13/"
+#define PF_MNTLOOP_AW14 PF_MNTLOOP"loopaw14/"
+#define PF_MNTLOOP_AW15 PF_MNTLOOP"loopaw15/"
+#define PF_MNTLOOP_AW16 PF_MNTLOOP"loopaw16/"
+#define PF_MNTLOOP_AW17 PF_MNTLOOP"loopaw17/"
+#define PF_MNTLOOP_AW18 PF_MNTLOOP"loopaw18/"
+#define PF_MNTLOOP_AW19 PF_MNTLOOP"loopaw19/"
+#define PF_MNTLOOP_AW20 PF_MNTLOOP"loopaw20/"
+
+/* For Tmpfs mount */
+#define PF_MNTTMPFS PF_ROOT"mnt_tmpfs/"
+#define PF_MNTTMPFS_AW0 PF_MNTTMPFS"tmpfsaw0/"
+
+
+/* DONT USE FOLLOWING DEFINITION !! */
+/* These will be deleted in the future */
+
+#define PF_NV_P3 PF_NV"p3/"
+#define PF_NV_P4 PF_NV"p4/"
+#define PF_NV_P5 PF_NV"p5/"
+#define PF_NV_P6 PF_NV"p6/"
+
+#define PF_NPP PF_NV_P3"npp/"
+#define PF_BS PF_NV_P3"bs/"
+
+#define DOM__CWORD8_ "_CWORD8_"
+#define DOM_BLUETOOTH "bluetooth"
+#define DOM_VR "vr"
+#define DOM_ENTUNE "entune"
+
+#define PF_RAMD_GRAPHICS PF_RAMD_BKUP"graphics/"
+
+#define PF_EXPINT_TRAFFIC PF_EXP_INTR"Traffic/"
+
+#endif/* _AGL_PATH_H_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/sm_launch_conf.h b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/sm_launch_conf.h
new file mode 100644
index 00000000..d444eb0f
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/include/sm_launch_conf.h
@@ -0,0 +1,1385 @@
+/*
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __AGL_THREAD_H__
+#define __AGL_THREAD_H__
+
+//MACRO
+#define PR_TSS_S "0"
+#define PR_TSS 0
+
+/*
+ Main thread name. It need to be same as service name in sm_launch.xml or tskm_launch.xml
+ Max name length is 15
+ #define MN_XXXXX "MainName"
+
+ Thread name
+ Max name length is 15
+ #define TN_XXXXX "ThreadName"
+
+ Thread priority 0:TSS 1-99:FIFO
+ #define PR_XXXXX_S "(0-99)" //for xml
+ #define PR_XXXXX 0-99 //for program
+*/
+
+#define MN_SS_SYSMANAGER "SS_SysManager"
+#define PR_SS_SYSMANAGER_S "0"
+#define PR_SS_SYSMANAGER (0)
+
+ #define TN_SMHEARTBEAT "SM.Heartbeat"
+ #define PR_SMHEARTBEAT_S "0"
+ #define PR_SMHEARTBEAT (0)
+
+ #define TN_SMPROCLAUNCH "SM.ProcLaunch"
+ #define PR_SMPROCLAUNCH_S "0"
+ #define PR_SMPROCLAUNCH (0)
+
+ #define TN_SMLOWMEMMON "SM.LowMemMon"
+ #define PR_SMLOWMEMMON_S "0"
+ #define PR_SMLOWMEMMON (0)
+
+ #define TN_LOGGERRTIME "LoggerRtime"
+ #define PR_LOGGERRTIME_S PR_TSS_S
+ #define PR_LOGGERRTIME PR_TSS
+
+
+//======= exec from system manager =============
+#define MN_NS_SHAREDMEM "NS_SharedMem"
+#define PR_NS_SHAREDMEM_S "0"
+#define PR_NS_SHAREDMEM (0)
+
+
+#define MN_NS_NPPSERVICE "NS_NPPService"
+#define PR_NS_NPPSERVICE_S "0"
+#define PR_NS_NPPSERVICE (0)
+
+ #define TN_NS_NPPREADWKR "NS_NPPReadWkr"
+ #define PR_NS_NPPREADWKR_S "0"
+ #define PR_NS_NPPREADWKR (0)
+
+ #define TN_NS_NPPWRITEWKR "NS_NPPWriteWkr"
+ #define PR_NS_NPPWRITEWKR_S "0"
+ #define PR_NS_NPPWRITEWKR (0)
+
+ #define TN_NS_NPPIPWKR "NS_NPPIPWkr"
+ #define PR_NS_NPPIPWKR_S "0"
+ #define PR_NS_NPPIPWKR (0)
+
+#define MN_NS_BACKUPMGR "NS_BackupMgr"
+#define PR_NS_BACKUPMGR_S "0"
+#define PR_NS_BACKUPMGR (0)
+
+ #define TN_NS_BKUPNAND "NS_BkupNAND"
+ #define PR_NS_BKUPNAND_S "0"
+ #define PR_NS_BKUPNAND (0)
+
+ #define TN_NS_BKUPDELAY "NS_BkupDelay"
+ #define PR_NS_BKUPDELAY_S "0"
+ #define PR_NS_BKUPDELAY (0)
+
+#define MN_SS_DEVDETECTSRV "SS_DevDetectSrv"
+#define PR_SS_DEVDETECTSRV_S "0"
+#define PR_SS_DEVDETECTSRV (0)
+
+ #define TN_SS_DETECT_USB "SS_Detect_USB"
+ #define PR_SS_DETECT_USB_S "0"
+ #define PR_SS_DETECT_USB (0)
+
+ #define TN_SS_DETECT_SD "SS_Detect_SD"
+ #define PR_SS_DETECT_SD_S "0"
+ #define PR_SS_DETECT_SD (0)
+
+ #define TN_SS_MONITOR_OVC "SS_Monitor_OVC"
+ #define PR_SS_MONITOR_OVC_S "0"
+ #define PR_SS_MONITOR_OVC (0)
+
+#define MN_SS_LOGGERSRV "SS_LoggerSrv"
+#define PR_SS_LOGGERSRV_S PR_TSS_S
+#define PR_SS_LOGGERSRV PR_TSS
+
+ #define TN_PDGLOGQUER "pdg.LogQueR"
+ #define PR_PDGLOGQUER_S PR_TSS_S
+ #define PR_PDGLOGQUER PR_TSS
+
+ #define TN_PDGTRANSQUER "pdg.TransQueR"
+ #define PR_PDGTRANSQUER_S PR_TSS_S
+ #define PR_PDGTRANSQUER PR_TSS
+
+ #define TN_PDGEVNTLOGQUE "pdg.EvntLogQue"
+ #define PR_PDGEVNTLOGQUE_S PR_TSS_S
+ #define PR_PDGEVNTLOGQUE PR_TSS
+
+ #define TN_SSLOGGERSTRAGE "SSLoggerStrage"
+ #define PR_SSLOGGERSTRAGE_S PR_TSS_S
+ #define PR_SSLOGGERSTRAGE PR_TSS
+
+ #define TN_PFDRECTHREAD "PFDRECThread"
+ #define PR_PFDRECTHREAD_S PR_TSS_S
+ #define PR_PFDRECTHREAD PR_TSS
+
+#define MN_PS_LOGGERSHADOW "PS_LoggerShadow"
+ #define PR_PSLOGGERSHADOW_S PR_TSS_S
+ #define PR_PSLOGGERSHADOW PR_TSS
+
+#define MN_UDEVD "udevd"
+#define PR_UDEVD_S "1"
+#define PR_UDEVD (1)
+
+#define MN_COMMUNICATION "Communication"
+#define PR_COMMUNICATION_S "0"
+#define PR_COMMUNICATION (0)
+
+ #define TN_DEV_SYSCOM_TMR "DEV_SYSCOM_TMR"
+ #define PR_DEV_SYSCOM_TMR_S "0"
+ #define PR_DEV_SYSCOM_TMR (0)
+
+ #define TN_DEV_SYSCOM_RCV "DEV_SYSCOM_RCV"
+ #define PR_DEV_SYSCOM_RCV_S "0"
+ #define PR_DEV_SYSCOM_RCV (0)
+
+ #define TN_DEV_SYSCOM_MAIN "DEV_SYSCOM_MAIN"
+ #define PR_DEV_SYSCOM_MAIN_S "0"
+ #define PR_DEV_SYSCOM_MAIN (0)
+
+ #define TN_TGWCOM "TGWCOM"
+ #define PR_TGWCOM_S "0"
+ #define PR_TGWCOM (0)
+
+ #define TN__CWORD83_ "_CWORD83_"
+ #define PR__CWORD83__S "0"
+ #define PR__CWORD83_ (0)
+
+ #define TN_CAN_COM_PROT "CAN_COM_PROT"
+ #define PR_CAN_COM_PROT_S "0"
+ #define PR_CAN_COM_PROT (0)
+
+#define MN_PS_PSMSHADOW "PS_PSMShadow"
+#define PR_PS_PSMSHADOW_S "0"
+#define PR_PS_PSMSHADOW (0)
+
+#define MN_COMMSH4A "CommSH4A"
+#define PR_COMMSH4A_S "0"
+#define PR_COMMSH4A (0)
+
+ #define TN_DEV_SH4A_SND "DEV_SH4ACOM_SND"
+ #define PR_DEV_SH4A_SND_S "0"
+ #define PR_DEV_SH4A_SND (0)
+
+ #define TN_DEV_SH4A_RCV "DEV_SH4ACOM_RCV"
+ #define PR_DEV_SH4A_RCV_S "0"
+ #define PR_DEV_SH4A_RCV (0)
+
+ #define TN_DEV_SH4A_MON "DEV_SH4ACOM_MON"
+ #define PR_DEV_SH4A_MON_S "0"
+ #define PR_DEV_SH4A_MON (0)
+
+#define MN_PS_COMMUSB "PS_CommUSB"
+#define PR_PS_COMMUSB_S "0"
+#define PR_PS_COMMUSB (0)
+
+ #define TN_COMMUSB_RCV "COMMUSB_RCV"
+ #define PR_COMMUSB_RCV_S "0"
+ #define PR_COMMUSB_RCV (0)
+
+ #define TN_COMMUSB_DIAG "COMMUSB_DIAG"
+ #define PR_COMMUSB_DIAG_S "0"
+ #define PR_COMMUSB_DIAG (0)
+
+#define MN_PS_CANGW_M "CANGW_M"
+#define PR_PS_CANGW_M_S PR_TSS_S
+#define PR_PS_CANGW_M PR_TSS
+
+ #define TN_CANGW_M_RCV "CANGW_M_RCV"
+ #define PR_CANGW_M_RCV_S PR_TSS_S
+ #define PR_CANGW_M_RCV PR_TSS
+
+ #define TN_CANGW_M_DIAG "CANGW_M_DIAG"
+ #define PR_CANGW_M_DIAG_S PR_TSS_S
+ #define PR_CANGW_M_DIAG PR_TSS
+
+#define MN_PS_CANGW_S "CANGW_S"
+#define PR_PS_CANGW_S_S PR_TSS_S
+#define PR_PS_CANGW_S PR_TSS
+
+ #define TN_CANGW_S_SND "CANGW_S_SND"
+ #define PR_CANGW_S_SND_S PR_TSS_S
+ #define PR_CANGW_S_SND PR_TSS
+
+ #define TN_CANGW_S_DIAG "CANGW_S_DIAG"
+ #define PR_CANGW_S_DIAG_S PR_TSS_S
+ #define PR_CANGW_S_DIAG PR_TSS
+
+#define MN_LANSERVER "LanServer"
+#define PR_LANSERVER_S "0"
+#define PR_LANSERVER (0)
+
+#define MN_PS_CDR "ps_cdr"
+#define PR_PS_CDR_S PR_TSS_S
+#define PR_PS_CDR PR_TSS
+
+ #define TN_PS_CDR_NBD "ps_cdr_nbd"
+ #define PR_PS_CDR_NBD_S PR_TSS_S
+ #define PR_PS_CDR_NBD PR_TSS
+
+ #define TN_PS_CDR_DOIT "ps_cdr_doit"
+ #define PR_PS_CDR_DOIT_S PR_TSS_S
+ #define PR_PS_CDR_DOIT PR_TSS
+
+ #define TN_PS_CDR_READ "ps_cdr_read"
+ #define PR_PS_CDR_READ_S PR_TSS_S
+ #define PR_PS_CDR_READ PR_TSS
+
+#define MN_POSITIONING "Positioning"
+#define PR_POSITIONING_S PR_TSS_S
+#define PR_POSITIONING PR_TSS
+
+ #define TN_POSITIONING_GPS_MAIN "POS_Main"
+ #define PR_POSITIONING_GPS_MAIN_S PR_TSS_S
+ #define PR_POSITIONING_GPS_MAIN PR_TSS
+
+ #define TN_POSITIONING_GPS_RECV "POS_Gps_Recv"
+ #define PR_POSITIONING_GPS_RECV_S PR_TSS_S
+ #define PR_POSITIONING_GPS_RECV PR_TSS
+
+ #define TN_POSITIONING_GPS "POS_Gps"
+ #define PR_POSITIONING_GPS_S PR_TSS_S
+ #define PR_POSITIONING_GPS PR_TSS
+
+ #define TN_POSITIONING_SENS "POS_Sens"
+ #define PR_POSITIONING_SENS_S PR_TSS_S
+ #define PR_POSITIONING_SENS PR_TSS
+
+ #define TN_POSITIONING_GPS_ROLOVR "POS_Gps_Rolovr"
+ #define PR_POSITIONING_GPS_ROLOVR_S PR_TSS_S
+ #define PR_POSITIONING_GPS_ROLOVR PR_TSS
+
+#define MN_CLOCK "clock"
+#define PR_CLOCK_S "0"
+#define PR_CLOCK (0)
+
+ #define TN_CLOCK_MNG "ClockMng"
+ #define PR_CLOCK_MNG_S "0"
+ #define PR_CLOCK_MNG (0)
+
+#define MN_VEHICLE "vehicle"
+#define PR_VEHICLE_S "0"
+#define PR_VEHICLE (0)
+
+ #define TN_VEHICLE_SENS "VehicleSens"
+ #define PR_VEHICLE_SENS_S "0"
+ #define PR_VEHICLE_SENS (0)
+
+ #define TN_LINE_SENS_DRV "LineSensDrv"
+ #define PR_LINE_SENS_DRV_S "0"
+ #define PR_LINE_SENS_DRV (0)
+
+#define MN_SS_POWERSERVICE "SS_PowerService"
+#define PR_SS_POWERSERVICE_S "0"
+#define PR_SS_POWERSERVICE (0)
+
+#define MN_SS_TASKMANAGER "SS_TaskManager"
+#define PR_SS_TASKMANAGER_S "0"
+#define PR_SS_TASKMANAGER (0)
+
+ #define TN_SS_TSKMTIMER "SS_TskmTimer"
+ #define PR_SS_TSKMTIMER_S "0"
+ #define PR_SS_TSKMTIMER (0)
+
+#define MN_SOUND "Sound"
+#define PR_SOUND_S "0"
+#define PR_SOUND (0)
+
+ #define TN_VG_SNDSRCMGR "VG_SNDSRCMGR"
+ #define PR_VG_SNDSRCMGR_S "0"
+ #define PR_VG_SNDSRCMGR (0)
+
+ #define TN_SND_INPUTCTRL "SND_INPUTCTRL"
+ #define PR_SND_INPUTCTRL_S "0"
+ #define PR_SND_INPUTCTRL (0)
+
+ #define TN_SND_DEVCTRL "SND_DEVCTRL"
+ #define PR_SND_DEVCTRL_S "0"
+ #define PR_SND_DEVCTRL (0)
+
+ #define TN_SND_VCETRFCTRL "SND_VCETRFCTRL"
+ #define PR_SND_VCETRFCTRL_S "0"
+ #define PR_SND_VCETRFCTRL (0)
+
+ #define TN_SND_VCETRFWRT1 "SND_VCETRFWRT1"
+ #define PR_SND_VCETRFWRT1_S "0"
+ #define PR_SND_VCETRFWRT1 (0)
+
+ #define TN_SND_VCETRFWRT2 "SND_VCETRFWRT2"
+ #define PR_SND_VCETRFWRT2_S "0"
+ #define PR_SND_VCETRFWRT2 (0)
+
+ #define TN_VG_SNDCTRL_BSCF "VG_SNDCTRL_BSCF"
+ #define PR_VG_SNDCTRL_BSCF_S "0"
+ #define PR_VG_SNDCTRL_BSCF (0)
+
+ #define TN_VG_SNDCTRL_BSCR "VG_SNDCTRL_BSCR"
+ #define PR_VG_SNDCTRL_BSCR_S "0"
+ #define PR_VG_SNDCTRL_BSCR (0)
+
+ #define TN_VG_SNDCTRL_ITRT "VG_SNDCTRL_ITRT"
+ #define PR_VG_SNDCTRL_ITRT_S "0"
+ #define PR_VG_SNDCTRL_ITRT (0)
+
+ #define TN_CVRS_OPRT_OUT_1 "CVRS_OPRT_OUT_1"
+ #define PR_CVRS_OPRT_OUT_1_S "0"
+ #define PR_CVRS_OPRT_OUT_1 (0)
+
+ #define TN_CVRS_OPRT_OUT_2 "CVRS_OPRT_OUT_2"
+ #define PR_CVRS_OPRT_OUT_2_S "0"
+ #define PR_CVRS_OPRT_OUT_2 (0)
+
+ #define TN_CVRS_OPRT_OUT_3 "CVRS_OPRT_OUT_3"
+ #define PR_CVRS_OPRT_OUT_3_S "0"
+ #define PR_CVRS_OPRT_OUT_3 (0)
+
+ #define TN_CVRS_OPRT_OUT_4 "CVRS_OPRT_OUT_4"
+ #define PR_CVRS_OPRT_OUT_4_S "0"
+ #define PR_CVRS_OPRT_OUT_4 (0)
+
+ #define TN_CVRS_OPRT_IN_1 "CVRS_OPRT_IN_1"
+ #define PR_CVRS_OPRT_IN_1_S "0"
+ #define PR_CVRS_OPRT_IN_1 (0)
+
+ #define TN_CVRS_OPRT_IN_2 "CVRS_OPRT_IN_2"
+ #define PR_CVRS_OPRT_IN_2_S "0"
+ #define PR_CVRS_OPRT_IN_2 (0)
+
+ #define TN_CVRS_OPRT_IN_3 "CVRS_OPRT_IN_3"
+ #define PR_CVRS_OPRT_IN_3_S "0"
+ #define PR_CVRS_OPRT_IN_3 (0)
+
+ #define TN_CVRS_OPRT_IN_4 "CVRS_OPRT_IN_4"
+ #define PR_CVRS_OPRT_IN_4_S "0"
+ #define PR_CVRS_OPRT_IN_4 (0)
+
+ #define TN_CVRS_OPRT_IN_5 "CVRS_OPRT_IN_5"
+ #define PR_CVRS_OPRT_IN_5_S "0"
+ #define PR_CVRS_OPRT_IN_5 (0)
+
+ #define TN_CVRS_OPRT_IN_6 "CVRS_OPRT_IN_6"
+ #define PR_CVRS_OPRT_IN_6_S "0"
+ #define PR_CVRS_OPRT_IN_6 (0)
+
+ #define TN_CVRS_OPRT_IN_7 "CVRS_OPRT_IN_7"
+ #define PR_CVRS_OPRT_IN_7_S "0"
+ #define PR_CVRS_OPRT_IN_7 (0)
+
+ #define TN_CVRS_OPRT_IN_8 "CVRS_OPRT_IN_8"
+ #define PR_CVRS_OPRT_IN_8_S "0"
+ #define PR_CVRS_OPRT_IN_8 (0)
+
+ #define TN_CVRS_OPRT_BS_I "CVRS_OPRT_BS_I"
+ #define PR_CVRS_OPRT_BS_I_S "0"
+ #define PR_CVRS_OPRT_BS_I (0)
+
+ #define TN_VR_NVR_RECO "VR_NVR_RECO"
+ #define PR_VR_NVR_RECO_S "0"
+ #define PR_VR_NVR_RECO (0)
+
+ #define TN_SND_ECNR "SND_ECNR"
+ #define PR_SND_ECNR_S "0"
+ #define PR_SND_ECNR (0)
+
+ #define TN_SNDAGENT_000 "SNDAGENT_000"
+ #define PR_SNDAGENT_000_S "0"
+ #define PR_SNDAGENT_000 (0)
+
+ #define TN_SNDAGENT_001 "SNDAGENT_001"
+ #define PR_SNDAGENT_001_S "0"
+ #define PR_SNDAGENT_001 (0)
+
+ #define TN_SNDAGENT_002 "SNDAGENT_002"
+ #define PR_SNDAGENT_002_S "0"
+ #define PR_SNDAGENT_002 (0)
+
+ #define TN_SNDAGENT_003 "SNDAGENT_003"
+ #define PR_SNDAGENT_003_S "0"
+ #define PR_SNDAGENT_003 (0)
+
+ #define TN_SNDAGENT_004 "SNDAGENT_004"
+ #define PR_SNDAGENT_004_S "0"
+ #define PR_SNDAGENT_004 (0)
+
+ #define TN_SNDAGENT_005 "SNDAGENT_005"
+ #define PR_SNDAGENT_005_S "0"
+ #define PR_SNDAGENT_005 (0)
+
+ #define TN_SNDAGENT_006 "SNDAGENT_006"
+ #define PR_SNDAGENT_006_S "0"
+ #define PR_SNDAGENT_006 (0)
+
+ #define TN_SNDAGENT_007 "SNDAGENT_007"
+ #define PR_SNDAGENT_007_S "0"
+ #define PR_SNDAGENT_007 (0)
+
+ #define TN_SNDAGENT_008 "SNDAGENT_008"
+ #define PR_SNDAGENT_008_S "0"
+ #define PR_SNDAGENT_008 (0)
+
+ #define TN_SNDAGENT_009 "SNDAGENT_009"
+ #define PR_SNDAGENT_009_S "0"
+ #define PR_SNDAGENT_009 (0)
+
+ #define TN_SNDAGENT_010 "SNDAGENT_010"
+ #define PR_SNDAGENT_010_S "0"
+ #define PR_SNDAGENT_010 (0)
+
+ #define TN_SNDAGENT_011 "SNDAGENT_011"
+ #define PR_SNDAGENT_011_S "0"
+ #define PR_SNDAGENT_011 (0)
+
+ #define TN_SNDAGENT_012 "SNDAGENT_012"
+ #define PR_SNDAGENT_012_S "0"
+ #define PR_SNDAGENT_012 (0)
+
+ #define TN_SNDAGENT_013 "SNDAGENT_013"
+ #define PR_SNDAGENT_013_S "0"
+ #define PR_SNDAGENT_013 (0)
+
+ #define TN_SNDAGENT_014 "SNDAGENT_014"
+ #define PR_SNDAGENT_014_S "0"
+ #define PR_SNDAGENT_014 (0)
+
+ #define TN_SNDAGENT_015 "SNDAGENT_015"
+ #define PR_SNDAGENT_015_S "0"
+ #define PR_SNDAGENT_015 (0)
+
+ #define TN_SNDAGENT_016 "SNDAGENT_016"
+ #define PR_SNDAGENT_016_S "0"
+ #define PR_SNDAGENT_016 (0)
+
+ #define TN_SNDAGENT_017 "SNDAGENT_017"
+ #define PR_SNDAGENT_017_S "0"
+ #define PR_SNDAGENT_017 (0)
+
+ #define TN_SNDAGENT_018 "SNDAGENT_018"
+ #define PR_SNDAGENT_018_S "0"
+ #define PR_SNDAGENT_018 (0)
+
+ #define TN_SNDAGENT_019 "SNDAGENT_019"
+ #define PR_SNDAGENT_019_S "0"
+ #define PR_SNDAGENT_019 (0)
+
+ #define TN_SNDAGENT_020 "SNDAGENT_020"
+ #define PR_SNDAGENT_020_S "0"
+ #define PR_SNDAGENT_020 (0)
+
+ #define TN_SNDAGENT_021 "SNDAGENT_021"
+ #define PR_SNDAGENT_021_S "0"
+ #define PR_SNDAGENT_021 (0)
+
+ #define TN_SNDAGENT_022 "SNDAGENT_022"
+ #define PR_SNDAGENT_022_S "0"
+ #define PR_SNDAGENT_022 (0)
+
+ #define TN_SNDAGENT_023 "SNDAGENT_023"
+ #define PR_SNDAGENT_023_S "0"
+ #define PR_SNDAGENT_023 (0)
+
+ #define TN_SNDAGENT_024 "SNDAGENT_024"
+ #define PR_SNDAGENT_024_S "0"
+ #define PR_SNDAGENT_024 (0)
+
+ #define TN_SNDAGENT_025 "SNDAGENT_025"
+ #define PR_SNDAGENT_025_S "0"
+ #define PR_SNDAGENT_025 (0)
+
+#define MN_SS_RESOURCEMGR "SS_ResourceMgr"
+#define PR_SS_RESOURCEMGR_S "0"
+#define PR_SS_RESOURCEMGR (0)
+
+ #define TN_RESOURCEHWDT "ResourceHWDT"
+ #define PR_RESOURCEHWDT_S "0"
+ #define PR_RESOURCEHWDT (0)
+
+#define MN_AS_AUDIOMANAGER "AS_AudioManager"
+#define PR_AS_AUDIOMANAGER_S PR_TSS_S
+#define PR_AS_AUDIOMANAGER PR_TSS
+
+ #define TN_AS_SOUNDBEEP "AS_SoundBeep"
+ #define PR_AS_SOUNDBEEP_S PR_TSS_S
+ #define PR_AS_SOUNDBEEP PR_TSS
+
+#define MN_GRAPHICS "Graphics"
+#define PR_GRAPHICS_S "0"
+#define PR_GRAPHICS (0)
+
+ #define TN_GR_MAIN_CTRL "Graphics_main"
+ #define PR_GR_MAIN_CTRL_S PR_TSS_S
+ #define PR_GR_MAIN_CTRL PR_TSS
+
+ #define TN_GR_SEQ_CTRL "Graphics_seq"
+ #define PR_GR_SEQ_CTRL_S PR_TSS_S
+ #define PR_GR_SEQ_CTRL PR_TSS
+
+ #define TN_GR_DEV_RCV_CTRL "Graphics_rcv"
+ #define PR_GR_DEV_RCV_CTRL_S PR_TSS_S
+ #define PR_GR_DEV_RCV_CTRL PR_TSS
+
+ #define TN_GR_VCAP1_CTRL "Graphics_cap1"
+ #define PR_GR_VCAP1_CTRL_S "0"
+ #define PR_GR_VCAP1_CTRL (0)
+
+ #define TN_GR_VCAP2_CTRL "Graphics_cap2"
+ #define PR_GR_VCAP2_CTRL_S "0"
+ #define PR_GR_VCAP2_CTRL (0)
+
+#define MN_VUPSERVICE "vupservice"
+#define PR_VUPSERVICE_S PR_TSS_S
+#define PR_VUPSERVICE PR_TSS
+
+#define MN_SS_UPDATESERVICE "UpdateService"
+#define PR_SS_UPDATESERVICE_S PR_TSS_S
+#define PR_SS_UPDATESERVICE PR_TSS
+
+ #define TN_UPSERVICE_VERI "t_update_veri"
+ #define PR_UPSERVICE_VERI_S PR_TSS_S
+ #define PR_UPSERVICE_VERI PR_TSS
+
+#define MN_NW_MICSERVICE "NW_MicService"
+#define PR_NW_MICSERVICE_S PR_TSS_S
+#define PR_NW_MICSERVICE PR_TSS
+
+#define MN_NS_LOCKMGR "LockMgr"
+#define PR_NS_LOCKMGR_S PR_TSS_S
+#define PR_NS_LOCKMGR PR_TSS
+
+#define MN_PS_SWITCHHANDLER "SwitchHandler"
+#define PR_PS_SWITCHHANDLER_S "0"
+#define PR_PS_SWITCHHANDLER (0)
+
+#define MN_SS_WINSYS "SS_WinSys"
+#define PR_SS_WINSYS_S "0"
+#define PR_SS_WINSYS 0
+
+#define MN_MODEMANAGER "modemanager"
+#define PR_MODEMANAGER_S PR_TSS_S
+#define PR_MODEMANAGER PR_TSS
+
+#define MN_BTSTACKMAIN "btstackmain"
+#define PR_BTSTACKMAIN_S PR_TSS_S
+#define PR_BTSTACKMAIN PR_TSS
+
+#define MN_MEDIASERVICE "MediaService"
+#define PR_MEDIASERVICE_S PR_TSS_S
+#define PR_MEDIASERVICE PR_TSS
+
+// REPRO START
+#define MN_REPROSERVICE "ReproService"
+#define PR_REPROSERVICE_S PR_TSS_S
+#define PR_REPROSERVICE PR_TSS
+
+ #define TN_REPROSEQUENCER "RPRS_Sequencer"
+ #define PR_REPROSEQUENCER_S PR_TSS_S
+ #define PR_REPROSEQUENCER PR_TSS
+
+ #define TN_REPROCTRL "RPRS_Control"
+ #define PR_REPROCTRL_S PR_TSS_S
+ #define PR_REPROCTRL PR_TSS
+
+ #define TN_REPROCENTERCOMM "RPRS_CenterComm"
+ #define PR_REPROCENTERCOMM_S PR_TSS_S
+ #define PR_REPROCENTERCOMM PR_TSS
+
+ #define TN_REPROUNITCOMM "RPRS_UnitComm"
+ #define PR_REPROUNITCOMM_S PR_TSS_S
+ #define PR_REPROUNITCOMM PR_TSS
+
+ #define TN_REPROWEBDAVMGR "RPRS_WebDAVMgr"
+ #define PR_REPROWEBDAVMGR_S PR_TSS_S
+ #define PR_REPROWEBDAVMGR PR_TSS
+
+#define MN_REPROAENDTEST "Repro_Testpro_Sender"
+#define PR_REPROAENDTEST_S PR_TSS_S
+#define PR_REPROAENDTEST PR_TSS
+
+ #define TN_REPROAENDTESTTN "Repro_TestproT"
+ #define PR_REPROAENDTESTTN_S PR_TSS_S
+ #define PR_REPROAENDTESTTN PR_TSS
+
+#define MN_REPROBACKVUP "BackVupCtrl"
+#define PR_REPROBACKVUP_S PR_TSS_S
+#define PR_REPROBACKVUP PR_TSS
+
+#define MN_REPRODEVELOP "DevReproService"
+#define PR_REPRODEVELOP_S PR_TSS_S
+#define PR_REPRODEVELOP PR_TSS
+// REPRO END
+
+ #define TN_MED_MMCOM_PLAY "mmcom_play"
+ #define PR_MED_MMCOM_PLAY_S PR_TSS_S
+ #define PR_MED_MMCOM_PLAY PR_TSS
+
+ #define TN_MED_MMCOM_MEDIA "mmcom_media"
+ #define PR_MED_MMCOM_MEDIA_S PR_TSS_S
+ #define PR_MED_MMCOM_MEDIA PR_TSS
+
+ #define TN_MED_MMCOM_DB "mmcom_db"
+ #define PR_MED_MMCOM_DB_S PR_TSS_S
+ #define PR_MED_MMCOM_DB PR_TSS
+
+ #define TN_MED_MMCOM_LIST "mmcom_list"
+ #define PR_MED_MMCOM_LIST_S PR_TSS_S
+ #define PR_MED_MMCOM_LIST PR_TSS
+
+ #define TN_MED_MMCOM_DBUSB "mmcom_dbusb"
+ #define PR_MED_MMCOM_DBUSB_S PR_TSS_S
+ #define PR_MED_MMCOM_DBUSB PR_TSS
+
+ #define TN_MED_MMCOM_DBSD "mmcom_dbsd"
+ #define PR_MED_MMCOM_DBSD_S PR_TSS_S
+ #define PR_MED_MMCOM_DBSD PR_TSS
+
+ #define TN_MED_MMCOM_DBCD "mmcom_dbcd"
+ #define PR_MED_MMCOM_DBCD_S PR_TSS_S
+ #define PR_MED_MMCOM_DBCD PR_TSS
+
+ #define TN_MED_MMCOM_PLAYRCV "mmcom_playrcv"
+ #define PR_MED_MMCOM_PLAYRCV_S PR_TSS_S
+ #define PR_MED_MMCOM_PLAYRCV PR_TSS
+
+ #define TN_MED_RIPCOM_MNG "MngRipComm"
+ #define PR_MED_RIPCOM_MNG_S PR_TSS_S
+ #define PR_MED_RIPCOM_MNG PR_TSS
+
+ #define TN_MED_RIPCOM_EXE01 "ExeRipComm01"
+ #define PR_MED_RIPCOM_EXE01_S PR_TSS_S
+ #define PR_MED_RIPCOM_EXE01 PR_TSS
+
+ #define TN_MED_RIPCOM_EXE02 "ExeRipComm02"
+ #define PR_MED_RIPCOM_EXE02_S PR_TSS_S
+ #define PR_MED_RIPCOM_EXE02 PR_TSS
+
+ #define TN_MED_DISCCOM_MAIN "disccom_main"
+ #define PR_MED_DISCCOM_MAIN_S PR_TSS_S
+ #define PR_MED_DISCCOM_MAIN PR_TSS
+
+ #define TN_MED_DISCCOM_DB "disccom_db"
+ #define PR_MED_DISCCOM_DB_S PR_TSS_S
+ #define PR_MED_DISCCOM_DB PR_TSS
+
+#define MN_PLAYBACKSERVICE "PlaybackService"
+#define PR_PLAYBACKSERVICE_S PR_TSS_S
+#define PR_PLAYBACKSERVICE PR_TSS
+
+ #define TN_PLAYSRV_AUDIO "playsrv_audio"
+ #define PR_PLAYSRV_AUDIO_S PR_TSS_S
+ #define PR_PLAYSRV_AUDIO PR_TSS
+
+ #define TN_PLAYSRV_RIP "playsrv_rip"
+ #define PR_PLAYSRV_RIP_S PR_TSS_S
+ #define PR_PLAYSRV_RIP PR_TSS
+
+ #define TN_PLAYSRV_PLAY "playsrv_play"
+ #define PR_PLAYSRV_PLAY_S PR_TSS_S
+ #define PR_PLAYSRV_PLAY PR_TSS
+
+ #define TN_PLAYSRV_DISC "playsrv_disc"
+ #define PR_PLAYSRV_DISC_S PR_TSS_S
+ #define PR_PLAYSRV_DISC PR_TSS
+
+ #define TN_PLAYSRV_ARTWORK "playsrv_artwork"
+ #define PR_PLAYSRV_ARTWORK_S PR_TSS_S
+ #define PR_PLAYSRV_ARTWORK PR_TSS
+
+#define MN_DISCSERVICE "DiscService"
+#define PR_DISCSERVICE_S PR_TSS_S
+#define PR_DISCSERVICE PR_TSS
+
+#define MN_RADIOSERVICE "RadioService"
+#define PR_RADIOSERVICE_S PR_TSS_S
+#define PR_RADIOSERVICE PR_TSS
+
+#define MN_RADIOHDARBITER "RadioHDArbiter"
+#define PR_RADIOHDARBITER_S "0"
+#define PR_RADIOHDARBITER (0)
+
+#define MN_HRDS_MANAGER "hrds_manager"
+#define PR_HRDS_MANAGER_S PR_TSS_S
+#define PR_HRDS_MANAGER PR_TSS
+
+ #define TN_HRDS_HDMNG "hrds_hdmng"
+ #define PR_HRDS_HDMNG_S PR_TSS_S
+ #define PR_HRDS_HDMNG PR_TSS
+
+ #define TN_HRDS_HDDEC "hrds_hddec"
+ #define PR_HRDS_HDDEC_S PR_TSS_S
+ #define PR_HRDS_HDDEC PR_TSS
+
+ #define TN_HRDS_WEBMNG "hrds_webmng"
+ #define PR_HRDS_WEBMNG_S PR_TSS_S
+ #define PR_HRDS_WEBMNG PR_TSS
+
+ #define TN_HRDS_WEBCOM "hrds_webcom"
+ #define PR_HRDS_WEBCOM_S PR_TSS_S
+ #define PR_HRDS_WEBCOM PR_TSS
+
+#define MN_BT_CONNECTIONSERVICE "BT_CnctSrv"
+#define PR_BT_CONNECTIONSERVICE_S PR_TSS_S
+#define PR_BT_CONNECTIONSERVICE PR_TSS
+
+#define MN_BT_PHONESERVICE "BT_PhoneSrv"
+#define PR_BT_PHONESERVICE_S PR_TSS_S
+#define PR_BT_PHONESERVICE PR_TSS
+
+#define MN_BT_PHONEBOOKSERVICE "BT_PbkSrv"
+#define PR_BT_PHONEBOOKSERVICE_S PR_TSS_S
+#define PR_BT_PHONEBOOKSERVICE PR_TSS
+
+#define MN_BT_MESSAGINGSERVICE "BT_MsgSrv"
+#define PR_BT_MESSAGINGSERVICE_S PR_TSS_S
+#define PR_BT_MESSAGINGSERVICE PR_TSS
+
+#define MN_BT_BLLSERVICE "TEL_BLLSrv"
+#define PR_BT_BLLSERVICE_S PR_TSS_S
+#define PR_BT_BLLSERVICE PR_TSS
+
+#define MN_BT_DCMPHONESERVICE "DCM_PhoneSrv"
+#define PR_BT_DCMPHONESERVICE_S PR_TSS_S
+#define PR_BT_DCMPHONESERVICE PR_TSS
+
+ #define TN_BT_CONSRV_HFPMULTIQ1 "HFPMultiQ1"
+ #define PR_TN_BT_CONSRV_HFPMULTIQ1_S PR_TSS_S
+ #define PR_TN_BT_CONSRV_HFPMULTIQ1 PR_TSS
+
+ #define TN_BT_CONSRV_HFPMULTIQ2 "HFPMultiQ2"
+ #define PR_TN_BT_CONSRV_HFPMULTIQ2_S PR_TSS_S
+ #define PR_TN_BT_CONSRV_HFPMULTIQ2 PR_TSS
+
+ #define TN_BT_PBKSRV_DATABASE "BTPB_Database"
+ #define PR_TN_BT_PBKSRV_DATABASE_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_DATABASE PR_TSS
+
+ #define TN_BT_PBKSRV_LOCALPBINST "LocalPBINST"
+ #define PR_TN_BT_PBKSRV_LOCALPBINST_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_LOCALPBINST PR_TSS
+
+ #define TN_BT_PBKSRV_RESOLVENAME "ResolveName"
+ #define PR_TN_BT_PBKSRV_RESOLVENAME_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_RESOLVENAME PR_TSS
+
+ #define TN_BT_PBKSRV_PBAPMULTIQ1 "PBAPMultiQ1"
+ #define PR_TN_BT_PBKSRV_PBAPMULTIQ1_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_PBAPMULTIQ1 PR_TSS
+
+ #define TN_BT_PBKSRV_OPPMULTI "OPPMulti"
+ #define PR_TN_BT_PBKSRV_OPPMULTI_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_OPPMULTI PR_TSS
+
+ #define TN_BT_PBKSRV_VCARDPARSER "VCardParser"
+ #define PR_TN_BT_PBKSRV_VCARDPARSER_S PR_TSS_S
+ #define PR_TN_BT_PBKSRV_VCARDPARSER PR_TSS
+
+ #define TN_BT_MSGSRV_MSGCNTRLTHREAD0 "MsgCntrlThread0"
+ #define PR_TN_BT_MSGSRV_MSGCNTRLTHREAD0_S PR_TSS_S
+ #define PR_TN_BT_MSGSRV_MSGCNTRLTHREAD0 PR_TSS
+
+ #define TN_BT_MSGSRV_MSGCNTRLTHREAD1 "MsgCntrlThread1"
+ #define PR_TN_BT_MSGSRV_MSGCNTRLTHREAD1_S PR_TSS_S
+ #define PR_TN_BT_MSGSRV_MSGCNTRLTHREAD1 PR_TSS
+
+ #define TN_BT_MSGSRV_MAPMULTI "MapMulti"
+ #define PR_TN_BT_MSGSRV_MAPMULTI_S PR_TSS_S
+ #define PR_TN_BT_MSGSRV_MAPMULTI PR_TSS
+
+#define MN_DTVSERVICE "DtvService"
+#define PR_DTVSERVICE_S PR_TSS_S
+#define PR_DTVSERVICE PR_TSS
+
+ #define TN_DTVTNC_TX "dtvtnc_tx"
+ #define PR_DTVTNC_TX_S PR_TSS_S
+ #define PR_DTVTNC_TX PR_TSS
+
+ #define TN_DTVTNC_RCV "dtvtnc_rcv"
+ #define PR_DTVTNC_RCV_S PR_TSS_S
+ #define PR_DTVTNC_RCV PR_TSS
+
+ #define TN_DTVTNC_TIMER "dtvtnc_timer"
+ #define PR_DTVTNC_TIMER_S PR_TSS_S
+ #define PR_DTVTNC_TIMER PR_TSS
+
+ #define TN_DTVTNC_CTL "dtvtnc_ctl"
+ #define PR_DTVTNC_CTL_S PR_TSS_S
+ #define PR_DTVTNC_CTL PR_TSS
+
+#define MN_DTVVUPSERVICE "DtvVupService"
+#define PR_DTVVUPSERVICE_S PR_TSS_S
+#define PR_DTVVUPSERVICE PR_TSS
+
+#define MN_SETTINGSERVICE "SettingService"
+#define PR_SETTINGSERVICE_S PR_TSS_S
+#define PR_SETTINGSERVICE PR_TSS
+
+#define MN_INFOSETTINGSRV "InfoSettingSrv"
+#define PR_INFOSETTINGSRV_S PR_TSS_S
+#define PR_INFOSETTINGSRV PR_TSS
+
+ #define TN_INFS_UIC "infs_uic"
+ #define PR_INFS_UIC_S PR_TSS_S
+ #define PR_INFS_UIC PR_TSS
+
+#define MN_DELPERSONALSRV "DelPersonalSrv"
+#define PR_DELPERSONALSRV_S PR_TSS_S
+#define PR_DELPERSONALSRV PR_TSS
+
+#define MN_MENUSERVICE "MenuService"
+#define PR_MENUSERVICE_S PR_TSS_S
+#define PR_MENUSERVICE PR_TSS
+
+#define MN_NAVIPROXY "NaviProxy"
+#define PR_NAVIPROXY_S PR_TSS_S
+#define PR_NAVIPROXY PR_TSS
+
+#define MN_AWBPROXY "AwbProxy"
+#define PR_AWBPROXY_S PR_TSS_S
+#define PR_AWBPROXY PR_TSS
+
+#define MN_TFFPROXY "TFFProxy"
+#define PR_TFFPROXY_S PR_TSS_S
+#define PR_TFFPROXY PR_TSS
+
+#define MN_TFFPROXYSLAVE "TFFProxySlave"
+#define PR_TFFPROXYSLAVE_S PR_TSS_S
+#define PR_TFFPROXYSLAVE PR_TSS
+
+#define MN_AWNPRIMARY "AwnPrimary"
+#define PR_AWNPRIMARY_S PR_TSS_S
+#define PR_AWNPRIMARY PR_TSS
+
+#define MN_AWBPRIMARY "AwbPrimary"
+#define PR_AWBPRIMARY_S PR_TSS_S
+#define PR_AWBPRIMARY PR_TSS
+
+#define MN_AWMPRIMARY "AwmPrimary"
+#define PR_AWMPRIMARY_S PR_TSS_S
+#define PR_AWMPRIMARY PR_TSS
+
+#define MN_AWTPRIMARY "AwtPrimary"
+#define PR_AWTPRIMARY_S PR_TSS_S
+#define PR_AWTPRIMARY PR_TSS
+
+#define MN_MISINKSERVICE "MisinkService"
+#define PR_MISINKSERVICE_S PR_TSS_S
+#define PR_MISINKSERVICE PR_TSS
+
+#define MN_TEXTCONVERTER "TextConverter"
+#define PR_TEXTCONVERTER_S PR_TSS_S
+#define PR_TEXTCONVERTER PR_TSS
+
+#define MN_HANDWRITING "HandWriting"
+#define PR_HANDWRITING_S PR_TSS_S
+#define PR_HANDWRITING PR_TSS
+
+#define MN_EXTUNITAUTH_D "EXTUNITAUTH_D"
+#define PR_EXTUNITAUTH_D_S "0"
+#define PR_EXTUNITAUTH_D 0
+
+ #define TN_VPSVC__CWORD84_ "VPSVC_D"
+ #define PR_VPSVC__CWORD84__S PR_TSS_S
+ #define PR_VPSVC__CWORD84_ PR_TSS
+
+#define MN_PROXYSERVICE "ProxyService"
+#define PR_PROXYSERVICE_S PR_TSS_S
+#define PR_PROXYSERVICE PR_TSS
+
+#define MN_FUELSERVICE "VS_FUCSrv"
+#define PR_FUELSERVICE_S PR_TSS_S
+#define PR_FUELSERVICE PR_TSS
+
+#define MN_ENERGYSERVICE "VS_ENMSrv"
+#define PR_ENERGYSERVICE_S PR_TSS_S
+#define PR_ENERGYSERVICE PR_TSS
+
+#define MN_CUSTOMIZESERVICE "VS_VSDSrv"
+#define PR_CUSTOMIZESERVICE_S PR_TSS_S
+#define PR_CUSTOMIZESERVICE PR_TSS
+
+#define MN_DMSSERVICE "VS_DMSSrv"
+#define PR_DMSSERVICE_S PR_TSS_S
+#define PR_DMSSERVICE PR_TSS
+
+#define MN_AIRCONSERVICE "VS_ACNSrv"
+#define PR_AIRCONSERVICE_S PR_TSS_S
+#define PR_AIRCONSERVICE PR_TSS
+
+#define MN_SEATSERVICE "VS_NMSSrv"
+#define PR_SEATSERVICE_S PR_TSS_S
+#define PR_SEATSERVICE PR_TSS
+
+#define MN_CAMERASERVICE "VS_CMRSrv"
+#define PR_CAMERASERVICE_S PR_TSS_S
+#define PR_CAMERASERVICE PR_TSS
+
+ #define TN_CAMERAQUICKRVC "QuickRVCThread"
+ #define PR_CAMERAQUICKRVC_S PR_TSS_S
+ #define PR_CAMERAQUICKRVC PR_TSS
+
+#define MN_METSERVICE "VS_METSrv"
+#define PR_METSERVICE_S PR_TSS_S
+#define PR_METSERVICE PR_TSS
+
+#define MN_TMCSERVICE "VS_TMCSrv"
+#define PR_TMCSERVICE_S PR_TSS_S
+#define PR_TMCSERVICE PR_TSS
+
+#define MN_DASSERVICE "VS_DASSrv"
+#define PR_DASSERVICE_S PR_TSS_S
+#define PR_DASSERVICE PR_TSS
+
+#define MN_EXTUNITAUTH_M "EXTUNITAUTH_M"
+#define PR_EXTUNITAUTH_M_S "0"
+#define PR_EXTUNITAUTH_M 0
+
+#define MN_DUMMYREAD "DummyRead"
+#define PR_DUMMYREAD_S PR_TSS_S
+#define PR_DUMMYREAD PR_TSS
+
+#define MN_SSTSERVICE "storage_access"
+#define PR_SSTSERVICE_S PR_TSS_S
+#define PR_SSTSERVICE PR_TSS
+
+#define MN_CCSAUDITD "ccs-auditd"
+#define PR_CCSAUDITD_S PR_TSS_S
+#define PR_CCSAUDITD PR_TSS
+
+//exec from task manager
+#define MN_ACTIVITYMANAGER "ActivityManager"
+#define PR_ACTIVITYMANAGER_S PR_TSS_S
+#define PR_ACTIVITYMANAGER PR_TSS
+
+#define MN_RESIDENT_SVC "RESIDENT_SVC"
+#define PR_RESIDENT_SVC_S PR_TSS_S
+#define PR_RESIDENT_SVC PR_TSS
+
+#define MN_TRANSIENT_SVC "TRANSIENT_SVC"
+#define PR_TRANSIENT_SVC_S PR_TSS_S
+#define PR_TRANSIENT_SVC PR_TSS
+
+#define MN_WLANSERVICE "wlan_ctrl_0700"
+#define PR_WLANSERVICE_S PR_TSS_S
+#define PR_WLANSERVICE PR_TSS
+
+#define MN_WLANEVTTHR "WlanEvtThr"
+#define PR_WLANEVTTHR_S PR_TSS_S
+#define PR_WLANEVTTHR PR_TSS
+
+#define MN_WLANMIDDLESERVICE "WlanMiddle"
+#define PR_WLANMIDDLESERVICE_S PR_TSS_S
+#define PR_WLANMIDDLESERVICE PR_TSS
+
+ #define TN_WLANMIDDLESERVICE0 "WM_MsgCtrlTh0"
+ #define PR_WLANMIDDLESERVICE0_S PR_TSS_S
+ #define PR_WLANMIDDLESERVICE0 PR_TSS
+
+ #define TN_WLANMIDDLESERVICE1 "WM_MsgCtrlTh1"
+ #define PR_WLANMIDDLESERVICE1_S PR_TSS_S
+ #define PR_WLANMIDDLESERVICE1 PR_TSS
+
+ #define TN_WLANMIDDLESERVICE2 "WM_MsgCtrlTh2"
+ #define PR_WLANMIDDLESERVICE2_S PR_TSS_S
+ #define PR_WLANMIDDLESERVICE2 PR_TSS
+
+#define MN_WLANSERVICE2 "wlan_ctrl_0701"
+#define PR_WLANSERVICE2_S PR_TSS_S
+#define PR_WLANSERVICE2 PR_TSS
+
+#define MN_WLANEVTTHR2 "WlanEvtThr2"
+#define PR_WLANEVTTHR2_S PR_TSS_S
+#define PR_WLANEVTTHR2 PR_TSS
+
+//exec from task manager, Test for vup
+#define MN_PS__CWORD52_VUP "_CWORD52_vup"
+#define PR_PS__CWORD52_VUP_S PR_TSS_S
+#define PR_PS__CWORD52_VUP PR_TSS
+
+#define MN_PS_SYSVUP "sysvup"
+#define PR_PS_SYSVUP_S PR_TSS_S
+#define PR_PS_SYSVUP PR_TSS
+
+#define MN_SS_ROOTFSVUP "rootfsvup"
+#define PR_SS_ROOTFSVUP_S PR_TSS_S
+#define PR_SS_ROOTFSVUP PR_TSS
+
+#define MN_SS_VUPPROGUI "vupprogressui"
+#define PR_SS_VUPPROGUI_S PR_TSS_S
+#define PR_SS_VUPPROGUI PR_TSS
+
+#define MN_SS_NORVUP "norvup"
+#define PR_SS_NORVUP_S PR_TSS_S
+#define PR_SS_NORVUP PR_TSS
+
+// OUTER_UPDATE START
+#define MN_XMVUPSERVICE "radio_xm_update"
+#define PR_XMVUPSERVICE_S PR_TSS_S
+#define PR_XMVUPSERVICE PR_TSS
+// OUTER_UPDATE END
+
+#define MN_BTPHONESRV "BT_PhoneSrv"
+#define PR_BTPHONESRV_S PR_TSS_S
+#define PR_BTPHONESRV PR_TSS
+
+#define MN_BTPBKSRV "BT_PbkSrv"
+#define PR_BTPBKSRV_S PR_TSS_S
+#define PR_BTPBKSRV PR_TSS
+
+#define MN_BTMSGSRV "BT_MsgSrv"
+#define PR_BTMSGSRV_S PR_TSS_S
+#define PR_BTMSGSRV PR_TSS
+
+// NON-resident, exec from task manager, Repro update
+#define MN_PS_SYSUPDATE "sysupdate"
+#define PR_PS_SYSUPDATE_S PR_TSS_S
+#define PR_PS_SYSUPDATE PR_TSS
+
+#define MN_SS_NANDUPDATE "nandupdate"
+#define PR_SS_NANDUPDATE_S PR_TSS_S
+#define PR_SS_NANDUPDATE PR_TSS
+
+ #define TN_NANDUPDATE_CLD "t_nandcld"
+ #define PR_NANDUPDATE_CLD_S PR_TSS_S
+ #define PR_NANDUPDATE_CLD PR_TSS
+
+#define MN_BTPHONESRV "BT_PhoneSrv"
+#define PR_BTPHONESRV_S PR_TSS_S
+#define PR_BTPHONESRV PR_TSS
+
+#define MN_BTPBKSRV "BT_PbkSrv"
+#define PR_BTPBKSRV_S PR_TSS_S
+#define PR_BTPBKSRV PR_TSS
+
+#define MN_BTMSGSRV "BT_MsgSrv"
+#define PR_BTMSGSRV_S PR_TSS_S
+#define PR_BTMSGSRV PR_TSS
+
+//exec from diag
+#define MN_DIAGSERVICE "DiagService"
+#define PR_DIAGSERVICE_S PR_TSS_S
+#define PR_DIAGSERVICE PR_TSS
+
+#define MN_DIAGWORKERTSK "diagworker_tsk"
+#define PR_DIAGWORKERTSK_S PR_TSS_S
+#define PR_DIAGWORKERTSK PR_TSS
+
+#define MN_DIAGTSK "diag_tsk"
+#define PR_DIAGTSK_S PR_TSS_S
+#define PR_DIAGTSK PR_TSS
+
+#define MN_DIAGMCTSK "diagmc_tsk"
+#define PR_DIAGMCTSK_S PR_TSS_S
+#define PR_DIAGMCTSK PR_TSS
+
+#define MN_DIAGUTCOL "diagutCol_tsk"
+#define PR_DIAGUTCOL_S PR_TSS_S
+#define PR_DIAGUTCOL PR_TSS
+
+#define MN_DIAGUTUPD "diagutUpd_tsk"
+#define PR_DIAGUTUPD_S PR_TSS_S
+#define PR_DIAGUTUPD PR_TSS
+
+//exec from Connectivity for _CWORD57_
+#define MN__CWORD57_UTILSERVICE "_CWORD57_UtilService"
+#define PR__CWORD57_UTILSERVICE_S PR_TSS_S
+#define PR__CWORD57_UTILSERVICE PR_TSS
+
+ #define TN_CON_IPUT_DETECT "iputsrv_detect"
+ #define PR_CON_IPUT_DETECT_S PR_TSS_S
+ #define PR_CON_IPUT_DETECT PR_TSS
+
+ #define TN_CON_IPUT_AUTH "iputsrv_auth"
+ #define PR_CON_IPUT_AUTH_S PR_TSS_S
+ #define PR_CON_IPUT_AUTH PR_TSS
+
+ #define TN_CON_IPUT_SERIAL "iputsrv_serial"
+ #define PR_CON_IPUT_SERIAL_S PR_TSS_S
+ #define PR_CON_IPUT_SERIAL PR_TSS
+
+ #define TN_CON_IPUT_USB_1 "iputsrv_usb1"
+ #define PR_CON_IPUT_USB_1_S PR_TSS_S
+ #define PR_CON_IPUT_USB_1 PR_TSS
+
+ #define TN_CON_IPUT_USB_2 "iputsrv_usb2"
+ #define PR_CON_IPUT_USB_2_S PR_TSS_S
+ #define PR_CON_IPUT_USB_2 PR_TSS
+
+ #define TN_CON_IPUT_SPP "iputsrv_spp"
+ #define PR_CON_IPUT_SPP_S PR_TSS_S
+ #define PR_CON_IPUT_SPP PR_TSS
+
+#define MN__CWORD57_DTSERVICE "_CWORD57_DTService"
+#define PR__CWORD57_DTSERVICE_S PR_TSS_S
+#define PR__CWORD57_DTSERVICE PR_TSS
+
+ #define TN_CON_IPDT_SERIAL "ipdtsrv_serial"
+ #define PR_CON_IPDT_SERIAL_S PR_TSS_S
+ #define PR_CON_IPDT_SERIAL PR_TSS
+
+ #define TN_CON_IPDT_USB_1 "ipdtsrv_usb1"
+ #define PR_CON_IPDT_USB_1_S PR_TSS_S
+ #define PR_CON_IPDT_USB_1 PR_TSS
+
+ #define TN_CON_IPDT_USB_2 "ipdtsrv_usb2"
+ #define PR_CON_IPDT_USB_2_S PR_TSS_S
+ #define PR_CON_IPDT_USB_2 PR_TSS
+
+ #define TN_CON_IPDT_SPP "ipdtsrv_spp"
+ #define PR_CON_IPDT_SPP_S PR_TSS_S
+ #define PR_CON_IPDT_SPP PR_TSS
+
+#define MN_WEBDAVMGR "webdavmgr"
+#define PR_WEBDAVMGR_S PR_TSS_S
+#define PR_WEBDAVMGR PR_TSS
+
+#define MN_DISPLAYSERVICE "DisplayService"
+#define PR_DISPLAYSERVICE_S PR_TSS_S
+#define PR_DISPLAYSERVICE PR_TSS
+
+#define MN_ENFORMSERVICE "EnformService"
+#define PR_ENFORMSERVICE_S PR_TSS_S
+#define PR_ENFORMSERVICE PR_TSS
+
+#define MN_CONNUTIL "ConnUtil"
+#define PR_CONNUTIL_S PR_TSS_S
+#define PR_CONNUTIL PR_TSS
+
+#define MN_CONNUTILSLAVE "ConnUtilSlave"
+#define PR_CONNUTILSLAVE_S PR_TSS_S
+#define PR_CONNUTILSLAVE PR_TSS
+
+#define MN_CONNMGR "ConnMgr"
+#define PR_CONNMGR_S PR_TSS_S
+#define PR_CONNMGR PR_TSS
+
+#define MN_SERVICEFLAGMGR "ServiceFlagMgr"
+#define PR_SERVICEFLAGMGR_S PR_TSS_S
+#define PR_SERVICEFLAGMGR PR_TSS
+
+//exec from VR
+#define MN_VRMANAGER "vrmanager"
+#define PR_VRMANAGER_S PR_TSS_S
+#define PR_VRMANAGER PR_TSS
+
+ #define TN_VR_WORKER "VrWorkerThread"
+ #define PR_VR_WORKER_S PR_TSS_S
+ #define PR_VR_WORKER PR_TSS
+
+ #define TN_VBT_PROPDISPATCH "PropDispatchThread"
+ #define PR_VBT_PROPDISPATCH_S PR_TSS_S
+ #define PR_VBT_PROPDISPATCH PR_TSS
+
+ #define TN_VBT_PROPRESPONSE "PropResponseThread"
+ #define PR_VBT_PROPRESPONSE_S PR_TSS_S
+ #define PR_VBT_PROPRESPONSE PR_TSS
+
+ #define TN_VBT_PROPAUDIOPLAY "PropAudioPlayThread"
+ #define PR_VBT_PROPAUDIOPLAY_S PR_TSS_S
+ #define PR_VBT_PROPAUDIOPLAY PR_TSS
+
+ #define TN_VBT_PROPAUDIORECORD "PropAudioRecordThread"
+ #define PR_VBT_PROPAUDIORECORD_S PR_TSS_S
+ #define PR_VBT_PROPAUDIORECORD PR_TSS
+
+ #define TN_VBT_MAINTHREADPRIO "MainThreadPriority"
+ #define PR_VBT_MAINTHREADPRIO_S PR_TSS_S
+ #define PR_VBT_MAINTHREADPRIO PR_TSS
+
+ #define TN_VBT_ASRMANAGERGRAMMAR "AsrManagerGrammarGenerationThread"
+ #define PR_VBT_ASRMANAGERGRAMMAR_S PR_TSS_S
+ #define PR_VBT_ASRMANAGERGRAMMAR PR_TSS
+
+ #define TN_VBT_ASRVOCONRECO "AsrVoconRecoProcessThread"
+ #define PR_VBT_ASRVOCONRECO_S PR_TSS_S
+ #define PR_VBT_ASRVOCONRECO PR_TSS
+
+ #define TN_VBT_BROADCASTREAD "BroadCastReadThread"
+ #define PR_VBT_BROADCASTREAD_S PR_TSS_S
+ #define PR_VBT_BROADCASTREAD PR_TSS
+
+ #define TN_VBT_FILEAGGREGATOR "FileAggregatorDecompressThread"
+ #define PR_VBT_FILEAGGREGATOR_S PR_TSS_S
+ #define PR_VBT_FILEAGGREGATOR PR_TSS
+
+ #define TN_VBT_HTTPCURLREQUEST "HttpCurlRequestThread"
+ #define PR_VBT_HTTPCURLREQUEST_S PR_TSS_S
+ #define PR_VBT_HTTPCURLREQUEST PR_TSS
+
+ #define TN_VBT_HTTPDRIVERREQUEST "HttpDriverRequestThread"
+ #define PR_VBT_HTTPDRIVERREQUEST_S PR_TSS_S
+ #define PR_VBT_HTTPDRIVERREQUEST PR_TSS
+
+ #define TN_VBT_HTTPREQUESTSESSION "HttpRequestSessionStateThread"
+ #define PR_VBT_HTTPREQUESTSESSION_S PR_TSS_S
+ #define PR_VBT_HTTPREQUESTSESSION PR_TSS
+
+ #define TN_VBT_PLAYMGRSTOPASYNC "PlayMgrStopAsyncStreamThread"
+ #define PR_VBT_PLAYMGRSTOPASYNC_S PR_TSS_S
+ #define PR_VBT_PLAYMGRSTOPASYNC PR_TSS
+
+ #define TN_VBT_RESOURCEMGRQUEUE "ResourceMgrQueueHandlerThread"
+ #define PR_VBT_RESOURCEMGRQUEUE_S PR_TSS_S
+ #define PR_VBT_RESOURCEMGRQUEUE PR_TSS
+
+ #define TN_VBT_SMURFDRIVERTIMEOUT "SmurfDriverTimeoutThread"
+ #define PR_VBT_SMURFDRIVERTIMEOUT_S PR_TSS_S
+ #define PR_VBT_SMURFDRIVERTIMEOUT PR_TSS
+
+ #define TN_NVR_NVRMAIN "NvrMainThread"
+ #define PR_NVR_NVRMAIN_S PR_TSS_S
+ #define PR_NVR_NVRMAIN PR_TSS
+
+ #define TN_NVR_NVRRECO "NvrRecoThread"
+ #define PR_NVR_NVRRECO_S PR_TSS_S
+ #define PR_NVR_NVRRECO PR_TSS
+
+ #define TN_NVR_NVRDICT "NvrDictThread"
+ #define PR_NVR_NVRDICT_S PR_TSS_S
+ #define PR_NVR_NVRDICT PR_TSS
+
+ #define TN_NVR_NVRENC "NvrEncThread"
+ #define PR_NVR_NVRENC_S PR_TSS_S
+ #define PR_NVR_NVRENC PR_TSS
+
+//exec from VehicleInfo
+#define MN_VEHICLEINFOSERVICE "VehicleInfoSrv"
+#define PR_VEHICLEINFOSERVICE_S PR_TSS_S
+#define PR_VEHICLEINFOSERVICE PR_TSS
+
+//exec from _CWORD58_
+#define MN__CWORD58_SERVICE "_CWORD58_Service"
+#define PR__CWORD58_SERVICE_S PR_TSS_S
+#define PR__CWORD58_SERVICE PR_TSS
+
+#define MN__CWORD8_SRV "_CWORD8_Srv"
+#define PR__CWORD8_SRV_S PR_TSS_S
+#define PR__CWORD8_SRV PR_TSS
+
+#define MN_SPCSERVICE "SPCService"
+#define PR_SPCSERVICE_S PR_TSS_S
+#define PR_SPCSERVICE PR_TSS
+
+#define MN_LOCALSERVERPROXY "LSP"
+#define PR_LOCALSERVERPROXY_S PR_TSS_S
+#define PR_LOCALSERVERPROXY PR_TSS
+
+#define MN_EOMSERVICE "eOMService"
+#define PR_EOMSERVICE_S PR_TSS_S
+#define PR_EOMSERVICE PR_TSS
+
+//exec from _CWORD89_
+#define MN__CWORD89_SERVICE "_CWORD89_Service"
+#define PR__CWORD89_SERVICE_S PR_TSS_S
+#define PR__CWORD89_SERVICE PR_TSS
+
+//exec from NetworkManager
+#define MN_NETWORKMANAGER "NetworkManager"
+#define PR_NETWORKMANAGER_S PR_TSS_S
+#define PR_NETWORKMANAGER PR_TSS
+
+ #define TN_NWM_TH_CMDRCV "NWM_Th_CmdRcv"
+ #define PR_NWM_TH_CMDRCV_S PR_TSS_S
+ #define PR_NWM_TH_CMDRCV PR_TSS
+
+ #define TN_NWM_TH_PROCMGR "NWM_Th_ProcMgr"
+ #define PR_NWM_TH_PROCMGR_S PR_TSS_S
+ #define PR_NWM_TH_PROCMGR PR_TSS
+
+ #define TN_NWM_TH_CMDPROC "NWM_Th_CmdProc"
+ #define PR_NWM_TH_CMDPROC_S PR_TSS_S
+ #define PR_NWM_TH_CMDPROC PR_TSS
+
+ #define TN_NWM_TH_DNSMGR "NWM_Th_DnsMgr"
+ #define PR_NWM_TH_DNSMGR_S PR_TSS_S
+ #define PR_NWM_TH_DNSMGR PR_TSS
+
+ #define TN_NWM_TH_DHCPD "NWM_Th_Dhcpd"
+ #define PR_NWM_TH_DHCPD_S PR_TSS_S
+ #define PR_NWM_TH_DHCPD PR_TSS
+
+// DCM Service
+#define MN_DCMSERVICE "DCMService"
+#define PR_DCMSERVICE_S PR_TSS_S
+#define PR_DCMSERVICE PR_TSS
+
+ #define TN_DCM_TH_CMDRCV "DCM_Th_CmdRcv"
+ #define PR_DCM_TH_CMDRCV_S PR_TSS_S
+ #define PR_DCM_TH_CMDRCV PR_TSS
+
+ #define TN_DCM_TH_MSGRCV "DCM_Th_MsgRcv"
+ #define PR_DCM_TH_MSGRCV_S PR_TSS_S
+ #define PR_DCM_TH_MSGRCV PR_TSS
+
+ #define TN_DCM_TH_TIMER "DCM_Th_Timer"
+ #define PR_DCM_TH_TIMER_S PR_TSS_S
+ #define PR_DCM_TH_TIMER PR_TSS
+
+// HELP Service
+#define MN_HELPSERVICE "HELPService"
+#define PR_HELPSERVICE_S PR_TSS_S
+#define PR_HELPSERVICE PR_TSS
+
+//exec from RemoteService
+#define MN_REMOTESERVICE "RemoteService"
+#define PR_REMOTESERVICE_S PR_TSS_S
+#define PR_REMOTESERVICE PR_TSS
+
+ #define TN_RS_TH_CANCTRL "RS_Th_CANCtrl"
+ #define PR_RS_TH_CANCTRL_S PR_TSS_S
+ #define PR_RS_TH_CANCTRL PR_TSS
+
+ #define TN_RS_TH_DISPCTRL "RS_Th_DispCtrl"
+ #define PR_RS_TH_DISPCTRL_S PR_TSS_S
+ #define PR_RS_TH_DISPCTRL PR_TSS
+
+ #define TN_RS_TH_PARTSCTRL "RS_Th_PartsCtrl"
+ #define PR_RS_TH_PARTSCTRL_S PR_TSS_S
+ #define PR_RS_TH_PARTSCTRL PR_TSS
+
+ #define TN_RS_TH_HTTPPROC "RS_Th_HttpProc"
+ #define PR_RS_TH_HTTPPROC_S PR_TSS_S
+ #define PR_RS_TH_HTTPPROC PR_TSS
+
+//exec from VR
+#define MN_CONTENTSMGR "contentsmgr"
+#define PR_CONTENTSMGR_S PR_TSS_S
+#define PR_CONTENTSMGR PR_TSS
+
+ #define TN_CDB_CONTENDB "contendbThread"
+ #define PR_CDB_CONTENDB_S PR_TSS_S
+ #define PR_CDB_CONTENDB PR_TSS
+
+/* COMARB Service */
+#define MN_NW_COMARB "ComArbService"
+#define PR_NW_COMARB_S PR_TSS_S
+#define PR_NW_COMARB PR_TSS
+
+/* ASND_FRthread */
+#define MN_ASND_FRTH "ASND_FRthread"
+#define PR_ASND_FRTH_S PR_SND_VCETRFCTRL_S
+#define PR_ASND_FRTH PR_SND_VCETRFCTRL
+
+/* MLINK Service */
+#define MN_MLINKSERVICE "MlinkService"
+#define PR_MLINKSERVICE_S PR_TSS_S
+#define PR_MLINKSERVICE PR_TSS
+
+#define MN__CWORD74_SERVICE "_CWORD74_Service"
+#define PR__CWORD74_SERVICE_S PR_TSS_S
+#define PR__CWORD74_SERVICE PR_TSS
+#endif //__AGL_THREAD_H__
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/npp/version.txt b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/npp/version.txt
new file mode 100644
index 00000000..d00491fd
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/npp/version.txt
@@ -0,0 +1 @@
+1
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/agl.mk b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/agl.mk
new file mode 100644
index 00000000..495614dc
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/agl.mk
@@ -0,0 +1,677 @@
+#
+# @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#################################################################################
+#
+# MAKE VARIABLES
+#
+# (mandatory)
+# MAKETOP : pprosrc/root directory
+#
+# (optional)
+# COMPONENT_NAME : component name
+# INST_HEADERS : headers to install
+# INST_LIBS : libraries to install
+# INST_SHLIBS : shared libraries to install
+# NOINST_LIBS : libraries for local use
+# INST_PROGS : programs to install
+# INST_CONFBIN : conf_bin to install
+# RPC_API : RPC API definitions (without suffix)
+# IPC_API : IPC API definitions (without suffix)
+# xxx_SRCS : source files of program xxx (*.{c,S,cc})
+# libxxx_SRCS : source files of library libxxx (*.{c,S,cc})
+# xxx_PCOS : pre-compiled object files of program xxx (*.{o,os,a})
+# libxxx_PCOS : pre-compiled object files of library libxxx (*.{o,os,a})
+# SUBDIRS : sub directories
+# CLEAN_FILES : extra files to clean
+# CLEAN_DIRS : extra directoies to clean
+# UNINST_FILES : extra files to uninstall
+# CPPFLAGS : preprocess options (-I, -D, ...)
+# CFLAGS : C source compile options
+# CXXFLAGS : C++ source compile options
+# ASFLAGS : assembler source assemble options
+# LDFLAGS : link options (-L, ...)
+# LDLIBS : libraries to link (-lxxx)
+# ALL : targets to make
+# (default: install-header install-lib install-prog install-data)
+# xxx_SONAME : dummy library SONAME
+#
+# MAKE TARGETS
+#
+# all, test : for target in $(ALL); do $(MAKE) $$target; done
+# install-prog : install program
+# install-lib : install-shlib and intall-arlib
+# install-shlib : install shared libraries
+# install-arlib : install static libraries
+# install-test-mock-lib : install mock libraries
+# install-test-mock-shlib : install shared mock libraries
+# install-test-mock-arlib : install static mock libraries
+# clean, clean-test : clean temporary files
+# clean-all, clean-all-test : clean temporary files and installed files
+# clean-self, clean-self-test : non-recursive clean
+#################################################################################
+
+
+ifneq ($(ADD_EXT),)
+ AEXT=.$(ADD_EXT)
+endif
+
+
+ifneq ($(strip $(filter $(MAKECMDGOALS),\
+ lint \
+ )),)
+endif
+
+ifneq ($(strip $(filter $(MAKECMDGOALS),\
+ )),)
+endif
+
+
+#################################################################################
+SYSROOT ?= $(SDKTARGETSYSROOT)
+DESTDIR ?= $(SDKTARGETSYSROOT)
+
+WARN_FLAGS ?= -Wall
+DEBUG_FLAGS ?= -g
+
+AUTO_INCLUDE := -include $(SYSROOT)/usr/agl/include/agl_types_obsoluted.h
+AGLCFLAGS := $(CFLAGS) $(COMPONENT_CFLAGS)
+AGLCXXFLAGS := $(CXXFLAGS) $(COMPONENT_CXXFLAGS)
+AGLCPPFLAGS := $(CPPFLAGS) $(COMPONENT_CPPFLAGS)
+AGLASFLAGS := $(ASFLAGS)
+AGLLDFLAGS := $(LDFLAGS) $(COMPONENT_LDFLAGS)
+AGLLDLIBS := $(LDLIBS) $(COMPONENT_LDLIBS)
+AGLARFLAGS := $(ARFLAGS)
+AGLPICFLAGS := -fPIC
+
+AGLCFLAGS += $(WARN_FLAGS) $(DEBUG_FLAGS) $(AUTO_INCLUDE)
+AGLCXXFLAGS += $(WARN_FLAGS) $(DEBUG_FLAGS) $(AUTO_INCLUDE)
+AGLASFLAGS += $(WARN_FLAGS) $(ARCH_FLAGS)
+
+
+ifdef LINK_CXX
+LINK := $(CXX)
+else
+LINK := $(CC)
+endif
+
+ifdef LINK_SHLIB_CXX
+LINK_SHLIB := $(CXX)
+else
+LINK_SHLIB := $(CC)
+endif
+
+ifdef DUMMY_SHLIB
+AGLLDFLAGS += -L.
+endif
+
+######### add gcov option ############
+
+
+
+define LINK_DUMMY
+if [ "$1" != "$3" ]; then \
+ echo "dummy lib ($1) created" ; \
+ $(LINK_SHLIB) -shared $(PIC_FLAGS) -Wl,-soname=$2 -o $1 -xc /dev/null ; \
+else \
+ echo "error: dummy lib must not have the same name as $3" ; \
+ exit 1 ; \
+fi ;
+endef
+
+define INST_DUMMY
+ @$(foreach lib,$(DUMMY_SHLIB),$(if $(lib),$(call LINK_DUMMY,$(lib),$(if $($(lib)_SONAME),$($(lib)_SONAME),$(lib)),$1)))
+endef
+
+define CLEAN_DUMMY
+ @$(foreach lib,$(DUMMY_SHLIB),$(if $(lib),rm -f $(lib)))
+endef
+
+define INSTALL_EXT
+@if [ "$(AEXT)" != "" ];then \
+ if echo "$(ADD_EXT)" | grep -q '^[A-Za-z]' ;then \
+ echo "$< -> $<$(AEXT)" ;\
+ mv $< $<$(AEXT) ;\
+ install -c -m 0755 $<$(AEXT) $@$(AEXT) ;\
+ if [ -f "$*.map" ];then \
+ mv $*.map $*.map$(AEXT) ;\
+ fi ;\
+ else \
+ echo "ADD_EXT : ERROR $(ADD_EXT)" ;\
+ exit 1 ;\
+ fi ;\
+fi
+endef
+
+
+define INSTALL_SCRIPT
+install -d -m 0755 $(@D)
+install -c -m 0755 $< $@
+endef
+
+define INSTALL_PIXMAP
+install -d -m 0755 $(@D)
+install -c -m 0644 $< $@
+endef
+
+define INSTALL_UCODE
+install -d -m 0755 $(@D)
+install -c -m 0644 $< $@
+endef
+
+define INSTALL_DATAINITOBJ
+if [ -n "$<" ]; then\
+ install -d -m 0755 $(@D);\
+ install -c -m 0644 $< $@;\
+fi;
+endef
+
+define INSTALL_OBJ
+install -d -m 0755 $(@D)
+install -c -m 0644 $< $@
+endef
+
+define INSTALL_CONFBIN
+if [ -n "$<" ]; then\
+ install -d -m 0755 $(@D);\
+ install -c -m 0644 $< $@;\
+fi;
+endef
+
+#################################################################################
+
+
+## for libc ##
+AGLCPPFLAGS += -D_GNU_SOURCE
+
+## for libPosixBased001Legacy
+AGLCPPFLAGS += -DAGL_PosixBasedOS001LEGACY_USED -DAGL_STUB -DLINUX
+
+## for agl header##
+AGLCPPFLAGS += -I$(SYSROOT)/usr/agl/include
+
+## for agl library##
+AGLLDFLAGS += -L$(SYSROOT)/usr/agl/lib
+
+ifneq ($(INST_SHLIBS),libagl_stub)
+AGLLDLIBS += -Wl,-Bdynamic -lpthread
+endif
+
+
+##########################################
+
+COMPONENT_NAME ?= $(error COMPONENT_NAME is not defined)
+AGL_TOPDIR ?= $(DESTDIR)/usr/agl
+AGL_INCDIR := $(AGL_TOPDIR)/include
+AGL_LIBDIR := $(AGL_TOPDIR)/lib
+AGL_BINDIR := $(AGL_TOPDIR)/bin
+AGL_PIXMAPDIR := $(AGL_TOPDIR)/pixmaps
+AGL_UCODEDIR := $(AGL_TOPDIR)/data/ucode
+
+#################################################################################
+
+HEADER_INSTALL_DIR := $(AGL_INCDIR)/$(COMPONENT_NAME)
+LIB_INSTALL_DIR := $(AGL_LIBDIR)
+PROG_INSTALL_DIR := $(AGL_BINDIR)
+PIXMAP_INSTALL_DIR := $(AGL_PIXMAPDIR)/$(COMPONENT_NAME)
+UCODE_INSTALL_DIR := $(AGL_UCODEDIR)
+DATAINITOBJ_INSTALL_DIR := $(AGL_DATAINITOBJDIR)
+CONFBIN_INSTALL_DIR := $(AGL_CONFBINDIR)
+
+#################################################################################
+
+DEL_OBJS = $(filter %.o,$($(1)_SRCS:%.c=%.o) $($(1)_SRCS:%.cc=%.o) \
+ $($(1)_SRCS:%.cpp=%.o) \
+ $($(1)_SRCS:%.S=%.o))
+OBJS = $(DEL_OBJS) $($(1)_PCOS)
+DEL_SOBJS = $(filter %.os,$($(1)_SRCS:%.c=%.os) $($(1)_SRCS:%.cc=%.os) \
+ $($(1)_SRCS:%.cpp=%.os) \
+ $($(1)_SRCS:%.S=%.os))
+DEL_GCDA = $(filter %.gcda,$($(1)_SRCS:%.c=%.gcda) $($(1)_SRCS:%.cc=%.gcda) \
+ $($(1)_SRCS:%.cpp=%.gcda) \
+ $($(1)_SRCS:%.S=%.gcda))
+DEL_GCNO = $(filter %.gcno,$($(1)_SRCS:%.c=%.gcno) $($(1)_SRCS:%.cc=%.gcno) \
+ $($(1)_SRCS:%.cpp=%.gcno) \
+ $($(1)_SRCS:%.S=%.gcno))
+DEL_GCOV = $(filter %.gcov,$($(1)_SRCS:%.c=%.gcov) $($(1)_SRCS:%.cc=%.gcov) \
+ $($(1)_SRCS:%.cpp=%.gcov) \
+ $($(1)_SRCS:%.S=%.gcov))
+
+DEL_INFO = $(filter %.info, \
+ $(dirname $($(1)_SRCS:%.c=%.tmp))lcov.info \
+ $(dirname $($(1)_SRCS:%.cc=%.tmp))lcov.info \
+ $(dirname $($(1)_SRCS:%.cpp=%.tmp))lcov.info \
+ $(dirname $($(1)_SRCS:%.S=%.tmp))lcov.info)
+
+SOBJS = $(DEL_SOBJS) $($(1)_PCOS)
+DEPS = $(join $(dir $(DEL_OBJS)),$(patsubst %.o,.%.d,$(notdir $(DEL_OBJS))))
+
+INST_TEST_MOCK_LIBS :=
+INST_TEST_MOCK_SHLIBS :=
+INST_ITV2_TESTPROGS :=
+INST_TESTPROGS :=
+
+CLEAN_OBJS := $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(INST_TEST_MOCK_LIBS) $(INST_TEST_MOCK_SHLIBS) $(NOINST_LIBS) $(INST_PROGS) $(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(call DEL_OBJS,$(lib)))
+CLEAN_SOBJS := $(foreach lib,$(INST_SHLIBS) $(INST_TEST_MOCK_SHLIBS),$(call DEL_SOBJS,$(lib)))
+
+CLEAN_GCDA := $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(NOINST_LIBS) $(INST_PROGS) $(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(call DEL_GCDA,$(lib)))
+CLEAN_GCNO := $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(NOINST_LIBS) $(INST_PROGS) $(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(call DEL_GCNO,$(lib)))
+CLEAN_GCOV := $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(NOINST_LIBS) $(INST_PROGS) $(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(call DEL_GCOV,$(lib)))
+CLEAN_CFG := $(INST_UT_SMCONF:%=%.cfg) $(INST_IT_SMCONF:%=%.cfg)
+
+CLEAN_INFO := $(sort $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(INST_TEST_MOCK_LIBS) $(INST_TEST_MOCK_SHLIBS) $(NOINST_LIBS) $(INST_PROGS) $(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(call DEL_INFO,$(lib))))
+
+LIB_DEPS := $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(INST_TEST_MOCK_LIBS) $(INST_TEST_MOCK_SHLIBS) $(NOINST_LIBS),$(call DEPS,$(lib)))
+PROG_DEPS := $(foreach prog,$(INST_PROGS),$(call DEPS,$(prog)))
+TESTPROGS_DEPS :=
+PROG_RULES := $(foreach prog,$(INST_PROGS),$(if $(prog),.$(prog).out.rule))
+TESTPROG_RULES :=
+
+LIB_RULES := $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(NOINST_LIBS) $(INST_TEST_MOCK_LIBS),$(if $($(lib)_SRCS),.$(lib).a.rule))
+SHLIB_RULES := $(foreach lib,$(INST_SHLIBS) $(INST_TEST_MOCK_SHLIBS),$(if $(lib),.$(lib).so.rule))
+ARLIB_RULES := $(foreach lib,$(INST_LIBS) $(NOINST_LIBS),$(if $($(lib)_SRCS),.$(lib).a.rule))
+
+PROG_MAPS := $(foreach prog,$(INST_PROGS),$(if $(prog),$(prog).map))
+TESTPROG_MAPS := $(foreach prog,$(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(if $(prog),$(prog).map))
+LIB_MAPS := $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(NOINST_LIBS) $(INST_TEST_MOCK_LIBS) $(INST_TEST_MOCK_SHLIBS),$(if $(lib),$(lib).map))
+PROG_LIBDEPS := $(foreach prog,$(INST_PROGS),$(if $(prog),.$(prog).out.libdep))
+TESTPROG_LIBDEPS := $(foreach prog,$(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(if $(prog),.$(prog).out.libdep))
+
+BUILD_MK_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
+include $(BUILD_MK_DIR)/rpc_rule.mk
+
+IPC_API_RULES := $(IPC_API:%=.%.ipc.rule)
+ipc_api := $(shell echo $(IPC_API) | tr A-Z a-z)
+CLEAN_IPC_API_SRCS := $(ipc_api:%=%_client.h) $(ipc_api:%=%_client.c) $(ipc_api:%=%_server.h) $(ipc_api:%=%_server.c)
+IPC_API_DEPS := $(ipc_api:%=%_client.d) $(ipc_api:%=%_server.d)
+
+CLEAN_PROGS := $(foreach prog,$(INST_PROGS),$(if $(prog),$(prog).out))
+CLEAN_TESTPROGS := $(foreach prog,$(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(if $(prog),$(prog).out))
+
+ifneq ($(AEXT),)
+CLEAN_PROGS += $(foreach prog,$(INST_PROGS),$(if $(prog),$(prog).out$(AEXT)))
+CLEAN_TESTPROGS += $(foreach prog,$(INST_ITV2_TESTPROGS) $(INST_TESTPROGS),$(if $(prog),$(prog).out$(AEXT)))
+endif
+CLEAN_LIBS := $(foreach lib,$(INST_LIBS) $(INST_SHLIBS) $(INST_TEST_MOCK_LIBS) $(INST_TEST_MOCK_SHLIBS) $(NOINST_LIBS),$(if $($(lib)_SRCS),$(lib).a))
+CLEAN_SHLIBS := $(foreach lib,$(INST_SHLIBS) $(INST_TEST_MOCK_SHLIBS),$(if $(lib),$(lib).so))
+ifneq ($(AEXT),)
+CLEAN_SHLIBS += $(foreach lib,$(INST_SHLIBS) $(INST_TEST_MOCK_SHLIBS),$(if $(lib),$(lib).so$(AEXT)))
+endif
+ifneq ($(DUMMY_SHLIB),)
+CLEAN_SHLIBS += $(DUMMY_SHLIB)
+endif
+
+CLEAN_FILES += $(CLEAN_OBJS) $(CLEAN_SOBJS)
+CLEAN_FILES += $(PROG_DEPS) $(LIB_DEPS) $(TESTPROG_DEPS)
+CLEAN_FILES += $(PROG_MAPS) $(PROG_LIBDEPS) $(TESTPROG_MAPS) $(TESTPROG_LIBDEPS)
+CLEAN_FILES += $(PROG_RULES) $(LIB_RULES) $(SHLIB_RULES) $(AR_RULES) $(TESTPROG_RULES)
+CLEAN_FILES += $(CLEAN_PROGS) $(CLEAN_LIBS) $(CLEAN_SHLIBS) $(LIB_MAPS) $(CLEAN_TESTPROGS)
+CLEAN_FILES += $(RPC_API_RULES) $(CLEAN_API_SRCS) $(RPC_API_DEPS)
+CLEAN_FILES += $(IPC_API_RULES) $(CLEAN_IPC_API_SRCS) $(IPC_API_DEPS)
+CLEAN_FILES += $(INST_DATAINITOBJ)
+CLEAN_FILES += $(CLEAN_INFO)
+CLEAN_FILES += $(CLEAN_GCNO) $(CLEAN_GCDA) $(CLEAN_GCOV)
+CLEAN_FILES += $(CLEAN_CFG)
+ifneq ($(AEXT),)
+CLEAN_FILES += $(foreach lib,$(INST_SHLIBS) $(INST_PROGS),$(if $(lib),$(lib).map$(AEXT)))
+endif
+
+
+#################################################################################
+
+RPATH := /usr/lib:/lib:/usr/agl/lib
+
+#################################################################################
+SUBDIRS := $(filter-out mock,$(SUBDIRS))
+
+.PHONY: all all-subdirs install test $(SUBDIRS:%=all-%) $(SUBDIRS:%=install--%)
+.PHONY: install-test $(SUBDIRS:%=install-test-%)
+.PHONY: build-lib
+.PHONY: build-prog $(SUBDIRS:%=build-prog-%)
+.PHONY: build-shlib $(SUBDIRS:%=build-shlib-%)
+.PHONY: build-arlib $(SUBDIRS:%=build-arlib-%)
+.PHONY: build-cfg
+.PHONY: install-header $(SUBDIRS:%=install-header-%)
+.PHONY: install-lib
+.PHONY: install-shlib $(SUBDIRS:%=install-shlib-%)
+.PHONY: install-arlib $(SUBDIRS:%=install-arlib-%)
+.PHONY: install-prog $(SUBDIRS:%=install-prog-%)
+.PHONY: install-data $(SUBDIRS:%=install-data-%)
+.PHONY: install-cfg $(SUBDIRS:%=install-cfg-%)
+.PHONY: install-preload
+.PHONY: clean-all
+.PHONY: clean-self
+.PHONY: clean-sub $(SUBDIRS:%=clean-%)
+.PHONY: clean-all-sub $(SUBDIRS:%=clean-all-%)
+.PHONY: clean-self-sub
+.PHONY: lint lint-exec
+
+
+REF_ROOT_DIR=/home/ref_root/
+TEST_SERVER_DIR=/home/agl_sysroot/
+REFHW_SERVER=192.168.1.2
+
+PHONY: all
+
+lint:
+ @set -e;\
+ $(MAKE) lint-exec
+
+
+#all: build-lib build-prog build-test-mock-lib build-cfg all-subdirs
+all: build-lib build-prog build-cfg all-subdirs
+
+all-subdirs:
+ @set -e;\
+ for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) all); done
+
+
+#lint-exec: $(INST_HEADERS) $($(INST_SHLIBS)_SRCS) $($(INST_LIBS)_SRCS) $($(INST_PROGS)_SRCS)
+# -cpplint.py $^ > cpplint_result.txt 2>&1
+
+lint-exec:
+ $(eval LINTFILES := $(shell find . -name "*.c*" -o -name "*.h*"))
+ -cpplint.py --extensions=hpp,cpp,c,cc,h $(LINTFILES) > cpplint_result.txt 2>&1
+
+
+#install: install-header install-lib install-prog install-data install-test-mock-header install-test-mock-lib install-test-casename $(SUBDIRS:%=install--%)
+install: install-header install-lib install-prog install-data $(SUBDIRS:%=install--%)
+
+
+build-lib: build-shlib build-arlib
+
+build-shlib: $(INST_SHLIBS:%=%.so)
+
+build-arlib: $(INST_LIBS:%=%.a) $(NOINST_LIBS:%=%.a)
+
+TOPDIR=$(abspath ./)
+generate-header-list: install-header-local
+ echo $(COMPONENT_NAME) > $(addsuffix .list, $(abspath ./))
+ ls -1 $(TOPDIR)/tmp_head/usr/agl/include/$(COMPONENT_NAME)/ >> $(addsuffix .list, $(abspath ./))
+ rm -rf ./tmp_head
+
+
+build-prog: $(INST_PROGS:%=%.out)
+
+
+install-lib: install-arlib install-shlib
+
+install-arlib: build-arlib
+ifneq ($(strip $(INST_LIBS)),)
+ install -m 0755 -d $(LIB_INSTALL_DIR)
+ install -m 0644 $(INST_LIBS).a $(LIB_INSTALL_DIR)
+endif
+
+install-shlib: build-shlib
+ifneq ($(strip $(INST_SHLIBS)),)
+ install -m 0755 -d $(LIB_INSTALL_DIR)
+ install -m 0644 $(INST_SHLIBS).so $(LIB_INSTALL_DIR)
+endif
+
+install-prog: build-prog
+ifneq ($(strip $(INST_PROGS)),)
+ install -m 0755 -d $(PROG_INSTALL_DIR)
+ $(foreach prog, $(INST_PROGS), install -m 0755 $(prog).out $(PROG_INSTALL_DIR)/$(prog);)
+endif
+
+
+install-header-r: install-header $(SUBDIRS:%=install-header-r-%)
+
+
+install-header-local:
+ $(MAKE) DESTDIR=`pwd`/tmp_head install-header-r
+
+
+install-header: $(INST_HEADERS:%=install-%)
+
+
+$(INST_HEADERS:%=install-%): install-%: %
+ifneq ($(strip $(INST_HEADERS)),)
+ install -m 0755 -d $(HEADER_INSTALL_DIR)
+ install -m 0644 $< $(HEADER_INSTALL_DIR)
+endif
+
+
+HOST_LAUNCH_XML2CFG = $(SYSROOT)/usr/agl/share/launch_xml2cfg.sh
+CONF_H = $(SYSROOT)/usr/agl/include/sm_launch_conf.h
+
+%.cfg: %.xml
+ set -e; \
+ cpp -P -include $(CONF_H) $< > $<.tmp ; \
+ cd $(dir $<.tmp); \
+ $(HOST_LAUNCH_XML2CFG) $(notdir $<.tmp) > $@ ; \
+ rm -f $<.tmp ;
+
+
+install-data: $(INST_PIXMAPS:%=$(PIXMAP_INSTALL_DIR)/%) $(INST_UCODE:%=$(UCODE_INSTALL_DIR)/%) $(INST_DATAINITOBJ:%=$(DATAINITOBJ_INSTALL_DIR)/%) $(OBJ_COPY_LIST:%=$(OBJ_COPY_INSTALL_DIR)/%) $(INST_CONFBIN:%=$(CONFBIN_INSTALL_DIR)/%)
+
+
+clean: $(SUBDIRS:%=clean--%)
+ rm -f $(CLEAN_FILES)
+ rm -rf $(CLEAN_DIRS)
+
+clean-all: $(SUBDIRS:%=clean-all--%)
+ rm -f $(CLEAN_FILES) $(UNINST_FILES)
+ rm -rf $(CLEAN_DIRS)
+
+clean-self: clean
+
+#################################################################################
+
+%.o: %.c
+ $(CC) -MD -MT $(@:%.o=%.os) -MT $@ -MF $(@D)/.$(@F:%.o=%.d) -MP $(AGLCPPFLAGS) $(AGLCFLAGS) -c -o $@ $<
+ifeq ($(SAFLAG),on)
+ $(SATOOL) $(AGLCPPFLAGS) $(AGLCFLAGS) -c $<
+endif
+
+%.o: %.cc
+ $(CXX) -MD -MT $(@:%.o=%.os) -MT $@ -MF $(@D)/.$(@F:%.o=%.d) -MP $(AGLCPPFLAGS) $(AGLCXXFLAGS) -c -o $@ $<
+ifeq ($(SAFLAG),on)
+ $(SATOOL) $(AGLCPPFLAGS) $(AGLCXXFLAGS) -c $<
+endif
+
+%.o: %.cpp
+ $(CXX) -MD -MT $(@:%.o=%.os) -MT $@ -MF $(@D)/.$(@F:%.o=%.d) -MP $(AGLCPPFLAGS) $(AGLCXXFLAGS) -c -o $@ $<
+ifeq ($(SAFLAG),on)
+ $(SATOOL) $(AGLCPPFLAGS) $(AGLCXXFLAGS) -c $<
+endif
+
+%.o: %.S
+ $(CC) -MD -MT $(@:%.o=%.os) -MT $@ -MF $(@D)/.$(@F:%.o=%.d) -MP $(AGLCPPFLAGS) $(AGLASFLAGS) -c -o $@ $<
+
+%.os: %.c
+ $(CC) -MD -MT $(@:%.os=%.o) -MT $@ -MF $(@D)/.$(@F:%.os=%.d) -MP $(AGLPICFLAGS) $(AGLCPPFLAGS) $(AGLCFLAGS) -c -o $@ $<
+ifeq ($(SAFLAG),on)
+ $(SATOOL) $(AGLPICFLAGS) $(AGLCPPFLAGS) $(AGLCFLAGS) -c $<
+endif
+
+%.os: %.cc
+ $(CXX) -MD -MT $(@:%.os=%.o) -MT $@ -MF $(@D)/.$(@F:%.os=%.d) -MP $(AGLPICFLAGS) $(AGLCPPFLAGS) $(AGLCXXFLAGS) -c -o $@ $<
+ifeq ($(SAFLAG),on)
+ $(SATOOL) $(AGLPICFLAGS) $(AGLCPPFLAGS) $(AGLCXXFLAGS) -c $<
+endif
+
+%.os: %.cpp
+ $(CXX) -MD -MT $(@:%.os=%.o) -MT $@ -MF $(@D)/.$(@F:%.os=%.d) -MP $(AGLPICFLAGS) $(AGLCPPFLAGS) $(AGLCXXFLAGS) -c -o $@ $<
+ifeq ($(SAFLAG),on)
+ $(SATOOL) $(AGLPICFLAGS) $(AGLCPPFLAGS) $(AGLCXXFLAGS) -c $<
+endif
+
+%.os: %.S
+ $(CC) -MD -MT $(@:%.os=%.o) -MT $@ -MF $(@D)/.$(@F:%.os=%.d) -MP $(AGLPICFLAGS) $(AGLCPPFLAGS) $(AGLASFLAGS) -c -o $@ $<
+
+.%.out.rule:
+ @echo '$*.out: $$(call OBJS,$*)' > $@
+ @echo ' @rm -f $$(@:%=.%.libdep)' >> $@
+ @echo ' $$(LINK) $$(AGLLDFLAGS) -Wl,-rpath=$$(RPATH) -Wl,-rpath-link=$$(RPATHLINK),-Map=$$(@:%.out=%.map) $$(call OBJS,$*) $($(*F)_LDLIBS) $$(AGLLDLIBS) -o $$@' >> $@
+ @echo ' @awk '\''$$$$1=="LOAD" && $$$$2~/\.a$$$$/{print("$$@:", $$$$2);print($$$$2 ":")}'\'' $$(@:%.out=%.map) > $$(@:%=.%.libdep)' >> $@
+
+.%.a.rule:
+ @echo '$*.a: $$(call OBJS,$*)' > $@
+ @echo ' $$(AR) $$(AGLARFLAGS) $$@ $$?' >> $@
+
+.%.so.rule:
+ @echo '$*.so: $$(call SOBJS,$*)' > $@
+ @echo ' $$(call INST_DUMMY,$*.so)' >> $@
+ @test -f $*.ver && echo ' $$(LINK_SHLIB) -shared $$(AGLLDFLAGS) $($(*F)_LDFLAGS) $$(AGLLDLIBS) -Wl,-rpath=$$(RPATH) -Wl,-soname=$*.so,-Map=$$(@:%.so=%.map),--version-script,$*.ver $$^ -o $$@' >> $@ || echo ' $$(LINK_SHLIB) -shared $$(AGLLDFLAGS) $($(*F)_LDFLAGS) $$(AGLLDLIBS) -Wl,-rpath=$$(RPATH) -Wl,-soname=$*.so,-Map=$$(@:%.so=%.map) $$^ -o $$@' >> $@
+ @echo ' $$(call CLEAN_DUMMY)' >> $@
+
+.%.ipc.rule:
+ @echo 'ipc_name:=$(shell echo $* | tr A-Z a-z)' > $@
+ @echo '$$(ipc_name)_client.h $$(ipc_name)_client.c $$(ipc_name)_server.h $$(ipc_name)_server.c: $*.api $$(IPC_MKSTUB)' >> $@
+ @echo ' $$(IPC_MKSTUB) $$(AGLCPPFLAGS) $$(IPC_MKSTUB_FLAGS) $$<' >> $@
+ @echo >> $@
+ @echo '$*.api:' >> $@
+ @echo >> $@
+
+################################################################################
+
+#
+# If you write a pattern of smbols that the library may export,
+# it checks for unmatched symbols at installation time.
+#
+# (example)
+# libfoo_SYMBOL_PATTERN = ^(foo|FOO)_
+# libbar_SYMBOL_PATTERN = ^(bar|Bar)
+#
+
+$(LIB_INSTALL_DIR)/%.so: %.so
+ $(INSTALL_SHLIB)
+ $(INSTALL_EXT)
+ @test -z '$($*_SYMBOL_PATTERN)' || $(NM) -f posix -o $< \
+ | awk 'NF>=3 && $$3~/[ABCDGRST]/ && $$2!~/^(_DYNAMIC|_GLOBAL_OFFSET_TABLE_|_edata|_end|__)/ && $$2!~/$($*_SYMBOL_PATTERN)/ \
+ {print $$1, "WARNING: A symbol ", $$2, " that does not match the registered pattern $($*_SYMBOL_PATTERN) is included." > "/dev/stderr"}'
+
+$(LIB_INSTALL_DIR)/%.a: %.a
+ $(INSTALL_LIB)
+ @test -z '$($*_SYMBOL_PATTERN)' || $(NM) -f posix -o $< \
+ | awk 'NF>=3 && $$3~/[ABCDGRST]/ && $$2!~/$($*_SYMBOL_PATTERN)/ \
+ {print $$1, "WARNING: A symbol ", $$2, " that does not match the registered pattern $($*_SYMBOL_PATTERN) is included." > "/dev/stderr"}'
+#################################################################################
+
+ifneq ($(strip $(SUBDIRS)),)
+$(SUBDIRS:%=all-%):
+ @set -e; \
+ dir=`pwd`; \
+ subdir=$(@:all-%=%); \
+ echo "leve:$(MAKELEVEL) dir:`basename $$dir` SUBDIR:$$subdir ==START==" ; \
+ $(MAKE) -C $(@:all-%=%) all; \
+ echo "leve:$(MAKELEVEL) dir:`basename $$dir` SUBDIR:$$subdir ==END==";
+
+$(SUBDIRS:%=install--%):
+ @set -e; \
+ dir=`pwd`; \
+ subdir=$(@:install--%=%); \
+ echo "leve:$(MAKELEVEL) dir:`basename $$dir` SUBDIR:$$subdir ==START==" ; \
+ $(MAKE) -C $(@:install--%=%) install; \
+ echo "leve:$(MAKELEVEL) dir:`basename $$dir` SUBDIR:$$subdir ==END==";
+
+$(SUBDIRS:%=install-header-r-%):
+ @set -e; \
+ dir=`pwd`; \
+ subdir=$(@:install-header-r-%=%); \
+ echo "leve:$(MAKELEVEL) dir:`basename $$dir` SUBDIR:$$subdir ==START==" ; \
+ $(MAKE) -C $(@:install-header-r-%=%) install-header-r; \
+ echo "leve:$(MAKELEVEL) dir:`basename $$dir` SUBDIR:$$subdir ==END==";
+
+
+$(SUBDIRS:%=clean--%):
+ @$(MAKE) -C $(@:clean--%=%) clean
+
+$(SUBDIRS:%=clean-all--%):
+ @echo "$@ ==Start=="
+ @$(MAKE) -C $(@:clean-all--%=%) clean-all
+ @echo "$@ ==End=="
+
+endif
+
+
+#################################################################################
+
+ifeq ($(MAKECMDGOALS),all)
+-include $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+ifeq ($(MAKECMDGOALS),)
+-include $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+ifeq ($(MAKECMDGOALS),install)
+-include $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+ifeq ($(MAKECMDGOALS),install-test)
+-include $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+ifeq ($(MAKECMDGOALS),install-test-exec)
+-include $(PROG_RULES) $(TESTPROG_RULES) $(PROG_DEPS) $(TESTPROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+ifeq ($(MAKECMDGOALS),test)
+-include $(TESTPROG_RULES) $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+ifeq ($(MAKECMDGOALS),run-ct-local)
+-include $(TESTPROG_RULES) $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+ifeq ($(MAKECMDGOALS),run-itv2-local)
+-include $(TESTPROG_RULES) $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+ifeq ($(MAKECMDGOALS),run-ut-local)
+-include $(TESTPROG_RULES) $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+ifeq ($(MAKECMDGOALS),run-it-local)
+-include $(TESTPROG_RULES) $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+
+
+ifeq ($(MAKECMDGOALS),test-exec)
+-include $(TESTPROG_RULES) $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS) $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS) $(ARLIB_RULES)
+endif
+
+
+ifeq ($(MAKECMDGOALS),build-prog)
+-include $(PROG_RULES) $(PROG_DEPS) $(PROG_LIBDEPS)
+endif
+
+ifeq ($(MAKECMDGOALS),build-testdriver)
+-include $(PROG_RULES) $(TESTPROG_RULES) $(TESTPROG_DEPS) $(TESTPROG_LIBDEPS)
+endif
+
+ifeq ($(MAKECMDGOALS),build-lib)
+-include $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS)
+endif
+
+ifeq ($(MAKECMDGOALS),build-arlib)
+-include $(SHLIB_RULES) $(LIB_RULES) $(LIB_DEPS)
+endif
+
+ifeq ($(MAKECMDGOALS),build-shlib)
+-include $(SHLIB_RULES) $(LIB_DEPS)
+endif
+
+ifeq ($(MAKECMDGOALS),build-arlib)
+-include $(ARLIB_RULES) $(LIB_DEPS)
+endif
+
+ifeq ($(strip $(filter clean%,$(MAKECMDGOALS))),)
+ifneq ($(IPC_API_RULES),)
+-include $(IPC_API_RULES) $(IPC_API_DEPS)
+endif
+endif
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/rpc_rule.mk b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/rpc_rule.mk
new file mode 100644
index 00000000..f5db71db
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/rpc_rule.mk
@@ -0,0 +1,42 @@
+#
+# @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# rpc rule makefile
+#
+
+#rpc_apidef directory path must be added
+RPC_APIDEF := $(OECORE_NATIVE_SYSROOT)/usr/bin/rpc_apidef
+
+RPC_API_RULES := $(RPC_API:%=.%.api.rule)
+rpc_api := $(shell echo $(RPC_API) | tr A-Z a-z)
+CLEAN_API_SRCS := $(rpc_api:%=%_api.h) $(rpc_api:%=%_api_stub.c) $(rpc_api:%=%_srvr.h) $(rpc_api:%=%_srvr_stub.c)
+RPC_API_DEPS := $(rpc_api:%=%_api_stub.d) $(rpc_api:%=%_srvr_stub.d)
+
+.%.api.rule:
+ @echo 'rpc_name:=$(shell echo $* | tr A-Z a-z)' > $@
+ @echo '$$(rpc_name)_api.h $$(rpc_name)_api_stub.c $$(rpc_name)_srvr.h $$(rpc_name)_srvr_stub.c: $*.api $$(RPC_APIDEF)' >> $@
+ @echo ' $$(RPC_APIDEF) $$(CPPFLAGS) $$(RPC_APIDEF_FLAGS) $$<' >> $@
+ @echo >> $@
+ @echo '$*.api:' >> $@
+ @echo >> $@
+
+ifeq ($(strip $(filter clean%,$(MAKECMDGOALS))),)
+ifneq ($(RPC_API_RULES),)
+-include $(RPC_API_RULES) $(RPC_API_DEPS)
+endif
+endif
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/system_launcher_main.xml b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/system_launcher_main.xml
new file mode 100644
index 00000000..ac34d29b
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-basefiles/files/share/system_launcher_main.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" ?>
+
+<!DOCTYPE system_launcher [
+ <!ELEMENT system_launcher (group+) >
+
+ <!ELEMENT group (launch+) >
+ <!ATTLIST group
+ name CDATA #REQUIRED
+ wait_time CDATA #REQUIRED
+ trigger (True|False) #REQUIRED
+ >
+
+ <!ELEMENT launch EMPTY >
+ <!ATTLIST launch
+ name CDATA #REQUIRED
+ path CDATA #REQUIRED
+ priority CDATA #REQUIRED
+ critical CDATA #REQUIRED
+ retry_cnt CDATA #REQUIRED
+ arguments CDATA #REQUIRED
+ logging_mask CDATA "NULL"
+ restart (me|NULL) #REQUIRED
+ is_start_required (True|False) #REQUIRED
+ shutdown_critical CDATA #REQUIRED
+ shutdown_wait_time CDATA #REQUIRED
+ fast_shutdown_wait_time CDATA #REQUIRED
+ user_name CDATA #REQUIRED
+ is_agl_unit (True|False) #IMPLIED
+ disable_agl_resethistory (True|False) #IMPLIED
+ disable_nonagl_resethistory (True|False) #IMPLIED
+ env_cond CDATA #IMPLIED
+ cpu_assign CDATA #IMPLIED
+ >
+
+ <!ENTITY system_launcher_body SYSTEM "system_launcher_body.xml">
+]>
+
+<system_launcher>
+ &system_launcher_body;
+</system_launcher>
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/agl-systemd_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/agl-systemd_1.0.0.bb
new file mode 100644
index 00000000..c10c348c
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/agl-systemd_1.0.0.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Systemd related file for launching sample application"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit systemd
+S = "${WORKDIR}"
+ALLOW_EMPTY_${PN} = "1"
+BB_VERBOSE_LOGS = "1"
+
+SRC_URI += " \
+ file://LICENSE \
+ file://env.txt \
+ file://setup_refhw.service \
+ file://launch_sm.service \
+ file://systemd-udev-trigger.service \
+ file://99-agl.rules \
+ file://agl-trigger.service \
+ file://options.conf \
+ file://tool_9E_SI \
+ file://usr \
+"
+FILES_${PN} += "\
+ /tool_9E_SI/* \
+ /usr/target/* \
+ /usr/agl/* \
+ /nv/* \
+ /ramd/bkup \
+ /etc/systemd/system/tmp.mount.d \
+"
+SYSTEMD_SERVICE_${PN} = " \
+ setup_refhw.service \
+ launch_sm.service \
+ agl-trigger.service \
+"
+DEPENDS += " \
+ libxml2-native \
+ agl-basefiles-native \
+"
+RDEPENDS_${PN} += " \
+ procps \
+ agl-basefiles \
+ bash \
+"
+do_compile[depends] += "agl-basefiles:do_populate_sysroot"
+do_compile() {
+ cd ${WORKDIR}/usr/agl/conf/systemmanager
+ cpp -P -include ${STAGING_DIR_HOST}/usr/agl/include/sm_launch_conf.h ./sm_launch__CWORD84_.xml ./sm_launch.tmp.xml
+ ${STAGING_DIR_HOST}/usr/agl/share/launch_xml2cfg.sh ./sm_launch.tmp.xml > ./sm_launch.cfg
+}
+do_install() {
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/setup_refhw.service ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/agl-trigger.service ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/launch_sm.service ${D}/${systemd_unitdir}/system
+ install -d ${D}/etc/systemd/system
+ install -m 644 ${WORKDIR}/systemd-udev-trigger.service ${D}/etc/systemd/system
+ install -d ${D}/tool_9E_SI
+ install -m 644 ${WORKDIR}/*.txt ${D}/tool_9E_SI
+ install -m 755 ${WORKDIR}/tool_9E_SI/*.sh ${D}/tool_9E_SI
+ install -d ${D}/usr/target
+ install -m 644 ${WORKDIR}/usr/target/*.lst ${D}/usr/target
+ install -d ${D}/etc/systemd/system
+ install -d -m 775 ${D}/usr/agl/conf/systemmanager
+ install -m 644 ${WORKDIR}/usr/agl/conf/systemmanager/sm_launch.cfg ${D}/usr/agl/conf/systemmanager
+ install -d ${D}/lib/udev/rules.d
+ install -m 644 ${WORKDIR}/99-agl.rules ${D}/lib/udev/rules.d
+ install -d -m 777 ${D}/nv/export
+ install -d -m 777 ${D}/nv/backup
+ install -d -m 777 ${D}/nv/log/frameworkunifiedlog
+ install -d -m 777 ${D}/ramd/bkup
+ install -d ${D}/etc/systemd/system/tmp.mount.d
+ install -m 644 ${WORKDIR}/options.conf ${D}/etc/systemd/system/tmp.mount.d
+}
+
+sysroot_stage_all_append(){
+ sysroot_stage_dir ${D}/tool_9E_SI ${SYSROOT_DESTDIR}/tool_9E_SI
+ sysroot_stage_dir ${D}/usr/target ${SYSROOT_DESTDIR}/usr/target
+ sysroot_stage_dir ${D}/usr/agl ${SYSROOT_DESTDIR}/usr/agl
+ sysroot_stage_dir ${D}/usr/agl/conf/systemmanager ${SYSROOT_DESTDIR}/usr/agl/conf/systemmanager
+ sysroot_stage_dir ${D}/usr/agl/conf/backup_manager ${SYSROOT_DESTDIR}/usr/agl/conf/backup_manager
+ sysroot_stage_dir ${D}/nv/npp ${SYSROOT_DESTDIR}/nv/npp
+ sysroot_stage_dir ${D}/usr/agl/share ${SYSROOT_DESTDIR}/usr/agl/share
+ sysroot_stage_dir ${D}/etc/systemd/system/tmp.mount.d ${SYSROOT_DESTDIR}/etc/systemd/system/tmp.mount.d
+}
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/99-agl.rules b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/99-agl.rules
new file mode 100644
index 00000000..dd4e2456
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/99-agl.rules
@@ -0,0 +1,11 @@
+#modify sound related device permissions
+
+SUBSYSTEM=="sound",MODE="0666"
+
+#modify dri related device permissions
+
+SUBSYSTEM=="drm",MODE="0777"
+
+#modify agl/evk related device permissions
+
+SUBSYSTEM=="evk",KERNEL=="agl/evk",MODE="0666"
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/LICENSE b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/LICENSE
new file mode 100644
index 00000000..f433b1a5
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/LICENSE
@@ -0,0 +1,177 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/agl-trigger.service b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/agl-trigger.service
new file mode 100644
index 00000000..8cb752f0
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/agl-trigger.service
@@ -0,0 +1,18 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+#After=weston.service
+
+[Service]
+Type=oneshot
+#RemainAfterExit=yes
+EnvironmentFile=/tool_9E_SI/env.txt
+ExecStart=/tool_9E_SI/agl_set_capability.sh
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/env.txt b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/env.txt
new file mode 100644
index 00000000..48b83df4
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/env.txt
@@ -0,0 +1,130 @@
+VEHICLEPARAMETERLIBRARY_AREA="AREA1"
+XDG_RUNTIME_DIR="/run/user/0"
+AGL_NFS="y"
+VEHICLEPARAMETERLIBRARY_BRAND="BRAND1"
+LIBTHAI_DICTDIR="/usr/share/libthai"
+TERM="xterm"
+INIT_UID="1000"
+INIT_GID="1000"
+AGL_RWDATA_PATH="/nv"
+LD_LIBRARY_PATH="/lib:/usr/lib:/usr/agl/lib:/usr/debug/lib"
+ARB_OPT="FORCE_REBOOT"
+PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/agl/bin:/usr/debug/bin:/usr/debug/sbin:/usr/debug/usr/bin:/usr/debug/usr/sbin"
+PWD="/dev/mqueue"
+OLDPWD="/dev/mqueue"
+SHLVL="1"
+ALSA_CONFIG_PATH="/usr/share/alsa/alsa.conf"
+GPF_LOGFLAG="0x00000003"
+GPF_LOGLEVEL_DEBUG="0x00000000"
+_CWORD84__IPADDR="192.168.128.129"
+AGL_ON_SHELL="y"
+AGL_DEVDIAG_FLAG="ON"
+_="/usr/bin/printenv"
+UDEV_CONFIG_FILE="/etc/udev/udev.conf"
+VP_VEHICLEPARAMETERLIBRARY_version="AAAAAAAAA0001"
+VP_VEHICLEPARAMETERLIBRARY_maker_ID="00000-00000"
+VP_VEHICLEPARAMETERLIBRARY_area="AREA1"
+VP_VEHICLEPARAMETERLIBRARY_grade="GRADE1"
+VP_VEHICLEPARAMETERLIBRARY_model_ID="XXXXXXXX-XXXX"
+VP_VEHICLEPARAMETERLIBRARY_dest_c_code=""
+VP_VEHICLEPARAMETERLIBRARY_DAB_tuner_num="0"
+VP_VEHICLEPARAMETERLIBRARY_AMP_type="built_in_AMP"
+VP_VEHICLEPARAMETERLIBRARY_DISPLAY="InternalDisplay"
+VP_VEHICLEPARAMETERLIBRARY_DECK="CD_DECK"
+VP_VEHICLEPARAMETERLIBRARY_default_mode="home"
+VP_VEHICLEPARAMETERLIBRARY_VOICE_RECOGNITION_TUTORIAL="available"
+VP_VEHICLEPARAMETERLIBRARY_SEARCH="unavailable"
+VP_VEHICLEPARAMETERLIBRARY_CONTACT="unavailable"
+VP_VEHICLEPARAMETERLIBRARY_JPTrafficInfo_show="unavailable"
+VP_VEHICLEPARAMETERLIBRARY_INFOMATION_MANAGEMENT="available"
+VP_VEHICLEPARAMETERLIBRARY_WIFI_STA_ENABLE="False"
+VP_VEHICLEPARAMETERLIBRARY_WIFI_AP_ENABLE="True"
+VP_VEHICLEPARAMETERLIBRARY_WIFI_DIRECT_ENABLE="False"
+VP_VEHICLEPARAMETERLIBRARY_HAS_GPS="y"
+VP_VEHICLEPARAMETERLIBRARY__CWORD6_="n"
+VP_VEHICLEPARAMETERLIBRARY_PHASE="3"
+VP_VEHICLEPARAMETERLIBRARY__CWORD6_="unavailable"
+VP_VEHICLEPARAMETERLIBRARY_CONNECTION_SERVER="TRY"
+VP__CWORD31__version="XXXXXXXXX0001"
+VP__CWORD31__class_type_of_LAN="CAN_08_10PF"
+VP__CWORD31__reverse="direct"
+VP__CWORD31__PKB="direct"
+VP__CWORD31__ADIM__CWORD62_="direct_ADIM"
+VP__CWORD31__telematics_function="CAN_judge"
+VP__CWORD31__opening_picture="_CWORD31_"
+VP__CWORD31__theme_color="pure_white"
+VP__CWORD31__AC_onscreen="available"
+VP__CWORD31__AC_screen_operation="available"
+VP__CWORD31__AC_screen_home="available"
+VP__CWORD31__AC_switch_front_temp="available"
+VP__CWORD31__AC_temp_disp_outside="available"
+VP__CWORD31__AC_temp_disp_setting="available"
+VP__CWORD31__AC_switch_concierge="available"
+VP__CWORD31__AC_switch_S_flow="available"
+VP__CWORD31___CWORD11_="available"
+VP__CWORD31___CWORD11__home="available"
+VP__CWORD31___CWORD11__drive_wheel="FF"
+VP__CWORD31___CWORD11__drive_type="2WD"
+VP__CWORD31___CWORD11__battery_position="rear_tire"
+VP__CWORD31___CWORD11__battery_direction="lateral"
+VP__CWORD31___CWORD11__motor_position="Ahead"
+VP__CWORD31___CWORD9__trip="available"
+VP__CWORD31___CWORD9__trip="available"
+VP__CWORD31___CWORD9__home_trip="available"
+VP__CWORD31___CWORD9__fuel="available"
+VP__CWORD31___CWORD9__home_fuel="available"
+VP__CWORD31__FC_eco_safety_point_service="unavailable"
+VP__CWORD31__FC_scale_GAS="5"
+VP__CWORD31__FC_scale_HV="5"
+VP__CWORD31__FC_energy_mark="30wh"
+VP__CWORD31___CWORD9__type="type1"
+VP__CWORD31__FC_SIGNAL="unavailable"
+VP__CWORD31__display_setting_screen="unavailable"
+VP__CWORD31__VR_HVAC_control="unavailable"
+VP__CWORD31__clock_type="unavailable"
+VP__CWORD31__start_up_BGM="unavailable"
+VP__CWORD31__start_up_BGM_type="OFF"
+VP__CWORD31__DTV_antenna_FL="unavailable"
+VP__CWORD31__DTV_antenna_FR="unavailable"
+VP__CWORD31__DTV_antenna_RL="unavailable"
+VP__CWORD31__DTV_antenna_RR="unavailable"
+VP__CWORD31__DTV_ANTENNA="unavailable"
+VP__CWORD31__HF_voice_quality_type="0000"
+VP__CWORD31__tune_knob_push="available"
+VP__CWORD31__screen_switch_seek="unavailable"
+VP__CWORD31__DAB_antenna="unavailable"
+VP__CWORD31__hard_switch_beep="no_beep"
+VP__CWORD31__screen_switch_beep="beep"
+VP__CWORD31__steering_switch_type="2line_crosswise"
+VP__CWORD31__steering_switch_tel="1buttom"
+VP__CWORD31__class_circuit_mode="unavailable"
+VP__CWORD31___CWORD67__warning="unavailable"
+VP__CWORD31___CWORD67__accelerator="unavailable"
+VP__CWORD31__panel_microcomputer="available"
+VP__CWORD31__class_watch_at_brake_hold="unavailable"
+VP__CWORD31__GPS_antenna="available"
+VP__CWORD31__vehicle_signal_ILL="available"
+VP__CWORD31__switch_trigger="unavailable"
+VP__CWORD31__sensitivity_level="unavailable"
+VP__CWORD31__invalidity_term="500"
+VP__CWORD31__thumbnail_type="unavailable"
+VP__CWORD31__BT_device_name="CAR MULTIMEDIA"
+VP__CWORD31__eco_drive_max_volume="no_restriction"
+VP__CWORD31__EOM_function="unavailable"
+VP__CWORD31__Microphone_Type="_CWORD71__array"
+VP__CWORD31__Microphone_Location="ohc"
+VP__CWORD31__Wide_band_FM="unavailable"
+VP__CWORD31__display_type="one_screen_8"
+VP__CWORD31__clock_display="not_need"
+VP__CWORD31__destination="[]"
+VP__CWORD31__class_operation="touch"
+VP__CWORD31__opening_interval="1"
+VP__CWORD31__DES_function="unavailable"
+VP__CWORD31__beep_sound_keys=""
+VP_VEHICLEPARAMETERLIBRARY_SER_serial="00000000000"
+VP_VEHICLEPARAMETERLIBRARY_SER_HELPNET_ID="000000000000000000000"
+VP_VEHICLEPARAMETERLIBRARY_SER_map_update_ID="0000000000000000"
+VP_VEHICLEPARAMETERLIBRARY_SER_ship_date="00000000"
+VP_VEHICLEPARAMETERLIBRARY_SER_FACTORY_ID="0000000000000000000"
+BT_ADDR=""
+BT_DIAL=""
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/launch_sm.service b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/launch_sm.service
new file mode 100644
index 00000000..8edc914e
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/launch_sm.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=launch_sm
+After=setup_refhw.service agl-trigger.service
+
+[Service]
+PermissionsStartOnly=yes
+EnvironmentFile=/tool_9E_SI/env.txt
+ExecStartPre=/tool_9E_SI/set_cgroup_rt_runtime_us.sh 950000
+ExecStart=/tool_9E_SI/launch_sm.sh
+Type=oneshot
+User=root
+StandardOutput=inherit
+StandardError=inherit
+RemainAfterExit=yes
+LimitAS=infinity
+LimitRSS=infinity
+LimitCORE=infinity
+LimitNOFILE=65536
+LimitMSGQUEUE=infinity
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/options.conf b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/options.conf
new file mode 100644
index 00000000..05c48d97
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/options.conf
@@ -0,0 +1,2 @@
+[Mount]
+Options=rw,nodev
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/setup_refhw.service b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/setup_refhw.service
new file mode 100644
index 00000000..10875b28
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/setup_refhw.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Initialize Reference Hardware Settings
+After=weston.service
+
+[Service]
+EnvironmentFile=/tool_9E_SI/env.txt
+ExecStart=/tool_9E_SI/setup_refhw.sh
+Type=oneshot
+#StandardInput=tty
+#TTYPath=/dev/tty1
+#TTYReset=yes
+#TTYVHangup=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/systemd-udev-trigger.service b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/systemd-udev-trigger.service
new file mode 100644
index 00000000..07a3f30e
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/systemd-udev-trigger.service
@@ -0,0 +1,22 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=udev Coldplug all Devices
+Documentation=man:udev(7) man:systemd-udevd.service(8)
+DefaultDependencies=no
+Wants=systemd-udevd.service
+After=systemd-udevd-kernel.socket systemd-udevd-control.socket systemd-hwdb-update.service
+Before=sysinit.target
+ConditionPathIsReadWrite=/sys
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/tool_9E_SI/env.txt
+ExecStartPre=/tool_9E_SI/set_capability.sh
+ExecStart=/bin/udevadm trigger --type=subsystems --action=add ; /bin/udevadm trigger --type=devices --action=add
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/agl_set_capability.sh b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/agl_set_capability.sh
new file mode 100644
index 00000000..ac827d04
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/agl_set_capability.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+#
+# @copyright Copyright (c) 2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+ROMFILESTOP=/
+CAP_LST=${ROMFILESTOP}/usr/target/agl_cap.lst
+echo `cat ${CAP_LST}`
+#-----------------------------------------------------------------------
+# Capability
+
+df / --exclude-type=nfs > /dev/null
+IS_EMMC_BOOT=$?
+
+#*********************from init_nfs_cap.sh**************************
+
+echo "init_nfs-cap.sh: Start"
+
+VERBOSE=y
+SKIPWARN=n
+#-----------------------------------------------------------------------
+# Set Capability for NFS or Set DummyLink for ROM
+#CAP_LST="/usr/debug/share/target/cap.lst"
+CAP_LST="/usr/target/agl_cap.lst"
+
+if [ $IS_EMMC_BOOT -ne 0 ]; then
+if [ -f "${CAP_LST}" ];then
+ echo "*** set capability for NFS environment ***"
+ CAPPATH=/tmp/
+ cd /
+ for PREAD in `cat ${CAP_LST}`
+ do
+ IFS_ORG=${IFS} ; IFS='|' ; PARAM=(${PREAD}) ; IFS=${IFS_ORG}
+ CAP_NAME=${PARAM[0]} ; FMODE=${PARAM[1]} ; FUID_GID=${PARAM[2]}
+ FCAP=${PARAM[3]} ; FKEEPORGPATH=${PARAM[4]}
+ if [ ! -f "${CAP_NAME}" -a ! -f "${CAP_NAME}.org" ];then
+ if [ "${SKIPWARN}" = "n" ];then
+ echo "set capability: ${CAP_NAME}: No such file or directory" 1>&2
+ fi
+ continue
+ fi
+ TCAP_NAME="/tmp/${CAP_NAME##*/}"
+ # Set Capability for NFS
+ if [ ! -L "${CAP_NAME}" ]; then
+ cp -a ${CAP_NAME} ${TCAP_NAME}
+ if [ "${FKEEPORGPATH}" = "y" ];then
+ mv ${CAP_NAME} ${CAP_NAME}.org
+ ln -fs ${TCAP_NAME} ${CAP_NAME}
+ fi
+ else
+ cp -a ${CAP_NAME}.org ${TCAP_NAME}
+ fi
+ if [ -n "${FUID_GID}" ];then
+ chown ${FUID_GID} ${TCAP_NAME}
+ fi
+ if [ -n "${FMODE}" ];then
+ chmod ${FMODE} ${TCAP_NAME}
+ fi
+ if [ -n "${FCAP}" ];then
+ setcap ${FCAP} ${TCAP_NAME}
+ #if [ "${VERBOSE}" = "y" ];then
+ # getcap ${TCAP_NAME}
+ #fi
+ fi
+ done
+ cd - > /dev/null
+else
+ unset CAPPATH
+fi
+fi
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/launch_sm.sh b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/launch_sm.sh
new file mode 100644
index 00000000..ed1e8d12
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/launch_sm.sh
@@ -0,0 +1,26 @@
+#!/bin/bash -x
+#
+# @copyright Copyright (c) 2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# launch SS_SystemManager
+export APPS_CONFIG_FILENAME=sm_launch.cfg
+export SM_CONFIG_DATA_FILENAME=gpf_ss_sm_config_data.cfg
+export XDG_RUNTIME_DIR=/run/user/0
+cd /usr/agl/bin/
+rm -rf /nv/romaccess
+rm /dev/shm/lockfile
+
+/usr/agl/bin/SS_SystemManager &
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh
new file mode 100644
index 00000000..aa9b78de
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+#
+# @copyright Copyright (c) 2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+ROMFILESTOP=/
+CAP_LST=${ROMFILESTOP}/usr/target/cap.lst
+echo `cat ${CAP_LST}`
+#-----------------------------------------------------------------------
+# Capability
+
+df / --exclude-type=nfs > /dev/null
+IS_EMMC_BOOT=$?
+
+#*********************from init_nfs_cap.sh**************************
+
+echo "init_nfs-cap.sh: Start"
+
+VERBOSE=y
+SKIPWARN=n
+#-----------------------------------------------------------------------
+# Set Capability for NFS or Set DummyLink for ROM
+#CAP_LST="/usr/debug/share/target/cap.lst"
+CAP_LST="/usr/target/cap.lst"
+
+if [ $IS_EMMC_BOOT -ne 0 ]; then
+if [ -f "${CAP_LST}" ];then
+ echo "*** set capability for NFS environment ***"
+ CAPPATH=/tmp/
+ cd /
+ for PREAD in `cat ${CAP_LST}`
+ do
+ IFS_ORG=${IFS} ; IFS='|' ; PARAM=(${PREAD}) ; IFS=${IFS_ORG}
+ CAP_NAME=${PARAM[0]} ; FMODE=${PARAM[1]} ; FUID_GID=${PARAM[2]}
+ FCAP=${PARAM[3]} ; FKEEPORGPATH=${PARAM[4]}
+ if [ ! -f "${CAP_NAME}" -a ! -f "${CAP_NAME}.org" ];then
+ if [ "${SKIPWARN}" = "n" ];then
+ echo "set capability: ${CAP_NAME}: No such file or directory" 1>&2
+ fi
+ continue
+ fi
+ TCAP_NAME="/tmp/${CAP_NAME##*/}"
+ # Set Capability for NFS
+ if [ ! -L "${CAP_NAME}" ]; then
+ cp -a ${CAP_NAME} ${TCAP_NAME}
+ if [ "${FKEEPORGPATH}" = "y" ];then
+ mv ${CAP_NAME} ${CAP_NAME}.org
+ ln -fs ${TCAP_NAME} ${CAP_NAME}
+ fi
+ else
+ cp -a ${CAP_NAME}.org ${TCAP_NAME}
+ fi
+ if [ -n "${FUID_GID}" ];then
+ chown ${FUID_GID} ${TCAP_NAME}
+ fi
+ if [ -n "${FMODE}" ];then
+ chmod ${FMODE} ${TCAP_NAME}
+ fi
+ if [ -n "${FCAP}" ];then
+ setcap ${FCAP} ${TCAP_NAME}
+ if [ "${VERBOSE}" = "y" ];then
+ getcap ${TCAP_NAME}
+ fi
+ fi
+ done
+ cd - > /dev/null
+else
+ unset CAPPATH
+fi
+fi
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_cgroup_rt_runtime_us.sh b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_cgroup_rt_runtime_us.sh
new file mode 100644
index 00000000..41536f2c
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_cgroup_rt_runtime_us.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+#
+# @copyright Copyright (c) 2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+desired_rt_runtime_us=$1
+mygroup=${2:-$(awk -F: '$2 == "cpu,cpuacct" {print $3}' /proc/self/cgroup)}
+
+[[ $desired_rt_runtime_us -gt 0 ]] || exit
+[[ $mygroup ]] || exit
+[[ $mygroup = / ]] && exit
+
+echo "${0##*/}: setting cpu.rt_runtime_us for $mygroup" >&2
+
+cgpath=
+IFS=/ read -ra cgroups <<< "${mygroup:1}"
+for cg in "${cgroups[@]}"; do
+ cgpath="${cgpath}/${cg}"
+ echo "${0##*/}: $desired_rt_runtime_us -> /sys/fs/cgroup/cpu,cpuacct${cgpath}" >&2
+ echo "$desired_rt_runtime_us" > /sys/fs/cgroup/cpu,cpuacct${cgpath}/cpu.rt_runtime_us
+done
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/setup_refhw.sh b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/setup_refhw.sh
new file mode 100644
index 00000000..1f9501cb
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/setup_refhw.sh
@@ -0,0 +1,83 @@
+#!/bin/bash
+#
+# @copyright Copyright (c) 2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#to expand msg_max
+sysctl -w fs.mqueue.msg_max=512
+
+# device detection
+echo -n "TARGET_BOARD=" > /tmp/udev_device.env
+cat /proc/device-tree/model | cut -d " " -f 2 >> /tmp/udev_device.env
+echo >> /tmp/udev_device.env
+echo "UID=$INIT_UID" >> /tmp/udev_device.env
+echo "GID=$INIT_GID" >> /tmp/udev_device.env
+echo "BRAND=$VEHICLEPARAMETERLIBRARY_BRAND" >> /tmp/udev_device.env
+echo "AREA=$VEHICLEPARAMETERLIBRARY_AREA" >> /tmp/udev_device.env
+
+# Start: Workaround for release ###############################################
+## Sprint 29 To make WebService can update contents.
+#chown -R agl:agl /usr/agl/data/electronicom
+## For btservice initial data.
+#chown -R agl:agl /nv/backup/D_BK_CA_BT_MANAGEMENT
+## Sprint 29 PFDRECThread
+mkdir -p /ramd/log/frameworkunifiedlog/diag
+#chmod 777 /ramd/log/frameworkunifiedlog/diag
+touch /dev/mmcblk0p9
+chmod 660 /dev/mmcblk0p9
+## Sprint 29 communication
+#chmod -R 777 /home/root/.app_can_d
+# TODO:for bluetooth_service
+#chmod 777 /usr/agl/share
+
+if ! `df / --exclude-type=nfs > /dev/null`; then
+cp /sbin/insmod.kmod /tmp/insmod.kmod
+ln -s -f /tmp/insmod.kmod /sbin/insmod
+setcap cap_sys_module+ep /tmp/insmod.kmod
+fi
+
+## Sprint 32 Positioning
+#chmod 777 /dev/ttySC3
+#chmod -R 777 /home/root/.app_gps_cmd_d
+
+## Sprint 37 BUG17P-9 clock
+ln -f -s /tmp/bs/clock/localtime /etc/localtime
+
+# END: Workaround for release #################################################
+
+# permission setting
+# wait for weston is properly launched
+#until [ -e /run/user/0/wayland-0 ]
+#do
+# usleep 50000
+#done
+#chmod 777 /run/user/0/wayland-0
+
+mkdir /tmp/shm
+
+chmod 777 /tmp/shm
+chmod 666 /dev/mqueue/IccSnd
+#chmod 777 /dev/mqueue/*
+#chmod 777 /dev/mqueue/NS_NPPService
+#chmod 777 /run/user/0
+
+rm -rf /nv/romaccess
+rm /dev/shm/lockfile
+
+
+
+
+export PATH=`echo -n ${PATH} | sed 's|/tmp:||'`
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/agl/conf/systemmanager/sm_launch.cfg b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/agl/conf/systemmanager/sm_launch.cfg
new file mode 100644
index 00000000..50a18c9a
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/agl/conf/systemmanager/sm_launch.cfg
@@ -0,0 +1,10 @@
+# This file is created from ./sm_launch.tmp.xml.
+[ModulesLaunchConfig]
+Launch1=CoreModules|1|0|False|NS_NPPService|/usr/agl/bin/NS_NPPService|0|True|0|-a SS_SysManager -r output=0x2|NULL|NULL|False|True|20|1000||||||0x0
+Launch2=CoreModules|1|0|False|NS_BackupMgr|/usr/agl/bin/NS_BackupMgr|0|True|0|-l console|NULL|NULL|True|True|15|1000||||||0x0
+Launch3=SS_Logger|2|0|False|SS_LoggerSrv|/usr/agl/bin/SS_LoggerService|0|True|0|-l console -p thrd=pdg.LogQueReader:30,thrd=pdg.TransmitQueReader:30,thrd=pdg.DumpQueReader:11,thrd=pdg.PerformanceQueReader:11,thrd=pdg.LogQueWriter:30,thrd=pdg.TransmitQueWriter:30,thrd=pdg.EvntLogQue:8,thrd=pdg.UdpQueWriter:10|NULL|NULL|True|True|10|1000||||||0x0
+Launch4=ShadowModules|3|0|False|Communication|/usr/agl/bin/communication|0|True|0|-l console|NULL|NULL|True|False|20|1000||||||0x0
+Launch5=VehicleModules|4|0|False|Positioning|/usr/agl/bin/Positioning|0|True|0|NULL|NULL|NULL|True|False|0|1000||||||0x0
+Launch6=SystemModules|5|0|False|SS_PowerService|/usr/agl/bin/SS_PowerService|0|True|0|-l console|NULL|NULL|True|False|0|1000||||||0x0
+Launch7=SystemModules|5|0|False|SS_TaskManager|/usr/agl/bin/tskmgr|0|True|0|-l console|NULL|NULL|True|True|0|1000||||||0x0
+Launch8=SystemModules|5|0|False|SS_ResourceMgr|/usr/agl/bin/resm|0|True|0|-l console|NULL|NULL|True|False|0|1000||||||0x0
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/agl/conf/systemmanager/sm_launch__CWORD84_.xml b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/agl/conf/systemmanager/sm_launch__CWORD84_.xml
new file mode 100644
index 00000000..8dd14bb7
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/agl/conf/systemmanager/sm_launch__CWORD84_.xml
@@ -0,0 +1,116 @@
+<!-- group_id=1 -->
+<group name="CoreModules" wait_time="0" trigger="False" >
+ <launch
+ name=MN_NS_NPPSERVICE path="/usr/agl/bin/NS_NPPService" priority=PR_NS_NPPSERVICE_S
+ critical="True" retry_cnt="0" arguments="-a SS_SysManager -r output=0x2"
+ restart="NULL" is_start_required="False"
+ shutdown_critical="True" shutdown_wait_time="20" fast_shutdown_wait_time="1000"
+ user_name=""
+ />
+ <launch
+ name=MN_NS_BACKUPMGR path="/usr/agl/bin/NS_BackupMgr" priority=PR_NS_BACKUPMGR_S
+ critical="True" retry_cnt="0" arguments="-l console"
+ restart="NULL" is_start_required="True"
+ shutdown_critical="True" shutdown_wait_time="15" fast_shutdown_wait_time="1000"
+ user_name=""
+ />
+</group>
+<!-- group_id=2 -->
+<group name="SS_Logger" wait_time="0" trigger="False" >
+ <launch
+ name=MN_SS_LOGGERSRV path="/usr/agl/bin/SS_LoggerService" priority=PR_SS_LOGGERSRV_S
+ critical="True" retry_cnt="0" arguments="-l console -p thrd=pdg.LogQueReader:30,thrd=pdg.TransmitQueReader:30,thrd=pdg.DumpQueReader:11,thrd=pdg.PerformanceQueReader:11,thrd=pdg.LogQueWriter:30,thrd=pdg.TransmitQueWriter:30,thrd=pdg.EvntLogQue:8,thrd=pdg.UdpQueWriter:10"
+ restart="NULL" is_start_required="True"
+ shutdown_critical="True" shutdown_wait_time="10" fast_shutdown_wait_time="1000"
+ user_name=""
+ />
+</group>
+<!-- group_id=3 -->
+<group name="ShadowModules" wait_time="0" trigger="False" >
+ <!--
+ In order to excute the termination process promptly, the shutdown_wait_time of GROUP4~ sha be a;; set tp 0,
+ and FrameworkunifiedOnStop shall be issued to the servies of GROUP~ at almost the same time upon termination.
+ Setting shutdown_wait_time in the COMMUNICATION of GROUP3 makes GROUP3 wait for GROUP4~ to terminate service (wait for FrameworkunifiedOnStop responses) all at once.
+ The reason for batch wait by GROUP3 is to save the LOG of tge ternubatuib processing at the time of ACC-OFF of services
+ because the LOG save processing is performed by the GROUP2 termination processing of SS_LoggerService.
+ -->
+ <launch
+ name=MN_COMMUNICATION path="/usr/agl/bin/communication" priority=PR_COMMUNICATION_S
+ critical="True" retry_cnt="0" arguments="-l console"
+ restart="NULL" is_start_required="True"
+ shutdown_critical="False" shutdown_wait_time="20" fast_shutdown_wait_time="1000"
+ user_name=""
+ />
+</group>
+
+<!-- group_id=4 -->
+<group name="VehicleModules" wait_time="0" trigger="False" >
+ <launch
+ name=MN_POSITIONING path="/usr/agl/bin/Positioning" priority=PR_POSITIONING_S
+ critical="True" retry_cnt="0" arguments="NULL"
+ restart="NULL" is_start_required="True"
+ shutdown_critical="False" shutdown_wait_time="0" fast_shutdown_wait_time="1000"
+ user_name=""
+ />
+</group>
+
+<!-- group_id=5 -->
+<group name="SystemModules" wait_time="0" trigger="False" >
+ <launch
+ name=MN_SS_POWERSERVICE path="/usr/agl/bin/SS_PowerService" priority=PR_SS_POWERSERVICE_S
+ critical="True" retry_cnt="0" arguments="-l console"
+ restart="NULL" is_start_required="True"
+ shutdown_critical="False" shutdown_wait_time="0" fast_shutdown_wait_time="1000"
+ user_name=""
+ />
+ <launch
+ name=MN_SS_TASKMANAGER path="/usr/agl/bin/tskmgr" priority=PR_SS_TASKMANAGER_S
+ critical="True" retry_cnt="0" arguments="-l console"
+ restart="NULL" is_start_required="True"
+ shutdown_critical="True" shutdown_wait_time="0" fast_shutdown_wait_time="1000"
+ user_name=""
+ />
+ <launch
+ name=MN_SS_RESOURCEMGR path="/usr/agl/bin/resm" priority=PR_SS_RESOURCEMGR_S
+ critical="True" retry_cnt="0" arguments="-l console"
+ restart="NULL" is_start_required="True"
+ shutdown_critical="False" shutdown_wait_time="0" fast_shutdown_wait_time="1000"
+ user_name=""
+ />
+</group>
+<!-- group_id=6 -->
+<!-- group_id=7 -->
+<!-- group_id=8 -->
+<!-- group_id=9 -->
+<!-- group_id=10 -->
+<!-- group_id=11 -->
+<!-- group_id=12 -->
+<!-- group_id=13 -->
+<!-- group_id=14 -->
+<!-- group_id=15 -->
+<!-- group_id=16 -->
+<!-- group_id=17 -->
+<!-- group_id=18 -->
+<!-- group_id=19 -->
+<!-- group_id=20 -->
+<!-- group_id=21 -->
+<!-- group_id=22 -->
+<!-- group_id=23 -->
+<!-- group_id=24 -->
+<!-- group_id=25 -->
+<!-- group_id=26 -->
+<!-- group_id=28 -->
+<!-- group_id=29 -->
+<!-- group_id=30 -->
+<!-- group_id=31 -->
+<!-- group_id=32 -->
+<!-- group_id=33 -->
+<!-- group_id=34 -->
+<!-- group_id=35 -->
+<!-- group_id=36 -->
+<!-- group_id=37 -->
+<!-- group_id=38 -->
+<!-- group_id=39 -->
+<!-- group_id=40 -->
+<!-- group_id=41 -->
+<!-- group_id=42 -->
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/target/agl_cap.lst b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/target/agl_cap.lst
new file mode 100644
index 00000000..89ea0961
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/target/agl_cap.lst
@@ -0,0 +1,34 @@
+/usr/agl/bin/SS_SystemManager|||cap_sys_nice,cap_setuid,cap_setgid,cap_sys_resource+ep|y
+/usr/agl/bin/tskmgr|||cap_sys_nice,cap_setuid,cap_setgid=ep|y
+/usr/agl/bin/SS_DeviceDetectionService|||cap_setuid,cap_setgid,cap_sys_resource,cap_dac_override,cap_sys_admin+ep|y
+/usr/agl/bin/communication|||cap_dac_override+ep|y
+/usr/agl/bin/AS_AudioManager|||cap_sys_nice+ep|y
+/usr/agl/bin/acmsrv|||cap_dac_override,cap_sys_admin,cap_sys_nice,cap_sys_resource,cap_chown,cap_fowner,cap_setgid,cap_setuid,cap_kill+ep|y
+/usr/agl/bin/PS_SwitchHandler|||cap_sys_admin,cap_dac_override+ep|y
+/usr/agl/bin/LockManager|||cap_kill+ep|y
+/usr/agl/bin/nandupdate|||cap_dac_override+ep|y
+/usr/agl/bin/wlan_controller|||cap_net_raw,cap_net_admin+ep|y
+/usr/agl/bin/DummyRead|||cap_dac_read_search+ep|y
+/usr/agl/bin/clock|||cap_sys_time+ep|y
+/usr/agl/bin/Mounter|||cap_sys_admin,cap_dac_override+ep|y
+/usr/agl/bin/MounterEx|||cap_sys_admin,cap_fowner,cap_dac_override,cap_chown+ep|y
+/usr/agl/bin/DevReproService|||cap_chown,cap_fowner,cap_dac_override+ep|y
+/usr/agl/bin/PS_CDR|||cap_sys_admin+ep|y
+/usr/agl/bin/webdavmgr|||cap_net_admin,cap_net_raw+ep|y
+/usr/agl/bin/DiagService|||cap_sys_rawio,cap_dac_override+ep|y
+/usr/agl/bin/resm|||cap_setuid+ep|y
+/usr/agl/bin/SS_LoggerService|||cap_dac_override+ep|y
+/usr/agl/bin/NetworkManager|||cap_setuid,cap_setgid,cap_sys_admin,cap_chown,cap_kill,cap_net_raw,cap_net_admin,cap_net_bind_service+ep|y
+/usr/agl/bin/RadioService|||cap_sys_nice+ep|y
+/usr/agl/bin/ASND_VProxy|||cap_sys_nice+ep|y
+/usr/agl/bin/misink|||cap_sys_nice+ep|y
+/usr/agl/bin/mlink|||cap_sys_nice+ep|y
+/usr/agl/bin/media_service|||cap_dac_override,cap_sys_nice+ep|y
+/usr/agl/bin/_CWORD74__service|||cap_dac_override+ep|y
+/usr/agl/bin/PlaybackService|||cap_sys_nice+ep|y
+/usr/agl/bin/Positioning|||cap_dac_override+ep|y
+/usr/agl/bin/vehicle|||cap_dac_override+ep|y
+/usr/agl/bin/bluetooth_srv|||cap_dac_override,cap_sys_nice+ep|y
+/usr/agl/bin/btd_srv|||cap_dac_override,cap_sys_nice+ep|y
+/usr/agl/bin/NS_BackupMgr|||cap_dac_override+ep|y
+/usr/agl/bin/Sound|||cap_dac_override+ep|y
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/target/cap.lst b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/target/cap.lst
new file mode 100644
index 00000000..c27de10c
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/usr/target/cap.lst
@@ -0,0 +1,24 @@
+/bin/udevadm|||cap_dac_override+ep|y
+/sbin/ifconfig|||cap_net_admin+ep|y
+/usr/libexec/firmware|||cap_sys_rawio,cap_dac_override+ep|y
+/usr/bin/fusedav|||cap_sys_admin+ep|y
+/sbin/dhclient|||cap_net_bind_service,cap_net_admin,cap_net_raw,cap_chown,cap_kill,cap_sys_admin+ep|y
+/sbin/dhcpd|||cap_net_bind_service,cap_net_admin,cap_net_raw,cap_chown,cap_kill,cap_sys_admin+ep|y
+/usr/debug/bin/busybox|||cap_sys_module,cap_net_raw+ep|y
+/sbin/insmod|||cap_sys_module+ep|y
+/sbin/rmmod|||cap_sys_module+ep|y
+/usr/sbin/xtables-multi|||cap_net_raw,cap_net_admin+ep|y
+/usr/bin/fusermount|||cap_sys_admin+ep|y
+/usr/bin/simple-mtpfs|||cap_sys_admin+ep|y
+/sbin/slattach|||cap_net_admin+ep|y
+/sbin/mkfs.ext4|||cap_dac_override+ep|y
+/sbin/losetup|||cap_dac_override+ep|y
+/usr/bin/aplay|||cap_sys_nice+ep|y
+/usr/bin/modetest|||cap_sys_admin+ep|y
+/sbin/fsck.ext4|||cap_dac_override+ep|y
+/usr/sbin/tune2fs|||cap_dac_override+ep|y
+/usr/bin/syslogd|||cap_dac_override+ep|y
+/usr/bin/dnsmasq|||cap_net_bind_service,cap_net_admin,cap_net_raw,cap_chown,cap_kill,cap_setgid,cap_setuid,cap_sys_admin+ep|y
+/usr/sbin/pppd|||cap_setuid,cap_sys_admin,cap_chown,cap_fowner,cap_kill,cap_net_admin,cap_dac_override+ep|y
+/sbin/ip|||cap_net_bind_service,cap_net_admin,cap_net_raw+ep|y
+/usr/bin/arping|||cap_net_bind_service,cap_net_admin,cap_net_raw,cap_setuid+ep|y
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/elfio/elfio_3.2.bb b/meta-agl/meta-agl-basesystem/recipes-core/elfio/elfio_3.2.bb
new file mode 100644
index 00000000..9d32de73
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/elfio/elfio_3.2.bb
@@ -0,0 +1,19 @@
+SUMMARY = "elfio for SystemManager"
+DESCRIPTION = "install elfio to build SystemManager"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4f932e9ddd12264ae5e569aae5f08ed3"
+
+SRC_URI = "https://excellmedia.dl.sourceforge.net/project/elfio/ELFIO-sources/ELFIO-${PV}/${PN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "e1ddfc8d316fa6d03a04d8d1d6827663"
+
+FILES_${PN}-dev = "/usr/include/elfio/*"
+ALLOW_EMPTY_${PN} = "1"
+
+do_patch[noexec] = "1"
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -d ${D}/usr/include/elfio/
+ cp ${WORKDIR}/${PN}-${PV}/elfio/* ${D}/usr/include/elfio/
+}
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/Makefile b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/Makefile
new file mode 100644
index 00000000..2c37667b
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/Makefile
@@ -0,0 +1,30 @@
+# @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Makefile for linux/drivers/agl
+#
+CFILES = evk_lib.c
+
+obj-m := evk_lib.o
+evklib-objs := $(CFILES:.c=.o)
+
+U_INCLUDE += -I$(PWD)
+U_INCLUDE += -I$(KERNEL_SRC)/include
+ccflags-y += $(U_INCLUDE)
+
+all:
+ make -C $(KERNEL_SRC) M=$(PWD) modules
+clean:
+ make -C $(KERNEL_SRC) M=$(PWD) clean
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/agldd.h b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/agldd.h
new file mode 100644
index 00000000..112dbaea
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/agldd.h
@@ -0,0 +1,94 @@
+/*
+ * adcpf common header
+ *
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _AGLDD_H_
+#define _AGLDD_H_
+#ifdef __KERNEL__
+#include <linux/types.h>
+#else
+#include <stdint.h>
+#if !defined(__cplusplus)
+#include <stdbool.h>
+#endif /* !defined(__cplusplus) */
+#endif /* __KERNEL__ */
+
+#ifndef __KERNEL__
+#define __LINUX_ARM_ARCH__ 7
+#define BITS_PER_LONG 32
+
+#define __AGLDD_TYPEDEF_I64
+typedef long long i64; /* 8-byte signed integer */
+
+#define __AGLDD_TYPEDEF_U64
+typedef unsigned long long u64; /* 8-byte unsigned integer */
+
+#define __AGLDD_TYPEDEF_U32
+typedef unsigned long u32; /* 4-byte unsigned integer */
+
+#define __AGLDD_TYPEDEF_U16
+typedef unsigned short u16; /* 2-byte unsigned integer */
+
+#define __AGLDD_TYPEDEF_I16
+typedef short i16; /* 2-byte signed integer */
+
+#define __AGLDD_TYPEDEF_U8
+typedef unsigned char u8; /* 1-byte unsigned integer */
+
+#define __AGLDD_TYPEDEF_I8
+typedef char i8; /* 1-byte signed integer */
+#endif
+
+#define __AGLDD_TYPEDEF_INT8
+typedef signed char INT8;
+
+#define __AGLDD_TYPEDEF_INT16
+typedef signed short INT16;
+
+#define __AGLDD_TYPEDEF_INT32
+typedef signed int INT32;
+
+#define __AGLDD_TYPEDEF_INT64
+typedef signed long long INT64;
+
+#define __AGLDD_TYPEDEF_UINT8
+typedef unsigned char UINT8;
+
+#define __AGLDD_TYPEDEF_UINT16
+typedef unsigned short UINT16;
+
+#define __AGLDD_TYPEDEF_UINT32
+typedef unsigned int UINT32;
+
+#define __AGLDD_TYPEDEF_UINT64
+typedef unsigned long long UINT64;
+
+#ifndef __KERNEL__
+#if !defined __WIN_TYPEDEF_BOOL
+#define __AGLDD_TYPEDEF_BOOL
+typedef UINT32 BOOL;
+#endif
+#endif
+
+#ifndef TRUE
+#define TRUE true
+#endif
+#ifndef FALSE
+#define FALSE false
+#endif
+
+#endif/* _AGLDD_H_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/ev_common.h b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/ev_common.h
new file mode 100644
index 00000000..0cc1183c
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/ev_common.h
@@ -0,0 +1,135 @@
+/**
+ * @file ev_common.h
+ * @brief Event library -- User kernel common data structure
+ *
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _ev_common_h_
+#define _ev_common_h_
+
+#include <agldd/ev_id.h>
+
+/** @addtogroup EV
+ * @{ */
+/** @brief Maximum number of bytes for message event */
+#define EV_MAX_MESSAGE_LENGTH 2048
+
+/** @brief -Maximum number of flag queue that can be created within a thread */
+#define EV_MAX_IDS_IN_THREAD 24
+
+/** @brief -Muximum number of threads that can be registered to the EV in a process */
+#define EV_MAX_THREADS_IN_PROCESS 16
+
+/** @brief -Maximum number of flag queue that can be creat within a process
+ */
+#define EV_MAX_IDS_IN_PROCESS \
+ (EV_MAX_IDS_IN_THREAD * EV_MAX_THREADS_IN_PROCESS)
+
+/** @brief Return values for even library function
+ *
+ * @see EV_ERR
+ */
+enum ev_err
+{
+ EV_OK = 0, /**< Normal completion */
+ EV_ERR_Exist, /**< The specified flag message queue does exist */
+ EV_ERR_Invalid_ID, /**< The specified flag message queue does not exist */
+ EV_ERR_Busy, /**< Message queue full failed to send */
+ EV_ERR_Interrupted, /**< Waiting function was interrupted by an interrupt */
+ EV_ERR_Thread_Over, /**< Exceeding the number of threads in the process */
+ EV_ERR_Invalid_Thread, /**< Invalid thread ID */
+ EV_ERR_Fatal, /**< Fatal error */
+};
+/** @brief Return values type for even library function
+ *
+ * @see ev_err
+ */
+typedef INT32 EV_ERR;
+
+/** @brief Event type
+ *
+ * Use in the type of EV_Event structs
+ * @see ev_type
+ */
+typedef UINT32 EV_Type;
+
+/** @brief Bit value representing the type of event */
+enum ev_type {
+ EV_EVENT_None = 0x00000000,
+
+ /** Flag event: Judged by EV_EVENT_IS_FLAG() */
+ EV_EVENT_Flag = 0x0001,
+#define EV_EVENT_IS_FLAG(tp) (((tp) & EV_EVENT_Flag) != 0)
+
+ /** Message event: Judged by EV_EVENT_IS_MESSAGE() */
+ EV_EVENT_Message = 0x0002,
+#define EV_EVENT_IS_MESSAGE(tp) (((tp) & EV_EVENT_Message) != 0)
+
+ /** 64bit flag event: Judged by EV_EVENT_IS_FLAG64() */
+ EV_EVENT_Flag64 = 0x0003,
+#define EV_EVENT_IS_FLAG64(tp) (((tp) & EV_EVENT_Flag64) != 0)
+
+};
+
+/** @brief Flag event structure */
+typedef struct {
+ EV_ID flagID;/**< Flag ID */
+ UINT32 bits;/**< Bit pattern */
+} EV_Flag;
+
+/** @brief 64bit flag event structure */
+typedef struct {
+ EV_ID flagID;/**< Flag ID */
+ UINT64 bits;/**< Bit pattern */
+} EV_Flag64;
+
+/** @brief Message event structure */
+typedef struct {
+ EV_ID queueID;/**< queue ID */
+ UINT32 senderInfo;/**< Source information */
+ UINT32 length;/**< Number of bytes in the message */
+ UINT32 dummy;/** dummy for pading */
+ UINT8 message[EV_MAX_MESSAGE_LENGTH];/**< Message */
+} EV_Message;
+
+/** @brief Event structure */
+typedef struct {
+ EV_Type type; /**< Event type */
+ union {
+ EV_Flag flag; /**< Flag event structure */
+ EV_Flag64 flag64; /**< Flag event structure */
+ EV_Message message; /**< Message event structure */
+ } u; /**< Union of structures per eventtype */
+} EV_Event;
+
+/** @brief Message event queue type
+ *
+ * Specify the action to be taken when the queue overflows (more events are received when the queue is full).
+ */
+enum ev_message_queue_type {
+ EV_MESSAGE_QUEUE_TYPE_BUSY,/**< Return a BUSY to the source */
+ EV_MESSAGE_QUEUE_TYPE_FIFO,/**< Delete the oldest event */
+ EV_MESSAGE_QUEUE_TYPE_REPLACE,/**< Replace the most recent event */
+};
+
+/** @brief Messge event queue type
+ *
+ * @see ev_message_queue_type
+ */
+typedef UINT8 EV_Message_Queue_Type;
+
+/** @} */
+
+#endif /* !_ev_common_h_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/ev_id.h b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/ev_id.h
new file mode 100644
index 00000000..2026ef79
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/ev_id.h
@@ -0,0 +1,104 @@
+/**
+ * @file ev_id.h
+ * @brief Event library(kernel) -- Defining flag queue ID
+ *
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _ev_id_h_
+#define _ev_id_h_
+
+/** @addtogroup EV_ID_spec
+ * @{ */
+
+/** @brief Flag ID and queue ID types used when sending and receiving events
+ *
+ * Assign a 32-bit value as follows
+ *
+ * - Most significant 8 bits: Reserved
+ * - Next 16 bits: Modue ID
+ * - Lower 8 bits: Define in module
+ *
+ * Where module is the modules that creates the queue.
+ * The modules define ID according to the above assignments using EV_Flag_ID_Base and EV_Queue_ID_Base macros.
+ * @see EV_Flag_ID_Base
+ * @see EV_Queue_ID_Base
+ */
+typedef UINT32 EV_ID;
+
+#define EV_ID_BIT 0x80000000UL
+#define EV_FLAG64_BIT 0x40000000UL
+#define EV_FLAG_BIT 0x20000000UL
+#define EV_QUEUE_BIT 0x10000000UL
+#define EV_AUTO_ID_BIT 0x08000000UL
+#define EV_RESERVED_BIT 0xff000000UL
+#define EV_INVALID_ID EV_ID_BIT
+#define EV_NO_ID EV_INVALID_ID
+
+#define EV_ID_IS_FLAG(queueID) \
+ (((queueID) & (EV_ID_BIT|EV_FLAG_BIT)) == (EV_ID_BIT|EV_FLAG_BIT))
+#define EV_ID_IS_FLAG64(queueID) \
+ (((queueID) & (EV_ID_BIT|EV_FLAG64_BIT)) == (EV_ID_BIT|EV_FLAG64_BIT))
+#define EV_ID_IS_QUEUE(queueID) \
+ (((queueID) & (EV_ID_BIT|EV_QUEUE_BIT)) == (EV_ID_BIT|EV_QUEUE_BIT))
+#define EV_ID_IS_AUTO_ID(queueID) \
+ (((queueID) & (EV_ID_BIT|EV_AUTO_ID_BIT)) == (EV_ID_BIT|EV_AUTO_ID_BIT))
+#define EV_ID_IS_VALID(queueID) \
+ (EV_ID_IS_FLAG(queueID) || EV_ID_IS_FLAG64(queueID) || EV_ID_IS_QUEUE(queueID))
+
+/** @brief Macros for defining flag ID
+ *
+ * Define the module ID as an argument as follows.
+ * - #define XXX_Module_ID 1
+ * - #define XXX_Flag_ID_Base EV_Flag_ID_Base(XXX_Module_ID)
+ * -
+ * - #define XXX_Flag_foo (XXX_Flag_ID_Base + 1)
+ * - #define XXX_Flag_bar (XXX_Flag_ID_Base + 2)
+ *
+ * The module ID is 16 bits and 0 to 65535 can be specified.
+ * In addition, 0 to 255 added to Base can be defined as ID.
+ */
+#define EV_Flag_ID_Base(mod) (EV_ID_BIT|EV_FLAG_BIT|((mod)<<8))
+
+/** @brief Macros for defining 64 bits flag ID
+ *
+ * Define the module ID as an argument as follows.
+ * - #define XXX_Module_ID 1
+ * - #define XXX_Flag64_ID_Base EV_Flag64_ID_Base(XXX_Module_ID)
+ * -
+ * - #define XXX_Flag64_foo (XXX_Flag64_ID_Base + 1)
+ * - #define XXX_Flag64_bar (XXX_Flag64_ID_Base + 2)
+ *
+ * The module ID is 16 bits and 0 to 65535 can be specified.
+ * In addition, 0 to 255 added to Base can be defined as ID.
+ */
+#define EV_Flag64_ID_Base(mod) (EV_ID_BIT|EV_FLAG64_BIT|((mod)<<8))
+
+/** @brief Macros for defining mesage queue ID
+ *
+ * Define the module ID as an argument as follows.
+ * - #define XXX_Module_ID 1
+ * - #define XXX_Queue_ID_Base EV_Queue_ID_Base(XXX_Module_ID)
+ * -
+ * - #define XXX_Queue_foo (XXX_Queue_ID_Base + 1)
+ * - #define XXX_Queue_bar (XXX_Queue_ID_Base + 2)
+ *
+ * The module ID is 16 bits and 0 to 65535 can be specified.
+ * In addition, 0 to 255 added to Base can be defined as ID.
+ */
+#define EV_Queue_ID_Base(mod) (EV_ID_BIT|EV_QUEUE_BIT|((mod)<<8))
+
+/** @} */
+
+#endif /* ! _ev_id_h_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/evk_lib.h b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/evk_lib.h
new file mode 100644
index 00000000..416fb0f2
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/evk_lib.h
@@ -0,0 +1,116 @@
+/**
+ * @file evk_lib.h
+ * @brief Event library -- API specifications for kernel modules
+ *
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _evk_lib_h_
+#define _evk_lib_h_
+
+#include <agldd/ev_common.h>
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+/* API definition */
+
+/** @addtogroup EV
+ * @{ */
+#ifdef __KERNEL__
+/* Flag message queue create/delete */
+EV_ERR EVK_create_flag(EV_ID flagID);
+EV_ERR EVK_create_flag64(EV_ID flagID);
+EV_ERR EVK_create_queue(EV_ID queueID,
+ UINT8 length,
+ UINT16 max_bytes,
+ EV_Message_Queue_Type type);
+
+EV_ERR EVK_create_flag_auto_id(/* OUT */EV_ID *flagID);
+EV_ERR EVK_create_flag64_auto_id(/* OUT */EV_ID *flagID);
+EV_ERR EVK_create_queue_auto_id(/* OUT */EV_ID *queueID,
+ UINT8 length,
+ UINT16 max_bytes,
+ EV_Message_Queue_Type type);
+
+EV_ERR EVK_destroy_flag(EV_ID flagID);
+EV_ERR EVK_destroy_queue(EV_ID queueID);
+
+/* Send events */
+EV_ERR EVK_set_flag(EV_ID flagID, UINT32 bits);
+EV_ERR EVK_set_flag64(EV_ID flagID, UINT64 bits);
+EV_ERR EVK_send_message(EV_ID queueID, UINT16 bytes, const void *message,
+ UINT32 senderInfo);
+
+/* Get event(with search conditions) */
+EV_ERR EVK_get_flag(EV_ID flagID, /* OUT */EV_Flag *flag);
+EV_ERR EVK_wait_flag(EV_ID flagID, /* OUT */EV_Flag *flag);/* block */
+EV_ERR EVK_peek_flag(EV_ID flagID, /* OUT */EV_Flag *flag);
+EV_ERR EVK_get_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);
+EV_ERR EVK_wait_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);/* block */
+EV_ERR EVK_peek_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);
+
+EV_ERR EVK_get_message(EV_ID queueID, /* OUT */EV_Message *message);
+EV_ERR EVK_wait_message(EV_ID queueID, /* OUT */EV_Message *message);/* block */
+EV_ERR EVK_peek_message(EV_ID queueID, /* OUT */EV_Message *message);
+
+EV_ERR EVK_find_message_by_sender(EV_ID queueID, UINT32 senderInfo,
+ /* OUT */EV_Message *message);
+EV_ERR EVK_find_message_by_content(EV_ID queueID, UINT16 length,
+ const void *compare_bytes,
+ /* OUT */EV_Message *message);
+#endif
+
+/** @} */
+
+/** @addtogroup EVK_in
+ * @{ */
+#define EVK_NAME "evk"
+#define EVK_DEV_NAME "/dev/agl/"EVK_NAME
+#define EVK_DEV_MAJOR (1033 % 256)
+#define EVK_IOC_MAGIC 0xE7
+
+#define EVK_IOC_CREATE_FLAG _IO(EVK_IOC_MAGIC, 0x00)
+#define EVK_IOC_CREATE_FLAG64 _IO(EVK_IOC_MAGIC, 0x01)
+#define EVK_IOC_CREATE_MESSAGE_QUEUE _IO(EVK_IOC_MAGIC, 0x02)
+#define EVK_IOC_ALLOC_FLAG_ID _IO(EVK_IOC_MAGIC, 0x03)
+#define EVK_IOC_ALLOC_FLAG64_ID _IO(EVK_IOC_MAGIC, 0x04)
+#define EVK_IOC_ALLOC_QUEUE_ID _IO(EVK_IOC_MAGIC, 0x05)
+#define EVK_IOC_DESTROY_QUEUE _IO(EVK_IOC_MAGIC, 0x06)
+#define EVK_IOC_STORE_FLAG _IO(EVK_IOC_MAGIC, 0x07)
+#define EVK_IOC_STORE_FLAG64 _IO(EVK_IOC_MAGIC, 0x08)
+#define EVK_IOC_STORE_MESSAGE _IO(EVK_IOC_MAGIC, 0x09)
+#define EVK_IOC_SET_POLL _IO(EVK_IOC_MAGIC, 0x0a)
+#define EVK_IOC_GET_EVENT _IO(EVK_IOC_MAGIC, 0x0b)
+#define EVK_IOC_PEEK_EVENT _IO(EVK_IOC_MAGIC, 0x0c)
+#define EVK_IOC_WAIT_EVENT _IO(EVK_IOC_MAGIC, 0x0d)
+#define EVK_IOC_GET_NEXT_EVENT _IO(EVK_IOC_MAGIC, 0x0e)
+#define EVK_IOC_PEEK_NEXT_EVENT _IO(EVK_IOC_MAGIC, 0x0f)
+#define EVK_IOC_DEBUG_LIST _IO(EVK_IOC_MAGIC, 0x10)
+
+typedef struct {
+ EV_ID queueID;/**< Queue ID */
+ UINT32 max_bytes;/**< Maximum number of bytes for an event */
+ UINT8 length;/**< Queue length */
+ EV_Message_Queue_Type type;/**< Type */
+} EVK_Message_Queue_Request;
+
+typedef struct {
+ INT32 num; /**< Number of queue ID of search */
+ EV_ID ids[EV_MAX_IDS_IN_PROCESS]; /**< Queue ID of search */
+ EV_Event ev; /**< [OUT] First event that occured */
+} EVK_Next_Event_Query;
+
+/** @} */
+
+#endif /* !_evk_lib_h */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/moduleid.h b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/moduleid.h
new file mode 100644
index 00000000..b18c1a1e
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/agldd/moduleid.h
@@ -0,0 +1,69 @@
+/*
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <linux/autoconf.h>
+#ifndef _AGLDD_MODULEID_H_
+#define _AGLDD_MODULEID_H_
+
+/*
+ * Define module ID to be used by programs in moduleid_id.h .
+ * Define in the format of "#define XXX_MID ID number" (XXX is the module name).
+ *
+ * MID allocation policy shall be as follows.
+ * - UI Application : 0xxxh
+ * - Application Service : 1xxxh to 2xxxh
+ * + HMI : 10xxh
+ * + AV : 12xxh
+ * + Radio : 14xxh
+ * + Connectivity : 16xxh
+ * + Navigation/Location: 18xxh
+ * + Vehicle : 1Axxh
+ * + Communication : 1Cxxh
+ * + BasePF : 1Exxh
+ * + System : 20xxh
+ * + Other : 22xxh
+ * - Common Service : 3xxxh
+ * - Extension Service : 4xxxh
+ * - System/Device Driver : 5xxxh
+ */
+
+/* UI Application : 0xxxh */
+
+/* Application Service : 1xxxh to 2xxxh */
+#define MODEMANAGER_MID 0x1000
+#define ACTIVITYMANAGER_MID 0x1001
+
+/* Common Service : 3xxxh */
+#define IPMANAGER_MID 0x3000
+#define DEVICEMANAGER_MID 0x3001
+#define MSGBRK_MID 0x3002
+#define TIMERENTRYDRV_MID 0x3003
+#define SOUNDAGENT_MID 0x3004
+#define CAN_MID 0x3006
+#define _CWORD83__MID 0x3007
+#define SENSOR_MID 0x3008
+#define GPS_MID 0x3009
+#define RESMGR_MID 0x300A
+#define GRAPHICS_MID 0x300B
+
+/* Extension Service : 4xxxh */
+
+/* System/Device Driver : 5xxxh */
+#define EV_MID 0x5001
+#define RPC_MID 0x5002
+#define EVK_MID 0x5801
+
+#endif /* !_AGLDD_MODULEID_H_ */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/evk_lib.c b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/evk_lib.c
new file mode 100644
index 00000000..d5c1718e
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib-1.0.0/evk_lib.c
@@ -0,0 +1,2246 @@
+/*
+ * drivers/agl/evk_lib.c
+ *
+ * Event library (kernel space part)
+ *
+ * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <generated/autoconf.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/version.h>
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/sched.h>
+#include <linux/wait.h>
+#include <linux/poll.h>
+#include <linux/list.h>
+#include <asm/uaccess.h>
+#include <linux/errno.h>
+#include <linux/vmalloc.h>
+
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+
+#include <linux/device.h>
+#include <linux/cdev.h>
+
+#ifndef STANDARD_INT_DEFINITIONS
+#define STANDARD_INT_DEFINITIONS
+typedef __u8 UINT8;
+typedef __u16 UINT16;
+typedef __u32 UINT32;
+typedef __u64 UINT64;
+typedef __s8 INT8;
+typedef __s16 INT16;
+typedef __s32 INT32;
+typedef __s64 INT64;
+#endif /* !STANDARD_INT_DEFINITIONS */
+
+#define ENABLE_PROC_FS 1
+
+#include <agldd/evk_lib.h>
+
+/** @addtogroup EV_in */
+/** @{ */
+/** In Linux2.4, list_for_each_entry is not provided, so it is prepared by self (in 2.6)
+ */
+#ifdef list_for_each_entry
+#define __LINUX_26_OR_HIGHER
+#endif
+
+#ifndef __LINUX_26_OR_HIGHER /* linux v2.4 */
+
+#define list_for_each_entry(pos, head, member) \
+ for (pos = list_entry((head)->next, typeof(*pos), member), \
+ prefetch(pos->member.next); \
+ &pos->member != (head); \
+ pos = list_entry(pos->member.next, typeof(*pos), member), \
+ prefetch(pos->member.next))
+
+#define list_for_each_entry_safe(pos, n, head, member) \
+ for (pos = list_entry((head)->next, typeof(*pos), member), \
+ n = list_entry(pos->member.next, typeof(*pos), member); \
+ &pos->member != (head); \
+ pos = n, n = list_entry(n->member.next, typeof(*n), member))
+
+#else /* linux v2.6 */
+
+#include <linux/jiffies.h>
+
+#endif /* linux v2.6 */
+
+#define EVK_assert(cond, mesg) \
+ if (!(cond)) { \
+ printk(KERN_ALERT "[EVK]ASSERT(pid:%d): " #cond " at %s:%d; " \
+ #mesg "\n", current->pid, __FILE__, __LINE__); \
+ do {} while(1); \
+ }
+
+#define EVK_BUG(mesg) \
+ printk(KERN_ALERT "[EVK]BUG: " mesg); \
+ do {} while(1);
+
+#if 0
+#define EVK_info0(s) printk(KERN_ALERT "[EVK]INFO: " s)
+#define EVK_info1(s, t) printk(KERN_ALERT "[EVK]INFO: " s, t)
+#else
+#define EVK_info0(s)
+#define EVK_info1(s, t)
+#endif
+
+static int devmajor = EVK_DEV_MAJOR;
+static int devminor = 0;
+static int nrdevs = 1;
+static struct cdev cdev;
+static struct class *pClass;
+
+DEFINE_SEMAPHORE(evk_mtx);
+static int down_pid;
+static int down_line;
+#define EVK_mutex_lock() { \
+ down(&evk_mtx); \
+ down_pid = current->pid; \
+ down_line = __LINE__; \
+}
+#define EVK_mutex_unlock() (up(&evk_mtx))
+
+#ifdef EVK_USE_KMALLOC
+#define evk_malloc(s) kmalloc((s), GFP_KERNEL)
+#define evk_free kfree
+#else // use vmalloc (this is the default)
+#define evk_malloc(s) vmalloc((s))
+#define evk_free vfree
+#endif
+
+enum {
+ evk_mem_user = 0,
+ evk_mem_kernel,
+};
+
+enum {
+ evk_enum_flag,
+ evk_enum_flag64,
+ evk_enum_queue,
+};
+
+#define GET_USER_OR_KERNEL(to, from) \
+({ \
+ int err; \
+ if (mem == evk_mem_user) { \
+ err = __get_user((to), &(from)); \
+ } else { \
+ (to) = (from); \
+ err = 0; \
+ } \
+ err; \
+})
+
+#define PUT_USER_OR_KERNEL(value, to) \
+({ \
+ int err; \
+ if (mem == evk_mem_user) { \
+ err = __put_user((value), &(to)); \
+ } else { \
+ (to) = (value); \
+ err = 0; \
+ } \
+ err; \
+})
+
+
+/** @brief Common part of the flag structure and message queue structure */
+#define EVK_COMMON_QUEUE_ELEMS \
+ struct list_head list; /**< List structure */ \
+ wait_queue_head_t wq_head; /**< Wait_queue of a process waiting for a queue */\
+ EV_ID queueID; /**< Flag ID/Queue ID */ \
+ UINT32 seq_num; /**< Order of event arrival */ \
+ pid_t read_pid; /**< Read process ID */ \
+ pid_t pid; /**< Owning process ID */
+
+/** @brief Common part of the flag structure and message queue structure */
+struct common_queue {
+ EVK_COMMON_QUEUE_ELEMS
+};
+
+/** @brief Flag structure */
+struct flag {
+ EVK_COMMON_QUEUE_ELEMS
+ UINT32 value;/**< Flags value */
+};
+#define EVK_PFLAG(queue) ((struct flag*)queue)
+
+/** @brief 64-bit flag structure */
+struct flag64 {
+ EVK_COMMON_QUEUE_ELEMS
+ UINT64 value;/**< Flags value */
+};
+#define EVK_PFLAG64(queue) ((struct flag64*)queue)
+
+/** @brief Message queue structure */
+struct message_queue {
+ EVK_COMMON_QUEUE_ELEMS
+ UINT8 type;/**< Type */
+ UINT8 length;/**< Queue length */
+ UINT8 num;/**< Number of messages stored */
+ UINT8 readptr;/**< Next read position(0~length-1) */
+ UINT32 max_bytes;/**< -Maximum bytes per message */
+ UINT8 *message;/**< Message storage area (ring buffer) */
+};
+#define EVK_PQUEUE(queue) ((struct message_queue*)queue)
+
+/** @brief Number of bytes to allocate per message
+ *
+ * This function allocates an area to store the number of bytes actually stored, the time of occurrence,
+ * and the senderInfo, in addition to the number of bytes specified by max_bytes.
+ */
+#define EVK_message_block_size(max_bytes) (sizeof(UINT32) * 3 + (max_bytes))
+
+#define HASH_KEY 15
+
+/** @brief Maximum number of flags used by all systems */
+#define EVK_MAX_FLAGS 48
+/** @brief Maximum number of 64-bit flags used by all systems */
+#define EVK_MAX_FLAG64S 4
+/** @brief Maximum number of message event queues used by all systems */
+/* M1SP BM3547 MESSAGE_QUEUES 128->144 */
+/* M9AT BM2066 MESSAGE_QUEUES 144->218 */
+#define EVK_MAX_MESSAGE_QUEUES 224
+
+/** @brief Allocate flag structure statically */
+static struct flag _flag_pool[EVK_MAX_FLAGS];
+/** @brief Statically allocates a 64-bit flag structure */
+static struct flag64 _flag64_pool[EVK_MAX_FLAG64S];
+/** @brief Beginning of the list of unused flags */
+static LIST_HEAD(flag_pool);
+/** @brief Beginning of the list of unused 64-bit flags */
+static LIST_HEAD(flag64_pool);
+
+/** @brief Allocate message queue structure statically */
+static struct message_queue _message_queue_pool[EVK_MAX_MESSAGE_QUEUES];
+/** @brief Top of the list of unused message queues */
+static LIST_HEAD(message_queue_pool);
+
+/** @brief List of Flags/Message Queues in Use
+ *
+ * Connects the usage flag/message queue to a list for each hash value obtained from the ID.
+ * The hash value is the remainder of the ID divided by HASH_KEY.
+ */
+static struct list_head queue_entry[HASH_KEY];
+
+/** @brief Sequence number to use during automatic ID assignment */
+static EV_ID sequence_id = 0;
+
+/** @brief Number to be assigned in order of occurrence of the event */
+static UINT32 sequence_number = 0;
+
+unsigned int
+evk_get_queue_entry(struct list_head **entries)
+{
+ if (entries) {
+ *entries = queue_entry;
+ return HASH_KEY;
+ }
+ return 0;
+}
+
+static __inline__ int
+calc_hash(UINT32 val)
+{
+ return val % HASH_KEY;
+}
+
+static __inline__
+struct flag *
+alloc_flag(void)
+{
+ struct flag *queue;
+ //EVK_assert(!list_empty(&flag_pool), "flag pool empty");
+ if (list_empty(&flag_pool)) {
+ printk("%s ERROR: flag pool empty\n", __func__);
+ return NULL;
+ }
+ queue = (struct flag *)flag_pool.next;
+ list_del_init(&(queue->list));
+ return queue;
+}
+
+static __inline__
+struct flag64 *
+alloc_flag64(void)
+{
+ struct flag64 *queue;
+ //EVK_assert(!list_empty(&flag64_pool), "flag64 pool empty");
+ if (list_empty(&flag64_pool)) {
+ printk("%s ERROR: flag64 pool empty\n", __func__);
+ return NULL;
+ }
+ queue = (struct flag64 *)flag64_pool.next;
+ list_del_init(&(queue->list));
+ return queue;
+}
+
+static __inline__ void
+free_flag(struct flag *queue)
+{
+ list_add((struct list_head *)queue, &flag_pool);
+}
+
+static __inline__ void
+free_flag64(struct flag64 *queue)
+{
+ list_add((struct list_head *)queue, &flag64_pool);
+}
+
+static __inline__
+struct message_queue *
+alloc_message_queue(void)
+{
+ struct message_queue *queue;
+ //EVK_assert(!list_empty(&message_queue_pool), "message queue pool empty");
+ if (list_empty(&message_queue_pool)) {
+ printk("%s ERROR: message queue pool empty\n", __func__);
+ return NULL;
+ }
+ queue = (struct message_queue *)message_queue_pool.next;
+ list_del_init(&(queue->list));
+ queue->message = NULL;
+ return queue;
+}
+
+static __inline__ void
+free_message_queue(struct message_queue *queue)
+{
+ if (queue->message != NULL) {
+ evk_free(queue->message);
+ queue->message = NULL;
+ }
+ list_add((struct list_head *)queue, &message_queue_pool);
+}
+
+static __inline__
+struct common_queue *
+find_queue_entry(EV_ID queueID)
+{
+ struct list_head *list;
+ struct common_queue *queue;
+ int hash = calc_hash(queueID);
+ list = &(queue_entry[hash]);
+ list_for_each_entry(queue, list, list) { /* pgr0060 */ /* pgr0039 */
+ if (queue->queueID == queueID) {
+ return queue;
+ }
+ }
+ return NULL;
+}
+
+static __inline__ void
+attach_queue_entry(struct common_queue *queue, EV_ID queueID)
+{
+ int hash = calc_hash(queueID);
+ list_add_tail((struct list_head *)queue, &(queue_entry[hash]));
+}
+
+static __inline__ void
+detach_queue_entry(struct common_queue *queue)
+{
+ list_del_init((struct list_head *)queue);
+}
+
+static __inline__ void
+init_common_queue(struct common_queue *queue, EV_ID queueID)
+{
+ queue->queueID = queueID;
+ queue->pid = current->pid;
+ queue->read_pid = 0;
+ init_waitqueue_head(&(queue->wq_head));
+}
+
+static __inline__ void
+evk_init_flag(struct flag *queue, EV_ID queueID)
+{
+ init_common_queue((struct common_queue *)queue, queueID);
+ queue->value = 0;
+}
+
+static __inline__ void
+evk_init_flag64(struct flag64 *queue, EV_ID queueID)
+{
+ init_common_queue((struct common_queue *)queue, queueID);
+ queue->value = 0;
+}
+
+static __inline__ int
+evk_init_message_queue(struct message_queue *queue, EV_ID queueID,
+ UINT8 length, UINT32 max_bytes, UINT8 type)
+{
+ init_common_queue((struct common_queue *)queue, queueID);
+ queue->type = type;
+ queue->length = length;
+ queue->max_bytes = max_bytes;
+ queue->num = 0;
+ queue->readptr = 0;
+ EVK_assert(queue->message == NULL, "message buffer was not freed");
+ queue->message = evk_malloc(length * EVK_message_block_size(max_bytes));
+ EVK_assert(queue->message != NULL, "can't alloc message buffer");
+ return 0;
+}
+
+static void
+__list_queues(void)
+{
+ struct list_head *list;
+ struct common_queue *queue;
+ int i;
+ for(i = 0 ; i < HASH_KEY ; i++) {
+ list = &(queue_entry[i]);
+ if (!list_empty(list)) {
+ printk(KERN_ALERT "%d->", i);
+ list_for_each_entry(queue, list, list) { /* pgr0060 */ /* pgr0039 */
+ printk("%x[%x] ", queue->queueID, queue->seq_num);
+ }
+ printk("\n");
+ }
+ }
+}
+
+static int
+evk_destroy_queue(EV_ID queueID)
+{
+ struct common_queue *queue;
+ int err = 0;
+ EVK_info1("flag destroy %x\n", queueID);
+
+ EVK_mutex_lock(); /*************************************/
+ queue = find_queue_entry(queueID);
+ if (queue == NULL) {
+ err = -ENOENT;
+ goto finish;
+ }
+
+ detach_queue_entry(queue);
+
+ /* wake up processes before destruction */
+ wake_up_interruptible(&(queue->wq_head));
+
+ init_common_queue(queue, EV_INVALID_ID);
+
+ if (EV_ID_IS_FLAG(queueID)) {
+ free_flag((struct flag *)queue);
+ } else if (EV_ID_IS_FLAG64(queueID)) {
+ free_flag64((struct flag64 *)queue);
+ } else if (EV_ID_IS_QUEUE(queueID)) {
+ free_message_queue((struct message_queue *)queue);
+ }
+ //__list_queues();
+ finish:
+ EVK_mutex_unlock(); /*************************************/
+ return err;
+}
+
+static int
+evk_open(struct inode *inode, struct file *file)
+{
+ // Recording of current and measures not to be read or deleted from others are required. */
+ file->private_data = (void *)EV_INVALID_ID;
+ return 0;
+}
+
+static int
+evk_close(struct inode *inode, struct file *file)
+{
+ if (EV_ID_IS_VALID((EV_ID)file->private_data)) {
+ evk_destroy_queue((EV_ID)file->private_data);
+ }
+ file->private_data = (void *)EV_INVALID_ID;
+ return 0;
+}
+
+static int
+evk_create_flag(EV_ID queueID)
+{
+ struct flag *queue;
+ int err = 0;
+ EVK_info1("flag create %x\n", queueID);
+
+ EVK_mutex_lock(); /*************************************/
+
+ queue = (struct flag *)find_queue_entry(queueID);
+ if (queue != NULL) {
+ err = -EEXIST;
+ goto finish;
+ }
+
+ queue = alloc_flag();
+ if (queue == NULL) {
+ err = -ENOMEM;
+ goto finish;
+ }
+
+ evk_init_flag(queue, queueID);
+ attach_queue_entry((struct common_queue *)queue, queueID);
+
+ //__list_queues();
+ finish:
+ EVK_mutex_unlock(); /***********************************/
+ return err;
+}
+
+static int
+evk_create_flag64(EV_ID queueID)
+{
+ struct flag64 *queue;
+ int err = 0;
+ EVK_info1("flag64 create %x\n", queueID);
+
+ EVK_mutex_lock(); /*************************************/
+
+ queue = (struct flag64 *)find_queue_entry(queueID);
+ if (queue != NULL) {
+ err = -EEXIST;
+ goto finish;
+ }
+
+ queue = alloc_flag64();
+ if (queue == NULL) {
+ err = -ENOMEM;
+ goto finish;
+ }
+
+ evk_init_flag64(queue, queueID);
+ attach_queue_entry((struct common_queue *)queue, queueID);
+
+ //__list_queues();
+ finish:
+ EVK_mutex_unlock(); /***********************************/
+ return err;
+}
+
+static int
+evk_create_message_queue(EV_ID queueID, UINT8 length,
+ UINT32 max_bytes, EV_Message_Queue_Type type)
+{
+ struct message_queue *queue;
+ int err;
+ EVK_info1("message create %x\n", queueID);
+
+ err = 0;
+
+ EVK_mutex_lock(); /*************************************/
+
+ queue = (struct message_queue *)find_queue_entry(queueID);
+ if (queue != NULL) {
+ err = -EEXIST;
+ goto finish;
+ }
+
+ queue = alloc_message_queue();
+ if (queue == NULL) {
+ err = -ENOMEM;
+ goto finish;
+ }
+
+ err = evk_init_message_queue(queue, queueID, length, max_bytes, type);
+ if (err == 0) {
+ attach_queue_entry((struct common_queue *)queue, queueID);
+ } else {
+ free_message_queue(queue);
+ }
+
+ //__list_queues();
+ finish:
+ EVK_mutex_unlock(); /***********************************/
+ return err;
+}
+
+static EV_ID
+get_seq_id(void)
+{
+ EV_ID ret;
+ sequence_id++;
+ if ((sequence_id & EV_RESERVED_BIT) != 0) {/* round to 1 */
+ sequence_id = 1;
+ EVK_info0("auto ID rounded\n");
+ }
+ ret = sequence_id;
+ return ret;
+}
+
+static int
+evk_alloc_flagID(EV_ID *queueID)
+{
+ EV_ID seq_id;
+
+ EVK_mutex_lock(); /*************************************/
+ do {
+ seq_id = get_seq_id();
+ seq_id |= (EV_ID_BIT | EV_FLAG_BIT | EV_AUTO_ID_BIT);
+ } while(find_queue_entry(seq_id) != NULL);
+ EVK_mutex_unlock(); /*************************************/
+
+ *queueID = seq_id;
+ return 0;
+}
+
+static int
+evk_alloc_flag64ID(EV_ID *queueID)
+{
+ EV_ID seq_id;
+
+ EVK_mutex_lock(); /*************************************/
+ do {
+ seq_id = get_seq_id();
+ seq_id |= (EV_ID_BIT | EV_FLAG64_BIT | EV_AUTO_ID_BIT);
+ } while(find_queue_entry(seq_id) != NULL);
+ EVK_mutex_unlock(); /*************************************/
+
+ *queueID = seq_id;
+ return 0;
+}
+
+static int
+evk_alloc_queueID(EV_ID *queueID)
+{
+ EV_ID seq_id;
+
+ EVK_mutex_lock(); /*************************************/
+ do {
+ seq_id = get_seq_id();
+ seq_id |= (EV_ID_BIT | EV_QUEUE_BIT | EV_AUTO_ID_BIT);
+ } while(find_queue_entry(seq_id) != NULL);
+ EVK_mutex_unlock(); /*************************************/
+
+ *queueID = seq_id;
+ return 0;
+}
+
+static int
+evk_store_flag(EV_Flag *ev, int mem)
+{
+ struct flag *queue;
+ int ret = 0;
+ EV_ID flagID;
+ UINT32 bits;
+
+ if (GET_USER_OR_KERNEL(flagID, ev->flagID)) /* pgr0039 */
+ return -EFAULT;
+ if (GET_USER_OR_KERNEL(bits, ev->bits)) /* pgr0039 */
+ return -EFAULT;
+
+ EVK_mutex_lock(); /*************************************/
+
+ queue = (struct flag *)find_queue_entry(flagID); /* pgr0000 */
+ if (queue == NULL) {
+ EVK_info1("set_flag: No such ID %x\n", flagID);
+ ret = -ENOENT;
+ goto finish;
+ }
+
+ if (queue->value == 0) {
+ queue->seq_num = sequence_number++;
+ }
+ queue->value |= bits; /* pgr0000 */
+
+ wake_up_interruptible(&(queue->wq_head));
+
+ finish:
+ EVK_mutex_unlock(); /***********************************/
+ return ret;
+}
+
+static int
+evk_store_flag64(EV_Flag64 *ev, int mem)
+{
+ struct flag64 *queue;
+ int ret = 0;
+ EV_ID flagID;
+ UINT64 bits = 0;
+
+ if (GET_USER_OR_KERNEL(flagID, ev->flagID)) /* pgr0039 */
+ return -EFAULT;
+ //GET_USER_OR_KERNEL(bits, ev->bits); /* pgr0039 */
+ if (mem == evk_mem_user) {
+ if (copy_from_user(&bits, &(ev->bits), sizeof(bits)))
+ return -EFAULT;
+ } else {
+ bits = ev->bits;
+ }
+
+ EVK_mutex_lock(); /*************************************/
+
+ queue = (struct flag64 *)find_queue_entry(flagID); /* pgr0000 */
+ if (queue == NULL) {
+ EVK_info1("set_flag64: No such ID %x\n", flagID);
+ ret = -ENOENT;
+ goto finish;
+ }
+
+ if (queue->value == 0) {
+ queue->seq_num = sequence_number++;
+ }
+ queue->value |= bits; /* pgr0000 */
+
+ wake_up_interruptible(&(queue->wq_head));
+
+ finish:
+ EVK_mutex_unlock(); /***********************************/
+ return ret;
+}
+
+static int
+evk_store_message(EV_Message *ev, int mem)
+{
+ struct message_queue *queue;
+ UINT8 *ptr;
+ UINT8 writeptr;
+ int ret = 0;
+ EV_ID queueID;
+ UINT32 length, senderInfo, seq;
+
+ if (GET_USER_OR_KERNEL(queueID, ev->queueID)) /* pgr0039 */
+ return -EFAULT;
+ if (GET_USER_OR_KERNEL(length, ev->length)) /* pgr0039 */
+ return -EFAULT;
+ if (GET_USER_OR_KERNEL(senderInfo, ev->senderInfo)) /* pgr0039 */
+ return -EFAULT;
+
+ EVK_mutex_lock(); /*************************************/
+
+ queue = (struct message_queue *)find_queue_entry(queueID); /* pgr0000 */
+ if (queue == NULL) {
+ EVK_info1("store_message: No such queueID %x\n", queueID);
+ ret = -ENOENT;
+ goto finish;
+ }
+
+ if (length > queue->max_bytes) { /* pgr0000 */
+ EVK_info0("store_message: message is too long for the queue");
+ ret = -EINVAL;
+ goto finish;
+ }
+
+ if (queue->num == queue->length) {
+
+ switch(queue->type) {
+ case EV_MESSAGE_QUEUE_TYPE_BUSY:
+ EVK_info1("store_message: queue %x BUSY\n", queueID);
+ ret = -EBUSY;
+ goto finish;
+ break;
+
+ case EV_MESSAGE_QUEUE_TYPE_FIFO:
+ queue->readptr++;
+ queue->readptr %= queue->length;
+ queue->num--;
+ break;
+
+ case EV_MESSAGE_QUEUE_TYPE_REPLACE:
+ queue->num--;
+ break;
+
+ default:
+ EVK_BUG("internal error in store_message\n");
+ ret = -EINVAL;
+ goto finish;
+ break;
+ }
+ }
+
+ writeptr = (queue->readptr + queue->num) % queue->length;
+ ptr = queue->message + writeptr * EVK_message_block_size(queue->max_bytes);
+
+ memcpy(ptr, &length, sizeof(length));
+ ptr += sizeof(length);
+ memcpy(ptr, &senderInfo, sizeof(senderInfo));
+ ptr += sizeof(senderInfo);
+ seq = sequence_number++;
+ memcpy(ptr, &seq, sizeof(seq));
+ ptr += sizeof(seq);
+
+ if (queue->num == 0) {
+ queue->seq_num = seq;
+ }
+ queue->num++;
+
+ if (mem == evk_mem_user) {
+ if (copy_from_user(ptr, ev->message, length)) {
+ ret = -EFAULT;
+ goto finish;
+ }
+ } else {
+ memcpy(ptr, ev->message, length);
+ }
+
+ wake_up_interruptible(&(queue->wq_head));
+
+ finish:
+ EVK_mutex_unlock(); /***********************************/
+
+ return ret;
+}
+
+static int
+evk_set_poll(struct file *filp, EV_ID queueID)
+{
+ struct common_queue *queue;
+ int err = 0;
+
+ EVK_mutex_lock(); /*************************************/
+
+ queue = find_queue_entry(queueID);
+ if (queue == NULL) {
+ EVK_info1("set_poll: ID %x not found.\n", queueID);
+ err = -ENOENT;
+ goto finish;
+ }
+
+ filp->private_data = (void *)queueID;
+
+ finish:
+ EVK_mutex_unlock(); /*************************************/
+ return err;
+}
+
+static int
+evk_get_flag_event(EV_Event *ev, int peek_only, int wait, int mem)
+{
+ struct flag *queue, *queue2;
+ int err = 0;
+ int found = 0;
+ EV_ID flagID;
+
+ if (GET_USER_OR_KERNEL(flagID, ev->u.flag.flagID)) /* pgr0039 */
+ return -EFAULT;
+
+ retry:
+
+ queue = (struct flag *)find_queue_entry(flagID); /* pgr0000 */
+ if (queue == NULL) {
+ EVK_info1("get_flag: No such flag %x\n", flagID);
+ err = -ENOENT;
+ goto finish;
+ }
+
+ if (queue->value != 0) {
+ UINT32 bits;
+
+ if (GET_USER_OR_KERNEL(bits, ev->u.flag.bits)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+
+ if (bits == 0 || ((bits & queue->value) != 0)) { /* pgr0000 */
+
+ if (PUT_USER_OR_KERNEL(EV_EVENT_Flag, ev->type)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+ if (PUT_USER_OR_KERNEL(queue->value, ev->u.flag.bits)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+ found = 1;
+
+ queue->read_pid = current->pid;
+ if (peek_only) {
+ ;
+ } else {
+ queue->value = 0;
+ }
+ }
+ }
+ finish:
+
+ if (queue != NULL && wait != 0 && found == 0) {
+ int wait_ret;
+ EVK_mutex_unlock(); /*************************************/
+
+ wait_ret
+ = wait_event_interruptible(queue->wq_head,
+ ((queue2 = (struct flag *)find_queue_entry(flagID)) == NULL
+ || queue2->value != 0));
+
+ EVK_mutex_lock(); /*************************************/
+
+ if (wait_ret != 0) {
+ EVK_info1("Interrupted while waiting for flag %x\n", flagID);
+ err = -EINTR;
+ } else if (queue2 == NULL) { /* pgr0039 */
+ EVK_info1("flag %x was destroyed while waiting for it\n", flagID);
+ err = -ENOENT;
+ } else {
+ goto retry;
+ }
+ }
+ return err;
+}
+
+static int
+evk_get_flag64_event(EV_Event *ev, int peek_only, int wait, int mem)
+{
+ struct flag64 *queue, *queue2;
+ int err = 0;
+ int found = 0;
+ EV_ID flagID;
+
+ if (GET_USER_OR_KERNEL(flagID, ev->u.flag64.flagID)) /* pgr0039 */
+ return -EFAULT;
+
+ retry:
+
+ queue = (struct flag64 *)find_queue_entry(flagID); /* pgr0000 */
+ if (queue == NULL) {
+ EVK_info1("get_flag64: No such flag %x\n", flagID);
+ err = -ENOENT;
+ goto finish;
+ }
+
+ if (queue->value != 0) {
+ UINT64 bits = 0;
+
+ //GET_USER_OR_KERNEL(bits, ev->u.flag64.bits); /* pgr0039 */
+ if (mem == evk_mem_user) {
+ if (copy_from_user(&bits, &(ev->u.flag64.bits), sizeof(bits))) {
+ err = -EFAULT;
+ goto finish;
+ }
+ } else {
+ bits = ev->u.flag64.bits;
+ }
+
+ if (bits == 0 || ((bits & queue->value) != 0)) { /* pgr0000 */
+
+ if (PUT_USER_OR_KERNEL(EV_EVENT_Flag64, ev->type)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+ if (PUT_USER_OR_KERNEL(queue->value, ev->u.flag64.bits)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+ found = 1;
+
+ queue->read_pid = current->pid;
+ if (peek_only) {
+ ;
+ } else {
+ queue->value = 0;
+ }
+ }
+ }
+ finish:
+
+ if (queue != NULL && wait != 0 && found == 0) {
+ int wait_ret;
+ EVK_mutex_unlock(); /*************************************/
+
+ wait_ret
+ = wait_event_interruptible(queue->wq_head,
+ ((queue2 = (struct flag64 *)find_queue_entry(flagID)) == NULL
+ || queue2->value != 0));
+
+ EVK_mutex_lock(); /*************************************/
+
+ if (wait_ret != 0) {
+ EVK_info1("Interrupted while waiting for flag %x\n", flagID);
+ err = -EINTR;
+ } else if (queue2 == NULL) { /* pgr0039 */
+ EVK_info1("flag %x was destroyed while waiting for it\n", flagID);
+ err = -ENOENT;
+ } else {
+ goto retry;
+ }
+ }
+ return err;
+}
+
+static __inline__ void
+remove_message_event(struct message_queue *queue, UINT8 removeptr)
+{
+ UINT8 *ptr;
+ int i, from, to;
+ UINT8 *pFrom, *pTo;
+ UINT32 size;
+ int offset;
+
+ queue->num--;
+ offset = (int)removeptr - (int)(queue->readptr);
+
+ if (offset == 0) {/* To remove the head of the queue, advance the queue by one readptr only */
+ queue->readptr++;
+ queue->readptr %= queue->length;
+
+ if (queue->num > 0) {
+ /* Reset the occurrence time of the first message in the queue to the occurrence time of the queue. */
+ ptr = (queue->message
+ + queue->readptr * EVK_message_block_size(queue->max_bytes));
+ ptr += sizeof(UINT32) * 2;
+ memcpy(&(queue->seq_num), ptr, sizeof(UINT32));
+ }
+ return;
+ }
+ if (offset < 0) {
+ offset += queue->length;
+ }
+ if (offset == queue->num) {/* Do nothing to delete the end of the queue */
+ return;
+ }
+
+ /* To delete a message in the middle of the queue, pack the following messages. */
+ to = removeptr;
+ size = EVK_message_block_size(queue->max_bytes);
+
+ for(i = 0 ; i < queue->num - offset ; i++, to++) {
+ to %= queue->length;
+ from = (to + 1) % queue->length;
+ pFrom = queue->message + from * size;
+ pTo = queue->message + to * size;
+ memcpy(pTo, pFrom, size);
+ }
+}
+
+static int
+evk_get_message_event(EV_Event *ev, int peek_only, int wait, int mem)
+{
+ struct message_queue *queue, *queue2;
+ int err = 0;
+ EV_ID queueID;
+ UINT8 num;
+ UINT8 readptr;
+ UINT8 i, *ptr;
+ int matched = 0;
+
+ if (GET_USER_OR_KERNEL(queueID, ev->u.message.queueID)) /* pgr0039 */
+ return -EFAULT;
+
+ retry:
+ queue = (struct message_queue *)find_queue_entry(queueID); /* pgr0000 */
+ if (queue == NULL) {
+ EVK_info1("get_message: No such queue %x\n", queueID);
+ err = -ENOENT;
+ goto finish;
+ }
+
+ num = queue->num;
+ readptr = queue->readptr;
+ for(i = 0 ; i < num ; i++, readptr = (readptr + 1) % queue->length) {
+ UINT32 size, senderInfo, seq;
+ UINT32 length, q_senderInfo;
+
+ ptr = (queue->message
+ + readptr * EVK_message_block_size(queue->max_bytes));
+
+ memcpy(&size, ptr, sizeof(size));
+ ptr += sizeof(size);
+ memcpy(&senderInfo, ptr, sizeof(senderInfo));
+ ptr += sizeof(senderInfo);
+ memcpy(&seq, ptr, sizeof(seq));
+ ptr += sizeof(seq);
+
+ if (GET_USER_OR_KERNEL(length, ev->u.message.length)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+ if (GET_USER_OR_KERNEL(q_senderInfo, ev->u.message.senderInfo)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+
+ if (q_senderInfo == 0 && length == 0) { /* pgr0000 */
+ matched = 1;
+ } else if (q_senderInfo != 0 && q_senderInfo == senderInfo) {
+ matched = 1;
+ } else if (length > 0 && size >= length) { /* pgr0000 */
+
+ if (mem == evk_mem_user) {
+ void *compbytes;
+ compbytes = evk_malloc(length);
+ if (compbytes != NULL) {
+ if (copy_from_user(compbytes, &(ev->u.message.message), length)) {
+ err = -EFAULT;
+ evk_free(compbytes);
+ goto finish;
+ }
+ if (memcmp(ptr, compbytes, length) == 0) {
+ matched = 1;
+ }
+ evk_free(compbytes);
+ }
+ } else {
+ if (memcmp(ptr, ev->u.message.message, length) == 0) {
+ matched = 1;
+ }
+ }
+ }
+
+ if (matched) {
+
+ if (PUT_USER_OR_KERNEL(EV_EVENT_Message, ev->type)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+ if (PUT_USER_OR_KERNEL(size, ev->u.message.length)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+ if (PUT_USER_OR_KERNEL(senderInfo, ev->u.message.senderInfo)) { /* pgr0039 */
+ err = -EFAULT;
+ goto finish;
+ }
+ if (mem == evk_mem_user) {
+ if (copy_to_user(ev->u.message.message, ptr, size)) {
+ err = -EFAULT;
+ goto finish;
+ }
+ } else {
+ memcpy(ev->u.message.message, ptr, size);
+ }
+
+ queue->read_pid = current->pid;
+ if (peek_only) {
+ ;
+ } else {
+ remove_message_event(queue, readptr);
+ }
+ goto finish;
+ }
+ }
+
+ finish:
+
+ if (queue != NULL && wait != 0 && matched == 0) {
+ int wait_ret;
+ EVK_mutex_unlock(); /*************************************/
+ wait_ret
+ = wait_event_interruptible(queue->wq_head,
+ ((queue2 = (struct message_queue *)find_queue_entry(queueID))==NULL
+ || queue2->num > 0));
+
+ EVK_mutex_lock(); /*************************************/
+
+ if (wait_ret != 0) {
+ EVK_info1("Interrupted while waiting for queue %x\n", queueID);
+ err = -EINTR;
+ } else if (queue2 == NULL) { /* pgr0039 */
+ EVK_info1("queue %x was destroyed while waiting for it\n", queueID);
+ err = -ENOENT;
+ } else {
+ goto retry;
+ }
+ }
+
+ return err;
+}
+
+static int
+evk_get_event(EV_Event *ev, int peek_only, int wait, int mem)
+{
+ EV_Type type;
+ int ret = -EINVAL;
+
+ if (GET_USER_OR_KERNEL(type, ev->type)) /* pgr0039 */
+ return -EFAULT;
+ if (PUT_USER_OR_KERNEL(EV_EVENT_None, ev->type)) /* pgr0039 */
+ return -EFAULT;
+
+ switch(type) { /* pgr0000 */
+ case EV_EVENT_Flag:
+ EVK_mutex_lock(); /*************************************/
+ ret = evk_get_flag_event(ev, peek_only, wait, mem);
+ EVK_mutex_unlock(); /*************************************/
+ break;
+
+ case EV_EVENT_Flag64:
+ EVK_mutex_lock(); /*************************************/
+ ret = evk_get_flag64_event(ev, peek_only, wait, mem);
+ EVK_mutex_unlock(); /*************************************/
+ break;
+
+ case EV_EVENT_Message:
+ EVK_mutex_lock(); /*************************************/
+ ret = evk_get_message_event(ev, peek_only, wait, mem);
+ EVK_mutex_unlock(); /*************************************/
+ break;
+
+ default:
+ break;
+ }
+ return ret;
+}
+
+static int
+evk_get_next_event(EVK_Next_Event_Query *query /* user */, int peek_only)
+{
+ EV_ID *ids;
+ int i, num, ret, first, found;
+ struct common_queue *queue;
+ UINT32 seq_oldest = 0;
+
+ ids = (EV_ID *)kmalloc( (sizeof(EV_ID)*EV_MAX_IDS_IN_PROCESS), GFP_KERNEL );
+ if( ids == NULL ){
+ return -ENOMEM;
+ }
+
+ if (__get_user(num, &(query->num))) { /* pgr0039 */
+ ret = -EFAULT;
+ goto finish0;
+ }
+ if (copy_from_user(&ids[0], query->ids, num * sizeof(EV_ID))) { /* pgr0039 */
+ ret = -EFAULT;
+ goto finish0;
+ }
+ if (__put_user(EV_EVENT_None, &(query->ev.type))) { /* pgr0039 */
+ ret = -EFAULT;
+ goto finish0;
+ }
+
+ ret = 0;
+ first = 1;
+ found = -1;
+
+ EVK_mutex_lock(); /*************************************/
+
+ for(i = 0 ; i < num /* pgr0039 */ ; i++) {
+ queue = find_queue_entry(ids[i]);
+ if (queue != NULL) {/* Have the specified queue ID */
+ if ((EV_ID_IS_FLAG(ids[i])
+ && ((struct flag *)queue)->value != 0)
+ || (EV_ID_IS_FLAG64(ids[i])
+ && ((struct flag64 *)queue)->value != 0)
+ || (EV_ID_IS_QUEUE(ids[i])
+ && ((struct message_queue *)queue)->num > 0)) {/*There are events.*/
+ /* Compare with time_before macros for round 0 */
+ if (first || time_before((unsigned long)queue->seq_num, /* pgr0006 */ /* pgr0039 */
+ (unsigned long)seq_oldest)) {
+ first = 0;
+ seq_oldest = queue->seq_num;
+ found = i;
+ }
+ }
+ }
+ }
+
+ if (found >= 0) {
+ if (EV_ID_IS_FLAG(ids[found])) {
+ if (__put_user(ids[found], &(query->ev.u.flag.flagID))) { /* pgr0039 */
+ ret = -EFAULT;
+ goto finish1;
+ }
+ ret = evk_get_flag_event(&(query->ev), peek_only, 0, evk_mem_user);
+ } else if (EV_ID_IS_FLAG64(ids[found])) {
+ if (__put_user(ids[found], &(query->ev.u.flag64.flagID))) { /* pgr0039 */
+ ret = -EFAULT;
+ goto finish1;
+ }
+ ret = evk_get_flag64_event(&(query->ev), peek_only, 0, evk_mem_user);
+ } else if (EV_ID_IS_QUEUE(ids[found])) {
+ if (__put_user(ids[found], &(query->ev.u.message.queueID))) { /* pgr0039 */
+ ret = -EFAULT;
+ goto finish1;
+ }
+ ret = evk_get_message_event(&(query->ev), peek_only, 0, evk_mem_user);
+ }
+ }
+
+ finish1:
+ EVK_mutex_unlock(); /*************************************/
+ finish0:
+ kfree(ids);
+ return ret;
+}
+
+static long
+evk_ioctl(struct file *filp, unsigned int cmd,
+ unsigned long arg)
+{
+ EVK_Message_Queue_Request mesq;
+ int peek_only, wait;
+ EV_ID queueID;
+ int ret = -EINVAL;
+
+ //lock_kernel();
+
+ switch(cmd) {
+ case EVK_IOC_CREATE_FLAG:
+ queueID = (EV_ID)arg;
+ ret = evk_create_flag(queueID);
+ break;
+
+ case EVK_IOC_CREATE_FLAG64:
+ queueID = (EV_ID)arg;
+ ret = evk_create_flag64(queueID);
+ break;
+
+ case EVK_IOC_CREATE_MESSAGE_QUEUE:
+ if (access_ok(VERIFY_READ, arg, sizeof(mesq))) { /* pgr0039 */
+ if (copy_from_user(&mesq, (EV_Flag *)arg, sizeof(mesq))) {
+ ret = -EFAULT;
+ break;
+ }
+
+ ret = evk_create_message_queue(mesq.queueID, mesq.length,
+ mesq.max_bytes, mesq.type);
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_ALLOC_FLAG_ID:
+ if (access_ok(VERIFY_WRITE, arg, sizeof(queueID))) { /* pgr0039 */
+ evk_alloc_flagID(&queueID);
+ if (put_user(queueID, (EV_ID *)arg)) { /* pgr0039 */
+ ret = -EFAULT;
+ break;
+ }
+ ret = 0;
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_ALLOC_FLAG64_ID:
+ if (access_ok(VERIFY_WRITE, arg, sizeof(queueID))) { /* pgr0039 */
+ evk_alloc_flag64ID(&queueID);
+ if (put_user(queueID, (EV_ID *)arg)) { /* pgr0039 */
+ ret = -EFAULT;
+ break;
+ }
+ ret = 0;
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_ALLOC_QUEUE_ID:
+ if (access_ok(VERIFY_WRITE, arg, sizeof(queueID))) { /* pgr0039 */
+ evk_alloc_queueID(&queueID);
+ if (put_user(queueID, (EV_ID *)arg)) { /* pgr0039 */
+ ret = -EFAULT;
+ break;
+ }
+ ret = 0;
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_DESTROY_QUEUE:
+ queueID = (EV_ID)arg;
+ ret = evk_destroy_queue(queueID);
+ break;
+
+ case EVK_IOC_STORE_FLAG:
+ if (access_ok(VERIFY_READ, arg, sizeof(EV_Flag))) { /* pgr0039 */
+ ret = evk_store_flag((EV_Flag *)arg, evk_mem_user);
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_STORE_FLAG64:
+ if (access_ok(VERIFY_READ, arg, sizeof(EV_Flag64))) { /* pgr0039 */
+ ret = evk_store_flag64((EV_Flag64 *)arg, evk_mem_user);
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_STORE_MESSAGE:
+ if (access_ok(VERIFY_READ, arg, sizeof(EV_Message))) { /* pgr0039 */
+ ret = evk_store_message((EV_Message *)arg, evk_mem_user);
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_SET_POLL:
+ queueID = (EV_ID)arg;
+ ret = evk_set_poll(filp, queueID);
+ break;
+
+ case EVK_IOC_PEEK_EVENT:
+ peek_only = 1;
+ wait = 0;
+ goto get_event;
+ break;
+
+ case EVK_IOC_WAIT_EVENT:
+ peek_only = 0;
+ wait = 1;
+ goto get_event;
+ break;
+
+ case EVK_IOC_GET_EVENT:
+ peek_only = 0;
+ wait = 0;
+ get_event:
+ if (access_ok(VERIFY_WRITE, arg, sizeof(EV_Event))) { /* pgr0039 */
+ ret = evk_get_event((EV_Event *)arg, peek_only, wait, evk_mem_user);
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_PEEK_NEXT_EVENT:
+ peek_only = 1;
+ goto get_next;
+ break;
+
+ case EVK_IOC_GET_NEXT_EVENT:
+ peek_only = 0;
+ get_next:
+ if (access_ok(VERIFY_WRITE, arg, sizeof(EVK_Next_Event_Query))) { /* pgr0039 */
+ ret = evk_get_next_event((EVK_Next_Event_Query *)arg, peek_only);
+ } else {
+ ret = -EFAULT;
+ }
+ break;
+
+ case EVK_IOC_DEBUG_LIST:
+ __list_queues();
+ //__list_message();
+ ret = 0;
+ break;
+
+ default:
+ ret = -EINVAL;
+ break;
+ }
+
+ //unlock_kernel();
+ return ret;
+}
+
+static unsigned int
+evk_poll(struct file *filp, poll_table *wait)
+{
+ unsigned int ret = 0;
+ struct common_queue *queue;
+
+ EV_ID queueID = (EV_ID)(filp->private_data);
+ // Returns errors without stopping at assert if queueID is invalid
+ // (Troubleshooting for Continuous Printing)
+ if (!EV_ID_IS_VALID(queueID)) {
+ printk("evk_poll ERROR: invalid queueID=%x\n", queueID);
+ return POLLERR|POLLHUP;
+ }
+ //EVK_assert(EV_ID_IS_VALID(queueID), "poll: flag/queueID not set");
+
+ EVK_mutex_lock();/*****************************************/
+
+ queue = find_queue_entry(queueID);
+ if (queue == NULL) {
+ EVK_info1("poll: No such flag/queueID %x\n", queueID);
+ ret = POLLERR|POLLHUP;
+ goto finish;
+ }
+
+ poll_wait(filp, &(queue->wq_head), wait);
+
+ if (EV_ID_IS_FLAG(queueID)) {
+ if (((struct flag *)queue)->value != 0) {
+ ret = POLLIN;
+ }
+ } else if (EV_ID_IS_FLAG64(queueID)) {
+ if (((struct flag64 *)queue)->value != 0) {
+ ret = POLLIN;
+ }
+ } else {
+ if (((struct message_queue *)queue)->num > 0) {
+ ret = POLLIN;
+ }
+ }
+
+ finish:
+ EVK_mutex_unlock(); /***************************************/
+
+ return ret;
+}
+
+/** List of system call corresponding function registrations */
+static struct file_operations evk_fops = {
+ .open = evk_open,
+ .release = evk_close,
+ .unlocked_ioctl = evk_ioctl,
+ .poll = evk_poll,
+};
+
+#ifdef ENABLE_PROC_FS
+static int
+evk_procFS_show(struct seq_file *m, int mode)
+{
+ int i, num;
+ struct list_head *list, *entries;
+ struct common_queue *queue;
+
+ seq_printf(m, "[ev library status ");
+
+ switch(mode) {
+ case evk_enum_flag:
+ seq_printf(m, "(flag)]\n");
+ seq_printf(m, "PID moduleID flagID[hash] value\n");
+ break;
+ case evk_enum_flag64:
+ seq_printf(m, "(flag64)]\n");
+ seq_printf(m, "PID moduleID flagID[hash] value\n");
+ break;
+ case evk_enum_queue:
+ seq_printf(m, "(queue)]\n");
+ seq_printf(m, "PID moduleID queueID[hash] maxbytes remain type\n");
+ break;
+ }
+
+ EVK_mutex_lock();
+
+ num = evk_get_queue_entry(&entries);
+
+ for (i = 0 ; i < num ; i++) {
+ list = &(entries[i]);
+ if (!list_empty(list)) {
+ list_for_each_entry(queue, list, list) {
+ if ((mode == evk_enum_flag && (!EV_ID_IS_FLAG(queue->queueID)))
+ || (mode == evk_enum_flag64 && (!EV_ID_IS_FLAG64(queue->queueID)))
+ || (mode == evk_enum_queue && (!EV_ID_IS_QUEUE(queue->queueID))))
+ {
+ continue;
+ }
+
+ seq_printf(m, "%08d ", queue->pid);
+ seq_printf(m, "%05d(%04x) ", ((queue->queueID & 0x00ffff00) >> 8), ((queue->queueID & 0x00ffff00) >> 8));
+ seq_printf(m, "0x%08x[%2d] ", queue->queueID, calc_hash(queue->queueID));
+
+ switch(mode) {
+ case evk_enum_flag:
+ seq_printf(m, "0x%x", EVK_PFLAG(queue)->value);
+ break;
+
+ case evk_enum_flag64:
+ seq_printf(m, "0x%llx", EVK_PFLAG64(queue)->value);
+ break;
+
+ case evk_enum_queue:
+ seq_printf(m, "%04d %02d ", EVK_PQUEUE(queue)->max_bytes, EVK_PQUEUE(queue)->length);
+ seq_printf(m, "%02d ", EVK_PQUEUE(queue)->num);
+ seq_printf(m, "%d ", EVK_PQUEUE(queue)->type);
+ break;
+ }
+ seq_printf(m, "\n");
+ }
+ }
+ }
+
+ EVK_mutex_unlock();
+ return 0;
+}
+
+static int
+evk_procFS_flag_show(struct seq_file *m, void *v)
+{
+ return evk_procFS_show(m, evk_enum_flag);
+}
+
+static int
+evk_procFS_flag64_show(struct seq_file *m, void *v)
+{
+ return evk_procFS_show(m, evk_enum_flag64);
+}
+
+static int
+evk_procFS_queue_show(struct seq_file *m, void *v)
+{
+ return evk_procFS_show(m, evk_enum_queue);
+}
+
+static int
+evk_procFS_flag_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, evk_procFS_flag_show, NULL);
+}
+
+static int
+evk_procFS_flag64_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, evk_procFS_flag64_show, NULL);
+}
+
+static int
+evk_procFS_queue_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, evk_procFS_queue_show, NULL);
+}
+
+static struct file_operations evk_proc_flag_fops = {
+ .owner = THIS_MODULE,
+ .open = evk_procFS_flag_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+
+static struct file_operations evk_proc_flag64_fops = {
+ .owner = THIS_MODULE,
+ .open = evk_procFS_flag64_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+
+static struct file_operations evk_proc_queue_fops = {
+ .owner = THIS_MODULE,
+ .open = evk_procFS_queue_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+#endif /*ENABLE_PROC_FS*/
+
+__init int
+EVK_init(void)
+{
+ int err;
+#ifdef CONFIG_PROC_FS
+#ifdef ENABLE_PROC_FS
+ struct proc_dir_entry *ret;
+#endif /* ENABLE_PROC_FS */
+#endif /* CONFIG_PROC_FS */
+ int i;
+ dev_t dev;
+
+ dev = MKDEV(devmajor, devminor);
+ err = register_chrdev_region(dev, nrdevs, EVK_NAME);
+ if (err) {
+ EVK_info1("register_chrdev_region error %d\n", -err);
+ return -EBUSY;
+ }
+
+ cdev_init(&cdev, &evk_fops);
+ cdev.owner = THIS_MODULE;
+ cdev.ops = &evk_fops;
+
+ err = cdev_add(&cdev, dev, 1);
+ if (err) {
+ EVK_info1("cdev_add error %d\n", -err);
+ return -EBUSY;
+ }
+
+ /* Initialization */
+ for(i = 0 ; i < EVK_MAX_FLAGS ; i++) {
+ list_add_tail((struct list_head *)&(_flag_pool[i]),
+ &flag_pool);
+ }
+ for(i = 0 ; i < EVK_MAX_FLAG64S ; i++) {
+ list_add_tail((struct list_head *)&(_flag64_pool[i]),
+ &flag64_pool);
+ }
+ for(i = 0 ; i < EVK_MAX_MESSAGE_QUEUES ; i++) {
+ list_add_tail((struct list_head *)&(_message_queue_pool[i]),
+ &message_queue_pool);
+ }
+ for(i = 0 ; i < HASH_KEY ; i++) {
+ INIT_LIST_HEAD(&(queue_entry[i]));
+ }
+
+#ifdef CONFIG_PROC_FS
+#ifdef ENABLE_PROC_FS
+ ret = proc_create("driver/ev_flag", 0, NULL, &evk_proc_flag_fops);
+ if( ret == NULL ) {
+ EVK_info1("Unable to initialize /proc entry %d\n", -err);
+ return -EBUSY;
+ }
+
+ ret = proc_create("driver/ev_flag64", 0, NULL, &evk_proc_flag64_fops);
+ if( ret == NULL ) {
+ EVK_info1("Unable to initialize /proc entry %d\n", -err);
+ return -EBUSY;
+ }
+
+ ret = proc_create("driver/ev_queue", 0, NULL, &evk_proc_queue_fops);
+ if( ret == NULL ) {
+ EVK_info1("Unable to initialize /proc entry %d\n", -err);
+ return -EBUSY;
+ }
+#endif /* ENABLE_PROC_FS */
+#endif /* CONFIG_PROC_FS */
+
+ pClass = class_create(THIS_MODULE, EVK_NAME);
+ device_create(pClass, NULL, dev, NULL, "agl/"EVK_NAME);
+
+ return 0;
+}
+
+void
+//#ifndef CONFIG_COMBINE_MODULES
+//__exit
+//#endif
+EVK_exit(void)
+{
+ dev_t dev = MKDEV(devmajor, devminor);
+ device_destroy(pClass, dev);
+ class_destroy(pClass);
+
+ cdev_del(&cdev);
+
+ unregister_chrdev_region(dev, nrdevs);
+
+ remove_proc_entry( "driver/ev_flag", 0 );
+ remove_proc_entry( "driver/ev_flag64", 0 );
+ remove_proc_entry( "driver/ev_queue", 0 );
+}
+
+/** @} */
+/** @addtogroup EV
+ * @{ */
+static EV_ERR
+EVK_create_flag_in(EV_ID flagID)
+{
+ int ret = evk_create_flag(flagID);
+
+ if (ret == -EEXIST) {
+ return EV_ERR_Exist;
+ } else if (ret < 0) {
+ return EV_ERR_Fatal;
+ } else {
+ return EV_OK;
+ }
+}
+
+static EV_ERR
+EVK_create_flag64_in(EV_ID flagID)
+{
+ int ret = evk_create_flag64(flagID);
+
+ if (ret == -EEXIST) {
+ return EV_ERR_Exist;
+ } else if (ret < 0) {
+ return EV_ERR_Fatal;
+ } else {
+ return EV_OK;
+ }
+}
+
+/** @see EV_create_flag */
+EV_ERR
+EVK_create_flag(EV_ID flagID)
+{
+ if (!EV_ID_IS_FLAG(flagID) || EV_ID_IS_AUTO_ID(flagID)) {
+ return EV_ERR_Invalid_ID;
+ }
+ return EVK_create_flag_in(flagID);
+}
+
+/** @see EV_create_flag64 */
+EV_ERR
+EVK_create_flag64(EV_ID flagID)
+{
+ if (!EV_ID_IS_FLAG64(flagID) || EV_ID_IS_AUTO_ID(flagID)) {
+ return EV_ERR_Invalid_ID;
+ }
+ return EVK_create_flag64_in(flagID);
+}
+
+static EV_ERR
+EVK_create_queue_in(EV_ID queueID, UINT8 length, UINT16 max_bytes,
+ EV_Message_Queue_Type type)
+{
+ int ret = evk_create_message_queue(queueID, length, max_bytes, type);
+
+ if (ret == -EEXIST) {
+ return EV_ERR_Exist;
+ } else if (ret < 0) {
+ return EV_ERR_Fatal;
+ } else {
+ return EV_OK;
+ }
+}
+
+/** @see EV_create_queue */
+EV_ERR
+EVK_create_queue(EV_ID queueID, UINT8 length, UINT16 max_bytes,
+ EV_Message_Queue_Type type)
+{
+ if (!EV_ID_IS_QUEUE(queueID) || EV_ID_IS_AUTO_ID(queueID)) {
+ return EV_ERR_Invalid_ID;
+ }
+ return EVK_create_queue_in(queueID, length, max_bytes, type);
+}
+
+/** @see EV_create_flag_auto_id */
+EV_ERR
+EVK_create_flag_auto_id(/* OUT */EV_ID *flagID)
+{
+ EV_ERR err;
+ EVK_assert(flagID != NULL, "NULL pointer was specified");
+
+ if (evk_alloc_flagID(flagID) < 0) {
+ return EV_ERR_Fatal;
+ }
+
+ err = EVK_create_flag_in(*flagID);
+ if (err != EV_OK) {
+ *flagID = EV_NO_ID;
+ }
+ return err;
+}
+
+/** @see EV_create_flag64_auto_id */
+EV_ERR
+EVK_create_flag64_auto_id(/* OUT */EV_ID *flagID)
+{
+ EV_ERR err;
+ EVK_assert(flagID != NULL, "NULL pointer was specified");
+
+ if (evk_alloc_flag64ID(flagID) < 0) {
+ return EV_ERR_Fatal;
+ }
+
+ err = EVK_create_flag64_in(*flagID);
+ if (err != EV_OK) {
+ *flagID = EV_NO_ID;
+ }
+ return err;
+}
+
+/** @see EV_create_queue_auto_id */
+EV_ERR
+EVK_create_queue_auto_id(/* OUT */EV_ID *queueID, UINT8 length,
+ UINT16 max_bytes, EV_Message_Queue_Type type)
+{
+ EV_ERR err;
+ EVK_assert(queueID != NULL, "NULL pointer was specified");
+
+ if (evk_alloc_queueID(queueID) < 0) {
+ return EV_ERR_Fatal;
+ }
+
+ err = EVK_create_queue_in(*queueID, length, max_bytes, type);
+ if (err != EV_OK) {
+ *queueID = EV_NO_ID;
+ }
+ return err;
+}
+
+/** @see EV_destroy_flag */
+EV_ERR
+EVK_destroy_flag(EV_ID flagID)
+{
+ int err;
+ err = evk_destroy_queue(flagID);
+
+ if (err == -ENOENT) {
+ return EV_ERR_Invalid_ID;
+ } else if (err < 0) {
+ return EV_ERR_Fatal;
+ } else {
+ return EV_OK;
+ }
+}
+
+/** @see EV_destroy_queue */
+EV_ERR
+EVK_destroy_queue(EV_ID queueID)
+{
+ return EVK_destroy_flag(queueID);
+}
+
+/* Sending the event */
+/** @see EV_set_flag */
+EV_ERR
+EVK_set_flag(EV_ID flagID, UINT32 bits)
+{
+ EV_Flag flag;
+ int ret;
+
+ if (!EV_ID_IS_FLAG(flagID)) {
+ return EV_ERR_Invalid_ID;
+ }
+ flag.flagID = flagID;
+ flag.bits = bits;
+
+ ret = evk_store_flag(&flag, evk_mem_kernel);
+ if (ret == -ENOENT) {
+ return EV_ERR_Invalid_ID;
+ } else if (ret < 0) {
+ return EV_ERR_Fatal;
+ } else {
+ return EV_OK;
+ }
+}
+
+/** @see EV_set_flag64 */
+EV_ERR
+EVK_set_flag64(EV_ID flagID, UINT64 bits)
+{
+ EV_Flag64 flag;
+ int ret;
+
+ if (!EV_ID_IS_FLAG64(flagID)) {
+ return EV_ERR_Invalid_ID;
+ }
+ flag.flagID = flagID;
+ flag.bits = bits;
+
+ ret = evk_store_flag64(&flag, evk_mem_kernel);
+ if (ret == -ENOENT) {
+ return EV_ERR_Invalid_ID;
+ } else if (ret < 0) {
+ return EV_ERR_Fatal;
+ } else {
+ return EV_OK;
+ }
+}
+
+/** @see EV_send_message */
+EV_ERR
+EVK_send_message(EV_ID queueID, UINT16 bytes, const void *message,
+ UINT32 senderInfo)
+{
+ EV_Message *msg = NULL;
+ EV_ERR ev_ret;
+ int ret;
+
+ msg = evk_malloc( sizeof( EV_Message ) );
+ if( msg == NULL )
+ {
+ ev_ret = EV_ERR_Fatal;
+ goto L_END;
+ }
+
+ if (!EV_ID_IS_QUEUE(queueID)) {
+ ev_ret = EV_ERR_Invalid_ID;
+ goto L_END;
+ }
+ EVK_assert(message != NULL, "NULL pointer was specified");
+ EVK_assert(bytes <= EV_MAX_MESSAGE_LENGTH, "send_message: message too long");
+
+ msg->queueID = queueID;
+ msg->senderInfo = senderInfo;
+ msg->length = bytes;
+ memcpy(msg->message, message, bytes);
+
+ ret = evk_store_message(msg, evk_mem_kernel);
+ if (ret == -ENOENT) {
+ ev_ret = EV_ERR_Invalid_ID;
+ } else if (ret == -EBUSY) {
+ ev_ret = EV_ERR_Busy;
+ } else if (ret < 0) {
+ ev_ret = EV_ERR_Fatal;
+ } else {
+ ev_ret = EV_OK;
+ }
+
+L_END:
+ if( msg != NULL )
+ {
+ evk_free( msg );
+ }
+ return ev_ret;
+}
+
+/* Event acquisition(Order of arrival time) */
+//EV_ERR EV_get_next_event(/* OUT */EV_Event *ev);
+
+static EV_ERR
+EVK_get_flag_in(EV_ID flagID, EV_Flag *flag, int peek_only, int wait)
+{
+ EV_Event *ev = NULL;
+ EV_ERR ev_ret;
+ int ret;
+
+ ev = evk_malloc( sizeof( EV_Event ) );
+ if( ev == NULL )
+ {
+ ev_ret = EV_ERR_Fatal;
+ goto L_END;
+ }
+
+ EVK_assert(flag != NULL, "get_flag: NULL pointer was specified");
+ flag->flagID = EV_NO_ID;
+ flag->bits = 0;
+
+ if (!EV_ID_IS_FLAG(flagID)) {
+ ev_ret = EV_ERR_Invalid_ID;
+ goto L_END;
+ }
+
+ ev->type = EV_EVENT_Flag;
+ ev->u.flag.flagID = flagID;
+ ev->u.flag.bits = 0;
+
+ ret = evk_get_event(ev, peek_only, wait, evk_mem_kernel);
+
+ if (ret < 0) {
+ if (ret == -ENOENT) {
+ ev_ret = EV_ERR_Invalid_ID;
+ } else if (ret == -EINTR) {
+ ev_ret = EV_ERR_Interrupted;
+ } else {
+ ev_ret = EV_ERR_Fatal;
+ }
+ goto L_END;
+ }
+
+ if (ev->type == EV_EVENT_Flag) {
+ flag->flagID = ev->u.flag.flagID;
+ flag->bits = ev->u.flag.bits;
+ }
+ ev_ret = EV_OK;
+
+L_END:
+ if( ev != NULL )
+ {
+ evk_free( ev );
+ }
+ return ev_ret;
+}
+
+static EV_ERR
+EVK_get_flag64_in(EV_ID flagID, EV_Flag64 *flag, int peek_only, int wait)
+{
+ EV_Event *ev = NULL;
+ EV_ERR ev_ret;
+ int ret;
+
+ ev = evk_malloc( sizeof( EV_Event ) );
+ if( ev == NULL )
+ {
+ ev_ret = EV_ERR_Fatal;
+ goto L_END;
+ }
+
+ EVK_assert(flag != NULL, "get_flag64: NULL pointer was specified");
+ flag->flagID = EV_NO_ID;
+ flag->bits = 0;
+
+ if (!EV_ID_IS_FLAG64(flagID)) {
+ ev_ret = EV_ERR_Invalid_ID;
+ goto L_END;
+ }
+
+ ev->type = EV_EVENT_Flag64;
+ ev->u.flag64.flagID = flagID;
+ ev->u.flag64.bits = 0;
+
+ ret = evk_get_event(ev, peek_only, wait, evk_mem_kernel);
+
+ if (ret < 0) {
+ if (ret == -ENOENT) {
+ ev_ret = EV_ERR_Invalid_ID;
+ } else if (ret == -EINTR) {
+ ev_ret = EV_ERR_Interrupted;
+ } else {
+ ev_ret = EV_ERR_Fatal;
+ }
+ goto L_END;
+ }
+
+ if (ev->type == EV_EVENT_Flag64) {
+ flag->flagID = ev->u.flag64.flagID;
+ flag->bits = ev->u.flag64.bits;
+ }
+ ev_ret = EV_OK;
+
+L_END:
+ if( ev != NULL )
+ {
+ evk_free( ev );
+ }
+ return ev_ret;
+}
+
+/* Event acquisition(With Search Criteria) */
+/** @see EV_get_flag */
+EV_ERR
+EVK_get_flag(EV_ID flagID, /* OUT */EV_Flag *flag)
+{
+ return EVK_get_flag_in(flagID, flag, 0, 0);
+}
+
+/** @see EV_get_flag64 */
+EV_ERR
+EVK_get_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag)
+{
+ return EVK_get_flag64_in(flagID, flag, 0, 0);
+}
+
+/** @see EV_wait_flag */
+EV_ERR
+EVK_wait_flag(EV_ID flagID, /* OUT */EV_Flag *flag)/* block */
+{
+ return EVK_get_flag_in(flagID, flag, 0, 1);
+}
+
+/** @see EV_wait_flag64 */
+EV_ERR
+EVK_wait_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag)/* block */
+{
+ return EVK_get_flag64_in(flagID, flag, 0, 1);
+}
+
+/** @see EV_peek_flag */
+EV_ERR
+EVK_peek_flag(EV_ID flagID, /* OUT */EV_Flag *flag)
+{
+ return EVK_get_flag_in(flagID, flag, 1, 0);
+}
+
+/** @see EV_peek_flag64 */
+EV_ERR
+EVK_peek_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag)
+{
+ return EVK_get_flag64_in(flagID, flag, 1, 0);
+}
+
+static EV_ERR
+EVK_get_message_in(EV_ID queueID, EV_Message *message, UINT32 senderInfo,
+ UINT32 length, const void *compare_bytes,
+ int peek_only, int wait)
+{
+ EV_Event *ev = NULL;
+ EV_ERR ev_ret;
+ int ret;
+
+ ev = evk_malloc( sizeof( EV_Event ) );
+ if( ev == NULL )
+ {
+ ev_ret = EV_ERR_Fatal;
+ goto L_END;
+ }
+
+ EVK_assert(message != NULL, "get_message: NULL pointer was specified");
+ if (!EV_ID_IS_QUEUE(queueID)) {
+ ev_ret = EV_ERR_Invalid_ID;
+ goto L_END;
+ }
+ message->queueID = EV_NO_ID;
+ message->senderInfo = 0;
+ message->length = 0;
+
+ ev->type = EV_EVENT_Message;
+ ev->u.message.queueID = queueID;
+ ev->u.message.senderInfo = senderInfo;
+ if (compare_bytes != NULL) {
+ ev->u.message.length = length;
+ memcpy(ev->u.message.message, compare_bytes, length);
+ } else {
+ ev->u.message.length = 0;
+ }
+
+ ret = evk_get_event(ev, peek_only, wait, evk_mem_kernel);
+
+ if (ret < 0) {
+ if (ret == -ENOENT) {
+ ev_ret = EV_ERR_Invalid_ID;
+ } else if (ret == -EINTR) {
+ ev_ret = EV_ERR_Interrupted;
+ } else {
+ ev_ret = EV_ERR_Fatal;
+ }
+ goto L_END;
+ }
+
+ if (ev->type == EV_EVENT_Message) {
+ message->queueID = ev->u.message.queueID;
+ message->senderInfo = ev->u.message.senderInfo;
+ message->length = ev->u.message.length;
+ memcpy(message->message, ev->u.message.message, ev->u.message.length);
+ }
+ ev_ret = EV_OK;
+
+L_END:
+ if( ev != NULL )
+ {
+ evk_free( ev );
+ }
+ return ev_ret;
+}
+
+/** @see EV_get_message */
+EV_ERR
+EVK_get_message(EV_ID queueID, /* OUT */EV_Message *message)
+{
+ return EVK_get_message_in(queueID, message, 0, 0, NULL, 0, 0);
+}
+
+/** @see EV_wait_message */
+EV_ERR
+EVK_wait_message(EV_ID queueID, /* OUT */EV_Message *message)/* block */
+{
+ return EVK_get_message_in(queueID, message, 0, 0, NULL, 0, 1);
+}
+
+/** @see EV_peek_message */
+EV_ERR
+EVK_peek_message(EV_ID queueID, /* OUT */EV_Message *message)
+{
+ return EVK_get_message_in(queueID, message, 0, 0, NULL, 1, 0);
+}
+
+/** @see EV_find_message_by_sender */
+EV_ERR
+EVK_find_message_by_sender(EV_ID queueID, UINT32 senderInfo,
+ /* OUT */EV_Message *message)
+{
+ // Not mounted
+ return EV_ERR_Fatal;
+}
+
+/** @see EV_find_message_by_content */
+EV_ERR
+EVK_find_message_by_content(EV_ID queueID, UINT16 length,
+ const void *compare_bytes,
+ /* OUT */EV_Message *message)
+{
+ // Not mounted
+ return EV_ERR_Fatal;
+}
+/** @} */
+
+EXPORT_SYMBOL(evk_get_queue_entry);
+EXPORT_SYMBOL(EVK_init);
+EXPORT_SYMBOL(EVK_exit);
+
+EXPORT_SYMBOL(EVK_create_flag);
+EXPORT_SYMBOL(EVK_create_flag64);
+EXPORT_SYMBOL(EVK_create_queue);
+EXPORT_SYMBOL(EVK_create_flag_auto_id);
+EXPORT_SYMBOL(EVK_create_flag64_auto_id);
+EXPORT_SYMBOL(EVK_create_queue_auto_id);
+EXPORT_SYMBOL(EVK_destroy_flag);
+EXPORT_SYMBOL(EVK_destroy_queue);
+EXPORT_SYMBOL(EVK_set_flag);
+EXPORT_SYMBOL(EVK_set_flag64);
+EXPORT_SYMBOL(EVK_send_message);
+EXPORT_SYMBOL(EVK_get_flag);
+EXPORT_SYMBOL(EVK_wait_flag);
+EXPORT_SYMBOL(EVK_peek_flag);
+EXPORT_SYMBOL(EVK_get_flag64);
+EXPORT_SYMBOL(EVK_wait_flag64);
+EXPORT_SYMBOL(EVK_peek_flag64);
+EXPORT_SYMBOL(EVK_get_message);
+EXPORT_SYMBOL(EVK_wait_message);
+EXPORT_SYMBOL(EVK_peek_message);
+
+#ifndef CONFIG_COMBINE_MODULES
+//MODULE_LICENSE("proprietary");
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("EVent library for Kernel");
+//MODULE_SUPPORTED_DEVICE(name);
+//MODULE_PARM(var,type)
+//MODULE_PARM_DESC(var,desc)
+module_init(EVK_init);
+module_exit(EVK_exit);
+#endif /* !CONFIG_COMBINE_MODULES */
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib_1.0.0.bb
new file mode 100644
index 00000000..52700df4
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-core/kernel-module-evklib/kernel-module-evklib_1.0.0.bb
@@ -0,0 +1,26 @@
+#
+# "kernel module for libev" recipe
+#
+
+SUMMARY = "libev kernel module for AGL software"
+DESCRIPTION = "libev kernel module build AGL software"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+
+inherit module
+
+FILES_${PN} = "/lib/modules/${KERNEL_VERSION}/evk_lib.ko"
+
+KERNEL_MODULE_AUTOLOAD += "evk_lib"
+
+SRC_URI += " \
+ file://evk_lib.c \
+ file://Makefile \
+ file://agldd \
+"
+S = "${WORKDIR}"
+
+do_install (){
+ install -d ${D}/lib/modules/${KERNEL_VERSION}/
+ install -m 644 evk_lib.ko ${D}/lib/modules/${KERNEL_VERSION}/
+}
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ns-backupmanager/ns-backupmanager_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ns-backupmanager/ns-backupmanager_1.0.0.bb
new file mode 100644
index 00000000..97356da7
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ns-backupmanager/ns-backupmanager_1.0.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "ns-backupmanager for AGL software"
+DESCRIPTION = "ns-backupmanager to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/conf/backup_manager/* \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ns-backupmanager"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ libxml2-native \
+ ns-frameworkunified \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+"
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="backup_manager"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ns-commonlibrary/ns-commonlibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ns-commonlibrary/ns-commonlibrary_1.0.0.bb
new file mode 100644
index 00000000..3d7da9b8
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ns-commonlibrary/ns-commonlibrary_1.0.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "ns-commonlibrary for AGL software"
+DESCRIPTION = "ns-commonlibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ns-commonlibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " "
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="common_library"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ns-frameworkunified/ns-frameworkunified_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ns-frameworkunified/ns-frameworkunified_1.0.0.bb
new file mode 100644
index 00000000..104a98a0
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ns-frameworkunified/ns-frameworkunified_1.0.0.bb
@@ -0,0 +1,42 @@
+SUMMARY = "ns-frameworkunified for AGL software"
+DESCRIPTION = "ns-frameworkunified to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+ /usr/agl/conf/ns_logger/* \
+"
+FILES_${PN}-staticdev += " \
+ /usr/agl/lib/*.a \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ns-frameworkunified"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+# Common Dependencies
+DEPENDS += " \
+ os-vehicleparameterlibrary \
+ os-posixbasedos001legacylibrary \
+ ns-loglibrary \
+ ns-commonlibrary \
+ libxml2 \
+ boost \
+"
+RDEPENDS_${PN} += " \
+ os-vehicleparameterlibrary \
+ os-posixbasedos001legacylibrary \
+ ns-loglibrary \
+ ns-commonlibrary \
+"
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE} -j 1"
+MAKE_DIR ="framework_unified"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ns-loglibrary/ns-loglibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ns-loglibrary/ns-loglibrary_1.0.0.bb
new file mode 100644
index 00000000..0990bd00
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ns-loglibrary/ns-loglibrary_1.0.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "ns-loglibrary for AGL software"
+DESCRIPTION = "ns-loglibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ns-loglibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " "
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="log_library"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/os-eventlibrary/os-eventlibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/os-eventlibrary/os-eventlibrary_1.0.0.bb
new file mode 100644
index 00000000..40a084a1
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/os-eventlibrary/os-eventlibrary_1.0.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "os-eventlibrary for AGL software"
+DESCRIPTION = "os-eventlibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " /usr/agl/lib/* "
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/os-eventlibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " "
+
+RDEPENDS_${PN} += " \
+ kernel-module-evklib \
+"
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="event_library"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/os-posixbasedos001legacylibrary/os-posixbasedos001legacylibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/os-posixbasedos001legacylibrary/os-posixbasedos001legacylibrary_1.0.0.bb
new file mode 100644
index 00000000..29e57dd5
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/os-posixbasedos001legacylibrary/os-posixbasedos001legacylibrary_1.0.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "os-posixbasedos001legacylibrary for AGL software"
+DESCRIPTION = "os-posixbasedos001legacylibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " /usr/agl/lib/* "
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/os-posixbasedos001legacylibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " "
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="posix_based_os001_legacy_library"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/os-rpclibrary/os-rpclibrary-tool_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/os-rpclibrary/os-rpclibrary-tool_1.0.0.bb
new file mode 100644
index 00000000..72e59811
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/os-rpclibrary/os-rpclibrary-tool_1.0.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "librpc tools for AGL software"
+DESCRIPTION = "install librpc tool"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/os-rpclibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+
+#inherit native nativesdk
+BBCLASSEXTEND = "native nativesdk"
+
+PV = "1.0.0+gitr${SRCPV}"
+
+INSANE_SKIP_${PN} = "compile-host-path"
+INSANE_SKIP_${PN} = "ldflags"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "'CXX=${CXX}' 'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'LDFLAGS=${LDFLAGS} ${LDLIBS}' 'CFLAGS=${CFLAGS}' 'SDKTARGETSYSROOT=${STAGING_DIR_NATIVE}'"
+EXTRA_OEMAKE += " -j 1"
+DEPENDS += " agl-basefiles-native bison-native "
+MAKE_DIR = "rpc_library"
+do_compile (){
+ cd ${MAKE_DIR}/tool
+ oe_runmake
+}
+
+do_install (){
+ install -D -m 755 rpc_library/tool/rpc_apidef ${D}${base_prefix}/usr/bin/rpc_apidef
+}
+FILES_${PN} += "${base_prefix}/usr/bin/rpc_apidef"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/os-rpclibrary/os-rpclibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/os-rpclibrary/os-rpclibrary_1.0.0.bb
new file mode 100644
index 00000000..ac329f33
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/os-rpclibrary/os-rpclibrary_1.0.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "os-rpclibrary for AGL software"
+DESCRIPTION = "os-rpclibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/os-rpclibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+#Added here because they are native recipes, although they are AGLs
+DEPENDS += " \
+ ns-commonlibrary \
+ ns-loglibrary \
+ bison-native \
+"
+RDEPENDS_${PN} += " \
+ ns-commonlibrary \
+ ns-loglibrary \
+"
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="rpc_library"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/os-vehicleparameterlibrary/os-vehicleparameterlibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/os-vehicleparameterlibrary/os-vehicleparameterlibrary_1.0.0.bb
new file mode 100644
index 00000000..c171ea3f
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/os-vehicleparameterlibrary/os-vehicleparameterlibrary_1.0.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "os-vehicleparameterlibrary for AGL software"
+DESCRIPTION = "os-vehicleparameterlibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/os-vehicleparameterlibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " "
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="vehicle_parameter_library"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ps-communication/ps-communication_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ps-communication/ps-communication_1.0.0.bb
new file mode 100644
index 00000000..53b81c77
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ps-communication/ps-communication_1.0.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "ps-communication for AGL software"
+DESCRIPTION = "ps-communication to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ps-communication"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ns-frameworkunified \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+"
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="communication"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ss-config/ss-config_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-config/ss-config_1.0.0.bb
new file mode 100644
index 00000000..6d21db22
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-config/ss-config_1.0.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "ss-config for AGL software"
+DESCRIPTION = "ss-config to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-config"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ ss-versionlibrary \
+ ns-frameworkunified \
+ ps-communication \
+"
+RDEPENDS_${PN} += " \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ ns-frameworkunified \
+ ps-communication \
+ ss-versionlibrary \
+"
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="config"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ss-interfaceunified/ss-interfaceunified_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-interfaceunified/ss-interfaceunified_1.0.0.bb
new file mode 100644
index 00000000..28544e1d
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-interfaceunified/ss-interfaceunified_1.0.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "ss-interfaceunified for AGL software"
+DESCRIPTION = "ss-interfaceunified to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+ /usr/agl/share \
+ /usr/agl/conf \
+ /usr/agl/share/systemmanager \
+ /usr/agl/share/systemmanager/scfg \
+ /usr/agl/share/systemmanager/scfg/* \
+ /usr/agl/conf/systemmanager \
+ /usr/agl/conf/systemmanager/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-interfaceunified"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ss-romaccesslibrary \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ elfio \
+"
+RDEPENDS_${PN} += " \
+ elfio \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ ss-romaccesslibrary \
+"
+
+#EXTRA_OEMAKE = "'CXX=${CXX} -I../../rom_access_library/library/include/' 'CC=${CC} -I../../rom_access_library/library/include/' 'RANLIB=${RANLIB}' 'AR=${AR}' 'DESTDIR=${D}' 'SDKTARGETSYSROOT=${STAGING_DIR_HOST}' 'OECORE_NATIVE_SYSROOT=${STAGING_DIR_NATIVE}'"
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="interface_unified"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ss-resourcemanager/ss-resourcemanager_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-resourcemanager/ss-resourcemanager_1.0.0.bb
new file mode 100644
index 00000000..073acf71
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-resourcemanager/ss-resourcemanager_1.0.0.bb
@@ -0,0 +1,41 @@
+SUMMARY = "ss-resourcemanager for AGL software"
+DESCRIPTION = "ss-resourcemanager to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-resourcemanager"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+# Common Dependencies
+DEPENDS += " \
+ os-rpclibrary-tool-native \
+ ss-interfaceunified \
+ ns-frameworkunified \
+ ns-commonlibrary \
+ os-vehicleparameterlibrary \
+ os-rpclibrary \
+ os-eventlibrary \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+ ss-interfaceunified \
+ ns-commonlibrary \
+ ns-frameworkunified \
+ os-vehicleparameterlibrary \
+ os-rpclibrary \
+ os-eventlibrary \
+"
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE} -j 1 'CXX=${CXX} -Wl,--warn-unresolved-symbols' 'CC=${CC} -Wl,--warn-unresolved-symbols'"
+MAKE_DIR ="resource_manager"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ss-romaccesslibrary/ss-romaccesslibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-romaccesslibrary/ss-romaccesslibrary_1.0.0.bb
new file mode 100644
index 00000000..e6c6ec86
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-romaccesslibrary/ss-romaccesslibrary_1.0.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "ss-romaccesslibrary for AGL software"
+DESCRIPTION = "ss-romaccesslibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-romaccesslibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ns-frameworkunified \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+"
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="rom_access_library"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ss-taskmanager/ss-taskmanager_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-taskmanager/ss-taskmanager_1.0.0.bb
new file mode 100644
index 00000000..55f19523
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-taskmanager/ss-taskmanager_1.0.0.bb
@@ -0,0 +1,45 @@
+SUMMARY = "ss-taskmanager for AGL software"
+DESCRIPTION = "ss-taskmanager to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+ /usr/agl/conf/tm_launch/* \
+ /usr/agl/conf/thread/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-taskmanager"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+# Common Dependencies
+DEPENDS += " \
+ os-rpclibrary-tool-native \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+ ss-resourcemanager \
+ ns-frameworkunified \
+ ns-commonlibrary \
+ os-rpclibrary \
+ os-vehicleparameterlibrary \
+ libxml2-native \
+"
+RDEPENDS_${PN} += " \
+ ss-interfaceunified \
+ ns-frameworkunified \
+ ns-commonlibrary \
+ ss-romaccesslibrary \
+ os-rpclibrary \
+ ss-resourcemanager \
+ os-vehicleparameterlibrary \
+"
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE} -j 1 'CXX=${CXX} -Wl,--warn-unresolved-symbols' 'CC=${CC} -Wl,--warn-unresolved-symbols'"
+MAKE_DIR ="task_manager"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/ss-versionlibrary/ss-versionlibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-versionlibrary/ss-versionlibrary_1.0.0.bb
new file mode 100644
index 00000000..87b920ef
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/ss-versionlibrary/ss-versionlibrary_1.0.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "ss-versionlibrary for AGL software"
+DESCRIPTION = "ss-versionlibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/ss-versionlibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ns-frameworkunified \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+ ss-interfaceunified \
+ ss-romaccesslibrary \
+"
+EXTRA_MAKEFILE = " -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="version_library"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/vs-positioning/vs-positioning_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/vs-positioning/vs-positioning_1.0.0.bb
new file mode 100644
index 00000000..acccd9ac
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/vs-positioning/vs-positioning_1.0.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "vs-positioning for AGL software"
+DESCRIPTION = "vs-positioning to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+FILES_${PN}-staticdev = "/usr/agl/lib/*.a"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/vs-positioning"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ns-frameworkunified \
+ os-vehicleparameterlibrary \
+ vs-positioningbaselibrary \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+ os-vehicleparameterlibrary \
+ vs-positioningbaselibrary \
+"
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE} -j 1 'CXX=${CXX} -Wl,--warn-unresolved-symbols' 'CC=${CC} -Wl,--warn-unresolved-symbols'"
+MAKE_DIR ="positioning"
+
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-graphics/vs-positioningbaselibrary/vs-positioningbaselibrary_1.0.0.bb b/meta-agl/meta-agl-basesystem/recipes-graphics/vs-positioningbaselibrary/vs-positioningbaselibrary_1.0.0.bb
new file mode 100644
index 00000000..a1f1a98e
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-graphics/vs-positioningbaselibrary/vs-positioningbaselibrary_1.0.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "vs-positioningbaselibrary for AGL software"
+DESCRIPTION = "vs-positioningbaselibrary to build AGL software"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${MAKE_DIR}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+inherit agl-basesystem-common
+FILES_${PN} += " \
+ /usr/agl/lib/* \
+"
+FILES_${PN}-dev += "/usr/agl/include/*"
+
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/staging/toyota.git;protocol=https;branch=sandbox/ToshikazuOhiwa/vs-positioningbaselibrary"
+SRCREV = "${AUTOREV}"
+
+PV = "1.0.0+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += " \
+ ns-frameworkunified \
+ os-eventlibrary \
+"
+RDEPENDS_${PN} += " \
+ ns-frameworkunified \
+ os-eventlibrary \
+"
+
+EXTRA_MAKEFILE=" -f Makefile.client"
+EXTRA_OEMAKE += "${EXTRA_MAKEFILE}"
+MAKE_DIR ="positioning_base_library"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-core.bb b/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-core.bb
new file mode 100644
index 00000000..6c97a113
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-core.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "AGL Core Package Groups"
+LICENSE = "CLOSED"
+PR = "r1"
+
+
+DEPENDS += " \
+ agl-basefiles \
+ agl-systemd \
+ "
+
+#
+# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH
+#
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-agl-basesystem-core \
+ "
+
+RDEPENDS_packagegroup-agl-basesystem-core = "\
+ agl-basefiles \
+ sudo \
+ agl-systemd \
+ "
+
+RDEPENDS_packagegroup-agl-basesystem-core-dbg = "\
+ sysklogd \
+ strace \
+ uftrace \
+ sysstat \
+ valgrind \
+ "
diff --git a/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-graphics.bb b/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-graphics.bb
new file mode 100644
index 00000000..33affc03
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-graphics.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Native Service Package Groups"
+LICENSE = "CLOSED"
+PR = "r1"
+
+DEPENDS_qemux86-64 = "agl-basefiles"
+DEPENDS_qemuarm64 = "agl-basefiles"
+
+#
+# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-agl-basesystem-graphics \
+ "
+RDEPENDS_${PN} += " \
+ ns-commonlibrary \
+ ns-loglibrary \
+ ns-frameworkunified \
+ ns-backupmanager \
+ os-eventlibrary \
+ os-posixbasedos001legacylibrary \
+ os-vehicleparameterlibrary \
+ os-rpclibrary \
+ ps-communication \
+ ss-versionlibrary \
+ ss-romaccesslibrary \
+ ss-config \
+ ss-interfaceunified \
+ ss-resourcemanager \
+ ss-taskmanager \
+ vs-positioning \
+ vs-positioningbaselibrary \
+"
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-service.bb b/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-service.bb
new file mode 100644
index 00000000..724dd83a
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem-service.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Native Service Package Groups"
+LICENSE = "CLOSED"
+PR = "r1"
+
+DEPENDS_qemux86-64 = "agl-basefiles"
+DEPENDS_qemuarm64 = "agl-basefiles"
+
+#
+# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH
+#
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-agl-basesystem-service \
+ "
+RDEPENDS_${PN} += " \
+ agl-service-ns-backupmanager \
+ agl-service-ns-notificationpersistent \
+ agl-service-ps-communication \
+ agl-service-ss-loggerservice \
+ agl-service-ss-powerservice \
+ agl-service-ss-resourcemanager \
+ agl-service-ss-taskmanager \
+ agl-service-vs-positioning \
+ agl-service-ss-systemmanager \
+ "
+
diff --git a/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem.bb b/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem.bb
new file mode 100644
index 00000000..896eb670
--- /dev/null
+++ b/meta-agl/meta-agl-basesystem/recipes-platform/packagegroups/packagegroup-agl-basesystem.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "BaseSystem Package Groups"
+LICENSE = "CLOSED"
+PR = "r1"
+
+DEPENDS = " "
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-agl-basesystem \
+ "
+ALLOW_EMPTY_${PN} = "1"
+
+RDEPENDS_${PN} += "\
+ packagegroup-agl-image-minimal \
+ "
+
+RDEPENDS_${PN} += "\
+ packagegroup-agl-basesystem-core \
+ packagegroup-agl-basesystem-graphics \
+ packagegroup-agl-basesystem-service \
+ "
+
+
diff --git a/meta-agl/templates/feature/agl-basesystem/50_bblayers.conf.inc b/meta-agl/templates/feature/agl-basesystem/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/agl-basesystem/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/agl-basesystem/50_local.conf.inc b/meta-agl/templates/feature/agl-basesystem/50_local.conf.inc
new file mode 100644
index 00000000..8978d11a
--- /dev/null
+++ b/meta-agl/templates/feature/agl-basesystem/50_local.conf.inc
@@ -0,0 +1,2 @@
+#see meta-agl-basesystem/conf/include/agl-basesystem-base.inc
+require conf/include/agl-basesystem-base.inc
diff --git a/meta-agl/templates/feature/agl-basesystem/README_feature_agl-basesystem.md b/meta-agl/templates/feature/agl-basesystem/README_feature_agl-basesystem.md
new file mode 100644
index 00000000..9c2f0633
--- /dev/null
+++ b/meta-agl/templates/feature/agl-basesystem/README_feature_agl-basesystem.md
@@ -0,0 +1,3 @@
+---
+description: Feature agl-basesystem
+authors:
diff --git a/meta-agl/templates/feature/ns-backupmanager/50_bblayers.conf.inc b/meta-agl/templates/feature/ns-backupmanager/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ns-backupmanager/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ns-backupmanager/50_local.conf.inc b/meta-agl/templates/feature/ns-backupmanager/50_local.conf.inc
new file mode 100644
index 00000000..0063e850
--- /dev/null
+++ b/meta-agl/templates/feature/ns-backupmanager/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ns-backupmanager agl-service-ns-backupmanager"
diff --git a/meta-agl/templates/feature/ns-backupmanager/README_feature_ns-backupmanager.md b/meta-agl/templates/feature/ns-backupmanager/README_feature_ns-backupmanager.md
new file mode 100644
index 00000000..260b9cf5
--- /dev/null
+++ b/meta-agl/templates/feature/ns-backupmanager/README_feature_ns-backupmanager.md
@@ -0,0 +1,3 @@
+---
+description: Feature ns-backupmanager
+authors:
diff --git a/meta-agl/templates/feature/ns-commonlibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/ns-commonlibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ns-commonlibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ns-commonlibrary/50_local.conf.inc b/meta-agl/templates/feature/ns-commonlibrary/50_local.conf.inc
new file mode 100644
index 00000000..31142d46
--- /dev/null
+++ b/meta-agl/templates/feature/ns-commonlibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ns-commonlibrary"
diff --git a/meta-agl/templates/feature/ns-commonlibrary/README_feature_ns-commonlibrary.md b/meta-agl/templates/feature/ns-commonlibrary/README_feature_ns-commonlibrary.md
new file mode 100644
index 00000000..8d01b0bd
--- /dev/null
+++ b/meta-agl/templates/feature/ns-commonlibrary/README_feature_ns-commonlibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature ns-commonlibrary
+authors:
diff --git a/meta-agl/templates/feature/ns-frameworkunified/50_bblayers.conf.inc b/meta-agl/templates/feature/ns-frameworkunified/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ns-frameworkunified/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ns-frameworkunified/50_local.conf.inc b/meta-agl/templates/feature/ns-frameworkunified/50_local.conf.inc
new file mode 100644
index 00000000..a784d258
--- /dev/null
+++ b/meta-agl/templates/feature/ns-frameworkunified/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ns-frameworkunified"
diff --git a/meta-agl/templates/feature/ns-frameworkunified/README_feature_ns-frameworkunified.md b/meta-agl/templates/feature/ns-frameworkunified/README_feature_ns-frameworkunified.md
new file mode 100644
index 00000000..03ccc2cc
--- /dev/null
+++ b/meta-agl/templates/feature/ns-frameworkunified/README_feature_ns-frameworkunified.md
@@ -0,0 +1,3 @@
+---
+description: Feature ns-frameworkunified
+authors:
diff --git a/meta-agl/templates/feature/ns-loglibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/ns-loglibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ns-loglibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ns-loglibrary/50_local.conf.inc b/meta-agl/templates/feature/ns-loglibrary/50_local.conf.inc
new file mode 100644
index 00000000..e6e58331
--- /dev/null
+++ b/meta-agl/templates/feature/ns-loglibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ns-loglibrary"
diff --git a/meta-agl/templates/feature/ns-loglibrary/README_feature_ns-loglibrary.md b/meta-agl/templates/feature/ns-loglibrary/README_feature_ns-loglibrary.md
new file mode 100644
index 00000000..4f5c2187
--- /dev/null
+++ b/meta-agl/templates/feature/ns-loglibrary/README_feature_ns-loglibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature ns-loglibrary
+authors:
diff --git a/meta-agl/templates/feature/ns-notificationpersistent/50_bblayers.conf.inc b/meta-agl/templates/feature/ns-notificationpersistent/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ns-notificationpersistent/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ns-notificationpersistent/50_local.conf.inc b/meta-agl/templates/feature/ns-notificationpersistent/50_local.conf.inc
new file mode 100644
index 00000000..a65b3b94
--- /dev/null
+++ b/meta-agl/templates/feature/ns-notificationpersistent/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " agl-service-ns-notificationpersistent"
diff --git a/meta-agl/templates/feature/ns-notificationpersistent/README_feature_ns-notificationpersistent.md b/meta-agl/templates/feature/ns-notificationpersistent/README_feature_ns-notificationpersistent.md
new file mode 100644
index 00000000..a79ae128
--- /dev/null
+++ b/meta-agl/templates/feature/ns-notificationpersistent/README_feature_ns-notificationpersistent.md
@@ -0,0 +1,3 @@
+---
+description: Feature ns-notificationpersistent
+authors:
diff --git a/meta-agl/templates/feature/os-eventlibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/os-eventlibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/os-eventlibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/os-eventlibrary/50_local.conf.inc b/meta-agl/templates/feature/os-eventlibrary/50_local.conf.inc
new file mode 100644
index 00000000..4b7b255f
--- /dev/null
+++ b/meta-agl/templates/feature/os-eventlibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " os-eventlibrary"
diff --git a/meta-agl/templates/feature/os-eventlibrary/README_feature_os-eventlibrary.md b/meta-agl/templates/feature/os-eventlibrary/README_feature_os-eventlibrary.md
new file mode 100644
index 00000000..bb57ca5f
--- /dev/null
+++ b/meta-agl/templates/feature/os-eventlibrary/README_feature_os-eventlibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature os-eventlibrary
+authors:
diff --git a/meta-agl/templates/feature/os-posixbasedos001legacylibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/os-posixbasedos001legacylibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/os-posixbasedos001legacylibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/os-posixbasedos001legacylibrary/50_local.conf.inc b/meta-agl/templates/feature/os-posixbasedos001legacylibrary/50_local.conf.inc
new file mode 100644
index 00000000..bf128fea
--- /dev/null
+++ b/meta-agl/templates/feature/os-posixbasedos001legacylibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " os-posixbasedos001legacylibrary"
diff --git a/meta-agl/templates/feature/os-posixbasedos001legacylibrary/README_feature_os-posixbasedos001legacylibrary.md b/meta-agl/templates/feature/os-posixbasedos001legacylibrary/README_feature_os-posixbasedos001legacylibrary.md
new file mode 100644
index 00000000..fc0705da
--- /dev/null
+++ b/meta-agl/templates/feature/os-posixbasedos001legacylibrary/README_feature_os-posixbasedos001legacylibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature os-posixbasedos001legacylibrary
+authors:
diff --git a/meta-agl/templates/feature/os-rpclibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/os-rpclibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/os-rpclibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/os-rpclibrary/50_local.conf.inc b/meta-agl/templates/feature/os-rpclibrary/50_local.conf.inc
new file mode 100644
index 00000000..87e4a839
--- /dev/null
+++ b/meta-agl/templates/feature/os-rpclibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " os-rpclibrary os-rpclibrary-tool"
diff --git a/meta-agl/templates/feature/os-rpclibrary/README_feature_os-rpclibrary.md b/meta-agl/templates/feature/os-rpclibrary/README_feature_os-rpclibrary.md
new file mode 100644
index 00000000..2cbd38ac
--- /dev/null
+++ b/meta-agl/templates/feature/os-rpclibrary/README_feature_os-rpclibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature os-rpclibrary
+authors:
diff --git a/meta-agl/templates/feature/os-vehicleparameterlibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/os-vehicleparameterlibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/os-vehicleparameterlibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/os-vehicleparameterlibrary/50_local.conf.inc b/meta-agl/templates/feature/os-vehicleparameterlibrary/50_local.conf.inc
new file mode 100644
index 00000000..4bac5091
--- /dev/null
+++ b/meta-agl/templates/feature/os-vehicleparameterlibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " os-vehicleparameterlibrary"
diff --git a/meta-agl/templates/feature/os-vehicleparameterlibrary/README_feature_os-vehicleparameterlibrary.md b/meta-agl/templates/feature/os-vehicleparameterlibrary/README_feature_os-vehicleparameterlibrary.md
new file mode 100644
index 00000000..97c88e7c
--- /dev/null
+++ b/meta-agl/templates/feature/os-vehicleparameterlibrary/README_feature_os-vehicleparameterlibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature os-vehicleparameterlibrary
+authors:
diff --git a/meta-agl/templates/feature/ps-communication/50_bblayers.conf.inc b/meta-agl/templates/feature/ps-communication/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ps-communication/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ps-communication/50_local.conf.inc b/meta-agl/templates/feature/ps-communication/50_local.conf.inc
new file mode 100644
index 00000000..fdedf9de
--- /dev/null
+++ b/meta-agl/templates/feature/ps-communication/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ps-communication agl-service-ps-communication"
diff --git a/meta-agl/templates/feature/ps-communication/README_feature_ps-communication.md b/meta-agl/templates/feature/ps-communication/README_feature_ps-communication.md
new file mode 100644
index 00000000..92269ab5
--- /dev/null
+++ b/meta-agl/templates/feature/ps-communication/README_feature_ps-communication.md
@@ -0,0 +1,3 @@
+---
+description: Feature ps-communication
+authors:
diff --git a/meta-agl/templates/feature/ss-config/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-config/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-config/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-config/50_local.conf.inc b/meta-agl/templates/feature/ss-config/50_local.conf.inc
new file mode 100644
index 00000000..01688a2e
--- /dev/null
+++ b/meta-agl/templates/feature/ss-config/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ss-config"
diff --git a/meta-agl/templates/feature/ss-config/README_feature_ss-config.md b/meta-agl/templates/feature/ss-config/README_feature_ss-config.md
new file mode 100644
index 00000000..0c48f6ce
--- /dev/null
+++ b/meta-agl/templates/feature/ss-config/README_feature_ss-config.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-config
+authors:
diff --git a/meta-agl/templates/feature/ss-interfaceunified/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-interfaceunified/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-interfaceunified/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-interfaceunified/50_local.conf.inc b/meta-agl/templates/feature/ss-interfaceunified/50_local.conf.inc
new file mode 100644
index 00000000..5d58b66c
--- /dev/null
+++ b/meta-agl/templates/feature/ss-interfaceunified/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ss-interfaceunified"
diff --git a/meta-agl/templates/feature/ss-interfaceunified/README_feature_ss-interfaceunified.md b/meta-agl/templates/feature/ss-interfaceunified/README_feature_ss-interfaceunified.md
new file mode 100644
index 00000000..719dd692
--- /dev/null
+++ b/meta-agl/templates/feature/ss-interfaceunified/README_feature_ss-interfaceunified.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-interfaceunified
+authors:
diff --git a/meta-agl/templates/feature/ss-loggerservice/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-loggerservice/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-loggerservice/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-loggerservice/50_local.conf.inc b/meta-agl/templates/feature/ss-loggerservice/50_local.conf.inc
new file mode 100644
index 00000000..8291986d
--- /dev/null
+++ b/meta-agl/templates/feature/ss-loggerservice/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " agl-service-ss-loggerservice"
diff --git a/meta-agl/templates/feature/ss-loggerservice/README_feature_ss-loggerservice.md b/meta-agl/templates/feature/ss-loggerservice/README_feature_ss-loggerservice.md
new file mode 100644
index 00000000..7a8e49e3
--- /dev/null
+++ b/meta-agl/templates/feature/ss-loggerservice/README_feature_ss-loggerservice.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-loggerservice
+authors:
diff --git a/meta-agl/templates/feature/ss-powerservice/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-powerservice/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-powerservice/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-powerservice/50_local.conf.inc b/meta-agl/templates/feature/ss-powerservice/50_local.conf.inc
new file mode 100644
index 00000000..2eecc646
--- /dev/null
+++ b/meta-agl/templates/feature/ss-powerservice/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " agl-service-ss-powerservice"
diff --git a/meta-agl/templates/feature/ss-powerservice/README_feature_ss-powerservice.md b/meta-agl/templates/feature/ss-powerservice/README_feature_ss-powerservice.md
new file mode 100644
index 00000000..ae52f2f7
--- /dev/null
+++ b/meta-agl/templates/feature/ss-powerservice/README_feature_ss-powerservice.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-powerservice
+authors:
diff --git a/meta-agl/templates/feature/ss-resourcemanager/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-resourcemanager/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-resourcemanager/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-resourcemanager/50_local.conf.inc b/meta-agl/templates/feature/ss-resourcemanager/50_local.conf.inc
new file mode 100644
index 00000000..9bfa7637
--- /dev/null
+++ b/meta-agl/templates/feature/ss-resourcemanager/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ss-resourcemanager agl-service-ss-resourcemanager"
diff --git a/meta-agl/templates/feature/ss-resourcemanager/README_feature_ss-resourcemanager.md b/meta-agl/templates/feature/ss-resourcemanager/README_feature_ss-resourcemanager.md
new file mode 100644
index 00000000..a9d42523
--- /dev/null
+++ b/meta-agl/templates/feature/ss-resourcemanager/README_feature_ss-resourcemanager.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-resourcemanager
+authors:
diff --git a/meta-agl/templates/feature/ss-romaccesslibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-romaccesslibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-romaccesslibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-romaccesslibrary/50_local.conf.inc b/meta-agl/templates/feature/ss-romaccesslibrary/50_local.conf.inc
new file mode 100644
index 00000000..a28556ce
--- /dev/null
+++ b/meta-agl/templates/feature/ss-romaccesslibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ss-romaccesslibrary"
diff --git a/meta-agl/templates/feature/ss-romaccesslibrary/README_feature_ss-romaccesslibrary.md b/meta-agl/templates/feature/ss-romaccesslibrary/README_feature_ss-romaccesslibrary.md
new file mode 100644
index 00000000..0e61e6ed
--- /dev/null
+++ b/meta-agl/templates/feature/ss-romaccesslibrary/README_feature_ss-romaccesslibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-romaccesslibrary
+authors:
diff --git a/meta-agl/templates/feature/ss-systemmanager/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-systemmanager/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-systemmanager/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-systemmanager/50_local.conf.inc b/meta-agl/templates/feature/ss-systemmanager/50_local.conf.inc
new file mode 100644
index 00000000..36406664
--- /dev/null
+++ b/meta-agl/templates/feature/ss-systemmanager/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " agl-service-ss-systemmanager"
diff --git a/meta-agl/templates/feature/ss-systemmanager/README_feature_ss-systemmanager.md b/meta-agl/templates/feature/ss-systemmanager/README_feature_ss-systemmanager.md
new file mode 100644
index 00000000..7ecb971a
--- /dev/null
+++ b/meta-agl/templates/feature/ss-systemmanager/README_feature_ss-systemmanager.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-systemmanager
+authors:
diff --git a/meta-agl/templates/feature/ss-taskmanager/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-taskmanager/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-taskmanager/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-taskmanager/50_local.conf.inc b/meta-agl/templates/feature/ss-taskmanager/50_local.conf.inc
new file mode 100644
index 00000000..4fe8b365
--- /dev/null
+++ b/meta-agl/templates/feature/ss-taskmanager/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ss-taskmanager agl-service-ss-taskmanager"
diff --git a/meta-agl/templates/feature/ss-taskmanager/README_feature_ss-taskmanager.md b/meta-agl/templates/feature/ss-taskmanager/README_feature_ss-taskmanager.md
new file mode 100644
index 00000000..8bf420bf
--- /dev/null
+++ b/meta-agl/templates/feature/ss-taskmanager/README_feature_ss-taskmanager.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-taskmanager
+authors:
diff --git a/meta-agl/templates/feature/ss-versionlibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/ss-versionlibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/ss-versionlibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/ss-versionlibrary/50_local.conf.inc b/meta-agl/templates/feature/ss-versionlibrary/50_local.conf.inc
new file mode 100644
index 00000000..3eff74ff
--- /dev/null
+++ b/meta-agl/templates/feature/ss-versionlibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " ss-versionlibrary"
diff --git a/meta-agl/templates/feature/ss-versionlibrary/README_feature_ss-versionlibrary.md b/meta-agl/templates/feature/ss-versionlibrary/README_feature_ss-versionlibrary.md
new file mode 100644
index 00000000..c4d1bccc
--- /dev/null
+++ b/meta-agl/templates/feature/ss-versionlibrary/README_feature_ss-versionlibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature ss-versionlibrary
+authors:
diff --git a/meta-agl/templates/feature/vs-positioning/50_bblayers.conf.inc b/meta-agl/templates/feature/vs-positioning/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/vs-positioning/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/vs-positioning/50_local.conf.inc b/meta-agl/templates/feature/vs-positioning/50_local.conf.inc
new file mode 100644
index 00000000..375f4bc7
--- /dev/null
+++ b/meta-agl/templates/feature/vs-positioning/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " vs-positioning agl-service-vs-positioning"
diff --git a/meta-agl/templates/feature/vs-positioning/README_feature_vs-positioning.md b/meta-agl/templates/feature/vs-positioning/README_feature_vs-positioning.md
new file mode 100644
index 00000000..ed4ec6ac
--- /dev/null
+++ b/meta-agl/templates/feature/vs-positioning/README_feature_vs-positioning.md
@@ -0,0 +1,3 @@
+---
+description: Feature vs-positioning
+authors:
diff --git a/meta-agl/templates/feature/vs-positioningbaselibrary/50_bblayers.conf.inc b/meta-agl/templates/feature/vs-positioningbaselibrary/50_bblayers.conf.inc
new file mode 100644
index 00000000..94d13d64
--- /dev/null
+++ b/meta-agl/templates/feature/vs-positioningbaselibrary/50_bblayers.conf.inc
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl/meta-agl-basesystem \
+"
diff --git a/meta-agl/templates/feature/vs-positioningbaselibrary/50_local.conf.inc b/meta-agl/templates/feature/vs-positioningbaselibrary/50_local.conf.inc
new file mode 100644
index 00000000..07d15b84
--- /dev/null
+++ b/meta-agl/templates/feature/vs-positioningbaselibrary/50_local.conf.inc
@@ -0,0 +1,9 @@
+DISTRO_FEATURES_append = " systemd ${DISTRO_FEATURES_LIBC}"
+TOOLCHAIN_HOST_TASK_append += " nativesdk-os-rpclibrary-tool nativesdk-perl-module-app-cpan nativesdk-perl-module-json-pp"
+
+# add the static lib to SDK toolchain
+SDKIMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs tools-debug tools-profile headerfiles-pkgs nativesdk-os-rpclibrary"
+SDKIMAGE_FEATURES_remove += " dbg-pkgs"
+EXTRA_IMAGE_FEATURES_append += " staticdev-pkgs dev-pkgs dbg-pkgs tools-profile"
+
+IMAGE_INSTALL_append += " vs-positioningbaselibrary"
diff --git a/meta-agl/templates/feature/vs-positioningbaselibrary/README_feature_vs-positioningbaselibrary.md b/meta-agl/templates/feature/vs-positioningbaselibrary/README_feature_vs-positioningbaselibrary.md
new file mode 100644
index 00000000..24450c8f
--- /dev/null
+++ b/meta-agl/templates/feature/vs-positioningbaselibrary/README_feature_vs-positioningbaselibrary.md
@@ -0,0 +1,3 @@
+---
+description: Feature vs-positioningbaselibrary
+authors: