diff options
Diffstat (limited to 'include/linux/etherdevice.h')
| -rw-r--r-- | include/linux/etherdevice.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index 4522c7186bf3..cc84934f9059 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h | |||
| @@ -104,6 +104,22 @@ static inline void random_ether_addr(u8 *addr) | |||
| 104 | addr [0] &= 0xfe; /* clear multicast bit */ | 104 | addr [0] &= 0xfe; /* clear multicast bit */ |
| 105 | addr [0] |= 0x02; /* set local assignment bit (IEEE802) */ | 105 | addr [0] |= 0x02; /* set local assignment bit (IEEE802) */ |
| 106 | } | 106 | } |
| 107 | |||
| 108 | /** | ||
| 109 | * compare_ether_addr - Compare two Ethernet addresses | ||
| 110 | * @addr1: Pointer to a six-byte array containing the Ethernet address | ||
| 111 | * @addr2 Pointer other six-byte array containing the Ethernet address | ||
| 112 | * | ||
| 113 | * Compare two ethernet addresses, returns 0 if equal | ||
| 114 | */ | ||
| 115 | static inline unsigned compare_ether_addr(const u8 *_a, const u8 *_b) | ||
| 116 | { | ||
| 117 | const u16 *a = (const u16 *) _a; | ||
| 118 | const u16 *b = (const u16 *) _b; | ||
| 119 | |||
| 120 | BUILD_BUG_ON(ETH_ALEN != 6); | ||
| 121 | return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) != 0; | ||
| 122 | } | ||
| 107 | #endif /* __KERNEL__ */ | 123 | #endif /* __KERNEL__ */ |
| 108 | 124 | ||
| 109 | #endif /* _LINUX_ETHERDEVICE_H */ | 125 | #endif /* _LINUX_ETHERDEVICE_H */ |
