machdepでの処理は大きく分けて GateA20のOpenと周辺ハードウェアの検出を行ないます。
ハードウェア検出時に得られたハードウェア情報は、bootarg_t 構造体に格納されます。bootarg_tは、下記のようなリスト構造になっています。

ba_argに加えられる情報はいくつか有り、H/Wにより異なります
- apm情報
-
INT15H(155300)やINT15H(155303)によって得られた情報は bios_apminfo_t型の変数に格納されます。この情報が格納されたba_typeの値は、BOOTARG_APMINFOになります。
- PCI情報
-
INT1AH(1AB101)によって得られた情報がbios_pciinfo_t型の変数に格納されます。この情報が格納されたba_typeの値は、BOOTARG_CONSDEVになります。
- disk情報
-
diskのチェックサムレングスがbios_cksumlenに格納されます。この情報が格納されたba_typeの値は、BOOTARG_CKSUMLENになります
INT13H(1308)によって得られた情報が検出されたデバイス分だけbios_diskinfo_t型の配列に格納されます。この情報が格納されたbootarg_t.ba_typeの値は、BOOTARG_DISKINFOになります。
また、ba_argに加えられ無い情報も幾つか有ります。
- console情報
- コンソール情報がconsdev構造体の配列constabに格納されます。
- メモリー情報
- メモリー情報がbios_memmap_t型の配列bios_memmapに格納されます。
これらの情報はbootarg_tには追加せずに、後程、run_loadfile関数でbootarg_tのリストに追加されます。