fix endian issues with condition codes
use memcpy instead of bcopy
s/u_int32_t/uint32_t/g
fixup endian code to work with solaris
hack to make sure htole() works... Nate, have a good idea to fix this?
src/arch/sparc/faults.cc:
set the reset address to be 40 bits. Makes PC printing easier at least for now.
src/arch/sparc/isa/base.isa:
fix endian issues with condition codes
src/arch/sparc/tlb.hh:
add implemented physical addres constants
src/arch/sparc/utility.hh:
add tlb.hh to utilities
src/base/loader/raw_object.cc:
add a symbol <filename>_start to the symbol table for binaries files
src/base/remote_gdb.cc:
use memcpy instead of bcopy
src/cpu/exetrace.cc:
clean up printing a bit more
src/cpu/m5legion_interface.h:
add tons to the shared interface
src/dev/ethertap.cc:
s/u_int32_t/uint32_t/g
src/dev/ide_atareg.h:
fixup endian code to work with solaris
src/dev/pcidev.cc:
src/sim/param.hh:
hack to make sure htole() works...
--HG--
extra : convert_revision : 4579392184b40bcc1062671a953c6595c685e9b2
This commit is contained in:
@@ -178,7 +178,7 @@ EtherTap::recvPacket(EthPacketPtr packet)
|
||||
|
||||
DPRINTF(Ethernet, "EtherTap output len=%d\n", packet->length);
|
||||
DDUMP(EthernetData, packet->data, packet->length);
|
||||
u_int32_t len = htonl(packet->length);
|
||||
uint32_t len = htonl(packet->length);
|
||||
write(socket, &len, sizeof(len));
|
||||
write(socket, packet->data, packet->length);
|
||||
|
||||
@@ -199,11 +199,11 @@ EtherTap::process(int revent)
|
||||
return;
|
||||
}
|
||||
|
||||
char *data = buffer + sizeof(u_int32_t);
|
||||
char *data = buffer + sizeof(uint32_t);
|
||||
if (!(revent & POLLIN))
|
||||
return;
|
||||
|
||||
if (buffer_offset < data_len + sizeof(u_int32_t)) {
|
||||
if (buffer_offset < data_len + sizeof(uint32_t)) {
|
||||
int len = read(socket, buffer + buffer_offset, buflen - buffer_offset);
|
||||
if (len == 0) {
|
||||
detach();
|
||||
@@ -213,23 +213,23 @@ EtherTap::process(int revent)
|
||||
buffer_offset += len;
|
||||
|
||||
if (data_len == 0)
|
||||
data_len = ntohl(*(u_int32_t *)buffer);
|
||||
data_len = ntohl(*(uint32_t *)buffer);
|
||||
|
||||
DPRINTF(Ethernet, "Received data from peer: len=%d buffer_offset=%d "
|
||||
"data_len=%d\n", len, buffer_offset, data_len);
|
||||
}
|
||||
|
||||
while (data_len != 0 && buffer_offset >= data_len + sizeof(u_int32_t)) {
|
||||
while (data_len != 0 && buffer_offset >= data_len + sizeof(uint32_t)) {
|
||||
EthPacketPtr packet;
|
||||
packet = new EthPacketData(data_len);
|
||||
packet->length = data_len;
|
||||
memcpy(packet->data, data, data_len);
|
||||
|
||||
buffer_offset -= data_len + sizeof(u_int32_t);
|
||||
buffer_offset -= data_len + sizeof(uint32_t);
|
||||
assert(buffer_offset >= 0);
|
||||
if (buffer_offset > 0) {
|
||||
memmove(buffer, data + data_len, buffer_offset);
|
||||
data_len = ntohl(*(u_int32_t *)buffer);
|
||||
data_len = ntohl(*(uint32_t *)buffer);
|
||||
} else
|
||||
data_len = 0;
|
||||
|
||||
|
||||
@@ -35,11 +35,25 @@
|
||||
|
||||
#if defined(linux)
|
||||
#include <endian.h>
|
||||
#elif defined(__sun__)
|
||||
#include <sys/isa_defs.h>
|
||||
#else
|
||||
#include <machine/endian.h>
|
||||
#endif
|
||||
|
||||
#ifdef LITTLE_ENDIAN
|
||||
#define ATA_BYTE_ORDER LITTLE_ENDIAN
|
||||
#elif defined(BIG_ENDIAN)
|
||||
#define ATA_BYTE_ORDER BIG_ENDIAN
|
||||
#elif defined(_LITTLE_ENDIAN)
|
||||
#define ATA_BYTE_ORDER 1
|
||||
#define LITTLE_ENDIAN 1
|
||||
#elif defined(_BIG_ENDIAN)
|
||||
#define ATA_BYTE_ORDER 0
|
||||
#define LITTLE_ENDIAN 1
|
||||
#else
|
||||
#error "No endianess defined"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Drive parameter structure for ATA/ATAPI.
|
||||
|
||||
@@ -387,33 +387,33 @@ CREATE_SIM_OBJECT(PciConfigData)
|
||||
{
|
||||
PciConfigData *data = new PciConfigData(getInstanceName());
|
||||
|
||||
data->config.vendor = htole(VendorID);
|
||||
data->config.device = htole(DeviceID);
|
||||
data->config.command = htole(Command);
|
||||
data->config.status = htole(Status);
|
||||
data->config.revision = htole(Revision);
|
||||
data->config.progIF = htole(ProgIF);
|
||||
data->config.subClassCode = htole(SubClassCode);
|
||||
data->config.classCode = htole(ClassCode);
|
||||
data->config.cacheLineSize = htole(CacheLineSize);
|
||||
data->config.latencyTimer = htole(LatencyTimer);
|
||||
data->config.headerType = htole(HeaderType);
|
||||
data->config.bist = htole(BIST);
|
||||
data->config.vendor = htole(VendorID.returnValue());
|
||||
data->config.device = htole(DeviceID.returnValue());
|
||||
data->config.command = htole(Command.returnValue());
|
||||
data->config.status = htole(Status.returnValue());
|
||||
data->config.revision = htole(Revision.returnValue());
|
||||
data->config.progIF = htole(ProgIF.returnValue());
|
||||
data->config.subClassCode = htole(SubClassCode.returnValue());
|
||||
data->config.classCode = htole(ClassCode.returnValue());
|
||||
data->config.cacheLineSize = htole(CacheLineSize.returnValue());
|
||||
data->config.latencyTimer = htole(LatencyTimer.returnValue());
|
||||
data->config.headerType = htole(HeaderType.returnValue());
|
||||
data->config.bist = htole(BIST.returnValue());
|
||||
|
||||
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(SubsystemID);
|
||||
data->config.expansionROM = htole(ExpansionROM);
|
||||
data->config.interruptLine = htole(InterruptLine);
|
||||
data->config.interruptPin = htole(InterruptPin);
|
||||
data->config.minimumGrant = htole(MinimumGrant);
|
||||
data->config.maximumLatency = htole(MaximumLatency);
|
||||
data->config.baseAddr[0] = htole(BAR0.returnValue());
|
||||
data->config.baseAddr[1] = htole(BAR1.returnValue());
|
||||
data->config.baseAddr[2] = htole(BAR2.returnValue());
|
||||
data->config.baseAddr[3] = htole(BAR3.returnValue());
|
||||
data->config.baseAddr[4] = htole(BAR4.returnValue());
|
||||
data->config.baseAddr[5] = htole(BAR5.returnValue());
|
||||
data->config.cardbusCIS = htole(CardbusCIS.returnValue());
|
||||
data->config.subsystemVendorID = htole(SubsystemVendorID.returnValue());
|
||||
data->config.subsystemID = htole(SubsystemID.returnValue());
|
||||
data->config.expansionROM = htole(ExpansionROM.returnValue());
|
||||
data->config.interruptLine = htole(InterruptLine.returnValue());
|
||||
data->config.interruptPin = htole(InterruptPin.returnValue());
|
||||
data->config.minimumGrant = htole(MinimumGrant.returnValue());
|
||||
data->config.maximumLatency = htole(MaximumLatency.returnValue());
|
||||
|
||||
data->BARSize[0] = BAR0Size;
|
||||
data->BARSize[1] = BAR1Size;
|
||||
|
||||
Reference in New Issue
Block a user