IOPORTとIOMAPをextent managerに登録しているぽいが、良くわからないので後回し。
gdtに、セグメント情報を作成します。gdtはdescriptor型のポインタであり、256個のdescriptor型配列であるbootstrap_gdtのアドレスが格納されています。
gdtには、次のセグメント情報が格納されます。
実行/読み取り/アクセス可能なコードセグメントとして0-4GBまでを定義
実行/読み取り/アクセス可能なコードセグメントとして0-4GBまでを定義
読み取り/書き込み/アクセス可能なデータセグメントとして0-4GBまでを定義
読み取り/書き込み可能なシステムセグメントとしてKernel内の変数ldt領域を定義
実行/読み取り/アクセス可能なコードセグメントとして0-512MBまでを定義
実行/読み取り/アクセス可能なデータセグメントとして0-約3.2GB(正確にはカーネルスタックの前辺り?)までを定義
実行/読み取り/アクセス可能なデータセグメントとして定義
ldtに、セグメント情報とGATE CALLを作成します。ldtはdescriptor型の256個の配列になっています。
isa_defaultirq関数をcallして、割り込みコントローラの初期化を行ないます。