diff options
author | Lennart Poettering <lennart@poettering.net> | 2003-12-23 00:05:15 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2003-12-23 00:05:15 +0000 |
commit | 33f01df1c95b43b66e2f0bab2b972dd9e03faeb5 (patch) | |
tree | 053f3bcff15d9161e6b2f0c942941052de5fb14f /src/modemman.c | |
parent | 51c0330ea15a28d2d7c83a746458dfd5cf1770bc (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.c | 45 |
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); |