int rumpuser_init(int version, const struct rumpuser_hyperup *hyp) { if (version != RUMPUSER_VERSION) { fprintf(stderr, "rumpuser mismatch, kern: %d, hypervisor %d\n", version, RUMPUSER_VERSION); return 1; } #ifdef RUMPUSER_USE_DEVRANDOM uint32_t rv; int fd; if ((fd = open("/dev/urandom", O_RDONLY)) == -1) { srandom(time(NULL)); } else { if (read(fd, &rv, sizeof(rv)) != sizeof(rv)) srandom(time(NULL)); else srandom(rv); close(fd); } #endif rumpuser__thrinit(); rumpuser__hyp = *hyp; return 0; }
int rumpuser_init(int version, const struct rumpuser_hyperup *hyp) { if (version != 17) return 1; /* EKERNELMISMATCH */ mutex_init(&printmtx); rumpuser__thrinit(); rumpuser__hyp = *hyp; return 0; }