BIOS(9) FreeBSD カーネル開発者マニュアル BIOS(9)
名称
bios_sigsearch, bios32_SDlookup, bios32 − PC BIOS との相互作用 |
書式
#include <sys/param.h> u_int32_t |
bios_sigsearch(u_int32_t start, u_char *sig, int siglen, int paralen, int sigofs); int |
bios32_SDlookup(struct bios32_SDentry *ent); int |
bios32(struct bios_regs *br, u_int offset, u_short segment); |
BIOS_PADDRTOVADDR(addr); |
BIOS_VADDRTOPADDR(addr); extern struct bios32_SDentry PCIbios; |
extern struct SMBIOS_table SMBIOStable; |
解説
これらの関数は、BIOS 関数と x86 PC アーキテクチャシステムで出会うデータを 取り扱うための、汎用インタフェースを提供します。 |
bios_sigsearch()
サービスシグネチャの BIOS アドレス空間を検索しま す。サービスシグネチャは、大抵はアンダスコアで囲ま れている大文字の ASCII 文字列です。検索は、 start から、または start が 0 の場合には BIOS の最初から 始まります。 siglen バイトの BIOS イメージと sig と が、現在位置から sigofs バイトのオフセットにおいて 比較されます。マッチしないことが分かると、現在位置 が paralen バイト増加されて検索が繰り返されます。シ グネチャが見つかった場合には、その実効物理アドレス が返されます。シグネチャが見つからなかった場合に は、0 が返されます。 BIOS_VADDRTOPADDR() BIOS_VADDRTOPADDR() SMBIOStable DMItable BIOS32 |
システム起動時に、BIOS32 サービスディレクトリ (PCI 仕様の一部) のために BIOS がスキャンされ、ディレクトリの存在が記録されます。これは後で、他の サービスの場所を特定するために使用できます。 |
bios32_SDlookup()
引数 ent の ident フィールドで渡される 4 バイトの識 別子にマッチする BIOS32 サービスの場所を特定しよう と試みます。 bios32() PCIbios FreeBSD 10.0 August 1, 1997 FreeBSD 10.0 |