summaryrefslogtreecommitdiff
path: root/src/libgsmd
diff options
context:
space:
mode:
authorlaforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3>2006-10-09 21:00:45 +0000
committerlaforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3>2006-10-09 21:00:45 +0000
commit561a8d7fa4a003862b2640bd3458c0188ae2eab8 (patch)
tree4f314424060ffe098895ce4c636a842fe9aa6097 /src/libgsmd
parent70b865c8ffd212250caa2c8935541131c5118237 (diff)
intermediate state (this shouldn't be a commit) just to move from one machine to the other
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@70 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'src/libgsmd')
-rw-r--r--src/libgsmd/libgsmd.c39
1 files changed, 32 insertions, 7 deletions
diff --git a/src/libgsmd/libgsmd.c b/src/libgsmd/libgsmd.c
index e514617..7eb2701 100644
--- a/src/libgsmd/libgsmd.c
+++ b/src/libgsmd/libgsmd.c
@@ -3,6 +3,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
@@ -12,6 +13,29 @@
#include "lgsm_internals.h"
+static int lgsm_get_packet(struct lgsm_handle *lh)
+{
+ static char buf[GSMD_MSGSIZE_MAX];
+ struct gsmd_msg_hdr *hdr = (struct gsmd_msg_hdr *) buf;
+ int rc = read(lh->fd, buf, sizeof(buf));
+ if (rc <= 0)
+ return rc;
+
+ if (hdr->version != GSMD_PROTO_VERSION)
+ return -EINVAL;
+
+ switch (hdr->msg_type) {
+ case GSMD_MSG_PASSTHROUGH:
+
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+
static int lgsm_open_backend(struct lgsm_handle *lh, const char *device)
{
int rc;
@@ -33,16 +57,17 @@ static int lgsm_open_backend(struct lgsm_handle *lh, const char *device)
lh->fd = -1;
return rc;
}
- } else {
- /* use direct access to device node ([virtual] tty device) */
- lh->fd = open(device, O_RDWR);
- if (lh->fd < 0)
- return lh->fd;
- }
-
+ } else
+ return -EINVAL;
+
return 0;
}
+int lgsm_fd(struct lgsm_handle *lh)
+{
+ return lh->fd;
+}
+
struct lgsm_handle *lgsm_init(const char *device)
{
struct lgsm_handle *lh = malloc(sizeof(*lh));
personal git repositories of Harald Welte. Your mileage may vary