File: /Users/paulross/dev/linux/linux-3.13/include/uapi/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 _UAPI_LINUX_APM_H
      16: #define _UAPI_LINUX_APM_H
      17: 
      18: 
      19: #include <linux/types.h>
      20: 
      21: typedef unsigned short    apm_event_t;
      22: typedef unsigned short    apm_eventinfo_t;
      23: 
      24: struct apm_bios_info {
      25:     __u16    version;
      26:     __u16    cseg;
      27:     __u32    offset;
      28:     __u16    cseg_16;
      29:     __u16    dseg;
      30:     __u16    flags;
      31:     __u16    cseg_len;
      32:     __u16    cseg_16_len;
      33:     __u16    dseg_len;
      34: };
      35: 
      36: 
      37: /*
      38:  * Power states
      39:  */
      40: #define APM_STATE_READY        0x0000
      41: #define APM_STATE_STANDBY    0x0001
      42: #define APM_STATE_SUSPEND    0x0002
      43: #define APM_STATE_OFF        0x0003
      44: #define APM_STATE_BUSY        0x0004
      45: #define APM_STATE_REJECT    0x0005
      46: #define APM_STATE_OEM_SYS    0x0020
      47: #define APM_STATE_OEM_DEV    0x0040
      48: 
      49: #define APM_STATE_DISABLE    0x0000
      50: #define APM_STATE_ENABLE    0x0001
      51: 
      52: #define APM_STATE_DISENGAGE    0x0000
      53: #define APM_STATE_ENGAGE    0x0001
      54: 
      55: /*
      56:  * Events (results of Get PM Event)
      57:  */
      58: #define APM_SYS_STANDBY        0x0001
      59: #define APM_SYS_SUSPEND        0x0002
      60: #define APM_NORMAL_RESUME    0x0003
      61: #define APM_CRITICAL_RESUME    0x0004
      62: #define APM_LOW_BATTERY        0x0005
      63: #define APM_POWER_STATUS_CHANGE    0x0006
      64: #define APM_UPDATE_TIME        0x0007
      65: #define APM_CRITICAL_SUSPEND    0x0008
      66: #define APM_USER_STANDBY    0x0009
      67: #define APM_USER_SUSPEND    0x000a
      68: #define APM_STANDBY_RESUME    0x000b
      69: #define APM_CAPABILITY_CHANGE    0x000c
      70: 
      71: /*
      72:  * Error codes
      73:  */
      74: #define APM_SUCCESS        0x00
      75: #define APM_DISABLED        0x01
      76: #define APM_CONNECTED        0x02
      77: #define APM_NOT_CONNECTED    0x03
      78: #define APM_16_CONNECTED    0x05
      79: #define APM_16_UNSUPPORTED    0x06
      80: #define APM_32_CONNECTED    0x07
      81: #define APM_32_UNSUPPORTED    0x08
      82: #define APM_BAD_DEVICE        0x09
      83: #define APM_BAD_PARAM        0x0a
      84: #define APM_NOT_ENGAGED        0x0b
      85: #define APM_BAD_FUNCTION    0x0c
      86: #define APM_RESUME_DISABLED    0x0d
      87: #define APM_NO_ERROR        0x53
      88: #define APM_BAD_STATE        0x60
      89: #define APM_NO_EVENTS        0x80
      90: #define APM_NOT_PRESENT        0x86
      91: 
      92: /*
      93:  * APM Device IDs
      94:  */
      95: #define APM_DEVICE_BIOS        0x0000
      96: #define APM_DEVICE_ALL        0x0001
      97: #define APM_DEVICE_DISPLAY    0x0100
      98: #define APM_DEVICE_STORAGE    0x0200
      99: #define APM_DEVICE_PARALLEL    0x0300
     100: #define APM_DEVICE_SERIAL    0x0400
     101: #define APM_DEVICE_NETWORK    0x0500
     102: #define APM_DEVICE_PCMCIA    0x0600
     103: #define APM_DEVICE_BATTERY    0x8000
     104: #define APM_DEVICE_OEM        0xe000
     105: #define APM_DEVICE_OLD_ALL    0xffff
     106: #define APM_DEVICE_CLASS    0x00ff
     107: #define APM_DEVICE_MASK        0xff00
     108: 
     109: 
     110: /*
     111:  * Battery status
     112:  */
     113: #define APM_MAX_BATTERIES    2
     114: 
     115: /*
     116:  * APM defined capability bit flags
     117:  */
     118: #define APM_CAP_GLOBAL_STANDBY        0x0001
     119: #define APM_CAP_GLOBAL_SUSPEND        0x0002
     120: #define APM_CAP_RESUME_STANDBY_TIMER    0x0004 /* Timer resume from standby */
     121: #define APM_CAP_RESUME_SUSPEND_TIMER    0x0008 /* Timer resume from suspend */
     122: #define APM_CAP_RESUME_STANDBY_RING    0x0010 /* Resume on Ring fr standby */
     123: #define APM_CAP_RESUME_SUSPEND_RING    0x0020 /* Resume on Ring fr suspend */
     124: #define APM_CAP_RESUME_STANDBY_PCMCIA    0x0040 /* Resume on PCMCIA Ring    */
     125: #define APM_CAP_RESUME_SUSPEND_PCMCIA    0x0080 /* Resume on PCMCIA Ring    */
     126: 
     127: /*
     128:  * ioctl operations
     129:  */
     130: #include <linux/ioctl.h>
     131: 
     132: #define APM_IOC_STANDBY        _IO('A', 1)
     133: #define APM_IOC_SUSPEND        _IO('A', 2)
     134: 
     135: #endif /* _UAPI_LINUX_APM_H */
     136: