From: Ali Saidi Date: Tue, 30 Jan 2007 00:04:06 +0000 (-0500) Subject: timegm() is a gnuism... replace with the code from the timegm() man page X-Git-Tag: m5_2.0_beta3~235 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d92f0d370bf4ae6a934215dbae87102312501917;p=gem5.git timegm() is a gnuism... replace with the code from the timegm() man page --HG-- extra : convert_revision : f2b80a0b7768edc370e3f07c45cb3bb9a46450a9 --- diff --git a/src/dev/sparc/dtod.cc b/src/dev/sparc/dtod.cc index 50e158c12..42275c60a 100644 --- a/src/dev/sparc/dtod.cc +++ b/src/dev/sparc/dtod.cc @@ -51,11 +51,21 @@ using namespace TheISA; DumbTOD::DumbTOD(Params *p) : BasicPioDevice(p) { + struct tm tm; + char *tz; + pioSize = 0x08; - struct tm tm; parseTime(p->init_time, &tm); - todTime = timegm(&tm); + tz = getenv("TZ"); + setenv("TZ", "", 1); + tzset(); + todTime = mktime(&tm); + if (tz) + setenv("TZ", tz, 1); + else + unsetenv("TZ"); + tzset(); DPRINTFN("Real-time clock set to %s\n", asctime(&tm)); DPRINTFN("Real-time clock set to %d\n", todTime); @@ -82,6 +92,19 @@ DumbTOD::write(PacketPtr pkt) panic("Dumb tod device doesn't support writes\n"); } +void +DumbTOD::serialize(std::ostream &os) +{ + SERIALIZE_SCALAR(todTime); +} + +void +DumbTOD::unserialize(Checkpoint *cp, const std::string §ion) +{ + UNSERIALIZE_SCALAR(todTime); +} + + BEGIN_DECLARE_SIM_OBJECT_PARAMS(DumbTOD) Param pio_addr; diff --git a/src/dev/sparc/dtod.hh b/src/dev/sparc/dtod.hh index 26d4ecc08..ddf9fcc96 100644 --- a/src/dev/sparc/dtod.hh +++ b/src/dev/sparc/dtod.hh @@ -64,6 +64,21 @@ class DumbTOD : public BasicPioDevice virtual Tick read(PacketPtr pkt); virtual Tick write(PacketPtr pkt); + + /** + * Serialize this object to the given output stream. + * @param os The stream to serialize to. + */ + virtual void serialize(std::ostream &os); + + /** + * Reconstruct the state of this object from a checkpoint. + * @param cp The checkpoint use. + * @param section The section name of this object + */ + virtual void unserialize(Checkpoint *cp, const std::string §ion); + + }; #endif // __DEV_BADDEV_HH__