summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorhosokawa <hosokawa@FreeBSD.org>1998-02-27 08:19:25 +0000
committerhosokawa <hosokawa@FreeBSD.org>1998-02-27 08:19:25 +0000
commitffec1d6f3e6c1b3ff1a6d8cfeb40b92e1b1264a1 (patch)
tree41513589c2c33e0319ffe52adb20f98df30bad24 /usr.sbin
parent7dc5b867a8278a51c55033b18ab987fcf181a449 (diff)
downloadFreeBSD-src-ffec1d6f3e6c1b3ff1a6d8cfeb40b92e1b1264a1.zip
FreeBSD-src-ffec1d6f3e6c1b3ff1a6d8cfeb40b92e1b1264a1.tar.gz
Moved main() to a new file (pccardd.c).
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/pccard/pccardd/Makefile2
-rw-r--r--usr.sbin/pccard/pccardd/cardd.c77
-rw-r--r--usr.sbin/pccard/pccardd/cardd.h7
-rw-r--r--usr.sbin/pccard/pccardd/pccardd.c106
4 files changed, 115 insertions, 77 deletions
diff --git a/usr.sbin/pccard/pccardd/Makefile b/usr.sbin/pccard/pccardd/Makefile
index 75ae2cd..af70e31 100644
--- a/usr.sbin/pccard/pccardd/Makefile
+++ b/usr.sbin/pccard/pccardd/Makefile
@@ -1,7 +1,7 @@
# Makefile for pccardd
PROG= pccardd
-SRCS= cardd.c file.c util.c readcis.c printcis.c
+SRCS= pccardd.c cardd.c file.c util.c readcis.c printcis.c
MAN8= pccardd.8
MAN5= pccard.conf.5
DPADD= ${LIBUTIL}
diff --git a/usr.sbin/pccard/pccardd/cardd.c b/usr.sbin/pccard/pccardd/cardd.c
index 17dd99d..7e8d47d 100644
--- a/usr.sbin/pccard/pccardd/cardd.c
+++ b/usr.sbin/pccard/pccardd/cardd.c
@@ -26,98 +26,25 @@
#ifndef lint
static const char rcsid[] =
- "$Id: cardd.c,v 1.23 1997/12/08 06:35:07 nate Exp $";
+ "$Id: cardd.c,v 1.24 1998/02/04 20:19:39 guido Exp $";
#endif /* not lint */
-#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <fcntl.h>
#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/time.h>
#define EXTERN
#include "cardd.h"
-char *config_file = "/etc/pccard.conf";
-
static struct card_config *assign_driver(struct card *);
static int assign_io(struct slot *);
static int setup_slot(struct slot *);
static void card_inserted(struct slot *);
static void card_removed(struct slot *);
-static void dump_config_file(void);
static void pr_cmd(struct cmd *);
static void read_ether(struct slot *);
-static void readslots(void);
-static void slot_change(struct slot *);
-
-/*
- * mainline code for cardd
- */
-int
-main(int argc, char *argv[])
-{
- struct slot *sp;
- int count, debug = 0;
- int verbose = 0;
-
- while ((count = getopt(argc, argv, ":dvf:")) != -1) {
- switch (count) {
- case 'd':
- setbuf(stdout, 0);
- setbuf(stderr, 0);
- debug = 1;
- break;
- case 'v':
- verbose = 1;
- break;
- case 'f':
- config_file = optarg;
- break;
- case ':':
- die("no config file argument");
- break;
- case '?':
- die("illegal option");
- break;
- }
- }
-#ifdef DEBUG
- debug = 1;
-#endif
- io_avail = bit_alloc(IOPORTS); /* Only supports ISA ports */
-
- /* Mem allocation done in MEMUNIT units. */
- mem_avail = bit_alloc(MEMBLKS);
- readfile(config_file);
- if (verbose)
- dump_config_file();
- log_setup();
- if (!debug)
- if (daemon(0, 0))
- die("fork failed");
- readslots();
- if (slots == 0)
- die("no PC-CARD slots");
- logmsg("pccardd started", NULL);
- for (;;) {
- fd_set mask;
- FD_ZERO(&mask);
- for (sp = slots; sp; sp = sp->next)
- FD_SET(sp->fd, &mask);
- count = select(32, 0, 0, &mask, 0);
- if (count == -1) {
- logerr("select");
- continue;
- }
- if (count)
- for (sp = slots; sp; sp = sp->next)
- if (FD_ISSET(sp->fd, &mask))
- slot_change(sp);
- }
-}
/*
* Dump configuration file data.
diff --git a/usr.sbin/pccard/pccardd/cardd.h b/usr.sbin/pccard/pccardd/cardd.h
index ab27a4f..a5b63e6 100644
--- a/usr.sbin/pccard/pccardd/cardd.h
+++ b/usr.sbin/pccard/pccardd/cardd.h
@@ -23,7 +23,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: cardd.h,v 1.9 1997/11/18 21:08:13 nate Exp $
+ * $Id: cardd.h,v 1.10 1997/11/19 02:31:39 nate Exp $
*
* Common include file for PCMCIA daemon
*/
@@ -123,6 +123,11 @@ EXTERN bitstr_t *io_avail;
EXTERN int verbose;
+/* cardd.c functions */
+void dump_config_file(void);
+void readslots(void);
+void slot_change(struct slot *);
+
/* util.c functions */
unsigned long alloc_memory(int);
int bit_fns(bitstr_t *, int, int);
diff --git a/usr.sbin/pccard/pccardd/pccardd.c b/usr.sbin/pccard/pccardd/pccardd.c
new file mode 100644
index 0000000..4ad682c
--- /dev/null
+++ b/usr.sbin/pccard/pccardd/pccardd.c
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 1995 Andrew McRae. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef lint
+static const char rcsid[] =
+ "$Id: cardd.c,v 1.24 1998/02/04 20:19:39 guido Exp $";
+#endif /* not lint */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#define EXTERN
+#include "cardd.h"
+
+char *config_file = "/etc/pccard.conf";
+
+/*
+ * mainline code for cardd
+ */
+int
+main(int argc, char *argv[])
+{
+ struct slot *sp;
+ int count, debug = 0;
+ int verbose = 0;
+
+ while ((count = getopt(argc, argv, ":dvf:")) != -1) {
+ switch (count) {
+ case 'd':
+ setbuf(stdout, 0);
+ setbuf(stderr, 0);
+ debug = 1;
+ break;
+ case 'v':
+ verbose = 1;
+ break;
+ case 'f':
+ config_file = optarg;
+ break;
+ case ':':
+ die("no config file argument");
+ break;
+ case '?':
+ die("illegal option");
+ break;
+ }
+ }
+#ifdef DEBUG
+ debug = 1;
+#endif
+ io_avail = bit_alloc(IOPORTS); /* Only supports ISA ports */
+
+ /* Mem allocation done in MEMUNIT units. */
+ mem_avail = bit_alloc(MEMBLKS);
+ readfile(config_file);
+ if (verbose)
+ dump_config_file();
+ log_setup();
+ if (!debug)
+ if (daemon(0, 0))
+ die("fork failed");
+ readslots();
+ if (slots == 0)
+ die("no PC-CARD slots");
+ logmsg("pccardd started", NULL);
+ for (;;) {
+ fd_set mask;
+ FD_ZERO(&mask);
+ for (sp = slots; sp; sp = sp->next)
+ FD_SET(sp->fd, &mask);
+ count = select(32, 0, 0, &mask, 0);
+ if (count == -1) {
+ logerr("select");
+ continue;
+ }
+ if (count)
+ for (sp = slots; sp; sp = sp->next)
+ if (FD_ISSET(sp->fd, &mask))
+ slot_change(sp);
+ }
+}
OpenPOWER on IntegriCloud