example_mutex.c 781 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include <linux/init.h>
  2. #include <linux/kernel.h>
  3. #include <linux/module.h>
  4. #include <linux/mutex.h>
  5. DEFINE_MUTEX(mymutex);
  6. static int example_mutex_init(void)
  7. {
  8. int ret;
  9. pr_info("example_mutex init\n");
  10. ret = mutex_trylock(&mymutex);
  11. if (ret != 0) {
  12. pr_info("mutex is locked\n");
  13. if (mutex_is_locked(&mymutex) == 0)
  14. pr_info("The mutex failed to lock!\n");
  15. mutex_unlock(&mymutex);
  16. pr_info("mutex is unlocked\n");
  17. } else
  18. pr_info("Failed to lock\n");
  19. return 0;
  20. }
  21. static void example_mutex_exit(void)
  22. {
  23. pr_info("example_mutex exit\n");
  24. }
  25. module_init(example_mutex_init);
  26. module_exit(example_mutex_exit);
  27. MODULE_AUTHOR("Bob Mottram");
  28. MODULE_DESCRIPTION("Mutex example");
  29. MODULE_LICENSE("GPL");