Add MmRpc and mmrpc_test to QNX build.
authorRamsey Harris <ramsey@ti.com>
Wed, 20 Mar 2013 04:41:30 +0000 (21:41 -0700)
committerRamsey 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.

19 files changed:
.gitignore
configure.ac
ipc-linux.mak
linux/src/mm/Makefile.am
linux/src/tests/mmrpc_test.c
packages/ti/ipc/mm/MmRpc.c
packages/ti/ipc/mm/MmRpc.h
qnx/Makefile
qnx/src/mm/Makefile [new file with mode: 0644]
qnx/src/mm/arm/Makefile [new file with mode: 0644]
qnx/src/mm/arm/a.g.le.v7/Makefile [new file with mode: 0644]
qnx/src/mm/arm/a.le.v7/Makefile [new file with mode: 0644]
qnx/src/mm/common.mk [new file with mode: 0644]
qnx/src/tests/mmrpc_test/Makefile [new file with mode: 0644]
qnx/src/tests/mmrpc_test/arm/Makefile [new file with mode: 0644]
qnx/src/tests/mmrpc_test/arm/o.g.le.v7/Makefile [new file with mode: 0644]
qnx/src/tests/mmrpc_test/arm/o.le.v7/Makefile [new file with mode: 0644]
qnx/src/tests/mmrpc_test/common.mk [new file with mode: 0644]
qnx/src/tests/mmrpc_test/mmrpc_test.use [new file with mode: 0644]

index 50adf48c875673156798a52a5c9c560f03e36afa..51969b9593b5e935e7ed6cd49128b01d8c96ebe1 100644 (file)
@@ -51,3 +51,29 @@ packages/ti/srvmgr/omx/OmxSrvMgr.h
 /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
index 8756d534b15359275ba339013224ffde213bd15e..1ce52738f696cfdbd6ad53aa60634d37c01a9a22 100644 (file)
@@ -68,6 +68,7 @@ AC_SUBST([AM_LDFLAGS])
 # 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"],
@@ -82,9 +83,12 @@ 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"]) 
index 08b27f42a3c8363f5beb1e1fe1a38a06be4cae52..3688e627603428db43aa4919078b7dfc2f50203d 100644 (file)
@@ -40,14 +40,16 @@ config:
        ./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:
@@ -55,4 +57,5 @@ 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)
@@ -32,7 +32,7 @@
 ##
 
 # 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)
 
 
 /*
@@ -59,6 +72,8 @@ int main(int argc, char **argv)
 {
     int status;
     int32_t ret;
+//  int i;
+//  Mx_Compute *compute;
 
     printf("mmrpc_test: --> main\n");
 
@@ -94,6 +109,36 @@ int main(int argc, char **argv)
         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();
@@ -206,3 +251,43 @@ int32_t Mx_add(int32_t a, int32_t b)
 
     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"
 
 
@@ -166,6 +188,7 @@ int MmRpc_call(MmRpc_Handle handle, MmRpc_FxnCtx *ctx, int32_t *ret)
     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;
@@ -191,35 +214,35 @@ int MmRpc_call(MmRpc_Handle handle, MmRpc_FxnCtx *ctx, int32_t *ret)
     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)
@@ -79,8 +79,8 @@ typedef struct MmRpc_Object *MmRpc_Handle;
  */
 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;
 
 /*!
@@ -97,15 +97,16 @@ typedef struct {
 
         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;
 
index cfd81dd096f6009ae8e1702b3cade38278842f40..b84d215b340d1cbf80f985142701ee8b93b7038f 100644 (file)
@@ -35,6 +35,7 @@ all:  utils ipc3x_dev libs tests
 libs: ipc3x_dev
        @cd src/api; make install
        @cd src/family; make install
+       @cd src/mm; make install
 
 utils:
        @cd src/utils; make install
@@ -43,11 +44,14 @@ tests: libs
        @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
new file mode 100644 (file)
index 0000000..02aa99c
--- /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/mm/arm/Makefile b/qnx/src/mm/arm/Makefile
new file mode 100644 (file)
index 0000000..dbffb72
--- /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/mm/arm/a.g.le.v7/Makefile b/qnx/src/mm/arm/a.g.le.v7/Makefile
new file mode 100644 (file)
index 0000000..0bdf91d
--- /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
new file mode 100644 (file)
index 0000000..94992d8
--- /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
new file mode 100644 (file)
index 0000000..ec82bb7
--- /dev/null
@@ -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
new file mode 100644 (file)
index 0000000..02aa99c
--- /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
new file mode 100644 (file)
index 0000000..dbffb72
--- /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
new file mode 100644 (file)
index 0000000..542a111
--- /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
new file mode 100644 (file)
index 0000000..35797d8
--- /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
new file mode 100644 (file)
index 0000000..dd67b19
--- /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
new file mode 100644 (file)
index 0000000..e69de29