#ifndef _BMKCOMMON_RUMPRUN_CONFIG_H_
#define _BMKCOMMON_RUMPRUN_CONFIG_H_
-void _rumprun_config(void);
+void _rumprun_config(const char *);
void _rumprun_deconfig(void);
#endif /* _BMKCOMMON_RUMPRUN_CONFIG_H_ */
#ifndef _RUMPRUN_BASE_RUMPRUN_H_
#define _RUMPRUN_BASE_RUMPRUN_H_
-void rumprun_boot(void);
+void rumprun_boot(const char *);
void * rumprun(int (*)(int, char *[]), int, char *[]);
int rumprun_wait(void *);
static pthread_cond_t w_cv;
void
-rumprun_boot(void)
+rumprun_boot(const char *cmdline)
{
rump_boot_setsigmodel(RUMP_SIGMODEL_IGNORE);
#ifdef RUMP_SYSPROXY
rump_init_server("tcp://0:12345");
#endif
- _rumprun_config();
+ _rumprun_config(cmdline);
/*
* give all threads a chance to run, and ensure that the main
#include <rumprun-base/rumprun.h>
void
-bmk_mainthread(void *notused)
+bmk_mainthread(void *cmdline)
{
char *argv[] = {"bmk_main", 0};
void *cookie;
- rumprun_boot();
+ rumprun_boot(cmdline);
cookie = rumprun(main, 1, argv);
rumprun_wait(cookie);
bmk_isr_init();
/* enough bootstrap already, jump to main thread */
- bmk_sched_init(bmk_mainthread, NULL);
+ bmk_sched_init(bmk_mainthread, (void *)mbi->cmdline);
}
/*
*/
void
-_rumprun_config(void)
+_rumprun_config(const char *cmdline)
{
/* le hack */
argv[nargs+1] = 0;
argv[nargs+2] = 0;
- rumprun_boot();
+ rumprun_boot(NULL); /* Xen doesn't use cmdline the same way (yet?) */
cookie = rumprun(main, nargs+1, argv);
rumprun_wait(cookie);
}
void
-_rumprun_config(void)
+_rumprun_config(const char *cmdline_unused)
{
char *err = NULL;
xenbus_transaction_t txn;