X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=net%2Fnet_rand.h;h=ba9d0642cf231ab2ed14c162f2c7fb975f315574;hb=42817eb85de1d7dec399c75dbd133ea6b5351a72;hp=c98db64280598692ceb6d52726d443cfb717a5c9;hpb=eafc8db0e35275330f43a4cf7b7ae8aba71c9728;p=karo-tx-uboot.git diff --git a/net/net_rand.h b/net/net_rand.h index c98db64280..ba9d0642cf 100644 --- a/net/net_rand.h +++ b/net/net_rand.h @@ -9,18 +9,35 @@ #ifndef __NET_RAND_H__ #define __NET_RAND_H__ -#define RAND_MAX 0xffffffff +#include /* - * Seed the random number generator using the eth0 MAC address + * Return a seed for the PRNG derived from the eth0 MAC address. */ -void srand_mac(void); +static inline unsigned int seed_mac(void) +{ + unsigned char enetaddr[6]; + unsigned int seed; + + /* get our mac */ + eth_getenv_enetaddr("ethaddr", enetaddr); + + seed = enetaddr[5]; + seed ^= enetaddr[4] << 8; + seed ^= enetaddr[3] << 16; + seed ^= enetaddr[2] << 24; + seed ^= enetaddr[1]; + seed ^= enetaddr[0] << 8; + + return seed; +} /* - * Get a random number (after seeding with MAC address) - * - * @return random number + * Seed the random number generator using the eth0 MAC address. */ -unsigned long rand(void); +static inline void srand_mac(void) +{ + srand(seed_mac()); +} #endif /* __NET_RAND_H__ */