void *ClockChrono_Write(void *args) { RT_TASK *mytask; Display_tDest receiver; MenageHmsh_tChain11 chain; mqd_t Screen; struct mq_attr sc_attrs = { MAX_MSGS, 12, 0, 0 }; if (!(mytask = rt_thread_init(nam2num("WRITE"), 1, 0, SCHED_FIFO, 0xF))) { printf("CANNOT INIT TASK ClockChronoWrite\n"); exit(1); } Screen = mq_open("SCREEN", O_WRONLY | O_CREAT | O_NONBLOCK, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, &sc_attrs); printf("INIT TASK ClockChronoWrite %p.\n", mytask); mlockall(MCL_CURRENT | MCL_FUTURE); while(1) { Display_Get(&chain, &receiver); if (chain.chain[1] == 'e') { goto end; } if (!hide && !Pause) { mq_send(Screen, chain.chain, 12, 0); } } end: mq_close(Screen); rt_task_delete(mytask); printf("END TASK ClockChronoWrite %p.\n", mytask); return 0; }
static void ClockChrono_Write(long t) { Display_tDest receiver; MenageHmsh_tChain11 chain; char buf[25] = "00:00:00 00:00:00:00"; int i; while(1) { cpu_used[hard_cpu_id()]++; Display_Get(&chain, &receiver); if (receiver == destChrono) { for (i = 0; i < 11; i++) { buf[i+11] = chain.chain[i+1]; } } else { for (i = 0; i < 8; i++) { buf[i] = chain.chain[i+1]; } } /* printk("\r%s K ",buf); */ if (!hide && !pause) { rtf_put(Screen, chain.chain, 12); } } }