Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
random.h
Go to the documentation of this file.
1
/*
2
* include/linux/random.h
3
*
4
* Include file for the random number generator.
5
*/
6
#ifndef _LINUX_RANDOM_H
7
#define _LINUX_RANDOM_H
8
9
#include <
uapi/linux/random.h
>
10
11
12
extern
void
add_device_randomness
(
const
void
*,
unsigned
int
);
13
extern
void
add_input_randomness
(
unsigned
int
type
,
unsigned
int
code
,
14
unsigned
int
value
);
15
extern
void
add_interrupt_randomness
(
int
irq,
int
irq_flags);
16
17
extern
void
get_random_bytes
(
void
*
buf
,
int
nbytes
);
18
extern
void
get_random_bytes_arch
(
void
*
buf
,
int
nbytes
);
19
void
generate_random_uuid
(
unsigned
char
uuid_out[16]);
20
21
#ifndef MODULE
22
extern
const
struct
file_operations
random_fops
,
urandom_fops
;
23
#endif
24
25
unsigned
int
get_random_int
(
void
);
26
unsigned
long
randomize_range
(
unsigned
long
start
,
unsigned
long
end
,
unsigned
long
len);
27
28
u32
random32
(
void
);
29
void
srandom32
(
u32
seed);
30
31
u32
prandom32
(
struct
rnd_state
*);
32
33
/*
34
* Handle minimum values for seeds
35
*/
36
static
inline
u32
__seed(
u32
x
,
u32
m
)
37
{
38
return
(x < m) ? x + m :
x
;
39
}
40
46
static
inline
void
prandom32_seed(
struct
rnd_state
*
state
,
u64
seed)
47
{
48
u32
i
= (seed >> 32) ^ (seed << 10) ^ seed;
49
50
state->
s1
= __seed(i, 1);
51
state->
s2
= __seed(i, 7);
52
state->
s3
= __seed(i, 15);
53
}
54
55
#ifdef CONFIG_ARCH_RANDOM
56
# include <
asm/archrandom.h
>
57
#else
58
static
inline
int
arch_get_random_long(
unsigned
long
*
v
)
59
{
60
return
0;
61
}
62
static
inline
int
arch_get_random_int(
unsigned
int
*
v
)
63
{
64
return
0;
65
}
66
#endif
67
68
#endif
/* _LINUX_RANDOM_H */
Generated on Thu Jan 10 2013 14:52:26 for Linux Kernel by
1.8.2