tail head cat sleep
QR code linking to this page

manページ  — BIOS

名称

bios_sigsearch, bios32_SDlookup, bios32 – PC BIOS との相互作用

内容

書式

#include <sys/param.h>
#include <vm/vm.h>
#include <vm/pmap.h>
#include <machine/param.h>
#include <machine/pmap.h>
#include <machine/pc/bios.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;
extern struct DMI_table DMItable;

解説

これらの関数は、BIOS 関数と x86 PC アーキテクチャシステムで出会うデータを 取り扱うための、汎用インタフェースを提供します。
bios_sigsearch()
  サービスシグネチャの BIOS アドレス空間を検索します。 サービスシグネチャは、 大抵はアンダスコアで囲まれている大文字の ASCII 文字列です。 検索は、 start から、または start が 0 の場合には BIOS の最初から始まります。 siglen バイトの BIOS イメージと sig とが、現在位置から sigofs バイトのオフセットにおいて比較されます。 マッチしないことが分かると、現在位置が paralen バイト増加されて検索が繰り返されます。 シグネチャが見つかった場合には、その実効物理アドレスが返されます。 シグネチャが見つからなかった場合には、0 が返されます。
BIOS_VADDRTOPADDR()
  カーネル仮想アドレス addr に対応する実効物理アドレスを返します。
BIOS_VADDRTOPADDR()
  実効物理アドレス addr に対応するカーネル仮想アドレスを返します。
SMBIOStable
  NULL でない場合は、システム起動時に システムマネージメント BIOS (System Management BIOS; SMBIOS) テーブル から読み込まれた情報を含んでいる struct SMBIOS_table 構造体を指します。
DMItable
  NULL でない場合は、システム起動時に デスクトップマネージメントインタフェース (Desktop Management Interface; DMI) パラメータテーブル から読み込まれた情報を含んでいる struct DMI_table 構造体を指します。

BIOS32

システム起動時に、BIOS32 サービスディレクトリ (PCI 仕様の一部) の ために BIOS がスキャンされ、ディレクトリの存在が記録されます。 これは後で、他のサービスの場所を特定するために使用できます。
bios32_SDlookup()
  引数 entident フィールドで渡される 4 バイトの識別子にマッチする BIOS32 サービス の場所を特定しようと試みます。
bios32()
  bios32 関数を呼び出します。 これは関数が、カーネルセグメント内で動作できることを 仮定しています (通常の場合)。 エントリポイントの仮想アドレスは entry で与えられ、 関数へのレジスタ引数は args で与えられます。
PCIbios
  NULL でない場合は、システム起動時に見つかった PCI BIOS エントリポイントを記述する struct bios32_SDentry 構造体を指します。

BIOS (9) August 1, 1997

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.