Add support for IPC_DEBUG in QNX
authorvwan@ti.com <vwan@ti.com>
Wed, 25 Feb 2015 00:19:03 +0000 (16:19 -0800)
committerRobert Tivy <rtivy@ti.com>
Wed, 25 Feb 2015 22:48:12 +0000 (14:48 -0800)
This commit adds support to allow end users to more easily see the trace from
IPC's user libraries. Tracing is enabled via an environment variable
(IPC_DEBUG). Setting IPC_DEBUG=1 enables 'some' trace, setting IPC_DEBUG to 2
(or 3) enables more.

Signed-off-by: VW <vwan@ti.com>
12 files changed:
qnx/include/_GateMP_usr.h
qnx/include/_TiIpcFxns.h [moved from qnx/include/TiIpcFxns.h with 98% similarity]
qnx/src/api/Ipc.c
qnx/src/api/MessageQ.c
qnx/src/api/MultiProc.c
qnx/src/api/NameServer.c
qnx/src/api/gates/GateHWSpinlock.c
qnx/src/api/gates/GateMP.c
qnx/src/ipc3x_dev/ti/syslink/inc/GateHWSpinlock.h
qnx/src/ipc3x_dev/ti/syslink/inc/_MultiProc.h
qnx/src/ipc3x_dev/ti/syslink/utils/hlos/knl/NameServer_daemon.c
qnx/src/utils/TiIpcFxns.c

