/share/man/man4/man4.i386/smapi.4
https://bitbucket.org/freebsd/freebsd-head/ · Forth · 153 lines · 153 code · 0 blank · 0 comment · 4 complexity · 0d23c5ccbd25c0ce3e6e1c943f5de59b MD5 · raw file
- .\"
- .\" Copyright (c) 2003 Tom Rhodes
- .\" All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that the following conditions
- .\" are met:
- .\" 1. Redistributions of source code must retain the above copyright
- .\" notice, this list of conditions and the following disclaimer.
- .\" 2. Redistributions in binary form must reproduce the above copyright
- .\" notice, this list of conditions and the following disclaimer in the
- .\" documentation and/or other materials provided with the distribution.
- .\"
- .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- .\" SUCH DAMAGE.
- .\"
- .\" $FreeBSD$
- .\"
- .Dd April 1, 2003
- .Dt SMAPI 4 i386
- .Os
- .Sh NAME
- .Nm smapi
- .Nd "System Management Application Program Interface driver"
- .Sh DESCRIPTION
- Many
- .Tn IBM Thinkpad
- laptops utilize a special software interface known as
- .Tn SMAPI
- (System Management Application Program Interface).
- This interface controls various aspects of the system including:
- .Bl -bullet
- .It
- System Interface
- (the
- .Tn BIOS
- can store system information such as the system identifier),
- .It
- System Configuration (where devices such as the display can be configured),
- .It
- Power Management (software can interact with the
- .Tn SMAPI BIOS
- for Power Management control).
- .El
- .Pp
- Client software must locate a
- .Dq "header image"
- stored in the
- .Li F000
- segment in the
- .Tn Thinkpad ROM
- (read-only memory), which resides at the 16-byte boundary.
- This is considered the
- .Dq "Entry Point"
- for the service.
- .Pp
- The
- .Dq "header image"
- stores information like:
- .Bl -bullet
- .It
- signature,
- .It
- .Tn SMAPI
- version (major and minor),
- .It
- header image length,
- .It
- checksum information (which verifies the image),
- .It
- an Information Word (used to identify the
- .Tn BIOS
- service level),
- .It
- Real Mode Entry Point (where clients using the
- Real/V86 mode for the far-call value),
- .It
- and finally a 16-bit/32-bit Protected Mode Entry
- Point: base code address which specifies the
- .Tn BIOS
- physical address.
- The client must prepare a 64 kilobyte selector for this
- .Tn BIOS ) .
- .El
- .Pp
- To invoke the
- .Tn SMAPI BIOS ,
- a far-call must be used on the entry point specified in the header file.
- All other information should be stored in the client data area.
- The client is required to prepare both an input and output parameter in a
- data area of its own.
- This area can be
- .Dq informed
- by pushing those pointers into its stack before the far-calls.
- .Pp
- The
- .Tn SMAPI BIOS
- uses the stack and data areas with the selector during a
- .Tn BIOS
- invocation, thus the caller must define the same privilege area as the
- .Tn BIOS .
- .Pp
- The parameter structure will be made up by using the input and output
- fields prepared by the caller.
- The input field will specify the function request to the
- .Tn BIOS .
- The
- .Tn BIOS
- will then drop a return value into the output field.
- These fields are made up of three parts.
- The first holds parameters, function numbers, and return codes.
- The next will contain an offset in hexadecimal.
- Finally a length field which is comprised of Byte, Word, or Double Word.
- .Sh SEE ALSO
- .Rs
- .%B "IBM Thinkpad 560/560E Technical Reference"
- .%O "06J0536 S76H-7587-01"
- .Re
- .Rs
- .%B "IBM Thinkpad 560Z Technical Reference"
- .%O "xxxxxxx xxxx-xxxx-xx"
- .Re
- .Rs
- .%B "IBM Thinkpad 600 Technical Reference"
- .%O "xxxxxxx xxxx-xxxx-xx"
- .Re
- .Rs
- .%B "IBM Thinkpad 760XD/760XL/765D/765L Technical Reference"
- .%O "06J0537 S30H-2433-02"
- .Re
- .Rs
- .%B "IBM Thinkpad 770 Technical Reference"
- .%O "05L1739 S05L-1739-00"
- .Re
- .Sh AUTHORS
- .An -nosplit
- The
- .Nm
- driver was written by
- .An Matthew N. Dodd Aq mdodd@FreeBSD.org .
- This manual page was written by
- .An Tom Rhodes Aq trhodes@FreeBSD.org
- and
- .An Matthew N. Dodd Aq mdodd@FreeBSD.org .