For DOV: LCR random number generator
Generate random number from jitter of all messages inside LCR.
This commit is contained in:
parent
e233557e40
commit
0a71f8f76f
|
@ -30,10 +30,19 @@ void cleanup_message(void)
|
||||||
del_work(&message_work);
|
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 */
|
/* 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_create(int id_from, int id_to, int flow, int type)
|
||||||
{
|
{
|
||||||
struct lcr_msg *message;
|
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));
|
message = (struct lcr_msg *)MALLOC(sizeof(struct lcr_msg));
|
||||||
if (!message)
|
if (!message)
|
||||||
|
|
|
@ -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);
|
struct lcr_msg *message_create(int id_from, int id_to, int flow, int type);
|
||||||
#define message_put(m) _message_put(m, __FILE__, __LINE__)
|
#define message_put(m) _message_put(m, __FILE__, __LINE__)
|
||||||
void _message_put(struct lcr_msg *message, const char *file, int line);
|
void _message_put(struct lcr_msg *message, const char *file, int line);
|
||||||
|
|
Loading…
Reference in New Issue