SMAPI(4)
π SMAPI(4) π
okay so bestie, welcome to the i386 Kernel Interfaces Manual section, and today's main character is smapi β no cap, it's literally the System Management Application Program Interface driver and it's kind of a big deal π
β¨ NAME β¨
smapi β System Management Application Program Interface driver π¦
πΈ DESCRIPTION πΈ
okay so listen up, because this is genuinely iconic: so many IBM Thinkpad laptops run on a special lil software interface called SMAPI (System Management Application Program Interface). and this interface? it's giving control freak in the best way, because it handles a bunch of stuff, like:
- System Interface β the BIOS can store system info like the system identifier πΎ
- System Configuration β this is where devices like the display get configured β¨
- Power Management β software can talk to the SMAPI BIOS for Power Management control π
so if you're client software and you wanna play, you have to find a βheader imageβ first. it's stored in the F000 segment in the Thinkpad ROM (read-only memory, bestie), and it lives right at the 16-byte boundary. that spot? that's the βEntry Pointβ for the service. periodt. π
and the βheader imageβ is lowkey a whole info dump, it stores things 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 π«Ά
now, to actually invoke the SMAPI BIOS, you have to use a far-call on the entry point specified in the header file. everything else? goes in the client data area. and your client is required to prepare both an input and an 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. iykyk π
the SMAPI BIOS uses the stack and data areas with the selector during a BIOS invocation, so yeah β the caller must define the same privilege area as the BIOS. no shortcuts, bestie.
and the parameter structure? it's built from the input and output fields the caller prepares. the input field specifies the function request to the BIOS, and then the BIOS drops a return value into the output field. and these fields are made up of three parts:
- the first one holds parameters, function numbers, and return codes π
- the next one contains an offset in hexadecimal π’
- and finally a length field, which is comprised of Byte, Word, or Double Word π
like... the structure? immaculate. it ate. π₯
π¦ 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> π
and this manual page was written by Tom Rhodes <trhodes@FreeBSD.org> and Matthew N. Dodd <mdodd@FreeBSD.org> π
and that's the whole vibe, bestie β this page came to you from the <strong>Debian</strong> build, dated <strong>April 1, 2003</strong>, filed under <strong>SMAPI(4)</strong>. slay, go forth, and far-call responsibly πβ¨
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2003 Tom Rhodes
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms