Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Do not make oldconfig when building kitten
[palacios-OLD.git] / kitten / include / acpi / platform / aclinux.h
1 /******************************************************************************
2  *
3  * Name: aclinux.h - OS specific defines, etc.
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2006, R. Byron Moore
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43
44 #ifndef __ACLINUX_H__
45 #define __ACLINUX_H__
46
47 #define ACPI_USE_SYSTEM_CLIBRARY
48 #define ACPI_USE_DO_WHILE_0
49
50 #ifdef __KERNEL__
51
52 #include <linux/string.h>
53 #include <linux/kernel.h>
54 #include <linux/module.h>
55 #include <linux/ctype.h>
56 #include <asm/system.h>
57 #include <asm/atomic.h>
58 #include <asm/div64.h>
59 #include <asm/acpi.h>
60 #include <linux/slab.h>
61 #include <linux/spinlock_types.h>
62 #include <asm/current.h>
63
64 /* Host-dependent types and defines */
65
66 #define ACPI_MACHINE_WIDTH          BITS_PER_LONG
67 #define acpi_cache_t                        kmem_cache_t
68 #define acpi_spinlock                   spinlock_t *
69 #define ACPI_EXPORT_SYMBOL(symbol)  EXPORT_SYMBOL(symbol);
70 #define strtoul                     simple_strtoul
71
72 /* Full namespace pathname length limit - arbitrary */
73 #define ACPI_PATHNAME_MAX              256
74
75 #else                           /* !__KERNEL__ */
76
77 #include <stdarg.h>
78 #include <string.h>
79 #include <stdlib.h>
80 #include <ctype.h>
81 #include <unistd.h>
82
83 #if defined(__ia64__) || defined(__x86_64__)
84 #define ACPI_MACHINE_WIDTH          64
85 #define COMPILER_DEPENDENT_INT64    long
86 #define COMPILER_DEPENDENT_UINT64   unsigned long
87 #else
88 #define ACPI_MACHINE_WIDTH          32
89 #define COMPILER_DEPENDENT_INT64    long long
90 #define COMPILER_DEPENDENT_UINT64   unsigned long long
91 #define ACPI_USE_NATIVE_DIVIDE
92 #endif
93
94 #define __cdecl
95 #define ACPI_FLUSH_CPU_CACHE()
96 #endif                          /* __KERNEL__ */
97
98 /* Linux uses GCC */
99
100 #include "acgcc.h"
101
102 #define acpi_cpu_flags unsigned long
103
104 #define acpi_thread_id struct task_struct *
105
106 static inline acpi_thread_id acpi_os_get_thread_id(void) { return current; }
107
108 /*
109  * The irqs_disabled() check is for resume from RAM.
110  * Interrupts are off during resume, just like they are for boot.
111  * However, boot has  (system_state != SYSTEM_RUNNING)
112  * to quiet __might_sleep() in kmalloc() and resume does not.
113  */
114 #include <acpi/actypes.h>
115 static inline void *acpi_os_allocate(acpi_size size) {
116         return kmalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
117 }
118 static inline void *acpi_os_allocate_zeroed(acpi_size size) {
119         return kzalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
120 }
121
122 static inline void *acpi_os_acquire_object(acpi_cache_t * cache) {
123         return kmem_cache_zalloc(cache, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
124 }
125
126 #define ACPI_ALLOCATE(a)        acpi_os_allocate(a)
127 #define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a)
128 #define ACPI_FREE(a)            kfree(a)
129
130 #endif                          /* __ACLINUX_H__ */