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

嵌入式Linux

开发平台:

C/C++

  1. /*
  2.  * inter.c -- A slave variant that uses inter_module functions
  3.  *
  4.  * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet
  5.  * Copyright (C) 2001 O'Reilly & Associates
  6.  *
  7.  * The source code in this file can be freely used, adapted,
  8.  * and redistributed in source or binary form, so long as an
  9.  * acknowledgment appears in derived source files.  The citation
  10.  * should list that the code comes from the book "Linux Device
  11.  * Drivers" by Alessandro Rubini and Jonathan Corbet, published
  12.  * by O'Reilly & Associates.   No warranty is attached;
  13.  * we cannot take responsibility for errors or fitness for use.
  14.  *
  15.  * $Id: inter.c,v 1.8 2001/07/18 22:28:16 rubini Exp $
  16.  */
  17. #ifndef __KERNEL__
  18. #  define __KERNEL__
  19. #endif
  20. #ifndef MODULE
  21. #  define MODULE
  22. #endif
  23. #include <linux/config.h>
  24. #include <linux/module.h>
  25. /* This depends on kmod.h, refuse to go on with 2.0 */
  26. #if LINUX_VERSION_CODE < 0x020200
  27. #  error "This module needs kmod, so it won't run with 2.0"
  28. #else
  29. #include <linux/init.h>
  30. #include "sysdep.h"
  31. #ifdef HAVE_INTER_MODULE
  32. static char *string = "inter says 'Hello World'";
  33. void ime_function(const char *who)
  34. {
  35.     printk(KERN_INFO "inter: ime_function called by %sn", who);
  36. }
  37. int ime_init(void)
  38. {
  39.     inter_module_register("ime_string", THIS_MODULE, string);
  40.     inter_module_register("ime_function", THIS_MODULE, ime_function);
  41.     return 0;
  42. }
  43. void ime_cleanup(void)
  44. {
  45.     inter_module_unregister("ime_string");
  46. }
  47. module_init(ime_init);
  48. module_exit(ime_cleanup);
  49. #endif /* HAVE_INTER_MODULE */
  50. #endif /* no 2.0 allowed */