ReactOS 0.4.16-dev-1946-g52006dd
registers.c
Go to the documentation of this file.
4#include <uacpi/internal/io.h>
7#include <uacpi/acpi.h>
8
9#ifndef UACPI_BAREBONES_MODE
10
12
16};
17
22};
23
27 uacpi_u8 access_width; // only REGISTER_KIND_IO
28 void *accessors[2];
31};
32
33static const struct register_spec g_registers[UACPI_REGISTER_MAX + 1] = {
35 .kind = REGISTER_KIND_GAS,
37 .accessors = {
38 &g_uacpi_rt_ctx.pm1a_status_blk,
39 &g_uacpi_rt_ctx.pm1b_status_blk,
40 },
41 .preserve_mask = ACPI_PM1_STS_IGN0_MASK,
42 },
44 .kind = REGISTER_KIND_GAS,
45 .access_kind = REGISTER_ACCESS_KIND_PRESERVE,
46 .accessors = {
47 &g_uacpi_rt_ctx.pm1a_enable_blk,
48 &g_uacpi_rt_ctx.pm1b_enable_blk,
49 },
50 },
52 .kind = REGISTER_KIND_GAS,
53 .access_kind = REGISTER_ACCESS_KIND_PRESERVE,
54 .accessors = {
55 &g_uacpi_rt_ctx.fadt.x_pm1a_cnt_blk,
56 &g_uacpi_rt_ctx.fadt.x_pm1b_cnt_blk,
57 },
58 .write_only_mask = ACPI_PM1_CNT_SLP_EN_MASK |
60 .preserve_mask = ACPI_PM1_CNT_PRESERVE_MASK,
61 },
63 .kind = REGISTER_KIND_GAS,
64 .access_kind = REGISTER_ACCESS_KIND_PRESERVE,
65 .accessors = { &g_uacpi_rt_ctx.fadt.x_pm_tmr_blk, },
66 },
68 .kind = REGISTER_KIND_GAS,
69 .access_kind = REGISTER_ACCESS_KIND_PRESERVE,
70 .accessors = { &g_uacpi_rt_ctx.fadt.x_pm2_cnt_blk, },
71 .preserve_mask = ACPI_PM2_CNT_PRESERVE_MASK,
72 },
74 .kind = REGISTER_KIND_GAS,
75 .access_kind = REGISTER_ACCESS_KIND_PRESERVE,
76 .accessors = { &g_uacpi_rt_ctx.fadt.sleep_control_reg, },
77 .write_only_mask = ACPI_SLP_CNT_SLP_EN_MASK,
78 .preserve_mask = ACPI_SLP_CNT_PRESERVE_MASK,
79 },
81 .kind = REGISTER_KIND_GAS,
83 .accessors = { &g_uacpi_rt_ctx.fadt.sleep_status_reg, },
84 .preserve_mask = ACPI_SLP_STS_PRESERVE_MASK,
85 },
87 .kind = REGISTER_KIND_GAS,
88 .access_kind = REGISTER_ACCESS_KIND_NORMAL,
89 .accessors = { &g_uacpi_rt_ctx.fadt.reset_reg, },
90 },
92 .kind = REGISTER_KIND_IO,
93 .access_kind = REGISTER_ACCESS_KIND_NORMAL,
94 .access_width = 1,
95 .accessors = { &g_uacpi_rt_ctx.fadt.smi_cmd, },
96 },
97};
98
103};
104
108};
110
112 const struct register_spec *spec, struct register_mapping *mapping,
114)
115{
117
119 return ret;
120
121 if (spec->kind == REGISTER_KIND_GAS) {
122 struct acpi_gas *gas = spec->accessors[idx];
123
124 if (gas == UACPI_NULL || gas->address == 0) {
126 return ret;
127 }
128
129 ret = uacpi_map_gas_noalloc(gas, &mapping->mappings[idx]);
130 } else {
131 if (idx != 0) {
133 return ret;
134 }
135
136 struct acpi_gas temp_gas = {
137 .address_space_id = UACPI_ADDRESS_SPACE_SYSTEM_IO,
138 .address = *(uacpi_u32*)spec->accessors[0],
139 .register_bit_width = spec->access_width * 8,
140 };
141
142 ret = uacpi_map_gas_noalloc(&temp_gas, &mapping->mappings[idx]);
143 }
144
147
148 return ret;
149}
150
152 const struct register_spec *spec, struct register_mapping *mapping
153)
154{
156 uacpi_bool needs_mapping = UACPI_FALSE;
159
160 state = uacpi_atomic_load8(&mapping->states[0]);
161 needs_mapping |= state == REGISTER_MAPPING_STATE_NONE;
162
163 state = uacpi_atomic_load8(&mapping->states[1]);
164 needs_mapping |= state == REGISTER_MAPPING_STATE_NONE;
165
166 if (!needs_mapping)
167 return UACPI_STATUS_OK;
168
170
171 ret = map_one(spec, mapping, 0);
173 goto out;
174
175 ret = map_one(spec, mapping, 1);
176out:
178 return ret;
179}
180
182 uacpi_u8 idx, const struct register_spec **out_spec,
183 struct register_mapping **out_mapping
184)
185{
188
189 *out_spec = &g_registers[idx];
190 *out_mapping = &g_register_mappings[idx];
191 return UACPI_STATUS_OK;
192}
193
195 struct register_mapping *mapping, uacpi_u8 idx, uacpi_u64 *out_value
196)
197{
199 return UACPI_STATUS_OK;
200
201 return uacpi_gas_read_mapped(&mapping->mappings[idx], out_value);
202}
203
205 const struct register_spec *reg, struct register_mapping *mapping,
206 uacpi_u64 *out_value
207)
208{
210 uacpi_u64 value0 = 0, value1 = 0;
211
212 ret = do_read_one(mapping, 0, &value0);
214 return ret;
215
216 ret = do_read_one(mapping, 1, &value1);
218 return ret;
219
220 *out_value = value0 | value1;
221 if (reg->write_only_mask)
222 *out_value &= ~reg->write_only_mask;
223
224 return UACPI_STATUS_OK;
225}
226
228 enum uacpi_register reg_enum, uacpi_u64 *out_value
229)
230{
232 const struct register_spec *reg;
234
236
237 ret = get_reg(reg_enum, &reg, &mapping);
239 return ret;
240
243 return ret;
244
245 return do_read_register(reg, mapping, out_value);
246}
247
250)
251{
253 return UACPI_STATUS_OK;
254
255 return uacpi_gas_write_mapped(&mapping->mappings[idx], in_value);
256}
257
259 const struct register_spec *reg, struct register_mapping *mapping,
260 uacpi_u64 in_value
261)
262{
264
265 if (reg->preserve_mask) {
266 in_value &= ~reg->preserve_mask;
267
268 if (reg->access_kind == REGISTER_ACCESS_KIND_PRESERVE) {
270
273 return ret;
274
275 in_value |= data & reg->preserve_mask;
276 }
277 }
278
279 ret = do_write_one(mapping, 0, in_value);
281 return ret;
282
283 return do_write_one(mapping, 1, in_value);
284}
285
287 enum uacpi_register reg_enum, uacpi_u64 in_value
288)
289{
291 const struct register_spec *reg;
293
295
296 ret = get_reg(reg_enum, &reg, &mapping);
298 return ret;
299
302 return ret;
303
304 return do_write_register(reg, mapping, in_value);
305}
306
308 enum uacpi_register reg_enum, uacpi_u64 in_value0, uacpi_u64 in_value1
309)
310{
312 const struct register_spec *reg;
314
316
317 ret = get_reg(reg_enum, &reg, &mapping);
319 return ret;
320
323 return ret;
324
325 ret = do_write_one(mapping, 0, in_value0);
327 return ret;
328
329 return do_write_one(mapping, 1, in_value1);
330}
331
336};
337
341 .offset = ACPI_PM1_STS_TMR_STS_IDX,
343 },
346 .offset = ACPI_PM1_STS_BM_STS_IDX,
348 },
351 .offset = ACPI_PM1_STS_GBL_STS_IDX,
353 },
358 },
363 },
366 .offset = ACPI_PM1_STS_RTC_STS_IDX,
368 },
371 .offset = ACPI_SLP_STS_WAK_STS_IDX,
373 },
378 },
383 },
386 .offset = ACPI_PM1_EN_TMR_EN_IDX,
388 },
391 .offset = ACPI_PM1_EN_GBL_EN_IDX,
393 },
398 },
403 },
406 .offset = ACPI_PM1_EN_RTC_EN_IDX,
408 },
413 },
416 .offset = ACPI_PM1_CNT_SCI_EN_IDX,
418 },
421 .offset = ACPI_PM1_CNT_BM_RLD_IDX,
423 },
426 .offset = ACPI_PM1_CNT_GBL_RLS_IDX,
428 },
431 .offset = ACPI_PM1_CNT_SLP_TYP_IDX,
433 },
436 .offset = ACPI_PM1_CNT_SLP_EN_IDX,
438 },
441 .offset = ACPI_SLP_CNT_SLP_TYP_IDX,
443 },
446 .offset = ACPI_SLP_CNT_SLP_EN_IDX,
448 },
451 .offset = ACPI_PM2_CNT_ARB_DIS_IDX,
453 },
454};
455
457{
461
462 return UACPI_STATUS_OK;
463}
464
466{
467 uacpi_u8 i;
469
470 if (g_reg_lock != UACPI_NULL) {
473 }
474
475 for (i = 0; i <= UACPI_REGISTER_MAX; ++i) {
477
478 if (mapping->states[0] == REGISTER_MAPPING_STATE_MAPPED)
479 uacpi_unmap_gas_nofree(&mapping->mappings[0]);
480 if (mapping->states[1] == REGISTER_MAPPING_STATE_MAPPED)
481 uacpi_unmap_gas_nofree(&mapping->mappings[1]);
482 }
483
485}
486
488 enum uacpi_register_field field_enum, uacpi_u64 *out_value
489)
490{
492 uacpi_u8 field_idx = field_enum;
493 const struct register_field *field;
494 const struct register_spec *reg;
496
498
501
502 field = &g_fields[field_idx];
503 reg = &g_registers[field->reg];
505
508 return ret;
509
510 ret = do_read_register(reg, mapping, out_value);
512 return ret;
513
514 *out_value = (*out_value & field->mask) >> field->offset;
515 return UACPI_STATUS_OK;
516}
517
519 enum uacpi_register_field field_enum, uacpi_u64 in_value
520)
521{
523 uacpi_u8 field_idx = field_enum;
524 const struct register_field *field;
525 const struct register_spec *reg;
527
530
532
535
536 field = &g_fields[field_idx];
537 reg = &g_registers[field->reg];
539
542 return ret;
543
544 in_value = (in_value << field->offset) & field->mask;
545
547
549 if (in_value == 0) {
551 goto out;
552 }
553
554 ret = do_write_register(reg, mapping, in_value);
555 goto out;
556 }
557
560 goto out;
561
562 data &= ~field->mask;
563 data |= in_value;
564
566
567out:
569 return ret;
570}
571
572#endif // !UACPI_BAREBONES_MODE
static int state
Definition: maze.c:121
unsigned long uacpi_cpu_flags
Definition: arch_helpers.h:13
#define uacpi_atomic_load8(ptr)
Definition: atomic.h:102
unsigned int idx
Definition: utils.c:41
#define ACPI_PM1_STS_WAKE_STS_MASK
Definition: acpi.h:872
#define ACPI_PM1_EN_PWRBTN_EN_MASK
Definition: acpi.h:886
#define ACPI_SLP_CNT_SLP_EN_MASK
Definition: acpi.h:949
#define ACPI_PM1_STS_PCIEXP_WAKE_STS_MASK
Definition: acpi.h:871
#define ACPI_PM1_CNT_PRESERVE_MASK
Definition: acpi.h:921
#define ACPI_PM1_STS_GBL_STS_IDX
Definition: acpi.h:856
#define ACPI_PM2_CNT_ARB_DIS_MASK
Definition: acpi.h:935
#define ACPI_PM1_EN_PCIEXP_WAKE_DIS_IDX
Definition: acpi.h:882
#define ACPI_SLP_STS_WAK_STS_IDX
Definition: acpi.h:959
#define ACPI_PM1_STS_SLPBTN_STS_MASK
Definition: acpi.h:868
#define ACPI_SLP_CNT_SLP_EN_IDX
Definition: acpi.h:944
#define ACPI_PM1_STS_PCIEXP_WAKE_STS_IDX
Definition: acpi.h:861
#define ACPI_PM1_CNT_SCI_EN_MASK
Definition: acpi.h:909
#define ACPI_PM1_CNT_SLP_TYP_MASK
Definition: acpi.h:912
#define ACPI_PM1_EN_GBL_EN_IDX
Definition: acpi.h:878
#define ACPI_PM2_CNT_PRESERVE_MASK
Definition: acpi.h:938
#define ACPI_SLP_STS_PRESERVE_MASK
Definition: acpi.h:964
#define ACPI_PM1_STS_RTC_STS_IDX
Definition: acpi.h:859
#define ACPI_SLP_CNT_PRESERVE_MASK
Definition: acpi.h:951
#define ACPI_PM1_EN_PCIEXP_WAKE_DIS_MASK
Definition: acpi.h:889
#define ACPI_PM1_CNT_BM_RLD_IDX
Definition: acpi.h:893
#define ACPI_PM1_EN_TMR_EN_IDX
Definition: acpi.h:877
#define ACPI_PM1_CNT_GBL_RLS_IDX
Definition: acpi.h:894
#define ACPI_PM1_EN_RTC_EN_MASK
Definition: acpi.h:888
#define ACPI_PM1_EN_SLPBTN_EN_MASK
Definition: acpi.h:887
#define ACPI_PM1_CNT_GBL_RLS_MASK
Definition: acpi.h:911
#define ACPI_PM1_STS_PWRBTN_STS_IDX
Definition: acpi.h:857
#define ACPI_PM1_EN_TMR_EN_MASK
Definition: acpi.h:884
#define ACPI_PM1_STS_SLPBTN_STS_IDX
Definition: acpi.h:858
#define ACPI_PM1_CNT_SCI_EN_IDX
Definition: acpi.h:892
#define ACPI_SLP_CNT_SLP_TYP_IDX
Definition: acpi.h:943
#define ACPI_PM1_STS_RTC_STS_MASK
Definition: acpi.h:869
#define ACPI_PM1_STS_BM_STS_MASK
Definition: acpi.h:865
#define ACPI_PM1_EN_SLPBTN_EN_IDX
Definition: acpi.h:880
#define ACPI_PM1_STS_TMR_STS_MASK
Definition: acpi.h:864
#define ACPI_PM2_CNT_ARB_DIS_IDX
Definition: acpi.h:934
#define ACPI_PM1_STS_WAKE_STS_IDX
Definition: acpi.h:862
#define ACPI_SLP_CNT_SLP_TYP_MASK
Definition: acpi.h:948
#define ACPI_PM1_STS_PWRBTN_STS_MASK
Definition: acpi.h:867
#define ACPI_PM1_EN_GBL_EN_MASK
Definition: acpi.h:885
#define ACPI_PM1_CNT_SLP_EN_MASK
Definition: acpi.h:913
#define ACPI_PM1_STS_TMR_STS_IDX
Definition: acpi.h:854
#define ACPI_PM1_CNT_BM_RLD_MASK
Definition: acpi.h:910
#define ACPI_PM1_CNT_SLP_EN_IDX
Definition: acpi.h:903
#define ACPI_PM1_EN_PWRBTN_EN_IDX
Definition: acpi.h:879
#define ACPI_PM1_STS_GBL_STS_MASK
Definition: acpi.h:866
#define ACPI_PM1_STS_IGN0_MASK
Definition: acpi.h:870
#define ACPI_PM1_CNT_SLP_TYP_IDX
Definition: acpi.h:902
#define ACPI_PM1_STS_BM_STS_IDX
Definition: acpi.h:855
#define ACPI_SLP_STS_WAK_STS_MASK
Definition: acpi.h:961
#define ACPI_PM1_EN_RTC_EN_IDX
Definition: acpi.h:881
#define UACPI_ENSURE_INIT_LEVEL_AT_LEAST(lvl)
Definition: context.h:127
struct uacpi_runtime_context g_uacpi_rt_ctx
Definition: uacpi.c:17
void uacpi_unmap_gas_nofree(uacpi_mapped_gas *gas)
Definition: io.c:889
uacpi_status uacpi_map_gas_noalloc(const struct acpi_gas *gas, uacpi_mapped_gas *out_mapped)
Definition: io.c:832
#define uacpi_memzero(ptr, size)
Definition: stdlib.h:99
uacpi_status uacpi_gas_read_mapped(const uacpi_mapped_gas *gas, uacpi_u64 *value)
Definition: io.c:751
uacpi_status uacpi_gas_write_mapped(const uacpi_mapped_gas *gas, uacpi_u64 value)
Definition: io.c:790
#define uacpi_unlikely(expr)
Definition: compiler.h:58
uint32_t uacpi_u32
Definition: types.h:21
bool uacpi_bool
Definition: types.h:31
#define UACPI_FALSE
Definition: types.h:30
uint64_t uacpi_u64
Definition: types.h:22
uint16_t uacpi_u16
Definition: types.h:20
#define UACPI_NULL
Definition: types.h:33
uint8_t uacpi_u8
Definition: types.h:19
uacpi_register_field
Definition: registers.h:56
@ UACPI_REGISTER_FIELD_PWRBTN_EN
Definition: registers.h:68
@ UACPI_REGISTER_FIELD_PWRBTN_STS
Definition: registers.h:60
@ UACPI_REGISTER_FIELD_MAX
Definition: registers.h:80
@ UACPI_REGISTER_FIELD_WAK_STS
Definition: registers.h:65
@ UACPI_REGISTER_FIELD_RTC_STS
Definition: registers.h:62
@ UACPI_REGISTER_FIELD_SCI_EN
Definition: registers.h:72
@ UACPI_REGISTER_FIELD_ARB_DIS
Definition: registers.h:79
@ UACPI_REGISTER_FIELD_HWR_WAK_STS
Definition: registers.h:64
@ UACPI_REGISTER_FIELD_HWR_SLP_EN
Definition: registers.h:78
@ UACPI_REGISTER_FIELD_RTC_EN
Definition: registers.h:70
@ UACPI_REGISTER_FIELD_GBL_EN
Definition: registers.h:67
@ UACPI_REGISTER_FIELD_SLPBTN_STS
Definition: registers.h:61
@ UACPI_REGISTER_FIELD_SLP_TYP
Definition: registers.h:75
@ UACPI_REGISTER_FIELD_SLPBTN_EN
Definition: registers.h:69
@ UACPI_REGISTER_FIELD_GBL_STS
Definition: registers.h:59
@ UACPI_REGISTER_FIELD_GBL_RLS
Definition: registers.h:74
@ UACPI_REGISTER_FIELD_TMR_STS
Definition: registers.h:57
@ UACPI_REGISTER_FIELD_BM_STS
Definition: registers.h:58
@ UACPI_REGISTER_FIELD_TMR_EN
Definition: registers.h:66
@ UACPI_REGISTER_FIELD_SLP_EN
Definition: registers.h:77
@ UACPI_REGISTER_FIELD_PCIEX_WAKE_STS
Definition: registers.h:63
@ UACPI_REGISTER_FIELD_HWR_SLP_TYP
Definition: registers.h:76
@ UACPI_REGISTER_FIELD_PCIEXP_WAKE_DIS
Definition: registers.h:71
@ UACPI_REGISTER_FIELD_BM_RLD
Definition: registers.h:73
uacpi_register
Definition: registers.h:16
@ UACPI_REGISTER_RESET
Definition: registers.h:24
@ UACPI_REGISTER_SMI_CMD
Definition: registers.h:25
@ UACPI_REGISTER_MAX
Definition: registers.h:26
@ UACPI_REGISTER_PM1_EN
Definition: registers.h:18
@ UACPI_REGISTER_PM1_CNT
Definition: registers.h:19
@ UACPI_REGISTER_PM2_CNT
Definition: registers.h:21
@ UACPI_REGISTER_PM1_STS
Definition: registers.h:17
@ UACPI_REGISTER_PM_TMR
Definition: registers.h:20
@ UACPI_REGISTER_SLP_CNT
Definition: registers.h:22
@ UACPI_REGISTER_SLP_STS
Definition: registers.h:23
#define uacpi_likely_success(expr)
Definition: status.h:53
#define uacpi_unlikely_error(expr)
Definition: status.h:49
uacpi_status
Definition: status.h:10
@ UACPI_STATUS_INVALID_ARGUMENT
Definition: status.h:18
@ UACPI_STATUS_OUT_OF_MEMORY
Definition: status.h:13
@ UACPI_STATUS_OK
Definition: status.h:11
@ UACPI_INIT_LEVEL_SUBSYSTEM_INITIALIZED
Definition: types.h:66
@ UACPI_ADDRESS_SPACE_SYSTEM_IO
Definition: types.h:38
return ret
Definition: mutex.c:146
static uacpi_status ensure_register_mapped(const struct register_spec *spec, struct register_mapping *mapping)
Definition: registers.c:151
static uacpi_handle g_reg_lock
Definition: registers.c:11
static uacpi_status do_read_one(struct register_mapping *mapping, uacpi_u8 idx, uacpi_u64 *out_value)
Definition: registers.c:194
register_access_kind
Definition: registers.c:18
@ REGISTER_ACCESS_KIND_PRESERVE
Definition: registers.c:19
@ REGISTER_ACCESS_KIND_NORMAL
Definition: registers.c:21
@ REGISTER_ACCESS_KIND_WRITE_TO_CLEAR
Definition: registers.c:20
static uacpi_status get_reg(uacpi_u8 idx, const struct register_spec **out_spec, struct register_mapping **out_mapping)
Definition: registers.c:181
static uacpi_status do_write_one(struct register_mapping *mapping, uacpi_u8 idx, uacpi_u64 in_value)
Definition: registers.c:248
static uacpi_status map_one(const struct register_spec *spec, struct register_mapping *mapping, uacpi_u8 idx)
Definition: registers.c:111
static uacpi_status do_write_register(const struct register_spec *reg, struct register_mapping *mapping, uacpi_u64 in_value)
Definition: registers.c:258
register_kind
Definition: registers.c:13
@ REGISTER_KIND_IO
Definition: registers.c:15
@ REGISTER_KIND_GAS
Definition: registers.c:14
static uacpi_status do_read_register(const struct register_spec *reg, struct register_mapping *mapping, uacpi_u64 *out_value)
Definition: registers.c:204
uacpi_status uacpi_read_register(enum uacpi_register reg_enum, uacpi_u64 *out_value)
Definition: registers.c:227
uacpi_status uacpi_write_registers(enum uacpi_register reg_enum, uacpi_u64 in_value0, uacpi_u64 in_value1)
Definition: registers.c:307
uacpi_status uacpi_write_register_field(enum uacpi_register_field field_enum, uacpi_u64 in_value)
Definition: registers.c:518
static struct register_mapping g_register_mappings[UACPI_REGISTER_MAX+1]
Definition: registers.c:109
static const struct register_spec g_registers[UACPI_REGISTER_MAX+1]
Definition: registers.c:33
static const struct register_field g_fields[UACPI_REGISTER_FIELD_MAX+1]
Definition: registers.c:338
uacpi_status uacpi_write_register(enum uacpi_register reg_enum, uacpi_u64 in_value)
Definition: registers.c:286
uacpi_status uacpi_read_register_field(enum uacpi_register_field field_enum, uacpi_u64 *out_value)
Definition: registers.c:487
register_mapping_state
Definition: registers.c:99
@ REGISTER_MAPPING_STATE_NOT_NEEDED
Definition: registers.c:101
@ REGISTER_MAPPING_STATE_MAPPED
Definition: registers.c:102
@ REGISTER_MAPPING_STATE_NONE
Definition: registers.c:100
uacpi_status uacpi_initialize_registers(void)
Definition: registers.c:456
void uacpi_deinitialize_registers(void)
Definition: registers.c:465
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLbitfield flags
Definition: glext.h:7161
GLenum GLenum GLenum GLenum mapping
Definition: glext.h:9031
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static int reg
Definition: i386-dis.c:1290
uacpi_handle uacpi_kernel_create_spinlock(void)
Definition: uacpiosl.c:85
void uacpi_kernel_free_spinlock(uacpi_handle)
Definition: uacpiosl.c:92
uacpi_cpu_flags uacpi_kernel_lock_spinlock(uacpi_handle)
Definition: uacpiosl.c:98
void uacpi_kernel_unlock_spinlock(uacpi_handle, uacpi_cpu_flags)
Definition: uacpiosl.c:105
Definition: parser.c:44
uacpi_u8 reg
Definition: registers.c:333
uacpi_u16 mask
Definition: registers.c:335
uacpi_u8 offset
Definition: registers.c:334
uacpi_u8 states[2]
Definition: registers.c:107
uacpi_mapped_gas mappings[2]
Definition: registers.c:106
uacpi_u8 access_width
Definition: registers.c:27
uacpi_u64 write_only_mask
Definition: registers.c:29
uacpi_u64 preserve_mask
Definition: registers.c:30
void * accessors[2]
Definition: registers.c:28
uacpi_u8 access_kind
Definition: registers.c:26
uacpi_u8 kind
Definition: registers.c:25
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383