summaryrefslogtreecommitdiffstats
path: root/src/modemman.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2003-12-23 00:05:15 +0000
committerLennart Poettering <lennart@poettering.net>2003-12-23 00:05:15 +0000
commit33f01df1c95b43b66e2f0bab2b972dd9e03faeb5 (patch)
tree053f3bcff15d9161e6b2f0c942941052de5fb14f /src/modemman.c
parent51c0330ea15a28d2d7c83a746458dfd5cf1770bc (diff)
it compiles and works basically
git-svn-id: file:///home/lennart/svn/public/ivam2/trunk@9 dbf6933d-3bce-0310-9bcc-ed052ba35b35
Diffstat (limited to 'src/modemman.c')
-rw-r--r--src/modemman.c45
1 files changed, 29 insertions, 16 deletions
diff --git a/src/modemman.c b/src/modemman.c
index c156e61..f7521e3 100644
--- a/src/modemman.c
+++ b/src/modemman.c
@@ -1,3 +1,11 @@
+#include <stddef.h>
+#include <assert.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <libdaemon/dlog.h>
+
#include "modemman.h"
#include "modem.h"
@@ -12,27 +20,32 @@ struct llist {
static struct llist *llist = NULL;
static int n_llist = 0;
+static void modem_try_open(const char *dev) {
+ struct modem *m;
+
+ if ((m = modem_open(dev))) {
+ struct llist *l = malloc(sizeof(struct llist));
+ assert(l);
+
+ l->modem = m;
+ l->next = llist;
+ llist = l;
+ n_llist++;
+ }
+}
+
int modem_manager_init(int channels) {
int i;
assert(channels <= MAX_CHANNELS && channels > 0);
assert(n_llist == 0);
+
+ modem_try_open("/dev/ttyz0");
- for (i = TTY_START; i < TTY_START+MAX_CHANNLES && n_llist < channels; i++) {
+ for (i = TTY_START; i < TTY_START+MAX_CHANNELS && n_llist < channels; i++) {
char d[PATH_MAX];
- struct modem *m;
-
snprintf(d, sizeof(d), "/dev/ttyI%i", i);
-
- if (m = modem_open(d)) {
- struct llist *l = malloc(sizeof(struct llist));
- assert(l);
-
- l->modem = m;
- l->next = llist;
- llist = l;
- n_llist++;
- }
+ modem_try_open(d);
}
if (n_llist < channels) {
@@ -49,11 +62,11 @@ void modem_manager_done(void) {
while (llist) {
struct llist *l;
- modem_close(l->modem);
+ modem_close(llist->modem);
l = llist;
- llist = l->next;
+ llist = llist->next;
free(l);
- n_llist = 0;
+ n_llist--;
}
assert(!n_llist && !llist);