index 5fc21d12602820c8a4940e691aa6003a5f990a57..71be53f5e0ae25facb6d8821b2d5d30b86ff1862 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2015, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -45,6 +45,9 @@
 extern "C" {
 #endif
 
+/* Internal variable to enable/disable tracing throughout GateMP */
+extern Bool _GateMP_verbose;
+
 /*!
  * Start the GateMP module.
  */
similarity index 98%
rename from qnx/include/TiIpcFxns.h
rename to qnx/include/_TiIpcFxns.h
index c725878f8d17614a61e5562eb4763c51cf0c0dd1..b741ba1f585065d83a2548c99234b9d0b6789bdf 100644 (file)
@@ -30,5 +30,7 @@
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+extern Bool _TiIpcFxns_verbose;
+
 extern int Connect(int fd, UInt16 procId, int dst);
 extern int BindAddr(int fd, UInt32 localAddr);
index 23d50dbf035c0177d52a986db96886d8cb2519bd..bf044655b4bda0dcc176724098f1ebc426e965ae 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2015, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -61,6 +61,7 @@
 #include <_NameServer.h>
 #include <_GateMP.h>
 #include <_GateMP_usr.h>
+#include <_TiIpcFxns.h>
 #include <ti/syslink/inc/GateHWSpinlock.h>
 #include <ti/syslink/inc/_MultiProc.h>
 
@@ -83,6 +84,36 @@ Int Ipc_start (Void)
     /* Catch ctrl-C, and cleanup: */
     (void) signal(SIGINT, cleanup);
 
+    if (getenv("IPC_DEBUG") != NULL) {
+        /* turn on tracing */
+        if (getenv("IPC_DEBUG")[0] == '1') {
+            /* level 1 enables typical user API tracing */
+            _MessageQ_verbose = TRUE;
+            _MultiProc_verbose = TRUE;
+            _NameServer_verbose = TRUE;
+#if defined(GATEMP_SUPPORT)
+            _GateMP_verbose = TRUE;
+
+            _GateHWSpinlock_verbose = TRUE;
+#endif
+        }
+        else if ((getenv("IPC_DEBUG")[0] == '2') ||
+                (getenv("IPC_DEBUG")[0] == '3')) {
+            /* levels 2 and 3 add TiIpcFxns tracing */
+            _MessageQ_verbose = TRUE;
+            _MultiProc_verbose = TRUE;
+            _NameServer_verbose = TRUE;
+
+#if defined(GATEMP_SUPPORT)
+            _GateMP_verbose = TRUE;
+
+            _GateHWSpinlock_verbose = TRUE;
+#endif
+
+            _TiIpcFxns_verbose = TRUE;
+        }
+    }
+
     status = IpcDrv_open();
     if (status < 0) {
         printf("Ipc_start: IpcDrv_open() failed: %d\n", status);
index 9bf536059d6310c20c4d53d7007eb364819161f9..3af860626a1b319a3fa0a1f762cf32e69710b2f6 100644 (file)
 #include <ti/syslink/inc/usr/Qnx/MessageQDrv.h>
 
 /* TI IPC utils: */
-#include <TiIpcFxns.h>
+#include <_TiIpcFxns.h>
 
 #include <ti/syslink/inc/ti/ipc/ti_ipc.h>
 
@@ -224,7 +224,9 @@ typedef struct MessageQ_Object_tag {
     void                    *serverHandle;
 } MessageQ_Object;
 
-static Bool verbose = FALSE;
+/* traces in this file are controlled via _MessageQ_verbose */
+Bool _MessageQ_verbose = FALSE;
+#define verbose _MessageQ_verbose
 
 /* =============================================================================
  *  Globals
index 6cd4fb887208ebb40fc2235aa7bca54fb3a5bcfe..a356042fdd67461e7d8d29c18325312674a91bf8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2015, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #include <assert.h>
 
 #include <ti/syslink/inc/usr/Qnx/MultiProcDrv.h>
-static Bool verbose = FALSE;
+
+/* traces in this file are controlled via _MultiProc_verbose */
+Bool _MultiProc_verbose = FALSE;
+#define verbose _MultiProc_verbose
 
 /* =============================================================================
  * APIS
index b6429608a0701ac258afc4c69bbc72d381b38157..a6baabc55b7dd5c19a174a23446c2b5136ead56c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2015, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -52,8 +52,9 @@
 #include <ti/syslink/inc/usr/Qnx/NameServerDrv.h>
 #include <ti/syslink/inc/NameServerDrvDefs.h>
 
-static Bool verbose = FALSE;
-
+/* traces in this file are controlled via _NameServer_verbose */
+Bool _NameServer_verbose = FALSE;
+#define verbose _NameServer_verbose
 
 /*
  * The NameServer_*() APIs are reproduced here.  These versions are just
index df6375f1b808a4a02cbf2557d2bb3137db4e0521..68c1a43ed17899f1afe2419e1d437e6310417804 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2015, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -111,7 +111,9 @@ static GateHWSpinlock_Params GateHWSpinlock_defInstParams =
     .sharedAddr = NULL
 };
 
-static Bool verbose = FALSE;
+/* traces in this file are controlled via _GateHWSpinlock_verbose */
+Bool _GateHWSpinlock_verbose = FALSE;
+#define verbose _GateHWSpinlock_verbose
 
 /* =============================================================================
  * APIS
index 9641dfb6c7dac711c2d35f10cfa988356a564f1c..7e0eddbd43f07965312dbb458db922cb3891323b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2014, Texas Instruments Incorporated
+ * Copyright (c) 2013-2015, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -73,8 +73,9 @@ typedef struct {
     /* Number of remote system gates */
 } GateMP_ModuleObject;
 
-
-static Bool verbose = FALSE;
+/* traces in this file are controlled via _GateMP_verbose */
+Bool _GateMP_verbose = FALSE;
+#define verbose _GateMP_verbose
 
 /* Internal structure defining parameters for GateMP_Instance_init */
 typedef struct {
index 0aa76a9a008970b0c3992f5af2ad50b63c957762..4b4a9b3035b716acd11b33228c392362c57c2909 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008-2013, Texas Instruments Incorporated
+ * Copyright (c) 2008-2015, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -259,6 +259,9 @@ UInt32 GateHWSpinlock_getNumInstances (Void);
  */
 Void GateHWSpinlock_locksinit(Void);
 
+/* Internal variable to enable/disable tracing throughout GateHWSpinlock */
+extern Bool _GateHWSpinlock_verbose;
+
 #if defined (__cplusplus)
 }
 #endif /* defined (__cplusplus) */
index 5cb5279fea7077575c0356bbadce5e4f233fd034..3dd46c1b6b5631b7bc1f8d5b69167e4c577d4096 100644 (file)
@@ -83,6 +83,8 @@ typedef struct MultiProc_Config_tag {
     /*!< processor ID of first entry in cluster */
 } MultiProc_Config;
 
+/* Internal variable to enable/disable tracing throughout MultiProc */
+extern Bool _MultiProc_verbose;
 
 /* =============================================================================
  *  APIs
index fde0bb2f00da7c2308262df42ff13362bf37cdbb..0f794355e000381dfb414cadf6f362b4825c8051 100644 (file)
@@ -70,7 +70,7 @@
 #include <_IpcLog.h>
 
 /* TI Ipc utils: */
-#include <TiIpcFxns.h>
+#include <_TiIpcFxns.h>
 
 #include "ti/ipc/ti_ipc.h"
 
index 54985f0a4cf5654b4de31be8f15cb07a63c35bed..d677c3a062aa7f30f724265b8ee8e95b6be4d5a2 100644 (file)
@@ -54,7 +54,9 @@
 /* For PRINTVERBOSE* */
 #include <_IpcLog.h>
 
-static Bool verbose = FALSE;
+/*  Traces in this file are controlled via _TiIpcFxns_verbose */
+Bool _TiIpcFxns_verbose = FALSE;
+#define verbose _TiIpcFxns_verbose
 
 /* connect to remote service */
 int Connect(int fd, UInt16 procId, int dst)