何度目かのやり直しOS。無気力が溢れすぎて、なかなか進まない。とりあえずGDTRとSegmentDescriptorを宣言した。あと初期化や設定関数を宣言した。setGDTにGDTRを渡しているが、先頭アドレスだけ渡せばいい気がしていたが一応countとindexをチェックしておくべきなのかと思いGDTRごと渡している。こんなんでいいのかと疑問に思いつつ進めてる
typedef struct{ uintptr_t addr; uint_16t count; } GDTR; typedef struct{ uint_16t limit_low; uint_16t base_low; uint_8t base_mid; uint_8t access_right; uint_8t limit_high; uint_8t base_high; } SegmentDescriptor; void initGDTR(GDTR* gdtr, uintptr_t addr, uint_16t count); void loadGDT(GDTR* gdtr); void setGDT(GDTR* gdtr, uint_32t index, uintptr_t addr, uint_32t limit, uint_32t access_right);