亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? test_ipc.c

?? fsmlabs的real time linux的內核
?? C
字號:
#include <linux/module.h>#include <linux/kernel.h>#include <linux/version.h>#include <linux/errno.h>#include <rtl_sched.h>#include "../rt_ipc.h"static char *strs[] = { "Joey ", "Johnny ", "Dee Dee ", "Marky " };static char sync_str[] = "gabba\n";#define NUM_TASKS	(sizeof(strs) / sizeof(char *))RT_TASK_IPC start_task, tasks[NUM_TASKS];rt_sem_t sems[NUM_TASKS], sync_sem, prio_sem;rt_mq_t mq_in, mq_out;#define DBG_PRINT_SETUP		rt_sem_t print_sem;#define DBG_PRINT_INIT		rt_sem_init(&print_sem, RT_SEM_BINARY, 1);#define TAKE_PRINT		rt_sem_wait(&print_sem, RT_WAIT_FOREVER);#define GIVE_PRINT		rt_sem_post(&print_sem);DBG_PRINT_SETUP/* *  Each task waits to receive the semaphore, prints its string, and *  passes the semaphore to the next task.  Then it sends a sync semaphore, *  and waits for another semaphore, and this time displays it in *  priority order.  Finally, message queues are tested. */void task_code(int task_no){  int i, ret;  char buf[20];  for (i=0 ; i<5 ; ++i)  {    rt_sem_wait(&sems[task_no], RT_WAIT_FOREVER);    printk(strs[task_no]);    if (task_no == NUM_TASKS-1)      printk("\n");    rt_sem_post(&sems[(task_no + 1) % NUM_TASKS]);  }  rt_sem_post(&sync_sem);  rt_sem_wait(&prio_sem, RT_WAIT_FOREVER);  printk(strs[task_no]);  rt_task_delay(RELATIVE_TIME(RT_TICKS_PER_SEC));  rt_sem_wait(&prio_sem, RELATIVE_TIME((task_no+1) * RT_TICKS_PER_SEC));  printk(strs[task_no]);  rt_sem_post(&sync_sem);  /* message queue stuff */  if ((ret = rt_mq_receive(&mq_in, buf, RT_WAIT_FOREVER)) != 0)    printk("rt_mq_receive() failed with %d\n", ret);  TAKE_PRINT; printk("\nreceived by task %d ", task_no);  printk(buf); GIVE_PRINT;  rt_mq_send(&mq_out, strs[task_no], RT_MQ_NORMAL, RT_WAIT_FOREVER);  /* test receive timeout */  rt_sem_wait(&sync_sem, RT_WAIT_FOREVER);  if (rt_mq_receive(&mq_in, buf, RELATIVE_TIME(RT_TICKS_PER_SEC*(task_no+1))) == -ETIME)    { TAKE_PRINT; printk("task %d timed out.\n", task_no); GIVE_PRINT; }  rt_task_suspend(MAKE_RT_TASK(&tasks[task_no]));}/* * initialization task */void start_task_code(int notused){  int i;  DBG_PRINT_INIT;  if (rt_mq_init(&mq_in, NUM_TASKS, 20) || rt_mq_init(&mq_out, NUM_TASKS, 20))  {    printk("could not create message queue\n");    return;  }  for (i=0 ; i<NUM_TASKS ; ++i)  {    if (rt_sem_init(&sems[i], RT_SEM_BINARY, 0) != 0)    {      printk("rt_sem_init failed\n");      return;    }    if (rt_task_ipc_init(&tasks[i], task_code, i, 3000, NUM_TASKS-i) != 0)    {      printk("rt_task_ipc_init failed\n");      return;    }    rt_task_wakeup(MAKE_RT_TASK(&tasks[i]));  }	  /* create the sync semaphore */  if (rt_sem_init(&sync_sem, RT_SEM_COUNTING, 0) != 0)  {    printk("rt_sem_init failed on sync_sem\n");    return;  }  /* create the priority-test semaphore */  if (rt_sem_init(&prio_sem, RT_SEM_BINARY, 0) != 0)  {    printk("rt_sem_init failed on prio_sem\n");    return;  }  /* pass the semaphore to the first task */  rt_sem_post(&sems[0]);  /* wait for each task to send the sync semaphore */  for (i=0 ; i<NUM_TASKS ; ++i)    rt_sem_wait(&sync_sem, RT_WAIT_FOREVER);  printk(sync_str);  /* post the priority-test semaphore -- the tasks should then run */  /* in priority order */  for (i=0 ; i<NUM_TASKS ; ++i)    rt_sem_post(&prio_sem);  printk("\n");  for (i=0 ; i<NUM_TASKS ; ++i)    rt_sem_wait(&sync_sem, RT_WAIT_FOREVER);  printk(sync_str);  /* now, test message queues */  printk("testing message queues\n");  for (i=0 ; i<NUM_TASKS ; ++i)    if (rt_mq_send(&mq_in, strs[i], RT_MQ_NORMAL, RT_WAIT_FOREVER))      printk("rt_mq_send() failed\n");  for (i=0 ; i<NUM_TASKS ; ++i)  {    char buf[20];    rt_mq_receive(&mq_out, buf, RT_WAIT_FOREVER);    TAKE_PRINT; printk("\nreceived from mq_out: %s", buf); GIVE_PRINT;  }  for (i=0 ; i<NUM_TASKS ; ++i)    rt_sem_post(&sync_sem);  TAKE_PRINT; printk("\ninit task complete\n"); GIVE_PRINT;  /* nothing more for this task to do */  rt_task_suspend(MAKE_RT_TASK(&start_task));}int init_module(void){  if (rt_task_ipc_init(&start_task, start_task_code, 0, 3000, 10) != 0)    printk("Could not start init task\n");  rt_task_wakeup(MAKE_RT_TASK(&start_task));  return 0;}void cleanup_module(void){  int i;  for (i=0 ; i<NUM_TASKS ; ++i)  {    rt_sem_destroy(&sems[i]);    rt_task_ipc_delete(&tasks[i]);  }  rt_sem_destroy(&sync_sem);  rt_mq_destroy(&mq_in);  rt_mq_destroy(&mq_out);  rt_task_ipc_delete(&start_task);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区日韩一区二区| 亚洲欧美日韩在线播放| av一本久道久久综合久久鬼色| 亚洲国产精品成人综合| 99精品在线观看视频| 日本vs亚洲vs韩国一区三区| 国产欧美日韩亚州综合 | 欧美三级三级三级| 视频一区在线播放| 日本成人在线看| 最近中文字幕一区二区三区| 91麻豆精品久久久久蜜臀| 99久久精品免费观看| 国产成人亚洲精品青草天美| 日韩av网站免费在线| 亚洲日本在线天堂| 国产精品入口麻豆原神| 日韩一卡二卡三卡四卡| 欧美日韩色一区| 欧美理论电影在线| 欧美系列日韩一区| 精品视频123区在线观看| 91免费版在线看| 欧美曰成人黄网| 欧美午夜一区二区三区| 色综合久久中文综合久久牛| www.欧美日韩国产在线| 日本久久一区二区三区| 欧美视频自拍偷拍| 91精品国产综合久久久久久漫画| 欧美亚洲动漫精品| 日韩一区二区三区精品视频 | 国产一区二区三区黄视频 | 韩国成人精品a∨在线观看| 久久精品国产网站| 懂色av中文字幕一区二区三区| 国产成人精品三级麻豆| 99国产精品久久久久久久久久| 在线亚洲+欧美+日本专区| 欧美精品久久天天躁| wwwwxxxxx欧美| 一区二区三区日韩在线观看| 日本亚洲欧美天堂免费| 粉嫩aⅴ一区二区三区四区| 欧美性大战久久久久久久| 日韩精品一区二区三区视频在线观看| 久久久五月婷婷| 亚洲成av人影院| av动漫一区二区| 欧美一区二区视频观看视频 | 精品日韩欧美一区二区| 亚洲色图制服诱惑| 国产精品亚洲а∨天堂免在线| 欧美精品第1页| 亚洲美女屁股眼交3| 懂色中文一区二区在线播放| 欧美一区二视频| 一卡二卡欧美日韩| 91麻豆swag| 一区二区三区四区精品在线视频| 成人av手机在线观看| 中文字幕精品一区二区精品绿巨人| 日日欢夜夜爽一区| 欧美日韩色一区| 丝袜亚洲另类丝袜在线| 91精品综合久久久久久| 日韩精品电影一区亚洲| 日韩欧美一区二区免费| 久久精品国产精品亚洲综合| 91麻豆精品国产自产在线观看一区| 亚洲精品国产精华液| 色素色在线综合| 午夜视频在线观看一区二区| 在线免费观看日韩欧美| 天天色综合成人网| 欧美高清精品3d| 乱一区二区av| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美一区三区四区| 精品在线你懂的| 中文字幕综合网| 欧美一区二区精品久久911| 国产一区二区不卡在线| 一区二区三区欧美| 久久综合国产精品| 欧美亚洲综合网| 国产精品一区二区91| 亚洲综合成人在线视频| 精品久久久久99| 欧美日韩电影在线播放| 波多野结衣精品在线| 六月丁香综合在线视频| 亚洲精品国久久99热| 久久综合九色综合97婷婷| 色综合天天综合给合国产| 国产另类ts人妖一区二区| 亚洲制服欧美中文字幕中文字幕| 久久综合九色欧美综合狠狠| 欧美艳星brazzers| 91免费观看视频| 国产成人精品免费网站| 美女尤物国产一区| 日本免费在线视频不卡一不卡二 | 国产欧美日韩卡一| 91精品婷婷国产综合久久| 日本高清不卡一区| 色综合久久中文字幕综合网| 国产成人av一区二区三区在线观看| 麻豆一区二区在线| 精品一区二区三区蜜桃| 丝袜美腿亚洲色图| 午夜精品视频在线观看| 免费在线观看一区二区三区| 久久er99精品| 国产在线一区观看| 成人免费高清在线| 粉嫩欧美一区二区三区高清影视| 国产成a人亚洲| 91行情网站电视在线观看高清版| 91免费看片在线观看| 欧美视频在线观看一区二区| 欧美一区二区免费| 国产日韩精品一区二区浪潮av| 久久久久久免费| 亚洲男人天堂av网| 欧美bbbbb| 99精品欧美一区| 日韩久久精品一区| 亚洲欧美日韩国产另类专区| 免费人成精品欧美精品| 99精品欧美一区二区三区小说| 欧美三日本三级三级在线播放| 欧美一区二区日韩| 亚洲精品国产一区二区精华液 | 国产精品影视天天线| 欧美图区在线视频| 国产精品色在线| 国产一区二区三区香蕉| 欧美视频一区二区三区四区| 国产欧美日韩久久| 久久精品999| 欧美精品aⅴ在线视频| 亚洲精品乱码久久久久久黑人| 国产乱码精品一区二区三区av| 在线播放日韩导航| 亚洲第一福利视频在线| 5566中文字幕一区二区电影| 亚洲影院在线观看| 欧亚一区二区三区| 亚洲一级片在线观看| 欧美无人高清视频在线观看| 一区二区免费看| 欧美另类久久久品| 国产成人av福利| 中文一区在线播放| 91小视频在线观看| 亚洲精品va在线观看| 欧美另类videos死尸| 奇米精品一区二区三区四区 | 久久久久99精品一区| 成人看片黄a免费看在线| 亚洲图片你懂的| 欧美色欧美亚洲另类二区| 麻豆精品久久久| 亚洲国产经典视频| 欧美三级电影网站| 久久69国产一区二区蜜臀| 久久久蜜桃精品| 一道本成人在线| 精品亚洲免费视频| 亚洲男同性视频| 2023国产精华国产精品| 91久久久免费一区二区| 激情久久久久久久久久久久久久久久| www成人在线观看| 欧美图区在线视频| 成人黄色综合网站| 琪琪久久久久日韩精品| 日韩美女视频一区二区| 精品国产123| 在线不卡中文字幕| 91年精品国产| 成人av网在线| 国产成人高清在线| 久久精品久久久精品美女| 亚洲18色成人| 中文字幕一区二区不卡| 久久久久99精品一区| 日韩亚洲欧美高清| 欧美一区二区三区男人的天堂| 色综合久久66| 成人美女在线视频| 色悠久久久久综合欧美99| 成人视屏免费看| 成人精品视频一区二区三区| 9i看片成人免费高清| 99精品视频中文字幕| 在线观看日韩毛片| 欧美精品第1页| 日韩欧美在线观看一区二区三区|