For DOV: LCR random number generator

Generate random number from jitter of all messages inside LCR.
This commit is contained in:
Andreas Eversberg 2014-06-28 09:14:44 +02:00
parent e233557e40
commit 0a71f8f76f
2 changed files with 10 additions and 0 deletions

View File

@ -30,10 +30,19 @@ void cleanup_message(void)
del_work(&message_work);
}
unsigned int lcr_random = 0;
/* creates a new message with the given attributes. the message must be filled then. after filling, the message_put must be called */
struct lcr_msg *message_create(int id_from, int id_to, int flow, int type)
{
struct lcr_msg *message;
struct timeval now_tv;
struct timezone now_tz;
gettimeofday(&now_tv, &now_tz);
lcr_random = (lcr_random << 1) | (lcr_random >> 31);
lcr_random ^= now_tv.tv_sec;
lcr_random ^= now_tv.tv_usec;
message = (struct lcr_msg *)MALLOC(sizeof(struct lcr_msg));
if (!message)

View File

@ -489,6 +489,7 @@ enum { /* messages between entities */
};
extern unsigned int lcr_random;
struct lcr_msg *message_create(int id_from, int id_to, int flow, int type);
#define message_put(m) _message_put(m, __FILE__, __LINE__)
void _message_put(struct lcr_msg *message, const char *file, int line);