/** * name:: StreamCtrlInit * 初始化StreamCtrl控制结构体(for PlayUtilityHandler.c) **/ static int StreamCtrlInit(void) { StreamCtrl_Type *streamCtrl; playerLogDebug("StreamCtrlInit.\n"); //TODO:: init message queue gMsgQueue = MessageQueueCreate(sizeof(PlayerCommand_Type)); //TODO:: init gStreamCtrl && gPlayerCtrl streamCtrl = (StreamCtrl_Type *)malloc(sizeof(StreamCtrl_Type)); if (streamCtrl == NULL) playerLogError("streamCtrl malloc error.\n"); memset(streamCtrl, 0, sizeof(StreamCtrl_Type)); streamCtrl->msgQueue = gMsgQueue; if (ThreadMutexLock(gStreamCtrlMutex)) playerLogWarning("thread mutex locking error.\n"); gStreamCtrl = streamCtrl; playerLogInfo("gStreamCtrl[%p],streamCtrl->msgQueue[%p]\n", gStreamCtrl, streamCtrl->msgQueue); if (ThreadMutexUnLock(gStreamCtrlMutex)) playerLogWarning("thread mutex locking error.\n"); return 0; }
void Main(void) { int fd; int sink, source; fd = MessageQueueCreate("pipe1"); Print("create mq returned %d\n", fd); source = Spawn_Program ("/c/cat.exe /c/file1", 0, fd); sink = Spawn_Program ("/c/wc.exe", fd, 1); Close(fd); Wait(sink); Wait(source); Exit(); }
int Main (int argc , char ** argv) { int i; int ret; int done; int eoln; int debug; char *curr; char *dest; char line[256]; int infd, outfd; char tempName[2]; char strName[20]; int numCommand; int count ; /* child process's argc */ char command[256]; done = 0; while (!done) { Printf("shell %% "); eoln = 0; count = 0; Read_Line( line, sizeof(line) ); line[strlen(line)-1] = '\0'; /* blank line */ if (!strcmp(line, "")) continue; if (!strcmp(line, "exit")) { return 0; } else if (!strcmp(line, "debug")) { debug = 1; continue; } else if (!strcmp(line, "nodebug")) { debug = 0; continue; } split(line, &numCommand); infd = 0; outfd = 1; for (i=0; i < numCommand-1; i++) { if (commands[i].outFile) { Printf("Error: file redirection for command other than last one in pipeline\n"); break; } } if (i != numCommand-1) continue; if (debug) { for (i=0; i < numCommand; i++) { Printf("command %d = %s\n", i, commands[i].command); } } for (i=0; i < numCommand; i++) { if (outfd != 1) infd = outfd; if (i == numCommand-1) { if (commands[i].outFile) { /* last one goes to a file */ outfd = Open(commands[i].outFile, O_WRITE|O_CREATE); if (outfd < 0) { Printf("Error opening %s\n", commands[i].outFile); } } else { /* last one goes to stdout */ outfd = 1; } } else { strcpy(strName, "/dev/pipe"); tempName[0] = count + '0'; count++; tempName[1] = '\0'; strcat(strName, tempName); outfd = MessageQueueCreate(strName); if (outfd < 0) { Printf("pipe failed\n"); continue; } } /* now run it */ memset(command, '\0', sizeof(command)); if (commands[i].command[0] != '/') { // add implict path to /c for programs strcpy(command, "/c/"); for (curr=commands[i].command, dest=&command[3]; *curr; curr++) { if (*curr == ' ') break; *(dest++) = *curr; } strcat(command, ".exe"); strcat(command, curr); // Printf("command is %s\n", command); } else { strcpy(command, commands[i].command); } commands[i].pid = Spawn_Program ( command , infd, outfd); if ( commands[i].pid <= 0 ) { /* Unable to proc_start */ Printf ( "%s: Command not found\n", commands[i].command) ; continue; } else { if (debug) Printf("spawned pid %d, command = %s\n", commands[i].pid, commands[i].command); if (infd != 0) Close(infd); } } /* now wait for them all to finish */ for (i=0; i < numCommand; i++) { if (commands[i].pid > 0) { ret = Wait(commands[i].pid); if (debug) Printf("process %d exited\n", commands[i].pid); } } if (debug) Printf("all processes exited\n"); } return 0; }
TVerdict CTestMsgqueue::doTestStepL() { int err; if(TestStepName() == KMessageQueueCreate) { INFO_PRINTF1(_L("MessageQueueCreate():")); err = MessageQueueCreate(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KMessageQueueControl) { INFO_PRINTF1(_L("MessageQueueControl():")); err = MessageQueueControl(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest1) { INFO_PRINTF1(_L("IntgTest1():")); err = IntgTest1(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest2) { INFO_PRINTF1(_L("IntgTest2():")); err = IntgTest2(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest3) { INFO_PRINTF1(_L("IntgTest3():")); err = IntgTest3(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest4) { INFO_PRINTF1(_L("IntgTest4():")); err = IntgTest4(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest5) { INFO_PRINTF1(_L("IntgTest5():")); err = IntgTest5(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest6) { INFO_PRINTF1(_L("IntgTest6():")); err = IntgTest6(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest7) { INFO_PRINTF1(_L("IntgTest7():")); err = IntgTest7(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest8) { INFO_PRINTF1(_L("IntgTest8():")); err = IntgTest8(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest9) { INFO_PRINTF1(_L("IntgTest9():")); err = IntgTest9(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest10) { INFO_PRINTF1(_L("IntgTest10():")); err = IntgTest10(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest11) { INFO_PRINTF1(_L("IntgTest11():")); err = IntgTest11(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest12) { INFO_PRINTF1(_L("IntgTest12():")); err = IntgTest12(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest13) { INFO_PRINTF1(_L("IntgTest13():")); err = IntgTest13(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest14) { INFO_PRINTF1(_L("IntgTest14():")); err = IntgTest14(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest15) { INFO_PRINTF1(_L("IntgTest15():")); err = IntgTest15(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest16) { INFO_PRINTF1(_L("IntgTest16():")); err = IntgTest16(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest17) { INFO_PRINTF1(_L("IntgTest17():")); err = IntgTest17(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KIntgTest6_1) { INFO_PRINTF1(_L("IntgTest6_1():")); err = IntgTest6_1(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsggettest1) { INFO_PRINTF1(_L("msggettest1():")); err = msggettest1(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsggettest2) { INFO_PRINTF1(_L("msggettest2():")); err = msggettest2(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsggettest3) { INFO_PRINTF1(_L("msggettest3():")); err = msggettest3(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsggettest4) { INFO_PRINTF1(_L("msggettest4():")); err = msggettest4(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsggettest5) { INFO_PRINTF1(_L("msggettest5():")); err = msggettest5(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsggettest6) { INFO_PRINTF1(_L("msggettest6():")); err = msggettest6(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == KMsggetCreateKey) { INFO_PRINTF1(_L("MsggetCreateKey():")); err = MsggetCreateKey(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgctltest1) { INFO_PRINTF1(_L("msgctltest1():")); err = msgctltest1(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgctltest2) { INFO_PRINTF1(_L("msgctltest2():")); err = msgctltest2(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgctltest3) { INFO_PRINTF1(_L("msgctltest3():")); err = msgctltest3(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgctltest4) { INFO_PRINTF1(_L("msgctltest4():")); err = msgctltest4(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgctltest5) { INFO_PRINTF1(_L("msgctltest5():")); err = msgctltest5(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgsndtest1) { INFO_PRINTF1(_L("msgsndtest1():")); err = msgsndtest1(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgsndtest2) { INFO_PRINTF1(_L("msgsndtest2():")); err = msgsndtest2(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgsndtest3) { INFO_PRINTF1(_L("msgsndtest3():")); err = msgsndtest3(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgsndtest4) { INFO_PRINTF1(_L("msgsndtest4():")); err = msgsndtest4(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgsndtest5) { INFO_PRINTF1(_L("msgsndtest5():")); err = msgsndtest5(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgsndtest6) { INFO_PRINTF1(_L("msgsndtest6():")); err = msgsndtest6(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgrcvtest1) { INFO_PRINTF1(_L("msgrcvtest1():")); err = msgrcvtest1(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgrcvtest2) { INFO_PRINTF1(_L("msgrcvtest2():")); err = msgrcvtest2(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgrcvtest3) { INFO_PRINTF1(_L("msgrcvtest3():")); err = msgrcvtest3(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kmsgrcvtest4) { INFO_PRINTF1(_L("msgrcvtest4():")); err = msgrcvtest4(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Ksndrcvtest1) { INFO_PRINTF1(_L("sndrcvtest1():")); err = sndrcvtest1(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Ksndrcvtest2) { INFO_PRINTF1(_L("sndrcvtest2():")); err = sndrcvtest2(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Ksndrcvtest3) { INFO_PRINTF1(_L("sndrcvtest3():")); err = sndrcvtest3(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Ksndrcvtest4) { INFO_PRINTF1(_L("sndrcvtest4():")); err = sndrcvtest4(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } else if(TestStepName() == Kthsndrcvtest1) { INFO_PRINTF1(_L("thsndrcvtest1():")); err = thsndrcvtest1(); SetTestStepResult(err ? static_cast<TVerdict>(err) : EPass); } return TestStepResult(); }