diff options
author | Nathan Binkert <binkertn@umich.edu> | 2004-02-29 17:05:23 -0500 |
---|---|---|
committer | Nathan Binkert <binkertn@umich.edu> | 2004-02-29 17:05:23 -0500 |
commit | 2272164d6652c554fb3bab7bddfd0d53151e4115 (patch) | |
tree | f332c9090baa888459e9c212af136c6144be2899 | |
parent | b491bda24145ffc9ce71a1d79b7b90926f910570 (diff) | |
download | gem5-2272164d6652c554fb3bab7bddfd0d53151e4115.tar.xz |
Fix dumping to work on the opteron. struct timeval can
vary in size, so we're explicit about the fields.
--HG--
extra : convert_revision : e5264849dafb878676b2bfd3a6e6f95f6f94ea48
-rw-r--r-- | dev/etherdump.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/dev/etherdump.cc b/dev/etherdump.cc index 23b3d778e..b6d6bbe30 100644 --- a/dev/etherdump.cc +++ b/dev/etherdump.cc @@ -34,6 +34,7 @@ #include <string> +#include "base/misc.hh" #include "dev/etherdump.hh" #include "sim/builder.hh" #include "sim/universe.hh" @@ -63,7 +64,8 @@ struct pcap_file_header { }; struct pcap_pkthdr { - struct timeval ts; // time stamp + uint32_t seconds; + uint32_t microseconds; uint32_t caplen; // length of portion present uint32_t len; // length this packet (off wire) }; @@ -96,8 +98,8 @@ EtherDump::init() * to sim_cycles. */ pcap_pkthdr pkthdr; - pkthdr.ts.tv_sec = curtime; - pkthdr.ts.tv_usec = 0; + pkthdr.seconds = curtime; + pkthdr.microseconds = 0; pkthdr.caplen = 0; pkthdr.len = 0; stream.write(reinterpret_cast<char *>(&pkthdr), sizeof(pkthdr)); @@ -109,8 +111,8 @@ void EtherDump::dumpPacket(PacketPtr &packet) { pcap_pkthdr pkthdr; - pkthdr.ts.tv_sec = curtime + (curTick / s_freq); - pkthdr.ts.tv_usec = (curTick / us_freq) % ULL(1000000); + pkthdr.seconds = curtime + (curTick / s_freq); + pkthdr.microseconds = (curTick / us_freq) % ULL(1000000); pkthdr.caplen = packet->length; pkthdr.len = packet->length; stream.write(reinterpret_cast<char *>(&pkthdr), sizeof(pkthdr)); |