File: /Users/paulross/dev/linux/linux-3.13/include/linux/apm_bios.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: /*
       2:  * Include file for the interface to an APM BIOS
       3:  * Copyright 1994-2001 Stephen Rothwell (sfr@canb.auug.org.au)
       4:  *
       5:  * This program is free software; you can redistribute it and/or modify it
       6:  * under the terms of the GNU General Public License as published by the
       7:  * Free Software Foundation; either version 2, or (at your option) any
       8:  * later version.
       9:  *
      10:  * This program is distributed in the hope that it will be useful, but
      11:  * WITHOUT ANY WARRANTY; without even the implied warranty of
      12:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13:  * General Public License for more details.
      14:  */
      15: #ifndef _LINUX_APM_H
      16: #define _LINUX_APM_H
      17: 
      18: #include <uapi/linux/apm_bios.h>
      19: 
      20: 
      21: #define APM_CS        (GDT_ENTRY_APMBIOS_BASE * 8)
      22: #define APM_CS_16    (APM_CS + 8)
      23: #define APM_DS        (APM_CS_16 + 8)
      24: 
      25: /* Results of APM Installation Check */
      26: #define APM_16_BIT_SUPPORT    0x0001
      27: #define APM_32_BIT_SUPPORT    0x0002
      28: #define APM_IDLE_SLOWS_CLOCK    0x0004
      29: #define APM_BIOS_DISABLED          0x0008
      30: #define APM_BIOS_DISENGAGED     0x0010
      31: 
      32: /*
      33:  * Data for APM that is persistent across module unload/load
      34:  */
      35: struct apm_info {
      36:     struct apm_bios_info    bios;
      37:     unsigned short        connection_version;
      38:     int            get_power_status_broken;
      39:     int            get_power_status_swabinminutes;
      40:     int            allow_ints;
      41:     int            forbid_idle;
      42:     int            realmode_power_off;
      43:     int            disabled;
      44: };
      45: 
      46: /*
      47:  * The APM function codes
      48:  */
      49: #define    APM_FUNC_INST_CHECK    0x5300
      50: #define    APM_FUNC_REAL_CONN    0x5301
      51: #define    APM_FUNC_16BIT_CONN    0x5302
      52: #define    APM_FUNC_32BIT_CONN    0x5303
      53: #define    APM_FUNC_DISCONN    0x5304
      54: #define    APM_FUNC_IDLE        0x5305
      55: #define    APM_FUNC_BUSY        0x5306
      56: #define    APM_FUNC_SET_STATE    0x5307
      57: #define    APM_FUNC_ENABLE_PM    0x5308
      58: #define    APM_FUNC_RESTORE_BIOS    0x5309
      59: #define    APM_FUNC_GET_STATUS    0x530a
      60: #define    APM_FUNC_GET_EVENT    0x530b
      61: #define    APM_FUNC_GET_STATE    0x530c
      62: #define    APM_FUNC_ENABLE_DEV_PM    0x530d
      63: #define    APM_FUNC_VERSION    0x530e
      64: #define    APM_FUNC_ENGAGE_PM    0x530f
      65: #define    APM_FUNC_GET_CAP    0x5310
      66: #define    APM_FUNC_RESUME_TIMER    0x5311
      67: #define    APM_FUNC_RESUME_ON_RING    0x5312
      68: #define    APM_FUNC_TIMER        0x5313
      69: 
      70: /*
      71:  * Function code for APM_FUNC_RESUME_TIMER
      72:  */
      73: #define    APM_FUNC_DISABLE_TIMER    0
      74: #define    APM_FUNC_GET_TIMER    1
      75: #define    APM_FUNC_SET_TIMER    2
      76: 
      77: /*
      78:  * Function code for APM_FUNC_RESUME_ON_RING
      79:  */
      80: #define    APM_FUNC_DISABLE_RING    0
      81: #define    APM_FUNC_ENABLE_RING    1
      82: #define    APM_FUNC_GET_RING    2
      83: 
      84: /*
      85:  * Function code for APM_FUNC_TIMER_STATUS
      86:  */
      87: #define    APM_FUNC_TIMER_DISABLE    0
      88: #define    APM_FUNC_TIMER_ENABLE    1
      89: #define    APM_FUNC_TIMER_GET    2
      90: 
      91: /*
      92:  * in arch/i386/kernel/setup.c
      93:  */
      94: extern struct apm_info    apm_info;
      95: 
      96: /*
      97:  * This is the "All Devices" ID communicated to the BIOS
      98:  */
      99: #define APM_DEVICE_BALL        ((apm_info.connection_version > 0x0100) ? \
     100:                  APM_DEVICE_ALL : APM_DEVICE_OLD_ALL)
     101: #endif    /* LINUX_APM_H */
     102: