summaryrefslogtreecommitdiff
path: root/src/gsmd/gsmd.c
diff options
context:
space:
mode:
authorlaforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3>2007-06-02 11:00:07 +0000
committerlaforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3>2007-06-02 11:00:07 +0000
commit1c1d1d68d245ee7ac99d7a553a692c6c3983766e (patch)
treec3e7694da4bd90df2f2209d9dfea27feb766454d /src/gsmd/gsmd.c
parent25d5ef89ffc6dfa3eae3af33c335aa6bfec795a4 (diff)
add machine / vendor plugin infrastructure (Philip Zabel)
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@2123 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'src/gsmd/gsmd.c')
-rw-r--r--src/gsmd/gsmd.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/gsmd/gsmd.c b/src/gsmd/gsmd.c
index 62eb2e0..12c7c3f 100644
--- a/src/gsmd/gsmd.c
+++ b/src/gsmd/gsmd.c
@@ -261,6 +261,21 @@ int main(int argc, char **argv)
exit(1);
}
+ if (gsmd_machine_plugin_init(&g) < 0) {
+ fprintf(stderr, "no machine plugins found\n");
+ exit(1);
+ }
+
+ /* select a machine plugin and load possible vendor plugins */
+ gsmd_machine_plugin_find(&g);
+
+ /* initialize the machine plugin */
+ if (g.machinepl->init &&
+ (g.machinepl->init(&g, fd) < 0)) {
+ fprintf(stderr, "couldn't initialize machine plugin\n");
+ exit(1);
+ }
+
if (atcmd_init(&g, fd) < 0) {
fprintf(stderr, "can't initialize UART device\n");
exit(1);
@@ -282,12 +297,11 @@ int main(int argc, char **argv)
setsid();
}
- /* FIXME: do this dynamically */
- ticalypso_init();
-
+ /* select a vendor plugin */
gsmd_vendor_plugin_find(&g);
- gsmd_initsettings(&g);
+ if (g.interpreter_ready)
+ gsmd_initsettings(&g);
gsmd_opname_init(&g);
personal git repositories of Harald Welte. Your mileage may vary