summaryrefslogtreecommitdiff
path: root/src/gsmd/gsmd.c
diff options
context:
space:
mode:
authorlaforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3>2007-06-02 11:43:55 +0000
committerlaforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3>2007-06-02 11:43:55 +0000
commit912d24fcd318dfb5b615a2d2857fa7e5611fd5ff (patch)
treee2fb844aa5df2cde08e38f5e8ca95c00dbbb961e /src/gsmd/gsmd.c
parentbb9bf7b6d0784d22deeac2c030af450d7b1b3363 (diff)
implement manual override for vendor/machine type
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@2127 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'src/gsmd/gsmd.c')
-rw-r--r--src/gsmd/gsmd.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/gsmd/gsmd.c b/src/gsmd/gsmd.c
index 12c7c3f..27bf8d9 100644
--- a/src/gsmd/gsmd.c
+++ b/src/gsmd/gsmd.c
@@ -158,15 +158,17 @@ static struct option opts[] = {
{ "logfile", 1, NULL, 'l' },
{ "hwflow", 0, NULL, 'F' },
{ "leak-report", 0, NULL, 'L' },
+ { "vendor", 1, NULL, 'v' },
+ { "machine", 1, NULL, 'm' },
{ 0, 0, 0, 0 }
};
static void print_help(void)
{
- printf("gsmd - (C) 2006 by Harald Welte <laforge@gnumonks.org>\n"
+ printf("gsmd - (C) 2006-2007 by Harald Welte <laforge@gnumonks.org>\n"
"This program is FREE SOFTWARE under the terms of GNU GPL\n\n"
"Usage:\n"
- "\t-v\t--version\tDisplay program version\n"
+ "\t-V\t--version\tDisplay program version\n"
"\t-d\t--daemon\tDeamonize\n"
"\t-h\t--help\t\tDisplay this help message\n"
"\t-p dev\t--device dev\tSpecify serial device to be used\n"
@@ -174,6 +176,8 @@ static void print_help(void)
"\t-F\t--hwflow\tHardware Flow Control (RTS/CTS)\n"
"\t-L\t--leak-report\tLeak Report of talloc memory allocator\n"
"\t-l file\t--logfile file\tSpecify a logfile to log to\n"
+ "\t-v\t--vendor v\tSpecify GSM modem vendor plugin\n"
+ "\t-m\t--machine m\tSpecify GSM modem machine plugin\n"
);
}
@@ -200,6 +204,8 @@ int main(int argc, char **argv)
int hwflow = 0;
char *device = "/dev/ttyUSB0";
char *logfile = "syslog";
+ char *vendor_name = NULL;
+ char *machine_name = NULL;
signal(SIGTERM, sig_handler);
signal(SIGINT, sig_handler);
@@ -209,7 +215,7 @@ int main(int argc, char **argv)
gsmd_tallocs = talloc_named_const(NULL, 1, "GSMD");
/*FIXME: parse commandline, set daemonize, device, ... */
- while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:", opts, NULL)) != -1) {
+ while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:v:m:", opts, NULL)) != -1) {
switch (argch) {
case 'V':
/* FIXME */
@@ -240,6 +246,12 @@ int main(int argc, char **argv)
exit(2);
}
break;
+ case 'v':
+ vendor_name = optarg;
+ break;
+ case 'm':
+ machine_name = optarg;
+ break;
}
}
@@ -261,7 +273,7 @@ int main(int argc, char **argv)
exit(1);
}
- if (gsmd_machine_plugin_init(&g) < 0) {
+ if (gsmd_machine_plugin_init(&g, machine_name, vendor_name) < 0) {
fprintf(stderr, "no machine plugins found\n");
exit(1);
}
personal git repositories of Harald Welte. Your mileage may vary