68 lines
1.4 KiB
C
68 lines
1.4 KiB
C
/*
|
|
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef KERNEL_APM_H
|
|
#define KERNEL_APM_H
|
|
|
|
#include <SupportDefs.h>
|
|
|
|
#include <arch/x86/apm_defs.h>
|
|
|
|
|
|
struct kernel_args;
|
|
|
|
|
|
// int 0x15 APM definitions
|
|
#define BIOS_APM_CHECK 0x5300
|
|
#define BIOS_APM_CONNECT_32_BIT 0x5303
|
|
#define BIOS_APM_DISCONNECT 0x5304
|
|
#define BIOS_APM_CPU_IDLE 0x5305
|
|
#define BIOS_APM_CPU_BUSY 0x5306
|
|
#define BIOS_APM_SET_STATE 0x5307
|
|
#define BIOS_APM_ENABLE 0x5308
|
|
#define BIOS_APM_GET_POWER_STATUS 0x530a
|
|
#define BIOS_APM_GET_EVENT 0x530b
|
|
#define BIOS_APM_GET_STATE 0x530c
|
|
#define BIOS_APM_VERSION 0x530e
|
|
#define BIOS_APM_ENGAGE 0x530f
|
|
|
|
// APM devices
|
|
#define APM_ALL_DEVICES 0x0001
|
|
|
|
// APM power states
|
|
#define APM_POWER_STATE_ENABLED 0x0000
|
|
#define APM_POWER_STATE_STANDBY 0x0001
|
|
#define APM_POWER_STATE_SUSPEND 0x0002
|
|
#define APM_POWER_STATE_OFF 0x0003
|
|
|
|
typedef struct apm_info {
|
|
uint16 version;
|
|
uint16 flags;
|
|
uint16 code32_segment_base;
|
|
uint32 code32_segment_offset;
|
|
uint16 code32_segment_length;
|
|
uint16 code16_segment_base;
|
|
uint16 code16_segment_length;
|
|
uint16 data_segment_base;
|
|
uint16 data_segment_length;
|
|
} apm_info;
|
|
|
|
|
|
#ifndef _BOOT_MODE
|
|
#ifndef __x86_64__
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
status_t apm_shutdown(void);
|
|
status_t apm_init(struct kernel_args *args);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif // !__x86_64__
|
|
#endif // !_BOOT_MODE
|
|
|
|
#endif /* KERNEL_APM_H */
|