xref: /qemu/include/hw/isa/apm.h (revision fc524567087c2537b5103cdfc1d41e4f442892b6)
104762841SIsaku Yamahata #ifndef APM_H
204762841SIsaku Yamahata #define APM_H
304762841SIsaku Yamahata 
4*8be545baSRichard Henderson #include "system/memory.h"
504762841SIsaku Yamahata 
6f8eaef67SIgor Mammedov #define APM_CNT_IOPORT  0xb2
7f8eaef67SIgor Mammedov #define ACPI_PORT_SMI_CMD APM_CNT_IOPORT
8f8eaef67SIgor Mammedov 
904762841SIsaku Yamahata typedef void (*apm_ctrl_changed_t)(uint32_t val, void *arg);
1004762841SIsaku Yamahata 
1104762841SIsaku Yamahata typedef struct APMState {
1204762841SIsaku Yamahata     uint8_t apmc;
1304762841SIsaku Yamahata     uint8_t apms;
1404762841SIsaku Yamahata 
1504762841SIsaku Yamahata     apm_ctrl_changed_t callback;
1604762841SIsaku Yamahata     void *arg;
1742d8a3cfSJulien Grall     MemoryRegion io;
1804762841SIsaku Yamahata } APMState;
1904762841SIsaku Yamahata 
2042d8a3cfSJulien Grall void apm_init(PCIDevice *dev, APMState *s, apm_ctrl_changed_t callback,
2142d8a3cfSJulien Grall               void *arg);
2204762841SIsaku Yamahata 
2304762841SIsaku Yamahata extern const VMStateDescription vmstate_apm;
2404762841SIsaku Yamahata 
2504762841SIsaku Yamahata #endif /* APM_H */
26