Make it so we can cast an EthAddr to a 64-bit integer

--HG--
extra : convert_revision : 2f470d122997fbc375f04e9c2682b6528adef50c
This commit is contained in:
Nathan Binkert 2004-11-10 18:49:55 -05:00
parent 338513c681
commit b64619d575

View file

@ -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);