Main Page | Data Structures | Directories | File List | Data Fields | Globals

main.c

Go to the documentation of this file.
00001 #include <config.h>
00002 
00003 #include <stdio.h>
00004 #include <stdlib.h>
00005 #include <string.h>
00006 #include <signal.h>
00007 
00008 #include <debug.h>
00009 #include <drive.h>
00010 #include <drivers/drivers.h>
00011 #include <recorder.h>
00012 #include <conf.h>
00013 
00015 
00021 RETSIGTYPE signal_handler(int signal) {
00022     switch(signal) {
00023         case SIGINT:
00024         case SIGABRT:
00025         case SIGTERM:
00026             recorder_export();
00027             exit(-1);
00028         default:
00029             break;
00030     }
00031 #if(RETSIGTYPE != void)
00032     return 0;
00033 #endif
00034 }
00035 
00037 
00044 int main(int argc, char **argv) {
00045     void *data;
00046 
00047     read_conf((argc > 1) ? argv[1] : NULL);
00048 
00049     recorder_init();
00050     signal(SIGINT, signal_handler);
00051     signal(SIGABRT, signal_handler);
00052     signal(SIGTERM, signal_handler);
00053 
00054     data = conf.driver->alloc();
00055 
00056     drive(conf.driver->drive, data);
00057 
00058     conf.driver->free(data);
00059 
00060     recorder_export();
00061 
00062     return 0;
00063 }

Generated on Thu Sep 6 13:13:11 2007 for driver by  doxygen 1.3.9.1