diff options
Diffstat (limited to 'klaptopdaemon/smapidev.h')
-rw-r--r-- | klaptopdaemon/smapidev.h | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/klaptopdaemon/smapidev.h b/klaptopdaemon/smapidev.h new file mode 100644 index 0000000..22deedb --- /dev/null +++ b/klaptopdaemon/smapidev.h @@ -0,0 +1,273 @@ + +/********************************************************************* + * + * Filename: smapidev.h + * Description: Header for the SMAPI device driver access library + * Author: Bill Mair, Thomas Hood + * Created: 13 July 1999 + * + * Please report bugs to the author ASAP. + * + * Copyright (c) 1999 Bill Mair, All rights reserved + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * To receive a copy of the GNU General Public License, please write + * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + * + ********************************************************************/ + +#ifndef __SMAPIDEV_H__ +#define __SMAPIDEV_H__ + +/****** defines ******/ + +/*** smapidev function error codes ***/ +/* + * These codes must not fall in the range 0x0-0xFF which is + * reserved for SMAPI BIOS error codes + */ +#define ERR_SMAPIDEV_MIN ((int)0x1000) +#define ERR_SMAPIDEV_PARM_INVALID ((int)0x1050) +#define ERR_SMAPIDEV_STRUCTURE_SIZE_INVALID ((int)0x1051) +#define ERR_SMAPIDEV_SMAPI_RESULT_NOT_UNDERSTOOD ((int)0x1090) +#define ERR_SMAPIDEV_MAX ((int)0x10FF) + +/****** typedefs ******/ + +/*** enum ***/ + +typedef enum _smapidev_stateplace { + SMAPIDEV_STATEPLACE_CURR=0, + SMAPIDEV_STATEPLACE_CMOS, + SMAPIDEV_STATEPLACE_CMOS_AND_CURR +} smapidev_stateplace_t; + +typedef enum _smapidev_ablestate { + SMAPIDEV_ABLESTATE_DISABLED=0, + SMAPIDEV_ABLESTATE_ENABLED, + SMAPIDEV_ABLESTATE_AUTO +} smapidev_ablestate_t; + +typedef enum _smapidev_displaycaptv { + SMAPIDEV_DISPLAYCAPTV_NONE=0, + SMAPIDEV_DISPLAYCAPTV_NONSIMULTANEOUS, + SMAPIDEV_DISPLAYCAPTV_OTHER +} smapidev_displaycaptv_t; + +/* + * The following are the display modes that can be enabled or disabled + */ +typedef enum _smapidev_dispmode { + SMAPIDEV_DISPMODE_INTERNAL=0, + SMAPIDEV_DISPMODE_CRT, + SMAPIDEV_DISPMODE_TV, + SMAPIDEV_DISPMODE_CRT_DETECTION_IGNORE, + SMAPIDEV_DISPMODE_DUAL, + SMAPIDEV_DISPMODE_SELECT_TV +} smapidev_dispmode_t; + +typedef enum _smapidev_fnkeymode { + SMAPIDEV_FNKEY_NORMAL=0, + SMAPIDEV_FNKEY_STICKY, + SMAPIDEV_FNKEY_LOCKED +} smapidev_fnkeymode_t; + +typedef enum _smapidev_ternality { + SMAPIDEV_TERNALITY_IN=0, + SMAPIDEV_TERNALITY_EX +} smapidev_ternality_t; + +typedef enum _smapidev_powersrc { + SMAPIDEV_POWERSRC_AC=0, + SMAPIDEV_POWERSRC_BATTERY +} smapidev_powersrc_t; + +typedef enum _smapidev_powermode { + SMAPIDEV_POWERMODE_HIGH=0, + SMAPIDEV_POWERMODE_AUTO, + SMAPIDEV_POWERMODE_MANUAL, + SMAPIDEV_POWERMODE_UNRECOGNIZED +} smapidev_powermode_t; + + +/*** struct ***/ + +typedef struct _smapidev_info +{ + char szVersion[LEN_VERSION_MAX+1]; +} smapidev_info_t; + +typedef struct _smapidev_biosinfo +{ + size_t sizeStruct; + word wSysId; + word wCountryCode; + word wSysBiosRevMajor; + word wSysBiosRevMinor; + word wSysMgmtBiosRevMajor; + word wSysMgmtBiosRevMinor; + word wSmapiBiosIfaceRevMajor; + word wSmapiBiosIfaceRevMinor; + word wVideoBiosRevMajor; + word wVideoBiosRevMinor; +} smapidev_biosinfo_t; + +typedef struct _smapidev_cpuinfo +{ + size_t sizeStruct; + word wManufacturer; + word wType; + word wStepping; + word wClock; + word wInternalClock; +} smapidev_cpuinfo_t; + +typedef struct _smapidev_displayinfo +{ + size_t sizeStruct; + byte bPanelType; + byte bPanelDim; + byte bCrtType; + byte bCrtFeatures; +} smapidev_displayinfo_t; + +typedef struct _smapidev_dockinginfo +{ + size_t sizeStruct; + word wID; + flag_t fDocked; + flag_t fKeyUnlocked; + flag_t fBusConnected; +} smapidev_dockinginfo_t; + +typedef struct _smapidev_ultrabayinfo +{ + size_t sizeStruct; + byte bType; + byte bID; +} smapidev_ultrabayinfo_t; + +typedef struct _smapidev_slaveinfo +{ + size_t sizeStruct; + flag_t fAscii; + char szID[3]; + word wIDMajor; + word wIDMinor; +} smapidev_slaveinfo_t; + +typedef struct _smapidev_sensorinfo +{ + size_t sizeStruct; + flag_t fLidClosed; + flag_t fKeyboardOpen; + flag_t fACAdapterAttached; +} smapidev_sensorinfo_t; + +typedef struct _smapidev_screenrefreshinfo +{ + size_t sizeStruct; + flag_t f43i; + flag_t f48i; + flag_t f56; + flag_t f60; + flag_t f70; + flag_t f72; + flag_t f75; + flag_t f85; +} smapidev_screenrefreshinfo_t; + +typedef struct _smapidev_displaycap { + size_t sizeStruct; + flag_t fSupported; + smapidev_displaycaptv_t tv; +} smapidev_displaycap_t; + + +/****** function declarations ******/ + +bcd8_t bcd8_of_byte( byte bThe ); +byte byte_of_bcd8( bcd8_t bcd8The ); +int ioctl_smapi( int intFiledesc, smapi_ioparm_t *pioparmThe ); + +/*** Get/Set####Info ***/ + +int smapidev_GetInfo( smapidev_info_t *pinfoThe ); +int smapidev_GetBiosInfo( + int intFiledesc, + smapidev_biosinfo_t *pbiosinfoThe +); +int smapidev_GetCpuInfo( + int intFiledesc, + smapidev_cpuinfo_t *pcpuinfoThe +); +int smapidev_GetDisplayInfo( + int intFiledesc, + smapidev_displayinfo_t *pdisplayinfoThe +); +int smapidev_GetDockingInfo( + int intFiledesc, + smapidev_dockinginfo_t *pdockinginfoThe +); +int smapidev_GetUltrabayInfo( + int intFiledesc, + smapidev_ultrabayinfo_t *pultrabayinfoThe +); +int smapidev_GetSlaveControllerInfo( + int intFiledesc, + smapidev_slaveinfo_t *pslaveinfoThe +); +int smapidev_GetSensorInfo( + int intFiledesc, + smapidev_sensorinfo_t *psensorinfoThe +); +int smapidev_GetScreenRefreshInfo( + int intFiledesc, + word wMode, + smapidev_screenrefreshinfo_t *pscreenrefreshinfoThe +); + +/*** Get/Set####State ***/ + +int smapidev_GetDisplayCapability( + int intFiledesc, + smapidev_stateplace_t stateplace, + smapidev_displaycap_t *pdisplaycap +); +int smapidev_GetDisplayState( + int intFiledesc, + smapidev_stateplace_t stateplace, + smapidev_dispmode_t dispmode, + smapidev_ablestate_t *pablestate +); +int smapidev_SetDisplayState( + int intFiledesc, + smapidev_stateplace_t stateplace, + smapidev_dispmode_t dispmode, + smapidev_ablestate_t ablestate +); + +/*** PM ***/ + +int smapidev_GetPowerExpenditureMode( + int intFiledesc, + smapidev_powersrc_t powersrc, + smapidev_powermode_t *ppowermode +); +int smapidev_SetPowerExpenditureMode( + int intFiledesc, + smapidev_powersrc_t powersrc, + smapidev_powermode_t powermode +); + +#endif |