voodoo/voodoo2_config.h

58 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);
typedef struct voodoo2_config voodoo2_config;