55 lines
2.0 KiB
C
55 lines
2.0 KiB
C
#pragma once
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#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);
|