home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-ia64 / acpi.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  3.9 KB  |  132 lines

  1. /*
  2.  *  asm-ia64/acpi.h
  3.  *
  4.  *  Copyright (C) 1999 VA Linux Systems
  5.  *  Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
  6.  *  Copyright (C) 2000,2001 J.I. Lee <jung-ik.lee@intel.com>
  7.  *  Copyright (C) 2001,2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
  8.  *
  9.  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  10.  *
  11.  *  This program is free software; you can redistribute it and/or modify
  12.  *  it under the terms of the GNU General Public License as published by
  13.  *  the Free Software Foundation; either version 2 of the License, or
  14.  *  (at your option) any later version.
  15.  *
  16.  *  This program is distributed in the hope that it will be useful,
  17.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  *  GNU General Public License for more details.
  20.  *
  21.  *  You should have received a copy of the GNU General Public License
  22.  *  along with this program; if not, write to the Free Software
  23.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  24.  *
  25.  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  26.  */
  27.  
  28. #ifndef _ASM_ACPI_H
  29. #define _ASM_ACPI_H
  30.  
  31. #ifdef __KERNEL__
  32.  
  33. #include <linux/init.h>
  34. #include <linux/numa.h>
  35. #include <asm/system.h>
  36.  
  37. #define COMPILER_DEPENDENT_INT64    long
  38. #define COMPILER_DEPENDENT_UINT64    unsigned long
  39.  
  40. /*
  41.  * Calling conventions:
  42.  *
  43.  * ACPI_SYSTEM_XFACE        - Interfaces to host OS (handlers, threads)
  44.  * ACPI_EXTERNAL_XFACE      - External ACPI interfaces
  45.  * ACPI_INTERNAL_XFACE      - Internal ACPI interfaces
  46.  * ACPI_INTERNAL_VAR_XFACE  - Internal variable-parameter list interfaces
  47.  */
  48. #define ACPI_SYSTEM_XFACE
  49. #define ACPI_EXTERNAL_XFACE
  50. #define ACPI_INTERNAL_XFACE
  51. #define ACPI_INTERNAL_VAR_XFACE
  52.  
  53. /* Asm macros */
  54.  
  55. #define ACPI_ASM_MACROS
  56. #define BREAKPOINT3
  57. #define ACPI_DISABLE_IRQS() local_irq_disable()
  58. #define ACPI_ENABLE_IRQS()  local_irq_enable()
  59. #define ACPI_FLUSH_CPU_CACHE()
  60.  
  61. static inline int
  62. ia64_acpi_acquire_global_lock (unsigned int *lock)
  63. {
  64.     unsigned int old, new, val;
  65.     do {
  66.         old = *lock;
  67.         new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
  68.         val = ia64_cmpxchg4_acq(lock, new, old);
  69.     } while (unlikely (val != old));
  70.     return (new < 3) ? -1 : 0;
  71. }
  72.  
  73. static inline int
  74. ia64_acpi_release_global_lock (unsigned int *lock)
  75. {
  76.     unsigned int old, new, val;
  77.     do {
  78.         old = *lock;
  79.         new = old & ~0x3;
  80.         val = ia64_cmpxchg4_acq(lock, new, old);
  81.     } while (unlikely (val != old));
  82.     return old & 0x1;
  83. }
  84.  
  85. #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq)                \
  86.     ((Acq) = ia64_acpi_acquire_global_lock((unsigned int *) GLptr))
  87.  
  88. #define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq)                \
  89.     ((Acq) = ia64_acpi_release_global_lock((unsigned int *) GLptr))
  90.  
  91. #define acpi_disabled 0    /* ACPI always enabled on IA64 */
  92. #define acpi_noirq 0    /* ACPI always enabled on IA64 */
  93. #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */
  94. #define acpi_strict 1    /* no ACPI spec workarounds on IA64 */
  95. static inline void disable_acpi(void) { }
  96.  
  97. const char *acpi_get_sysname (void);
  98. int acpi_request_vector (u32 int_type);
  99. int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
  100.  
  101. /*
  102.  * Record the cpei override flag and current logical cpu. This is
  103.  * useful for CPU removal.
  104.  */
  105. extern unsigned int can_cpei_retarget(void);
  106. extern unsigned int is_cpu_cpei_target(unsigned int cpu);
  107. extern void set_cpei_target_cpu(unsigned int cpu);
  108. extern unsigned int get_cpei_target_cpu(void);
  109. extern void prefill_possible_map(void);
  110. extern int additional_cpus;
  111.  
  112. #ifdef CONFIG_ACPI_NUMA
  113. #if MAX_NUMNODES > 256
  114. #define MAX_PXM_DOMAINS MAX_NUMNODES
  115. #else
  116. #define MAX_PXM_DOMAINS (256)
  117. #endif
  118. extern int __devinitdata pxm_to_nid_map[MAX_PXM_DOMAINS];
  119. extern int __initdata nid_to_pxm_map[MAX_NUMNODES];
  120. #endif
  121.  
  122. extern u16 ia64_acpiid_to_sapicid[];
  123.  
  124. /*
  125.  * Refer Intel ACPI _PDC support document for bit definitions
  126.  */
  127. #define ACPI_PDC_EST_CAPABILITY_SMP     0x8
  128.  
  129. #endif /*__KERNEL__*/
  130.  
  131. #endif /*_ASM_ACPI_H*/
  132.