php_lcg.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. +----------------------------------------------------------------------+
  3. | PHP Version 7 |
  4. +----------------------------------------------------------------------+
  5. | Copyright (c) 1997-2018 The PHP Group |
  6. +----------------------------------------------------------------------+
  7. | This source file is subject to version 3.01 of the PHP license, |
  8. | that is bundled with this package in the file LICENSE, and is |
  9. | available through the world-wide-web at the following url: |
  10. | http://www.php.net/license/3_01.txt |
  11. | If you did not receive a copy of the PHP license and are unable to |
  12. | obtain it through the world-wide-web, please send a note to |
  13. | license@php.net so we can mail you a copy immediately. |
  14. +----------------------------------------------------------------------+
  15. | Author: Sascha Schumann <sascha@schumann.cx> |
  16. +----------------------------------------------------------------------+
  17. */
  18. #ifndef PHP_LCG_H
  19. #define PHP_LCG_H
  20. #include "ext/standard/basic_functions.h"
  21. typedef struct {
  22. int32_t s1;
  23. int32_t s2;
  24. int seeded;
  25. } php_lcg_globals;
  26. PHPAPI double php_combined_lcg(void);
  27. PHP_FUNCTION(lcg_value);
  28. PHP_MINIT_FUNCTION(lcg);
  29. #ifdef ZTS
  30. #define LCG(v) ZEND_TSRMG(lcg_globals_id, php_lcg_globals *, v)
  31. #else
  32. #define LCG(v) (lcg_globals.v)
  33. #endif
  34. #endif