Provided by: freebsd-manpages_6.2-1_all bug

NAME

     smapi - System Management Application Program Interface driver

DESCRIPTION

     Many IBM Thinkpad laptops utilize a special software interface known as
     SMAPI (System Management Application Program Interface).  This interface
     controls various aspects of the system including:

     ·   System Interface (the BIOS can store system information such as the
         system identifier),

     ·   System Configuration (where devices such as the display can be
         configured),

     ·   Power Management (software can interact with the SMAPI BIOS for Power
         Management control).

     Client software must locate a “header image” stored in the F000 segment
     in the Thinkpad ROM (read-only memory), which resides at the 16-byte
     boundary.  This is considered the “Entry Point” for the service.

     The “header image” stores information like:

     ·   signature,

     ·   SMAPI version (major and minor),

     ·   header image length,

     ·   checksum information (which verifies the image),

     ·   an Information Word (used to identify the BIOS service level),

     ·   Real Mode Entry Point (where clients using the Real/V86 mode for the
         far-call value),

     ·   and finally a 16-bit/32-bit Protected Mode Entry Point: base code
         address which specifies the BIOS physical address.  The client must
         prepare a 64 kilobyte selector for this BIOS).

     To invoke the 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
     “informed” by pushing those pointers into its stack before the far-calls.

     The SMAPI BIOS uses the stack and data areas with the selector during a
     BIOS invocation, thus the caller must define the same privilege area as
     the BIOS.

     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 BIOS.  The 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.

SEE ALSO

     IBM Thinkpad 560/560E Technical Reference, 06J0536 S76H-7587-01.

     IBM Thinkpad 560Z Technical Reference, xxxxxxx xxxx-xxxx-xx.

     IBM Thinkpad 600 Technical Reference, xxxxxxx xxxx-xxxx-xx.

     IBM Thinkpad 760XD/760XL/765D/765L Technical Reference, 06J0537
     S30H-2433-02.

     IBM Thinkpad 770 Technical Reference, 05L1739 S05L-1739-00.

AUTHORS

     The smapi driver was written by Matthew N. Dodd 〈mdodd@FreeBSD.org〉.
     This manual page was written by Tom Rhodes 〈trhodes@FreeBSD.org〉 and
     Matthew N. Dodd 〈mdodd@FreeBSD.org〉.