Reject all operations on DSP2 in QNX
authorvwan@ti.com <vwan@ti.com>
Mon, 13 Oct 2014 22:12:19 +0000 (15:12 -0700)
committerRobert Tivy <rtivy@ti.com>
Tue, 14 Oct 2014 20:43:34 +0000 (13:43 -0700)
Since DSP2 is not supported on QNX, we need to reject all attempts at
interacting with DSP2 using the new start/stop feature.

Signed-off-by: VW <vwan@ti.com>
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c

index 52f536657a676952bb6ee1d73086c853b3628413..4aaf595bca427c714830407b93ee5cfa6872ec13 100644 (file)
@@ -97,8 +97,13 @@ static char * logFilename = NULL;
 static int numAttach = 0;
 
 #if defined(SYSLINK_PLATFORM_VAYU)
+/* DSP2 is invalid on Vayu */
+#define INVALID_PROC     "DSP2"
+
 static bool gatempEnabled = false;
 static Int32 sr0OwnerProcId = -1;
+#else
+#define INVALID_PROC     ""
 #endif
 
 // Syslink hibernation global variables
@@ -315,6 +320,11 @@ static int slave_state_read(resmgr_context_t *ctp, io_read_t *msg,
         return (ENOSYS);
     }
 
+    if (strcmp(MultiProc_getName(procid), INVALID_PROC) == 0) {
+        fprintf(stderr, "Unsupported core\n");
+        return (EPERM);
+    }
+
     pthread_mutex_lock(&dev->firmwareLock);
 
     for (i = 0; i < syslink_num_cores; i++) {
@@ -403,6 +413,11 @@ static int slave_state_write(resmgr_context_t *ctp, io_write_t *msg,
         return (ENOSYS);
     }
 
+    if (strcmp(MultiProc_getName(procid), INVALID_PROC) == 0) {
+        fprintf(stderr, "Unsupported core\n");
+        return (EPERM);
+    }
+
     /* set up the number of bytes (returned by client's write()) */
     _IO_SET_WRITE_NBYTES (ctp, msg->i.nbytes);
 
@@ -548,6 +563,11 @@ static int slave_file_read(resmgr_context_t *ctp, io_read_t *msg,
         return (ENOSYS);
     }
 
+    if (strcmp(MultiProc_getName(procid), INVALID_PROC) == 0) {
+        fprintf(stderr, "Unsupported core\n");
+        return (EPERM);
+    }
+
     pthread_mutex_lock(&dev->firmwareLock);
     for (i = 0; i < syslink_num_cores; i++) {
         if (syslink_firmware[i].proc_id == procid) {
@@ -633,6 +653,11 @@ static int slave_file_write(resmgr_context_t *ctp, io_write_t *msg,
         return (ENOSYS);
     }
 
+    if (strcmp(MultiProc_getName(procid), INVALID_PROC) == 0) {
+        fprintf(stderr, "Unsupported core\n");
+        return (EPERM);
+    }
+
     /* set up the number of bytes (returned by client's write()) */
     _IO_SET_WRITE_NBYTES (ctp, msg->i.nbytes);
 
@@ -1619,6 +1644,11 @@ int main(int argc, char *argv[])
             printUsage(argv[0]);
             return (error);
         }
+        if (strcmp(argv[optind], INVALID_PROC) == 0) {
+            fprintf (stderr, "Unsupported core specified\n");
+            return (error);
+        }
+
         syslink_firmware[syslink_num_cores].proc = argv [optind];
         syslink_firmware[syslink_num_cores].attachOnly =
             ((numAttach-- > 0) ? true : false);