diff --git a/core/SAL/bochs/BochsRegister.hpp b/core/SAL/bochs/BochsRegister.hpp index 7525eded..2cceabfe 100644 --- a/core/SAL/bochs/BochsRegister.hpp +++ b/core/SAL/bochs/BochsRegister.hpp @@ -144,6 +144,18 @@ class BxFlagsReg : public BochsRegister bool getSignFlag() const { return (BX_CPU(0)->get_SF()); } bool getOverflowFlag() const { return (BX_CPU(0)->get_OF()); } + bool getTrapFlag() const { return (BX_CPU(0)->get_TF()); } + bool getInterruptFlag() const { return (BX_CPU(0)->get_IF()); } + bool getDirectionFlag() const { return (BX_CPU(0)->get_DF()); } + unsigned getIOPrivilegeLevel() const { return (BX_CPU(0)->get_IOPL()); } + bool getNestedTaskFlag() const { return (BX_CPU(0)->get_NT()); } + bool getResumeFlag() const { return (BX_CPU(0)->get_RF()); } + bool getVMFlag() const { return (BX_CPU(0)->get_VM()); } + bool getAlignmentCheckFlag() const { return (BX_CPU(0)->get_AC()); } + bool getVInterruptFlag() const { return (BX_CPU(0)->get_VIF()); } + bool getVInterruptPendingFlag() const { return (BX_CPU(0)->get_VIP()); } + bool getIdentificationFlag() const { return (BX_CPU(0)->get_ID()); } + /** * Sets/resets various status FLAGS. */ @@ -153,6 +165,18 @@ class BxFlagsReg : public BochsRegister void setSignFlag(bool bit) { BX_CPU(0)->set_SF(bit); } void setOverflowFlag(bool bit) { BX_CPU(0)->set_OF(bit); } + void setTrapFlag(bool bit) { BX_CPU(0)->set_TF(bit); } + void setInterruptFlag(bool bit) { BX_CPU(0)->set_IF(bit); } + void setDirectionFlag(bool bit) { BX_CPU(0)->set_DF(bit); } + void setIOPrivilegeLevel(unsigned lvl) { BX_CPU(0)->set_IOPL(lvl); } + void setNestedTaskFlag(bool bit) { BX_CPU(0)->set_NT(bit); } + void setResumeFlag(bool bit) { BX_CPU(0)->set_RF(bit); } + void setVMFlag(bool bit) { BX_CPU(0)->set_VM(bit); } + void setAlignmentCheckFlag(bool bit) { BX_CPU(0)->set_AC(bit); } + void setVInterruptFlag(bool bit) { BX_CPU(0)->set_VIF(bit); } + void setVInterruptPendingFlag(bool bit) { BX_CPU(0)->set_VIP(bit); } + void setIdentificationFlag(bool bit) { BX_CPU(0)->set_ID(bit); } + /** * Sets the content of the status register. * @param data the new register data to be written; note that only the