Bug 36418 - pccardd added option to exit after probe
Summary: pccardd added option to exit after probe
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 4.5-STABLE
Hardware: Any Any
: Normal Affects Only Me
Assignee: Warner Losh
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-03-28 10:10 UTC by forrestc
Modified: 2002-09-30 00:00 UTC (History)
0 users

See Also:


Attachments
file.diff (1.47 KB, patch)
2002-03-28 10:10 UTC, forrestc
no flags Details | Diff
file.diff (734 bytes, patch)
2002-03-28 10:10 UTC, forrestc
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description forrestc 2002-03-28 10:10:01 UTC
	pccardd does not contain an option to exit immediately after probing
	the cards.  This is neccessary in low-memory embedded environments
	where the overhead of pccardd running after the initial probe is not
	wanted or needed.

Fix: Patch is attached.   I am currently re-applying this to my source tree 
by hand after each cvsup.  I have tested this and it works (dozens of
486 8MB wireless systems floating around with this patch).

I would appreciate it if a maintainer would look at this and possibly
apply it to the -STABLE tree, if possible.

(Both man page and source file patches are below)

How-To-Repeat: 	N/A
Comment 1 forrestc 2002-03-29 02:34:59 UTC
Revised Patches below....

- Forrest W. Christian (forrestc@imach.com) AC7DE
----------------------------------------------------------------------

--- /usr/src/usr.sbin/pccard/pccardd/pccardd.c	Tue Sep  4 20:51:36 2001
+++ pccardd.c	Thu Mar 28 01:33:51 2002
@@ -156,12 +156,13 @@
 {
 	struct slot *sp;
 	int count, dodebug = 0;
+	int probeonly = 0;
 	int delay = 0;
 	int irq_arg[16];
 	int irq_specified = 0;
 	int i;
 	struct sockaddr_un sun;
-#define	COM_OPTS	":Idvf:s:i:z"
+#define	COM_OPTS	":Idvf:s:i:zx"

 	bzero(irq_arg, sizeof(irq_arg));
 	use_kern_irq = 1;
@@ -196,6 +197,9 @@
 		case 's':
 			sock = optarg;
 			break;
+		case 'x':
+			probeonly = 1;
+			break;
 		case 'z':
 			delay = 1;
 			break;
@@ -224,12 +228,14 @@
 	if (doverbose)
 		dump_config_file();
 	log_setup();
-	if (!dodebug && !delay)
+	if (!dodebug && !delay && !probeonly)
 		if (daemon(0, 0))
 			die("fork failed");
 	slots = readslots();
 	if (slots == 0)
 		die("no PC-CARD slots");
+	if (probeonly)
+		exit(0);
 	if (delay)
 		if (daemon(0, 0))
 			die("fork failed");


--- /usr/src/usr.sbin/pccard/pccardd/pccardd.8	Tue Sep  4 20:51:30 2001
+++ pccardd.8	Thu Mar 28 01:31:28 2002
@@ -35,6 +35,7 @@
 .Nm
 .Op Fl d
 .Op Fl v
+.Op Fl x
 .Op Fl z
 .Op Fl i Ar IRQ
 .Op Fl I
@@ -134,6 +135,14 @@
 .It Fl v
 After reading the configuration file, print out a summary
 of it.
+.It Fl x
+Exits immediately after the cards have been probed and attached.
+This is primarily useful in embedded applications where it is
+desirable to use
+.Nm
+to start PC-CARD devices but prohibitive memory-wise to leave the
+.Nm
+process running.
 .It Fl z
 Delays running as a daemon until after the cards have been probed and attached.
 .It Fl I
Comment 2 Peter Pentchev freebsd_committer freebsd_triage 2002-03-29 12:11:15 UTC
Responsible Changed
From-To: freebsd-bugs->imp

Over to the PC-CARD code maintainer.
Comment 3 Warner Losh freebsd_committer freebsd_triage 2002-09-30 00:00:19 UTC
State Changed
From-To: open->closed

Integrated patch, will MFC eventually.