Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/acpi/aclocal.h
Line
Count
Source (jump to first uncovered line)
1
/******************************************************************************
2
 *
3
 * Name: aclocal.h - Internal data types used across the ACPI subsystem
4
 *
5
 *****************************************************************************/
6
7
/*
8
 * Copyright (C) 2000 - 2007, 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 __ACLOCAL_H__
45
#define __ACLOCAL_H__
46
47
/* acpisrc:struct_defs -- for acpisrc conversion */
48
49
/*****************************************************************************
50
 *
51
 * Namespace typedefs and structs
52
 *
53
 ****************************************************************************/
54
55
union acpi_name_union {
56
  u32 integer;
57
  char ascii[4];
58
};
59
60
/*
61
 * ACPI Table Descriptor.  One per ACPI table
62
 */
63
struct acpi_table_desc {
64
  acpi_physical_address address;
65
  struct acpi_table_header *pointer;
66
  u32 length;   /* Length fixed at 32 bits */
67
  union acpi_name_union signature;
68
  u8 flags;
69
};
70
71
/* Flags for above */
72
73
#define ACPI_TABLE_ORIGIN_UNKNOWN       (0)
74
#define ACPI_TABLE_ORIGIN_MAPPED        (1)
75
#define ACPI_TABLE_ORIGIN_ALLOCATED     (2)
76
#define ACPI_TABLE_ORIGIN_MASK          (3)
77
#define ACPI_TABLE_IS_LOADED            (4)
78
79
/* One internal RSDT for table management */
80
81
struct acpi_internal_rsdt {
82
  struct acpi_table_desc *tables;
83
  u32 count;
84
  u32 size;
85
  u8 flags;
86
};
87
88
/* Flags for above */
89
90
#define ACPI_ROOT_ORIGIN_UNKNOWN        (0) /* ~ORIGIN_ALLOCATED */
91
#define ACPI_ROOT_ORIGIN_ALLOCATED      (1)
92
#define ACPI_ROOT_ALLOW_RESIZE          (2)
93
94
/* Predefined (fixed) table indexes */
95
96
#define ACPI_TABLE_INDEX_DSDT           (0)
97
#define ACPI_TABLE_INDEX_FACS           (1)
98
99
/*****************************************************************************
100
 *
101
 * Hardware (ACPI registers) and PNP
102
 *
103
 ****************************************************************************/
104
105
struct acpi_bit_register_info {
106
  u8 parent_register;
107
  u8 bit_position;
108
  u16 access_bit_mask;
109
};
110
111
/*
112
 * Some ACPI registers have bits that must be ignored -- meaning that they
113
 * must be preserved.
114
 */
115
#define ACPI_PM1_STATUS_PRESERVED_BITS          0x0800  /* Bit 11 */
116
#define ACPI_PM1_CONTROL_PRESERVED_BITS         0x0200  /* Bit 9 (whatever) */
117
118
/*
119
 * Register IDs
120
 * These are the full ACPI registers
121
 */
122
0
#define ACPI_REGISTER_PM1_STATUS                0x01
123
0
#define ACPI_REGISTER_PM1_ENABLE                0x02
124
0
#define ACPI_REGISTER_PM1_CONTROL               0x03
125
0
#define ACPI_REGISTER_PM1A_CONTROL              0x04
126
0
#define ACPI_REGISTER_PM1B_CONTROL              0x05
127
0
#define ACPI_REGISTER_PM2_CONTROL               0x06
128
0
#define ACPI_REGISTER_PM_TIMER                  0x07
129
#define ACPI_REGISTER_PROCESSOR_BLOCK           0x08
130
0
#define ACPI_REGISTER_SMI_COMMAND_BLOCK         0x09
131
0
#define ACPI_REGISTER_SLEEP_CONTROL             0x0a
132
0
#define ACPI_REGISTER_SLEEP_STATUS              0x0b
133
134
/* Masks used to access the bit_registers */
135
136
#define ACPI_BITMASK_TIMER_STATUS               0x0001
137
#define ACPI_BITMASK_BUS_MASTER_STATUS          0x0010
138
#define ACPI_BITMASK_GLOBAL_LOCK_STATUS         0x0020
139
#define ACPI_BITMASK_POWER_BUTTON_STATUS        0x0100
140
#define ACPI_BITMASK_SLEEP_BUTTON_STATUS        0x0200
141
#define ACPI_BITMASK_RT_CLOCK_STATUS            0x0400
142
#define ACPI_BITMASK_PCIEXP_WAKE_STATUS         0x4000  /* ACPI 3.0 */
143
0
#define ACPI_BITMASK_WAKE_STATUS                0x8000
144
145
#define ACPI_BITMASK_ALL_FIXED_STATUS           (\
146
  ACPI_BITMASK_TIMER_STATUS          | \
