return 0;
}
-static const struct fres_res_manager frm = {
+static struct fres_res_manager frm = {
.res_type = FRSH_RT_PROCESSOR,
.res_id = FRSH_CPU_ID_DEFAULT,
.admission_test = aqcpu_admtest,
usage(void)
{
printf("usage: frm_aqcpu [ options ]\n");
+ printf(" -d, --daemon [pid-file] go to background after FORB initialization\n");
printf(" -l, --loglevel <number>|<domain>=<number>,...\n");
}
int ret;
forb_init_attr_t attr = { .orb_id = "org.frescor.frm.aqcpu" };
int opt;
+ bool opt_daemon = false;
+ char *opt_pidfile = NULL;
ul_logreg_domain(&ulogd_frm_aqcpu);
- while ((opt = getopt_long(argc, argv, "l:", &long_opts[0], NULL)) != EOF) {
+ while ((opt = getopt_long(argc, argv, "d::hl:", &long_opts[0], NULL)) != EOF) {
switch (opt) {
+ case 'd':
+ opt_daemon = true;
+ opt_pidfile = optarg;
+ break;
case 'l':
ul_log_domain_arg2levels(optarg);
break;
}
}
+ if (opt_daemon)
+ forb_daemon_prepare(opt_pidfile);
+
orb = forb_init(&argc, &argv, &attr);
if (!orb) error(1, errno, "forb_init");
-
+
+ frm.res_id = frsh_get_local_cpu_id();
ret = frm_register_and_run(orb, &frm);
if (ret != 0) {