/* * example_mutex.c */ #include #include #include static DEFINE_MUTEX(mymutex); static int __init example_mutex_init(void) { int ret; pr_info("example_mutex init\n"); ret = mutex_trylock(&mymutex); if (ret != 0) { pr_info("mutex is locked\n"); if (mutex_is_locked(&mymutex) == 0) pr_info("The mutex failed to lock!\n"); mutex_unlock(&mymutex); pr_info("mutex is unlocked\n"); } else pr_info("Failed to lock\n"); return 0; } static void __exit example_mutex_exit(void) { pr_info("example_mutex exit\n"); } module_init(example_mutex_init); module_exit(example_mutex_exit); MODULE_DESCRIPTION("Mutex example"); MODULE_LICENSE("GPL");