147
  ACPI_BITMASK_BUS_MASTER_STATUS     | \
148
  ACPI_BITMASK_GLOBAL_LOCK_STATUS    | \
149
  ACPI_BITMASK_POWER_BUTTON_STATUS   | \
150
  ACPI_BITMASK_SLEEP_BUTTON_STATUS   | \
151
  ACPI_BITMASK_RT_CLOCK_STATUS       | \
152
  ACPI_BITMASK_WAKE_STATUS)
153
154
#define ACPI_BITMASK_TIMER_ENABLE               0x0001
155
#define ACPI_BITMASK_GLOBAL_LOCK_ENABLE         0x0020
156
#define ACPI_BITMASK_POWER_BUTTON_ENABLE        0x0100
157
#define ACPI_BITMASK_SLEEP_BUTTON_ENABLE        0x0200
158
#define ACPI_BITMASK_RT_CLOCK_ENABLE            0x0400
159
#define ACPI_BITMASK_PCIEXP_WAKE_DISABLE        0x4000  /* ACPI 3.0 */
160
161
#define ACPI_BITMASK_SCI_ENABLE                 0x0001
162
#define ACPI_BITMASK_BUS_MASTER_RLD             0x0002
163
#define ACPI_BITMASK_GLOBAL_LOCK_RELEASE        0x0004
164
#define ACPI_BITMASK_SLEEP_TYPE_X               0x1C00
165
0
#define ACPI_BITMASK_SLEEP_ENABLE               0x2000
166
167
#define ACPI_BITMASK_ARB_DISABLE                0x0001
168
169
/* Raw bit position of each bit_register */
170
171
#define ACPI_BITPOSITION_TIMER_STATUS           0x00
172
#define ACPI_BITPOSITION_BUS_MASTER_STATUS      0x04
173
#define ACPI_BITPOSITION_GLOBAL_LOCK_STATUS     0x05
174
#define ACPI_BITPOSITION_POWER_BUTTON_STATUS    0x08
175
#define ACPI_BITPOSITION_SLEEP_BUTTON_STATUS    0x09
176
#define ACPI_BITPOSITION_RT_CLOCK_STATUS        0x0A
177
#define ACPI_BITPOSITION_PCIEXP_WAKE_STATUS     0x0E  /* ACPI 3.0 */
178
0
#define ACPI_BITPOSITION_WAKE_STATUS            0x0F
179
180
#define ACPI_BITPOSITION_TIMER_ENABLE           0x00
181
#define ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE     0x05
182
#define ACPI_BITPOSITION_POWER_BUTTON_ENABLE    0x08
183
#define ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE    0x09
184
#define ACPI_BITPOSITION_RT_CLOCK_ENABLE        0x0A
185
#define ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE    0x0E  /* ACPI 3.0 */
186
187
#define ACPI_BITPOSITION_SCI_ENABLE             0x00
188
#define ACPI_BITPOSITION_BUS_MASTER_RLD         0x01
189
#define ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE    0x02
190
#define ACPI_BITPOSITION_SLEEP_TYPE_X           0x0A
191
#define ACPI_BITPOSITION_SLEEP_ENABLE           0x0D
192
193
#define ACPI_BITPOSITION_ARB_DISABLE            0x00
194
195
/*****************************************************************************
196
 *
197
 * Resource descriptors
198
 *
199
 ****************************************************************************/
200
201
/* resource_type values */
202
203
#define ACPI_ADDRESS_TYPE_MEMORY_RANGE          0
204
#define ACPI_ADDRESS_TYPE_IO_RANGE              1
205
#define ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE      2
206
207
#endif        /* __ACLOCAL_H__ */