- silc_rng_xor(rng, (ptime.tms_utime + ptime.tms_stime), 9);
- silc_rng_xor(rng, (ptime.tms_stime + ptime.tms_cutime), 10);
- silc_rng_xor(rng, (ptime.tms_utime + ptime.tms_stime), 11);
- silc_rng_xor(rng, (ptime.tms_cutime ^ ptime.tms_stime), 12);
- silc_rng_xor(rng, (ptime.tms_cutime ^ ptime.tms_cstime), 13);
- silc_rng_xor(rng, (ptime.tms_utime ^ ptime.tms_stime), 14);
- silc_rng_xor(rng, (ptime.tms_stime ^ ptime.tms_cutime), 15);
- silc_rng_xor(rng, (ptime.tms_cutime + ptime.tms_stime), 16);
- silc_rng_xor(rng, (ptime.tms_stime << 8), 17);
- silc_rng_xor(rng, clock() << 4, 18);
- silc_rng_xor(rng, getpgid(getpid() << 8), 19);
- silc_rng_xor(rng, getpgrp(), 20);
- silc_rng_xor(rng, getsid(getpid() << 16), 21);
- silc_rng_xor(rng, times(&ptime), 22);
- silc_rng_xor(rng, ptime.tms_utime, 23);
- silc_rng_xor(rng, getpgrp(), 24);
+ silc_rng_xor(rng, (ptime.tms_utime + ptime.tms_stime), pos++);
+ silc_rng_xor(rng, (ptime.tms_stime + ptime.tms_cutime), pos++);
+ silc_rng_xor(rng, (ptime.tms_utime + ptime.tms_stime), pos++);
+ silc_rng_xor(rng, (ptime.tms_cutime ^ ptime.tms_stime), pos++);
+ silc_rng_xor(rng, (ptime.tms_cutime ^ ptime.tms_cstime), pos++);
+ silc_rng_xor(rng, (ptime.tms_utime ^ ptime.tms_stime), pos++);
+ silc_rng_xor(rng, (ptime.tms_stime ^ ptime.tms_cutime), pos++);
+ silc_rng_xor(rng, (ptime.tms_cutime + ptime.tms_stime), pos++);
+ silc_rng_xor(rng, (ptime.tms_stime << 8), pos++);
+#endif
+ silc_rng_xor(rng, clock() << 4, pos++);
+#ifndef SILC_WIN32
+#ifdef HAVE_GETPGID
+ silc_rng_xor(rng, getpgid(getpid()) << 8, pos++);
+#endif
+#ifdef HAVE_GETPGRP
+ silc_rng_xor(rng, getpgrp(), pos++);
+#endif
+#ifdef HAVE_SETSID
+ silc_rng_xor(rng, getsid(getpid()) << 16, pos++);
+#endif
+ silc_rng_xor(rng, times(&ptime), pos++);
+ silc_rng_xor(rng, ptime.tms_utime, pos++);
+#ifdef HAVE_GETPGRP
+ silc_rng_xor(rng, getpgrp(), pos++);
+#endif
+#endif
+
+#ifdef SILC_RNG_DEBUG
+ SILC_LOG_HEXDUMP(("pool"), rng->pool, sizeof(rng->pool));
+#endif