diff options
author | laforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3> | 2007-06-02 11:00:07 +0000 |
---|---|---|
committer | laforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3> | 2007-06-02 11:00:07 +0000 |
commit | 1c1d1d68d245ee7ac99d7a553a692c6c3983766e (patch) | |
tree | c3e7694da4bd90df2f2209d9dfea27feb766454d /src/gsmd/gsmd.c | |
parent | 25d5ef89ffc6dfa3eae3af33c335aa6bfec795a4 (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.c | 22 |
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); |