MemoryInterface: Migrate bitfields over to Common::BitField

This commit is contained in:
Lioncash
2021-09-01 06:26:21 -04:00
parent 32c7524f4d
commit 163b24833d

View File

@ -3,6 +3,7 @@
#include "Core/HW/MemoryInterface.h" #include "Core/HW/MemoryInterface.h"
#include "Common/BitField.h"
#include "Common/ChunkFile.h" #include "Common/ChunkFile.h"
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
#include "Core/HW/MMIO.h" #include "Core/HW/MMIO.h"
@ -51,7 +52,7 @@ enum
union MIRegion union MIRegion
{ {
u32 hex; u32 hex = 0;
struct struct
{ {
u16 first_page; u16 first_page;
@ -61,64 +62,55 @@ union MIRegion
union MIProtType union MIProtType
{ {
u16 hex; u16 hex = 0;
struct
{ BitField<0, 2, u16> reg0;
u16 reg0 : 2; BitField<2, 2, u16> reg1;
u16 reg1 : 2; BitField<4, 2, u16> reg2;
u16 reg2 : 2; BitField<6, 2, u16> reg3;
u16 reg3 : 2; BitField<8, 8, u16> reserved;
u16 : 8;
};
}; };
union MIIRQMask union MIIRQMask
{ {
u16 hex; u16 hex = 0;
struct
{ BitField<0, 1, u16> reg0;
u16 reg0 : 1; BitField<1, 1, u16> reg1;
u16 reg1 : 1; BitField<2, 1, u16> reg2;
u16 reg2 : 1; BitField<3, 1, u16> reg3;
u16 reg3 : 1; BitField<4, 1, u16> all_regs;
u16 all_regs : 1; BitField<5, 11, u16> reserved;
u16 : 11;
};
}; };
union MIIRQFlag union MIIRQFlag
{ {
u16 hex; u16 hex = 0;
struct
{ BitField<0, 1, u16> reg0;
u16 reg0 : 1; BitField<1, 1, u16> reg1;
u16 reg1 : 1; BitField<2, 1, u16> reg2;
u16 reg2 : 1; BitField<3, 1, u16> reg3;
u16 reg3 : 1; BitField<4, 1, u16> all_regs;
u16 all_regs : 1; BitField<5, 11, u16> reserved;
u16 : 11;
};
}; };
union MIProtAddr union MIProtAddr
{ {
u32 hex; u32 hex = 0;
struct struct
{ {
u16 lo; u16 lo;
u16 hi; u16 hi;
}; };
struct BitField<0, 5, u32> reserved_1;
{ BitField<5, 25, u32> addr;
u32 : 5; BitField<30, 2, u32> reserved_2;
u32 addr : 25;
u32 : 2;
};
}; };
union MITimer union MITimer
{ {
u32 hex; u32 hex = 0;
struct struct
{ {
u16 lo; u16 lo;
@ -132,10 +124,10 @@ struct MIMemStruct
MIProtType prot_type; MIProtType prot_type;
MIIRQMask irq_mask; MIIRQMask irq_mask;
MIIRQFlag irq_flag; MIIRQFlag irq_flag;
u16 unknown1; u16 unknown1 = 0;
MIProtAddr prot_addr; MIProtAddr prot_addr;
MITimer timers[10]; MITimer timers[10];
u16 unknown2; u16 unknown2 = 0;
}; };
// STATE_TO_SAVE // STATE_TO_SAVE