return NULL;
}
-int handle_ras_events(void)
+int handle_ras_events(int record_events)
{
int rc, fd, size, page_size, i, cpus;
struct pevent *pevent;
goto free_pevent;
ras->pevent = pevent;
ras->page_size = page_size;
- ras->db = ras_mc_event_opendb(ras);
+
+ if (record_events) {
+ ras->db = ras_mc_event_opendb(ras);
+
+ if (ras->db)
+ printf("Recording events\n");
+ }
pevent_register_event_handler(pevent, -1, "ras", "mc_event",
ras_mc_event_handler, ras);
int cpu;
};
-int handle_ras_events(void);
+int handle_ras_events(int record_events);
int toggle_ras_mc_event(int enable);
#endif
\ No newline at end of file
const char *argp_program_bug_address = "Mauro Carvalho Chehab <mchehab@redhat.com>";
struct arguments {
+ int record_events;
int enable_ras;
};
case 'd':
args->enable_ras--;
break;
+ case 'r':
+ args->record_events++;
+ break;
default:
return ARGP_ERR_UNKNOWN;
}
const struct argp_option options[] = {
{"enable", 'e', 0, 0, "enable RAS events and exit", 0},
{"disable", 'd', 0, 0, "disable RAS events and exit", 0},
+ {"record", 'r', 0, 0, "record events via sqlite3", 0},
{ 0, 0, 0, 0, 0, 0 }
};
toggle_ras_mc_event(0);
if (!args.enable_ras)
- handle_ras_events();
+ handle_ras_events(args.record_events);
return 0;
}