Get rid of unneeded union.

Verify that BAR sizes are powers of two.

--HG--
extra : convert_revision : ce8dca07aaf1a340cc166b99b5858613a954e2fd
This commit is contained in:
Steve Reinhardt 2006-08-28 11:01:25 -07:00
parent 19d51452b1
commit b77da23e1a
2 changed files with 15 additions and 18 deletions

View file

@ -429,12 +429,12 @@ CREATE_SIM_OBJECT(PciConfigData)
data->config.headerType = htole(HeaderType);
data->config.bist = htole(BIST);
data->config.baseAddr0 = htole(BAR0);
data->config.baseAddr1 = htole(BAR1);
data->config.baseAddr2 = htole(BAR2);
data->config.baseAddr3 = htole(BAR3);
data->config.baseAddr4 = htole(BAR4);
data->config.baseAddr5 = htole(BAR5);
data->config.baseAddr[0] = htole(BAR0);
data->config.baseAddr[1] = htole(BAR1);
data->config.baseAddr[2] = htole(BAR2);
data->config.baseAddr[3] = htole(BAR3);
data->config.baseAddr[4] = htole(BAR4);
data->config.baseAddr[5] = htole(BAR5);
data->config.cardbusCIS = htole(CardbusCIS);
data->config.subsystemVendorID = htole(SubsystemVendorID);
data->config.subsystemID = htole(SubsystemVendorID);
@ -451,6 +451,14 @@ CREATE_SIM_OBJECT(PciConfigData)
data->BARSize[4] = BAR4Size;
data->BARSize[5] = BAR5Size;
for (int i = 0; i < 6; ++i) {
uint32_t barsize = data->BARSize[i];
if (barsize != 0 && !isPowerOf2(barsize)) {
fatal("%s: BAR %d size %d is not a power of 2\n",
getInstanceName(), i, data->BARSize[i]);
}
}
return data;
}

View file

@ -54,18 +54,7 @@ union PCIConfig {
uint8_t latencyTimer;
uint8_t headerType;
uint8_t bist;
union {
uint32_t baseAddr[6];
struct {
uint32_t baseAddr0;
uint32_t baseAddr1;
uint32_t baseAddr2;
uint32_t baseAddr3;
uint32_t baseAddr4;
uint32_t baseAddr5;
};
};
uint32_t baseAddr[6];
uint32_t cardbusCIS;
uint16_t subsystemVendorID;
uint16_t subsystemID;