#pragma once #include #include #include "reg.h" struct voodoo2_config { reg16 Vendor_ID; reg16 Device_ID; reg16 Command; reg16 Status; reg8 Revision_ID; reg8 Class_code[3]; reg8 Cache_line_size; reg8 Latency_timer; reg8 Header_type; reg8 BIST; reg32 memBaseAddr; reg8 _reserved0[40]; reg8 Interrupt_line; reg8 Interrupt_pin; reg8 Min_gnt; reg8 Max_lat; reg32 initEnable; reg32 busSnoop0; reg32 busSnoop1; reg32 cfgStatus; reg32 cfgScratch; reg32 siProcess; }; static_assert((offsetof (struct voodoo2_config, Vendor_ID)) == 0x00); static_assert((offsetof (struct voodoo2_config, Device_ID)) == 0x02); static_assert((offsetof (struct voodoo2_config, Command)) == 0x04); static_assert((offsetof (struct voodoo2_config, Status)) == 0x06); static_assert((offsetof (struct voodoo2_config, Revision_ID)) == 0x08); static_assert((offsetof (struct voodoo2_config, Class_code[0])) == 0x09); static_assert((offsetof (struct voodoo2_config, Cache_line_size)) == 0x0c); static_assert((offsetof (struct voodoo2_config, Latency_timer)) == 0x0d); static_assert((offsetof (struct voodoo2_config, Header_type)) == 0x0e); static_assert((offsetof (struct voodoo2_config, BIST)) == 0x0f); static_assert((offsetof (struct voodoo2_config, memBaseAddr)) == 0x10); static_assert((offsetof (struct voodoo2_config, Interrupt_line)) == 0x3c); static_assert((offsetof (struct voodoo2_config, Interrupt_pin)) == 0x3d); static_assert((offsetof (struct voodoo2_config, Min_gnt)) == 0x3e); static_assert((offsetof (struct voodoo2_config, Max_lat)) == 0x3f); static_assert((offsetof (struct voodoo2_config, initEnable)) == 0x40); static_assert((offsetof (struct voodoo2_config, busSnoop0)) == 0x44); static_assert((offsetof (struct voodoo2_config, busSnoop1)) == 0x48); static_assert((offsetof (struct voodoo2_config, cfgStatus)) == 0x4c); static_assert((offsetof (struct voodoo2_config, cfgScratch)) == 0x50); static_assert((offsetof (struct voodoo2_config, siProcess)) == 0x54);