md_compatible.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.    md.h : Multiple Devices driver compatibility layer for Linux 2.0/2.2
  3.           Copyright (C) 1998 Ingo Molnar
  4.   
  5.    This program is free software; you can redistribute it and/or modify
  6.    it under the terms of the GNU General Public License as published by
  7.    the Free Software Foundation; either version 2, or (at your option)
  8.    any later version.
  9.    
  10.    You should have received a copy of the GNU General Public License
  11.    (for example /usr/src/linux/COPYING); if not, write to the Free
  12.    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  
  13. */
  14. #include <linux/version.h>
  15. #ifndef _MD_COMPATIBLE_H
  16. #define _MD_COMPATIBLE_H
  17. /** 2.3/2.4 stuff: **/
  18. #include <linux/reboot.h>
  19. #include <linux/vmalloc.h>
  20. #include <linux/blkpg.h>
  21. /* 000 */
  22. #define md__get_free_pages(x,y) __get_free_pages(x,y)
  23. #if defined(__i386__) || defined(__x86_64__)
  24. /* 001 */
  25. static __inline__ int md_cpu_has_mmx(void)
  26. {
  27. return test_bit(X86_FEATURE_MMX,  &boot_cpu_data.x86_capability);
  28. }
  29. #else
  30. #define md_cpu_has_mmx()       (0)
  31. #endif
  32. /* 002 */
  33. #define md_clear_page(page)        clear_page(page)
  34. /* 003 */
  35. #define MD_EXPORT_SYMBOL(x) EXPORT_SYMBOL(x)
  36. /* 004 */
  37. #define md_copy_to_user(x,y,z) copy_to_user(x,y,z)
  38. /* 005 */
  39. #define md_copy_from_user(x,y,z) copy_from_user(x,y,z)
  40. /* 006 */
  41. #define md_put_user put_user
  42. /* 007 */
  43. static inline int md_capable_admin(void)
  44. {
  45. return capable(CAP_SYS_ADMIN);
  46. }
  47. /* 008 */
  48. #define MD_FILE_TO_INODE(file) ((file)->f_dentry->d_inode)
  49. /* 009 */
  50. static inline void md_flush_signals (void)
  51. {
  52. spin_lock(&current->sigmask_lock);
  53. flush_signals(current);
  54. spin_unlock(&current->sigmask_lock);
  55. }
  56.  
  57. /* 010 */
  58. static inline void md_init_signals (void)
  59. {
  60.         current->exit_signal = SIGCHLD;
  61.         siginitsetinv(&current->blocked, sigmask(SIGKILL));
  62. }
  63. /* 011 */
  64. #define md_signal_pending signal_pending
  65. /* 012 - md_set_global_readahead - nowhere used */
  66. /* 013 */
  67. #define md_mdelay(x) mdelay(x)
  68. /* 014 */
  69. #define MD_SYS_DOWN SYS_DOWN
  70. #define MD_SYS_HALT SYS_HALT
  71. #define MD_SYS_POWER_OFF SYS_POWER_OFF
  72. /* 015 */
  73. #define md_register_reboot_notifier register_reboot_notifier
  74. /* 016 */
  75. #define md_test_and_set_bit test_and_set_bit
  76. /* 017 */
  77. #define md_test_and_clear_bit test_and_clear_bit
  78. /* 018 */
  79. #define md_atomic_set atomic_set
  80. /* 019 */
  81. #define md_lock_kernel lock_kernel
  82. #define md_unlock_kernel unlock_kernel
  83. /* 020 */
  84. #include <linux/init.h>
  85. #define md__init __init
  86. #define md__initdata __initdata
  87. #define md__initfunc(__arginit) __initfunc(__arginit)
  88. /* 021 */
  89. /* 022 */
  90. #define md_list_head list_head
  91. #define MD_LIST_HEAD(name) LIST_HEAD(name)
  92. #define MD_INIT_LIST_HEAD(ptr) INIT_LIST_HEAD(ptr)
  93. #define md_list_add list_add
  94. #define md_list_del list_del
  95. #define md_list_empty list_empty
  96. #define md_list_entry(ptr, type, member) list_entry(ptr, type, member)
  97. /* 023 */
  98. #define md_schedule_timeout schedule_timeout
  99. /* 024 */
  100. #define md_need_resched(tsk) ((tsk)->need_resched)
  101. /* 025 */
  102. #define md_spinlock_t spinlock_t
  103. #define MD_SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED
  104. #define md_spin_lock spin_lock
  105. #define md_spin_unlock spin_unlock
  106. #define md_spin_lock_irq spin_lock_irq
  107. #define md_spin_unlock_irq spin_unlock_irq
  108. #define md_spin_unlock_irqrestore spin_unlock_irqrestore
  109. #define md_spin_lock_irqsave spin_lock_irqsave
  110. /* 026 */
  111. typedef wait_queue_head_t md_wait_queue_head_t;
  112. #define MD_DECLARE_WAITQUEUE(w,t) DECLARE_WAITQUEUE((w),(t))
  113. #define MD_DECLARE_WAIT_QUEUE_HEAD(x) DECLARE_WAIT_QUEUE_HEAD(x)
  114. #define md_init_waitqueue_head init_waitqueue_head
  115. /* END */
  116. #endif