| /* | |
| * Copied from LiMon - BOOTP. | |
| * | |
| * Copyright 1994, 1995, 2000 Neil Russell. | |
| * (See License) | |
| * Copyright 2000 Paolo Scaffardi | |
| */ | |
| #ifndef __NET_RAND_H__ | |
| #define __NET_RAND_H__ | |
| #include <common.h> | |
| /* | |
| * Return a seed for the PRNG derived from the eth0 MAC address. | |
| */ | |
| static inline unsigned int seed_mac(void) | |
| { | |
| unsigned char enetaddr[ARP_HLEN]; | |
| unsigned int seed; | |
| /* get our mac */ | |
| memcpy(enetaddr, eth_get_ethaddr(), ARP_HLEN); | |
| seed = enetaddr[5]; | |
| seed ^= enetaddr[4] << 8; | |
| seed ^= enetaddr[3] << 16; | |
| seed ^= enetaddr[2] << 24; | |
| seed ^= enetaddr[1]; | |
| seed ^= enetaddr[0] << 8; | |
| return seed; | |
| } | |
| /* | |
| * Seed the random number generator using the eth0 MAC address. | |
| */ | |
| static inline void srand_mac(void) | |
| { | |
| srand(seed_mac()); | |
| } | |
| #endif /* __NET_RAND_H__ */ |