Subversion Repositories shark

Rev

Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 1
/*
2
 * include/linux/random.h
3
 *
4
 * Include file for the random number generator.
5
 */
6
 
7
#ifndef _LINUX_RANDOM_H
8
#define _LINUX_RANDOM_H
9
 
10
#include <linux/ioctl.h>
11
 
12
/* ioctl()'s for the random number generator */
13
 
14
/* Get the entropy count. */
15
#define RNDGETENTCNT    _IOR( 'R', 0x00, int )
16
 
17
/* Add to (or subtract from) the entropy count.  (Superuser only.) */
18
#define RNDADDTOENTCNT  _IOW( 'R', 0x01, int )
19
 
20
/* Get the contents of the entropy pool.  (Superuser only.) */
21
#define RNDGETPOOL      _IOR( 'R', 0x02, int [2] )
22
 
23
/*
24
 * Write bytes into the entropy pool and add to the entropy count.
25
 * (Superuser only.)
26
 */
27
#define RNDADDENTROPY   _IOW( 'R', 0x03, int [2] )
28
 
29
/* Clear entropy count to 0.  (Superuser only.) */
30
#define RNDZAPENTCNT    _IO( 'R', 0x04 )
31
 
32
/* Clear the entropy pool and associated counters.  (Superuser only.) */
33
#define RNDCLEARPOOL    _IO( 'R', 0x06 )
34
 
35
struct rand_pool_info {
36
        int     entropy_count;
37
        int     buf_size;
38
        __u32   buf[0];
39
};
40
 
41
/* Exported functions */
42
 
43
#ifdef __KERNEL__
44
 
45
extern void rand_initialize_irq(int irq);
46
 
47
extern void batch_entropy_store(u32 a, u32 b, int num);
48
 
49
extern void add_keyboard_randomness(unsigned char scancode);
50
extern void add_mouse_randomness(__u32 mouse_data);
51
extern void add_interrupt_randomness(int irq);
52
 
53
extern void get_random_bytes(void *buf, int nbytes);
54
void generate_random_uuid(unsigned char uuid_out[16]);
55
 
56
extern __u32 secure_ip_id(__u32 daddr);
57
extern __u32 secure_tcp_sequence_number(__u32 saddr, __u32 daddr,
58
                                        __u16 sport, __u16 dport);
59
extern __u32 secure_tcp_syn_cookie(__u32 saddr, __u32 daddr,
60
                                   __u16 sport, __u16 dport,
61
                                   __u32 sseq, __u32 count,
62
                                   __u32 data);
63
extern __u32 check_tcp_syn_cookie(__u32 cookie, __u32 saddr,
64
                                  __u32 daddr, __u16 sport,
65
                                  __u16 dport, __u32 sseq,
66
                                  __u32 count, __u32 maxdiff);
67
extern __u32 secure_tcpv6_sequence_number(__u32 *saddr, __u32 *daddr,
68
                                          __u16 sport, __u16 dport);
69
 
70
extern __u32 secure_ipv6_id(__u32 *daddr);
71
 
72
#ifndef MODULE
73
extern struct file_operations random_fops, urandom_fops;
74
#endif
75
 
76
#endif /* __KERNEL___ */
77
 
78
#endif /* _LINUX_RANDOM_H */