master.c
上传用户:wudi5211
上传日期:2010-01-21
资源大小:607k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

C/C++

  1. /*
  2.  * master.c -- the master module of a master/slave pair using kerneld (v2.1)
  3.  *
  4.  * Tested with 2.1.43 on the x86
  5.  */
  6. #ifndef __KERNEL__
  7. #  define __KERNEL__
  8. #endif
  9. #ifndef MODULE
  10. #  define MODULE
  11. #endif
  12. /*
  13.  * Inclusions related to version problems. They *might* go after
  14.  * <linux/module.h>, unless a symbol table is exported. All in all,
  15.  * better putting them first anyways.
  16.  */
  17. #include <linux/autoconf.h> /* retrieve the CONFIG_* macros */
  18. #if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS)
  19. #   define MODVERSIONS /* force it on */
  20. #endif
  21. #ifdef MODVERSIONS
  22. #  include <linux/modversions.h>
  23. #endif
  24. #include <linux/module.h>
  25. #ifndef LINUX_VERSION_CODE  /* I don't want compile errors with 1.2 */
  26. #  include <linux/version.h>
  27. #endif
  28. # include "sysdep-2.1.h"
  29. #include <linux/sched.h>
  30. #include <linux/kernel.h> /* printk() */
  31. #include <linux/string.h>
  32. #include <linux/kerneld.h>
  33. int init_module(void)
  34. {
  35.     int r[3]; /* results */
  36.     r[0]=request_module("slave");
  37.     r[1]=request_module("slaveD");
  38.     r[2]=request_module("unexists");
  39.     printk("master: loading results are %i, %i, %in",
  40.            r[0],r[1],r[2]);
  41.     return 0; /* success */
  42. }
  43. void cleanup_module(void)
  44. {
  45.     int r[4]; /* results */
  46.     r[0]=release_module("slave", 1 /* wait */);
  47.     r[1]=release_module("slaveH", 1 /* wait */);
  48.     r[2]=delayed_release_module("slaveD");
  49.     r[3]=release_module("unexists", 1 /* wait */);
  50.     printk("master: unloading results are %i, %i, %i, %in",
  51.            r[0],r[1],r[2],r[3]); 
  52. }