From: Nathan Binkert Date: Wed, 10 Nov 2004 23:49:55 +0000 (-0500) Subject: Make it so we can cast an EthAddr to a 64-bit integer X-Git-Tag: m5_1.0_tutorial~143 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b64619d5754eb9ae5bb2e31678444a9f9f7d1c8f;p=gem5.git Make it so we can cast an EthAddr to a 64-bit integer --HG-- extra : convert_revision : 2f470d122997fbc375f04e9c2682b6528adef50c --- diff --git a/base/inet.hh b/base/inet.hh index 7ea4de6bb..10b782a6c 100644 --- a/base/inet.hh +++ b/base/inet.hh @@ -81,6 +81,19 @@ struct EthAddr : protected eth_addr bool multicast() const { return data[0] == 0x01; } bool broadcast() const { return data[0] == 0xff; } std::string string() const; + + operator uint64_t() const + { + uint64_t reg = 0; + reg |= ((uint64_t)data[0]) << 40; + reg |= ((uint64_t)data[1]) << 32; + reg |= ((uint64_t)data[2]) << 24; + reg |= ((uint64_t)data[3]) << 16; + reg |= ((uint64_t)data[4]) << 8; + reg |= ((uint64_t)data[5]) << 0; + return reg; + } + }; std::ostream &operator<<(std::ostream &stream, const EthAddr &ea);