home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / random.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.0 KB  |  75 lines

  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 add_input_randomness(unsigned int type, unsigned int code,
  48.                  unsigned int value);
  49. extern void add_interrupt_randomness(int irq);
  50.  
  51. extern void get_random_bytes(void *buf, int nbytes);
  52. void generate_random_uuid(unsigned char uuid_out[16]);
  53.  
  54. extern __u32 secure_ip_id(__u32 daddr);
  55. extern u32 secure_ipv4_port_ephemeral(__u32 saddr, __u32 daddr, __u16 dport);
  56. extern u32 secure_ipv6_port_ephemeral(const __u32 *saddr, const __u32 *daddr, 
  57.                       __u16 dport);
  58. extern __u32 secure_tcp_sequence_number(__u32 saddr, __u32 daddr,
  59.                     __u16 sport, __u16 dport);
  60. extern __u32 secure_tcpv6_sequence_number(__u32 *saddr, __u32 *daddr,
  61.                       __u16 sport, __u16 dport);
  62. extern u64 secure_dccp_sequence_number(__u32 saddr, __u32 daddr,
  63.                        __u16 sport, __u16 dport);
  64.  
  65. #ifndef MODULE
  66. extern struct file_operations random_fops, urandom_fops;
  67. #endif
  68.  
  69. unsigned int get_random_int(void);
  70. unsigned long randomize_range(unsigned long start, unsigned long end, unsigned long len);
  71.  
  72. #endif /* __KERNEL___ */
  73.  
  74. #endif /* _LINUX_RANDOM_H */
  75.