/* XXX: this prototype shouldn't be here (if it should exist at all) */
void rumprun_daemon(void);
+extern int rumprun_cold;
+
#endif /* _RUMPRUN_BASE_RUMPRUN_H_ */
__weak_alias(rump_init_server,rumprun_enosys);
+int rumprun_cold = 1;
+
void
rumprun_boot(char *cmdline)
{
pthread_mutex_init(&w_mtx, NULL);
pthread_cond_init(&w_cv, NULL);
+
+ rumprun_cold = 0;
}
/*
#include <time.h>
#include <unistd.h>
+#include <rumprun-base/rumprun.h>
+
void __dead
_exit(int eval)
{
+
+ if (__predict_false(rumprun_cold)) {
+ printf("\n=== bootstrap failed\n");
+ reboot(0, NULL);
+ /*NOTREACHED*/
+ }
+
if (eval) {
printf("\n=== ERROR: _exit(%d) called ===\n", eval);
} else {