int init_module(void) { printk("TESTING RTDM MUTEXes [LOOPs %d, TIMEOUTs %d (ns)].\n", LOOPS, DELAY); start_rt_timer(0); rtdm_sem_init(&sem, 0); rtdm_mutex_init(&mutex); rtdm_task_init_cpuid(&stask1, "task1", task1, NULL, 0, 0, 0); rtdm_task_init_cpuid(&stask2, "task2", task2, NULL, 1, 0, 0); return 0; }
static int rtdmtest_open(struct rtdm_dev_context *context, rtdm_user_info_t *user_info, int oflags) { struct rtdmtest_context *ctx; ctx = (struct rtdmtest_context *)context->dev_private; ctx->event.state = 0; rtdm_event_init(&ctx->event, 0); rtdm_sem_init(&ctx->sem, 0); rtdm_lock_count = 0; rtdm_mutex_init(&ctx->mutex); init_MUTEX(&ctx->nrt_mutex); if (rtdm_nrtsig_init(&ctx->nrtsig, rtdmtest_nrtsig_handler)) { printk("rtdm_nrtsig_init failed\n"); return -EINVAL; } return 0; }