]> www.infradead.org Git - users/mchehab/rasdaemon.git/commitdiff
rasdaemon: make record events optional
authorMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 13 Mar 2013 11:49:09 +0000 (08:49 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 13 Mar 2013 11:49:09 +0000 (08:49 -0300)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
ras-mc-event.c
ras-mc-event.h
rasdaemon.c

index c12963a248e20406f7ba0de2662313eb857edb7b..1e768d2bc65ca828fe67a1f5c0cde21a6ee822d3 100644 (file)
@@ -394,7 +394,7 @@ static void *handle_ras_events_cpu(void *priv)
        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;
@@ -442,7 +442,13 @@ int handle_ras_events(void)
                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);
index 50f9a2e8e935926a61d83f56b401da9e76ee3267..5a048a7115b301571e72a4e342cb848af9f50f66 100644 (file)
@@ -38,7 +38,7 @@ struct pthread_data {
        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
index 6c3d5b411d0aafcfb9341f9ae4c0b0d4ad247df8..16004a8ca5955a6d63ed4e59f97153b7f201e777 100644 (file)
@@ -34,6 +34,7 @@ const char *argp_program_version = TOOL_NAME " " VERSION;
 const char *argp_program_bug_address = "Mauro Carvalho Chehab <mchehab@redhat.com>";
 
 struct arguments {
+       int record_events;
        int enable_ras;
 };
 
@@ -48,6 +49,9 @@ static error_t parse_opt(int k, char *arg, struct argp_state *state)
        case 'd':
                args->enable_ras--;
                break;
+       case 'r':
+               args->record_events++;
+               break;
        default:
                return ARGP_ERR_UNKNOWN;
        }
@@ -61,6 +65,7 @@ int main(int argc, char *argv[])
        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 }
        };
@@ -86,7 +91,7 @@ int main(int argc, char *argv[])
                toggle_ras_mc_event(0);
 
        if (!args.enable_ras)
-               handle_ras_events();
+               handle_ras_events(args.record_events);
 
        return 0;
 }