Make it so we can cast an EthAddr to a 64-bit integer
--HG-- extra : convert_revision : 2f470d122997fbc375f04e9c2682b6528adef50c
This commit is contained in:
parent
338513c681
commit
b64619d575
13
base/inet.hh
13
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);
|
||||
|
|
Loading…
Reference in a new issue