ReactOS 0.4.16-dev-1946-g52006dd
registers.h
Go to the documentation of this file.
1#include <uacpi/types.h>
2
3/*
4 * BEFORE YOU USE THIS API:
5 * uACPI manages FADT registers on its own entirely, you should only use this
6 * API directly if there's absolutely no other way for your use case, e.g.
7 * implementing a CPU idle state driver that does C state switching or similar.
8 */
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#ifndef UACPI_BAREBONES_MODE
15
16typedef enum uacpi_register {
28
29/*
30 * Read a register from FADT
31 *
32 * NOTE: write-only bits (if any) are cleared automatically
33 */
35
36/*
37 * Write a register from FADT
38 *
39 * NOTE:
40 * - Preserved bits (if any) are preserved automatically
41 * - If a register is made up of two (e.g. PM1a and PM1b) parts, the input
42 * is written to both at the same time
43 */
45
46/*
47 * Write a register from FADT
48 *
49 * NOTE:
50 * - Preserved bits (if any) are preserved automatically
51 * - For registers that are made up of two (e.g. PM1a and PM1b) parts, the
52 * provided values are written to their respective physical register
53 */
55
82
83/*
84 * Read a field from a FADT register
85 *
86 * NOTE: The value is automatically masked and shifted down as appropriate,
87 * the client code doesn't have to do any bit manipulation. E.g. for
88 * a field at 0b???XX??? the returned value will contain just the 0bXX
89 */
91
92/*
93 * Write to a field of a FADT register
94 *
95 * NOTE: The value is automatically masked and shifted up as appropriate,
96 * the client code doesn't have to do any bit manipulation. E.g. for
97 * a field at 0b???XX??? the passed value should be just 0bXX
98 */
100
101#endif // !UACPI_BAREBONES_MODE
102
103#ifdef __cplusplus
104}
105#endif
uint64_t uacpi_u64
Definition: types.h:22
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_status uacpi_read_register_field(uacpi_register_field, uacpi_u64 *)
Definition: registers.c:487
uacpi_status uacpi_read_register(uacpi_register, uacpi_u64 *)
Definition: registers.c:227
uacpi_status uacpi_write_register(uacpi_register, uacpi_u64)
Definition: registers.c:286
uacpi_status uacpi_write_registers(uacpi_register, uacpi_u64, uacpi_u64)
Definition: registers.c:307
uacpi_status uacpi_write_register_field(uacpi_register_field, uacpi_u64)
Definition: registers.c:518
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
uacpi_status
Definition: status.h:10