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 */ |