summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 094f837)
raw | patch | inline | side by side (parent: 094f837)
author | Ramsey Harris <ramsey@ti.com> | |
Wed, 20 Mar 2013 04:41:30 +0000 (21:41 -0700) | ||
committer | Ramsey Harris <ramsey@ti.com> | |
Wed, 20 Mar 2013 04:41:30 +0000 (21:41 -0700) |
Added QNX makefiles to build mmrpc library and mmrpc_test program.
Added QNX generated files to .gitignore file. Added KERNEL_INSTALL_DIR
to Linux makefiles.
Added QNX generated files to .gitignore file. Added KERNEL_INSTALL_DIR
to Linux makefiles.
19 files changed:
diff --git a/.gitignore b/.gitignore
index 50adf48c875673156798a52a5c9c560f03e36afa..51969b9593b5e935e7ed6cd49128b01d8c96ebe1 100644 (file)
--- a/.gitignore
+++ b/.gitignore
/linux/src/tests/nano_test_*
/linux/src/tests/ping_rpmsg
/linux/src/tests/mmrpc_test
+
+# QNX stuff
+/qnx/src/*/arm/a.g.le.v7/*.o
+/qnx/src/*/arm/a.g.le.v7/*.a
+/qnx/src/*/arm/a.g.le.v7/*.a.pinfo
+/qnx/src/*/arm/a.le.v7/*.o
+/qnx/src/*/arm/a.le.v7/*.a
+/qnx/src/*/arm/a.le.v7/*.a.pinfo
+
+/qnx/src/tests/*/arm/o.g.le.v7/*.o
+/qnx/src/tests/*/arm/o.g.le.v7/*.map
+/qnx/src/tests/*/arm/o.g.le.v7/*.pinfo
+/qnx/src/tests/*/arm/o.g.le.v7/MessageQApp_g
+/qnx/src/tests/*/arm/o.g.le.v7/MessageQBench_g
+/qnx/src/tests/*/arm/o.g.le.v7/MessageQMulti_g
+/qnx/src/tests/*/arm/o.g.le.v7/NameServerApp_g
+/qnx/src/tests/*/arm/o.g.le.v7/mmrpc_test_g
+
+/qnx/src/tests/*/arm/o.le.v7/*.o
+/qnx/src/tests/*/arm/o.le.v7/*.map
+/qnx/src/tests/*/arm/o.le.v7/*.pinfo
+/qnx/src/tests/*/arm/o.le.v7/MessageQApp
+/qnx/src/tests/*/arm/o.le.v7/MessageQBench
+/qnx/src/tests/*/arm/o.le.v7/MessageQMulti
+/qnx/src/tests/*/arm/o.le.v7/NameServerApp
+/qnx/src/tests/*/arm/o.le.v7/mmrpc_test
diff --git a/configure.ac b/configure.ac
index 8756d534b15359275ba339013224ffde213bd15e..1ce52738f696cfdbd6ad53aa60634d37c01a9a22 100644 (file)
--- a/configure.ac
+++ b/configure.ac
# Add config variables/options and check them
AC_ARG_VAR(PLATFORM, Platform to build. Options are: 'omapl138' 'omap54xx_smp' 'tci6614' and 'tci6638'. If not defined all platforms will be built.)
AC_ARG_VAR(CMEM_INSTALL_DIR, Installation path directory to the CMEM libraries)
+AC_ARG_VAR(KERNEL_INSTALL_DIR, Installation path to the Linux kernel.)
# Test platform variable for setting
AS_IF([test "x$PLATFORM" = "xomapl138"],
[AC_MSG_NOTICE([PLATFORM is not set. All supported platforms will be built ....])],
[AC_MSG_ERROR([PLATFORM is set to "${PLATFORM}": run ./configure --help for available PLATFORM options])])])])])])
+AS_IF([test "x$KERNEL_INSTALL_DIR" = "x"], [AC_MSG_ERROR([Kernel path is not set])])
+
# Export optional user variable to Makefile(s)
AC_SUBST([PLATFORM])
AC_SUBST([CMEM_INSTALL_DIR])
+AC_SUBST([KERNEL_INSTALL_DIR])
# Define specific variables to be used in Makefile.am
AM_CONDITIONAL([OMAPL138], [test "x$PLATFORM" = "xomapl138"])
diff --git a/ipc-linux.mak b/ipc-linux.mak
index 08b27f42a3c8363f5beb1e1fe1a38a06be4cae52..3688e627603428db43aa4919078b7dfc2f50203d 100644 (file)
--- a/ipc-linux.mak
+++ b/ipc-linux.mak
./configure --host=$(TOOLCHAIN_LONGNAME) \
CC=$(TOOLCHAIN_PREFIX)gcc \
PLATFORM=$(PLATFORM) \
- CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR)
+ CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR) \
+ KERNEL_INSTALL_DIR=$(KERNEL_INSTALL_DIR)
config-static:
@echo "Configuring Linux Ipc static only libaries ..."
./configure --host=$(TOOLCHAIN_LONGNAME) --disable-shared \
CC=$(TOOLCHAIN_PREFIX)gcc \
PLATFORM=$(PLATFORM) \
- CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR)
+ CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR) \
+ KERNEL_INSTALL_DIR=$(KERNEL_INSTALL_DIR)
config-shared:
./configure --host=$(TOOLCHAIN_LONGNAME) --disable-static \
CC=$(TOOLCHAIN_PREFIX)gcc \
PLATFORM=$(PLATFORM) \
- CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR)
+ CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR) \
+ KERNEL_INSTALL_DIR=$(KERNEL_INSTALL_DIR)
index e9e4813ad22c9df04a3d3f72474b34fdf8eff84c..666a086117b8959866a5cc9154719eeafae3b0b4 100644 (file)
--- a/linux/src/mm/Makefile.am
+++ b/linux/src/mm/Makefile.am
##
# additional include paths necessary to compile the library
-AM_CFLAGS = -Wall @AM_CFLAGS@
+AM_CFLAGS = -Wall @AM_CFLAGS@ -DKERNEL_INSTALL_DIR="$(KERNEL_INSTALL_DIR)"
###############################################################################
# THE LIBRARIES TO BUILD
index b101c62debfcb633c7f50c52691e41eb496b8a3b..d606e1712cb2e313dcc5a012467fe621ab0ce5c7 100644 (file)
#include <ti/ipc/mm/MmRpc.h>
-/* module 'Mx' functions */
+/*
+ * module 'Mx' functions
+ */
+
+/* compute structure */
+typedef struct {
+ uint32_t coef;
+ int size;
+ uint32_t * inBuf;
+ uint32_t * outBuf;
+} Mx_Compute;
+
int Mx_initialize(void);
void Mx_finalize(void);
int32_t Mx_triple(uint32_t a);
int32_t Mx_add(int32_t a, int32_t b);
+int32_t Mx_compute(Mx_Compute *compute);
MmRpc_Handle Mx_rpcDsp = NULL;
/* static function indicies */
#define Mx_Fxn_triple (0x80000000 | 1)
#define Mx_Fxn_add (0x80000000 | 2)
+#define Mx_Fxn_compute (0x80000000 | 3)
/*
{
int status;
int32_t ret;
+// int i;
+// Mx_Compute *compute;
printf("mmrpc_test: --> main\n");
goto leave;
}
+#if 0
+ /* allocate a compute structure in shared memory */
+// compute = ...;
+ compute->coef = 0x80400000;
+ compute->size = 0x1000;
+
+ /* allocate an input buffer in shared memory */
+// compute->inBuf = ...;
+
+ for (i = 0; i < compute->size; i++) {
+ compute->inBuf[i] = 0x2010;
+ }
+
+ /* allocate an output buffer in shared memory */
+// compute->outBuf = ...;
+
+ /* process the buffer */
+ ret = Mx_compute(compute);
+
+ if (ret < 0) {
+ status = -1;
+ goto leave;
+ }
+
+ /* free resources */
+// free(compute->outBuf);
+// free(compute->inBuf);
+// free(compute);
+#endif
+
leave:
/* finalize Mx module (destroy rpc connection) */
Mx_finalize();
return(fxnRet);
}
+
+/*
+ * ======== Mx_compute ========
+ */
+int32_t Mx_compute(Mx_Compute *compute)
+{
+ MmRpc_FxnCtx *fxnCtx;
+ MmRpc_Txlt tlxtTable[2];
+ int32_t fxnRet;
+ char send_buf[512] = {0};
+ int status;
+
+ /* marshall function arguments into the send buffer */
+ fxnCtx = (MmRpc_FxnCtx *)send_buf;
+
+ fxnCtx->fxn_id = Mx_Fxn_compute;
+ fxnCtx->num_params = 1;
+ fxnCtx->params[0].type = MmRpc_ParamType_Ptr;
+ fxnCtx->params[0].param.ptr.size = sizeof(void *);
+ fxnCtx->params[0].param.ptr.addr = (size_t)compute;
+// fxnCtx->params[0].param.ptr.handle = ...;
+
+ fxnCtx->num_translations = 2;
+ fxnCtx->translations = tlxtTable;
+
+ fxnCtx->translations[0].index = 0;
+ fxnCtx->translations[0].offset = 8;
+ fxnCtx->translations[1].index = 0;
+ fxnCtx->translations[1].offset = 12;
+
+ /* invoke the remote function call */
+ status = MmRpc_call(Mx_rpcDsp, fxnCtx, &fxnRet);
+
+ if (status < 0) {
+ printf("mmrpc_test: Error: MmRpc_call failed\n");
+ fxnRet = -1;
+ }
+
+ return(fxnRet);
+}
index 0e0e1192100808a1be88379c0ffea4b737deab29..a240d54deac7143e23e2272c7fb506e32fb13022 100644 (file)
#include <stdint.h> /* should be in linux/rpmsg_rpc.h */
#include <stddef.h> /* should be in linux/rpmsg_rpc.h */
+
+
+
+#if defined(KERNEL_INSTALL_DIR)
+
+#ifdef linux
+#define _linux_ linux
+#undef linux
+#endif
+#define linux_include(kd,m) <kd/include/linux/m.h>
+#include linux_include(KERNEL_INSTALL_DIR,rpmsg_rpc)
+#ifdef _linux_
+#define linux _linux
+#undef _linux_
+#endif
+
#define RPPC_MAX_INST_NAMELEN (48) /* in kernel part of rpmsg_rpc.h */
-#include </db/vtree/rvh/OMAP5/Depot/ti_linux_3_8/include/linux/rpmsg_rpc.h>
-// #include <linux/rpmsg_rpc.h>
/* this should be in rpmsg_rpc.h, currently in rpmsg_rpc_internal.h */
struct rppc_create_instance {
char name[RPPC_MAX_INST_NAMELEN];
};
+#elif defined(SYSLINK_BUILDOS_QNX)
+
+#include <ti/ipc/rpmsg_rpc.h>
+
+#else
+#error Unsupported Operating System
+#endif
+
#include "MmRpc.h"
MmRpc_Object *obj = (MmRpc_Object *)handle;
struct rppc_function *rpfxn;
struct rppc_function_return reply_msg;
+ MmRpc_Param *arg;
void *msg;
int len;
int i;
rpfxn->num_params = ctx->num_params;
for (i = 0; i < ctx->num_params; i++) {
- switch (ctx->params[i].type) {
+ arg = &ctx->params[i];
+ switch (arg->type) {
case MmRpc_ParamType_Atomic:
rpfxn->params[i].type = RPPC_PARAM_TYPE_ATOMIC;
- rpfxn->params[i].size = ctx->params[i].param.atomic.size;
- rpfxn->params[i].data = ctx->params[i].param.atomic.data;
+ rpfxn->params[i].size = arg->param.atomic.size;
+ rpfxn->params[i].data = arg->param.atomic.data;
rpfxn->params[i].base = 0;
rpfxn->params[i].reserved = 0;
break;
- case MmRpc_ParamType_ShMemPtr:
- /* TODO */
+ case MmRpc_ParamType_Ptr:
+ rpfxn->params[i].type = RPPC_PARAM_TYPE_PTR;
+ rpfxn->params[i].size = arg->param.ptr.size;
+ rpfxn->params[i].data = arg->param.ptr.addr;
+ rpfxn->params[i].base = arg->param.ptr.addr;
+ rpfxn->params[i].reserved = arg->param.ptr.handle;
break;
- case MmRpc_ParamType_Ptr:
+ case MmRpc_ParamType_PtrOffset:
rpfxn->params[i].type = RPPC_PARAM_TYPE_PTR;
- rpfxn->params[i].size = 0;
- rpfxn->params[i].data = 0;
- rpfxn->params[i].base = 0;
- rpfxn->params[i].reserved = 0;
+ rpfxn->params[i].size = arg->param.ptrOffset.size;
+ rpfxn->params[i].data = arg->param.ptrOffset.offset;
+ rpfxn->params[i].base = arg->param.ptrOffset.base;
+ rpfxn->params[i].reserved = arg->param.ptrOffset.handle;
break;
}
}
- if (rpfxn->fxn_id == 0x80000002) {
- printf("MmRpc_call: params[0]=%d\n", rpfxn->params[0].data);
- printf("MmRpc_call: params[1]=%d\n", rpfxn->params[1].data);
- }
-
/* copy offset array into message */
for (i = 0; i < ctx->num_translations; i++) {
rpfxn->translations[i].index = ctx->translations[i].index;
index 996a88f9dc5bb8752704d61488478a7db3f9c8e6..844246328da8ae242d743212ae245474969da137 100644 (file)
*/
typedef enum {
MmRpc_ParamType_Atomic = 1, /*!< atomic data type */
- MmRpc_ParamType_ShMemPtr, /*!< shared memory pointer */
- MmRpc_ParamType_Ptr /*!< data pointer */
+ MmRpc_ParamType_Ptr, /*!< data pointer */
+ MmRpc_ParamType_PtrOffset /*!< pointer offset */
} MmRpc_ParamType;
/*!
struct {
size_t size; /*!< size of the data */
- size_t data; /*!< pointer to data */
- size_t base; /*!< base address */
- size_t smh; /*!< shared memory handle */
- } shmem;
+ size_t addr; /*!< pointer value */
+ size_t handle; /*!< memory allocator handle */
+ } ptr;
struct {
size_t size; /*!< size of the data */
- size_t ptr; /*!< pointer to data */
- } ptr;
+ size_t offset; /*!< offset value */
+ size_t base; /*!< base pointer value */
+ size_t handle; /*!< memory allocator handle */
+ } ptrOffset;
} param;
} MmRpc_Param;
diff --git a/qnx/Makefile b/qnx/Makefile
index cfd81dd096f6009ae8e1702b3cade38278842f40..b84d215b340d1cbf80f985142701ee8b93b7038f 100644 (file)
--- a/qnx/Makefile
+++ b/qnx/Makefile
libs: ipc3x_dev
@cd src/api; make install
@cd src/family; make install
+ @cd src/mm; make install
utils:
@cd src/utils; make install
@cd src/tests; make install
ipc3x_dev: utils
- @cd src/ipc3x_dev; make SYSLINK_PLATFORM=omap5430 TILER_PLATFORM=omap5430 SMP=1
+ @cd src/ipc3x_dev; \
+ make SYSLINK_PLATFORM=omap5430 TILER_PLATFORM=omap5430 SMP=1
clean:
@cd src/family; make clean
@cd src/api; make clean
+ @cd src/mm; make clean
@cd src/utils; make clean
@cd src/tests; make clean
- @cd src/ipc3x_dev; make clean SYSLINK_PLATFORM=omap5430 TILER_PLATFORM=omap5430 SMP=1
+ @cd src/ipc3x_dev; \
+ make clean SYSLINK_PLATFORM=omap5430 TILER_PLATFORM=omap5430 SMP=1
diff --git a/qnx/src/mm/Makefile b/qnx/src/mm/Makefile
--- /dev/null
+++ b/qnx/src/mm/Makefile
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+LIST=CPU
+include recurse.mk
diff --git a/qnx/src/mm/arm/Makefile b/qnx/src/mm/arm/Makefile
--- /dev/null
+++ b/qnx/src/mm/arm/Makefile
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+LIST=VARIANT
+ifndef QRECURSE
+QRECURSE=recurse.mk
+ifdef QCONFIG
+QRDIR=$(dir $(QCONFIG))
+endif
+endif
+include $(QRDIR)$(QRECURSE)
diff --git a/qnx/src/mm/arm/a.g.le.v7/Makefile b/qnx/src/mm/arm/a.g.le.v7/Makefile
--- /dev/null
@@ -0,0 +1,32 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+include ../../common.mk
diff --git a/qnx/src/mm/arm/a.le.v7/Makefile b/qnx/src/mm/arm/a.le.v7/Makefile
--- /dev/null
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+include ../../common.mk
+
+CCFLAGS += -O3
diff --git a/qnx/src/mm/common.mk b/qnx/src/mm/common.mk
--- /dev/null
+++ b/qnx/src/mm/common.mk
@@ -0,0 +1,60 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+ifndef QCONFIG
+QCONFIG=qconfig.mk
+endif
+include $(QCONFIG)
+
+NAME = mmrpc
+
+define PINFO
+PINFO DESCRIPTION=MmRpc User Library
+endef
+
+# don't install the binaries, they are copied in base makefile
+INSTALLDIR = /dev/null
+
+CCOPTS += -DSYSLINK_BUILDOS_QNX
+
+# source path
+EXTRA_SRCVPATH = $(IPC_REPO)/packages/ti/ipc/mm
+SRCS = MmRpc.c
+
+EXCLUDE_OBJS =
+
+# include path
+EXTRA_INCVPATH += \
+ $(IPC_REPO)/packages \
+ $(IPC_REPO)/qnx/src/ipc3x_dev/ti/syslink/inc
+
+include $(MKFILES_ROOT)/qtargets.mk
+OPTIMIZE__gcc=$(OPTIMIZE_NONE_gcc)
diff --git a/qnx/src/tests/mmrpc_test/Makefile b/qnx/src/tests/mmrpc_test/Makefile
--- /dev/null
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+LIST=CPU
+include recurse.mk
diff --git a/qnx/src/tests/mmrpc_test/arm/Makefile b/qnx/src/tests/mmrpc_test/arm/Makefile
--- /dev/null
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+LIST=VARIANT
+ifndef QRECURSE
+QRECURSE=recurse.mk
+ifdef QCONFIG
+QRDIR=$(dir $(QCONFIG))
+endif
+endif
+include $(QRDIR)$(QRECURSE)
diff --git a/qnx/src/tests/mmrpc_test/arm/o.g.le.v7/Makefile b/qnx/src/tests/mmrpc_test/arm/o.g.le.v7/Makefile
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+include ../../common.mk
+
+$(PROJECT_ROOT)/arm/o.g.le.v7/mmrpc_test_g: $(IPC_REPO)/qnx/src/mm/arm/a.g.le.v7/libmmrpc_g.a
+
+# link with syslink static library, dynamic for others
+LIBPREF_mmrpc_g = -Bstatic
+LIBPOST_mmrpc_g = -Bdynamic
+
+# add libpath and libs
+EXTRA_LIBVPATH += $(IPC_REPO)/qnx/src/mm/arm/a.g.le.v7
+LIBS += mmrpc_g
+
+# copy and rename executables to suit our preferences (TODO: where do we copy the executables)
+#POST_BUILD = \
+# $(CP_HOST) \
+# $(PROJECT_ROOT)/arm/o.g.le.v7/MessageQApp_g \
+# $(PROJECT_ROOT)/../bin/debug/MessageQApp
diff --git a/qnx/src/tests/mmrpc_test/arm/o.le.v7/Makefile b/qnx/src/tests/mmrpc_test/arm/o.le.v7/Makefile
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+include ../../common.mk
+
+CCFLAGS += -O3
+
+$(PROJECT_ROOT)/arm/o.le.v7/mmrpc_test: $(IPC_REPO)/qnx/src/mm/arm/a.le.v7/libmmrpc.a
+
+# link with syslink static library, dynamic for others
+LIBPREF_mmrpc = -Bstatic
+LIBPOST_mmrpc = -Bdynamic
+
+# add libpath and libs
+EXTRA_LIBVPATH += $(IPC_REPO)/qnx/src/mm/arm/a.le.v7
+LIBS += mmrpc
+
+# copy and rename executables to suit our preferences (TODO: where do we copy the executables)
+#POST_BUILD = \
+# $(CP_HOST) \
+# $(PROJECT_ROOT)/arm/o.le.v7/MessageQApp \
+# $(PROJECT_ROOT)/../bin/debug/MessageQApp
diff --git a/qnx/src/tests/mmrpc_test/common.mk b/qnx/src/tests/mmrpc_test/common.mk
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# Copyright (c) 2013, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+ifndef QCONFIG
+QCONFIG=qconfig.mk
+endif
+include $(QCONFIG)
+
+NAME = mmrpc_test
+
+define PINFO
+PINFO DESCRIPTION=MmRpc test program
+endef
+
+# don't install the binaries, they are copied in base makefile
+#INSTALLDIR = bin/tests
+INSTALLDIR = /dev/null
+
+CCOPTS += -DSYSLINK_BUILDOS_QNX
+
+# source path
+EXTRA_SRCVPATH = $(IPC_REPO)/linux/src/tests
+SRCS = mmrpc_test.c
+
+EXCLUDE_OBJS =
+
+# include path
+EXTRA_INCVPATH += \
+ $(IPC_REPO)/packages
+
+include $(MKFILES_ROOT)/qtargets.mk
+
+LDFLAGS += -M
diff --git a/qnx/src/tests/mmrpc_test/mmrpc_test.use b/qnx/src/tests/mmrpc_test/mmrpc_test.use