#include <sys/types.h>
#include <sys/queue.h>
-#include "xtio.h"
#include "test.h"
#include "sysio.h"
+#include "xtio.h"
int
_test_sysio_startup()
{
int err;
- const char *s;
+ char *arg;
err = _sysio_init();
if (err)
err = drv_init_all();
if (err)
return err;
- s = getenv("SYSIO_NAMESPACE");
- if (s)
- err = _sysio_boot(s);
- else if (!(s = getenv("SYSIO_MANUAL"))) {
+#ifdef SYSIO_TRACING
+ /*
+ * tracing
+ */
+ arg = getenv("SYSIO_TRACING");
+ err = _sysio_boot("trace", arg);
+ if (err)
+ return err;
+#endif
+ /*
+ * namespace
+ */
+ arg = getenv("SYSIO_NAMESPACE");
+ if (!(arg || (arg = getenv("SYSIO_MANUAL")))) {
/*
- * Assume a native mount at root.
+ * Assume a native mount at root with automounts enabled.
*/
- err = _sysio_boot("{mnt,dev=\"native:/\",dir=/,fl=0}");
+ arg = "{mnt,dev=\"native:/\",dir=/,fl=2}";
}
+ err = _sysio_boot("namespace", arg);
if (err)
return err;
-
- s = getenv("SYSIO_CWD");
- if (s) {
- err = chdir(s);
- if (err)
- return err;
- }
-
+#ifdef DEFER_INIT_CWD
+ /*
+ * Current working directory.
+ */
+ arg = getenv("SYSIO_CWD");
+ if (!arg)
+ arg = "/";
+ err = _sysio_boot("cwd", arg);
+ if (err)
+ return err;
+#endif
return 0;
}