You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.1 KiB
94 lines
3.1 KiB
15 years ago
|
|
||
|
/*********************************************************************
|
||
|
*
|
||
|
* Filename: smapibios.h
|
||
|
* Description: header file for the IBM SMAPI BIOS
|
||
|
* Author: Thomas Hood
|
||
|
* Created: 14 July 1999
|
||
|
*
|
||
|
* Please report bugs to the author ASAP.
|
||
|
*
|
||
|
* Copyright (c) 1999 J.D. Thomas Hood, 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 __SMAPIBIOS_H__
|
||
|
#define __SMAPIBIOS_H__
|
||
|
|
||
|
/* Is included by smapi.h */
|
||
|
|
||
|
/*** SMAPI BIOS error codes ***/
|
||
|
#define ERR_SMB_MIN ((byte)0x01)
|
||
|
#define ERR_SMB_FUNC_NOT_AVAIL ((byte)0x53)
|
||
|
#define ERR_SMB_FUNC_NOT_SUPPORTED ((byte)0x86)
|
||
|
#define ERR_SMB_SYSTEM_ERROR ((byte)0x90)
|
||
|
#define ERR_SMB_SYSTEM_INVALID ((byte)0x91)
|
||
|
#define ERR_SMB_SYSTEM_BUSY ((byte)0x92)
|
||
|
#define ERR_SMB_DEVICE_ERROR ((byte)0xA0)
|
||
|
#define ERR_SMB_DEVICE_BUSY ((byte)0xA1)
|
||
|
#define ERR_SMB_DEVICE_NOT_ATTACHED ((byte)0xA2)
|
||
|
#define ERR_SMB_DEVICE_DISABLED ((byte)0xA3)
|
||
|
#define ERR_SMB_PARM_INVALID ((byte)0x81)
|
||
|
#define ERR_SMB_PARM_OUT_OF_RANGE ((byte)0xA4)
|
||
|
#define ERR_SMB_PARM_NOT_ACCEPTED ((byte)0xA5)
|
||
|
#define ERR_SMB_MAX ((byte)0xFF)
|
||
|
|
||
|
/* The following structure definitions come from the ThinkPad 560Z Technical Reference */
|
||
|
|
||
|
/*** SMAPI BIOS header ***/
|
||
|
typedef struct _smb_header {
|
||
|
byte bSig[4]; /* signature */
|
||
|
byte bVerMajor; /* major version */
|
||
|
byte bVerMinor; /* minor version */
|
||
|
byte bLen; /* length */
|
||
|
byte bChksum; /* checksum */
|
||
|
word wInfo; /* information word */
|
||
|
word wRsv1; /* reserve 1 */
|
||
|
word wR_offset; /* real mode offset */
|
||
|
word wR_segment; /* real mode segment */
|
||
|
word wRsv2; /* reserve 2 */
|
||
|
word wP16_offset; /* 16-bit protect mode offset */
|
||
|
dword dwP16_base; /* 16-bit protect mode base address */
|
||
|
dword dwP32_offset; /* 32-bit protect mode offset */
|
||
|
dword dwP32_base; /* 32-bit protect mode base address */
|
||
|
} smb_header_t;
|
||
|
|
||
|
/*** SMAPI BIOS call input parameters ***/
|
||
|
typedef struct _smb_inparm {
|
||
|
byte bFunc;
|
||
|
byte bSubFunc;
|
||
|
word wParm1;
|
||
|
word wParm2;
|
||
|
word wParm3;
|
||
|
dword dwParm4;
|
||
|
dword dwParm5;
|
||
|
} smb_inparm_t;
|
||
|
|
||
|
|
||
|
/*** SMAPI BIOS call output parameters ***/
|
||
|
typedef struct _smb_outparm {
|
||
|
byte bRc;
|
||
|
byte bSubRc;
|
||
|
word wParm1;
|
||
|
word wParm2;
|
||
|
word wParm3;
|
||
|
dword dwParm4;
|
||
|
dword dwParm5;
|
||
|
} smb_outparm_t;
|
||
|
|
||
|
#endif
|