xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/random.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker /*
3*f80ad8b4SAndroid Build Coastguard Worker  * include/linux/random.h
4*f80ad8b4SAndroid Build Coastguard Worker  *
5*f80ad8b4SAndroid Build Coastguard Worker  * Include file for the random number generator.
6*f80ad8b4SAndroid Build Coastguard Worker  */
7*f80ad8b4SAndroid Build Coastguard Worker 
8*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_RANDOM_H
9*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_RANDOM_H
10*f80ad8b4SAndroid Build Coastguard Worker 
11*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
12*f80ad8b4SAndroid Build Coastguard Worker #include <linux/ioctl.h>
13*f80ad8b4SAndroid Build Coastguard Worker #include <linux/irqnr.h>
14*f80ad8b4SAndroid Build Coastguard Worker 
15*f80ad8b4SAndroid Build Coastguard Worker /* ioctl()'s for the random number generator */
16*f80ad8b4SAndroid Build Coastguard Worker 
17*f80ad8b4SAndroid Build Coastguard Worker /* Get the entropy count. */
18*f80ad8b4SAndroid Build Coastguard Worker #define RNDGETENTCNT	_IOR( 'R', 0x00, int )
19*f80ad8b4SAndroid Build Coastguard Worker 
20*f80ad8b4SAndroid Build Coastguard Worker /* Add to (or subtract from) the entropy count.  (Superuser only.) */
21*f80ad8b4SAndroid Build Coastguard Worker #define RNDADDTOENTCNT	_IOW( 'R', 0x01, int )
22*f80ad8b4SAndroid Build Coastguard Worker 
23*f80ad8b4SAndroid Build Coastguard Worker /* Get the contents of the entropy pool.  (Superuser only.) (Removed in 2.6.9-rc2.) */
24*f80ad8b4SAndroid Build Coastguard Worker #define RNDGETPOOL	_IOR( 'R', 0x02, int [2] )
25*f80ad8b4SAndroid Build Coastguard Worker 
26*f80ad8b4SAndroid Build Coastguard Worker /*
27*f80ad8b4SAndroid Build Coastguard Worker  * Write bytes into the entropy pool and add to the entropy count.
28*f80ad8b4SAndroid Build Coastguard Worker  * (Superuser only.)
29*f80ad8b4SAndroid Build Coastguard Worker  */
30*f80ad8b4SAndroid Build Coastguard Worker #define RNDADDENTROPY	_IOW( 'R', 0x03, int [2] )
31*f80ad8b4SAndroid Build Coastguard Worker 
32*f80ad8b4SAndroid Build Coastguard Worker /* Clear entropy count to 0.  (Superuser only.) */
33*f80ad8b4SAndroid Build Coastguard Worker #define RNDZAPENTCNT	_IO( 'R', 0x04 )
34*f80ad8b4SAndroid Build Coastguard Worker 
35*f80ad8b4SAndroid Build Coastguard Worker /* Clear the entropy pool and associated counters.  (Superuser only.) */
36*f80ad8b4SAndroid Build Coastguard Worker #define RNDCLEARPOOL	_IO( 'R', 0x06 )
37*f80ad8b4SAndroid Build Coastguard Worker 
38*f80ad8b4SAndroid Build Coastguard Worker /* Reseed CRNG.  (Superuser only.) */
39*f80ad8b4SAndroid Build Coastguard Worker #define RNDRESEEDCRNG	_IO( 'R', 0x07 )
40*f80ad8b4SAndroid Build Coastguard Worker 
41*f80ad8b4SAndroid Build Coastguard Worker struct rand_pool_info {
42*f80ad8b4SAndroid Build Coastguard Worker 	int	entropy_count;
43*f80ad8b4SAndroid Build Coastguard Worker 	int	buf_size;
44*f80ad8b4SAndroid Build Coastguard Worker 	__u32	buf[];
45*f80ad8b4SAndroid Build Coastguard Worker };
46*f80ad8b4SAndroid Build Coastguard Worker 
47*f80ad8b4SAndroid Build Coastguard Worker /*
48*f80ad8b4SAndroid Build Coastguard Worker  * Flags for getrandom(2)
49*f80ad8b4SAndroid Build Coastguard Worker  *
50*f80ad8b4SAndroid Build Coastguard Worker  * GRND_NONBLOCK	Don't block and return EAGAIN instead
51*f80ad8b4SAndroid Build Coastguard Worker  * GRND_RANDOM		No effect
52*f80ad8b4SAndroid Build Coastguard Worker  * GRND_INSECURE	Return non-cryptographic random bytes
53*f80ad8b4SAndroid Build Coastguard Worker  */
54*f80ad8b4SAndroid Build Coastguard Worker #define GRND_NONBLOCK	0x0001
55*f80ad8b4SAndroid Build Coastguard Worker #define GRND_RANDOM	0x0002
56*f80ad8b4SAndroid Build Coastguard Worker #define GRND_INSECURE	0x0004
57*f80ad8b4SAndroid Build Coastguard Worker 
58*f80ad8b4SAndroid Build Coastguard Worker /**
59*f80ad8b4SAndroid Build Coastguard Worker  * struct vgetrandom_opaque_params - arguments for allocating memory for vgetrandom
60*f80ad8b4SAndroid Build Coastguard Worker  *
61*f80ad8b4SAndroid Build Coastguard Worker  * @size_per_opaque_state:	Size of each state that is to be passed to vgetrandom().
62*f80ad8b4SAndroid Build Coastguard Worker  * @mmap_prot:			Value of the prot argument in mmap(2).
63*f80ad8b4SAndroid Build Coastguard Worker  * @mmap_flags:			Value of the flags argument in mmap(2).
64*f80ad8b4SAndroid Build Coastguard Worker  * @reserved:			Reserved for future use.
65*f80ad8b4SAndroid Build Coastguard Worker  */
66*f80ad8b4SAndroid Build Coastguard Worker struct vgetrandom_opaque_params {
67*f80ad8b4SAndroid Build Coastguard Worker 	__u32 size_of_opaque_state;
68*f80ad8b4SAndroid Build Coastguard Worker 	__u32 mmap_prot;
69*f80ad8b4SAndroid Build Coastguard Worker 	__u32 mmap_flags;
70*f80ad8b4SAndroid Build Coastguard Worker 	__u32 reserved[13];
71*f80ad8b4SAndroid Build Coastguard Worker };
72*f80ad8b4SAndroid Build Coastguard Worker 
73*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_RANDOM_H */
74