From 1584a74a4acdfb17aab0d6a2b13b18a7799aa37d Mon Sep 17 00:00:00 2001 From: laforge Date: Sat, 2 Sep 2006 10:32:06 +0000 Subject: first compiling (unfinished, not-working) version of userspace gsm infrastructure git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@40 99fdad57-331a-0410-800a-d7fa5415bdb3 --- README.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 README.txt (limited to 'README.txt') diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..5ea8894 --- /dev/null +++ b/README.txt @@ -0,0 +1,54 @@ + + +1. GSMD api towards libgsmd + - provides api for other processes to interact with GSM subsystem + +2. GSMD api towards vendor-specific plugins + - implement vendor-specific AT commands + +3. libgsmd api towards applications + - wraps GSMD-libgsmd api into C functions that can be used by applications + + + +code flow in gsmd: + +- select loop detects data has arrived on user socket + - gsmd_usock_user_cb() + - if this is atcmd passthrough, + - alloc + fill in gsmd_atcmd + - atcmd_submit() + - append it to pending_atcmds + - mark interest of writing to UART + - if this is not passthrough + - do whatever handling, including enqueueing of atcmds +- select loop detects UART is marked writable + - atcmd_select_cb() + - iterate over list of pending_atcmds() + - write a particular atcmd to UART + - move atcmd to busy_atcmds +- select loop detects UART is marked readable + - atcmd_select_cb() + - read up to 1024 bytes into buffer + - llparse_string() + - llparse_byte() + - llparse_append() + - llp->cb == ml_parse() + - if this is not unsolicited + - call cmd->cb() + - alloc + fill ucmd reply + - add to finished_ucmds + - mark user sock writable + - unlink + free atcmd + - if this is unsolicited + - unsolicited_parse() + - usock_evt_send() + - alloc + fill ucmd reply + - add to finished_ucmds + - mark user sock writable +- select loop detects user sock writeability + - gsmd_usock_user_cb() + - iterate over finished_ucmds + - write ucmd + - unlink + free ucmd + -- cgit v1.2.3