summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--INSTALL2
-rw-r--r--NEWS7
-rw-r--r--doc/index.html4
-rw-r--r--doc/mdevd.html13
-rw-r--r--doc/upgrade.html10
-rw-r--r--examples/s6-rc/mdevd-coldplug/dependencies1
-rw-r--r--examples/s6-rc/mdevd-coldplug/type1
-rw-r--r--examples/s6-rc/mdevd-coldplug/up1
-rw-r--r--package/deps.mak2
-rw-r--r--package/info2
-rw-r--r--src/mdevd/mdevd.c16
11 files changed, 51 insertions, 8 deletions
diff --git a/INSTALL b/INSTALL
index fd81250..74a5355 100644
--- a/INSTALL
+++ b/INSTALL
@@ -6,7 +6,7 @@ Build Instructions
- A Linux-based system with a standard C development environment
- GNU make version 3.81 or later
- - skalibs version 2.9.3.0 or later: http://skarnet.org/software/skalibs/
+ - skalibs version 2.10.0.0 or later: http://skarnet.org/software/skalibs/
This software is Linux-specific. It will run on a Linux kernel,
version 2.6.10 or later.
diff --git a/NEWS b/NEWS
index 92add91..4954108 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,12 @@
Changelog for mdevd.
+In 0.1.3.0
+----------
+
+ - Bugfixes.
+ - New -C option for mdevd to trigger a coldplug when ready.
+
+
In 0.1.2.0
----------
diff --git a/doc/index.html b/doc/index.html
index 594196b..0f03ac9 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -98,7 +98,7 @@ and does not pull in any unnecessary code. </li>
The Linux kernel must be 2.6.10 or later. </li>
<li> GNU make, version 3.81 or later </li>
<li> <a href="//skarnet.org/software/skalibs/">skalibs</a> version
-2.9.3.0 or later. It's a build-time requirement. It's also a run-time
+2.10.0.0 or later. It's a build-time requirement. It's also a run-time
requirement if you link against the shared version of the skalibs
library. </li>
</ul>
@@ -114,7 +114,7 @@ library. </li>
<ul>
<li> The current released version of mdevd is
-<a href="mdevd-0.1.2.0.tar.gz">0.1.2.0</a>. </li>
+<a href="mdevd-0.1.3.0.tar.gz">0.1.3.0</a>. </li>
<li> Alternatively, you can checkout a copy of the
<a href="//git.skarnet.org/cgi-bin/cgit.cgi/mdevd/">mdevd
git repository</a>:
diff --git a/doc/mdevd.html b/doc/mdevd.html
index 2ef2dfb..3412253 100644
--- a/doc/mdevd.html
+++ b/doc/mdevd.html
@@ -49,7 +49,7 @@ to running mdevd over mdev. </li>
<h2> Interface </h2>
<pre>
- mdevd [ -v <em>verbosity</em> ] [ -D <em>notif</em> ] [ -o <em>outputfd</em> ] [ -b <em>kbufsz</em> ] [ -f <em>conffile</em> ] [ -n ] [ -s <em>slashsys</em> ] [ -d <em>slashdev</em> ] [ -F <em>fwbase</em> ]
+ mdevd [ -v <em>verbosity</em> ] [ -D <em>notif</em> ] [ -o <em>outputfd</em> ] [ -b <em>kbufsz</em> ] [ -f <em>conffile</em> ] [ -n ] [ -s <em>slashsys</em> ] [ -d <em>slashdev</em> ] [ -F <em>fwbase</em> ] [ -C ]
</pre>
<ul>
@@ -124,6 +124,17 @@ are to be found in <em>slashdev</em>. Default is <tt>/dev</tt>.
<li> <tt>-F</tt>&nbsp;<em>fwbase</em>&nbsp;: assume the firmware files, if any,
are to be found in <em>fwbase</em>. Default is <tt>/lib/firmware</tt>.
<em>fwbase</em> must be an absolute path. </li>
+ <li> <tt>-C</tt>&nbsp;: after initialization (when mdevd is ready), invoke
+<a href="mdevd-coldplug.html">mdevd-coldplug</a>, so that a coldplug is
+automatically performed when mdevd starts. This option should only be used
+in situations where a drop-in replacement for <tt>mdev -d</tt> is needed, because
+it has the drawback of performing a coldplug every time mdevd is started &mdash;
+including when mdevd is killed and restarted. By default, mdevd does not perform
+a coldplug when it starts, and it is up to the administrator to properly organize
+their boot scripts to run <a href="mdevd-coldplug.html">mdevd-coldplug</a> once,
+at boot time, when mdevd is ready. The <tt>examples/s6-rc</tt> subdirectory of
+the mdevd package shows a way to do this with the
+<a href="//skarnet.org/softwre/s6-rc/">s6-rc</a> service manager. </li>
</ul>
<h2> Configuration file </h2>
diff --git a/doc/upgrade.html b/doc/upgrade.html
index 2725faf..7775575 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -18,6 +18,16 @@
<h1> What has changed in mdevd </h1>
+<h2> in 0.1.3.0 </h2>
+
+<ul>
+ <li> <a href="//skarnet.org/software/skalibs/">skalibs</a>
+dependency bumped to 2.10.0.0. </li>
+ <li> A <tt>-C</tt> option has been added to
+<a href="mdevd.html">mdevd</a>. This triggers a coldplug when
+mdevd is ready, for faithful <tt>mdev -d</tt> emulation. </li>
+</ul>
+
<h2> in 0.1.2.0 </h2>
<ul>
diff --git a/examples/s6-rc/mdevd-coldplug/dependencies b/examples/s6-rc/mdevd-coldplug/dependencies
new file mode 100644
index 0000000..3252ded
--- /dev/null
+++ b/examples/s6-rc/mdevd-coldplug/dependencies
@@ -0,0 +1 @@
+mdevd
diff --git a/examples/s6-rc/mdevd-coldplug/type b/examples/s6-rc/mdevd-coldplug/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/s6-rc/mdevd-coldplug/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/s6-rc/mdevd-coldplug/up b/examples/s6-rc/mdevd-coldplug/up
new file mode 100644
index 0000000..edc5c1b
--- /dev/null
+++ b/examples/s6-rc/mdevd-coldplug/up
@@ -0,0 +1 @@
+mdevd-coldplug
diff --git a/package/deps.mak b/package/deps.mak
index 73d84da..a6e8248 100644
--- a/package/deps.mak
+++ b/package/deps.mak
@@ -3,7 +3,7 @@
#
src/mdevd/mdevd-coldplug.o src/mdevd/mdevd-coldplug.lo: src/mdevd/mdevd-coldplug.c
-src/mdevd/mdevd.o src/mdevd/mdevd.lo: src/mdevd/mdevd.c
+src/mdevd/mdevd.o src/mdevd/mdevd.lo: src/mdevd/mdevd.c src/include/mdevd/config.h
mdevd: EXTRA_LIBS := -lskarnet ${MAYBEPTHREAD_LIB}
mdevd: src/mdevd/mdevd.o ${LIBNSSS}
diff --git a/package/info b/package/info
index a7500f8..1020df4 100644
--- a/package/info
+++ b/package/info
@@ -1,4 +1,4 @@
package=mdevd
-version=0.1.2.0
+version=0.1.3.0
category=admin
package_macro_name=MDEVD
diff --git a/src/mdevd/mdevd.c b/src/mdevd/mdevd.c
index 91de3d5..f77fa60 100644
--- a/src/mdevd/mdevd.c
+++ b/src/mdevd/mdevd.c
@@ -41,7 +41,9 @@
#include <skalibs/surf.h>
#include <skalibs/random.h>
-#define USAGE "mdevd [ -v verbosity ] [ -D notif ] [ -o outputfd ] [ -b kbufsz ] [ -f conffile ] [ -n ] [ -s slashsys ] [ -d slashdev ]"
+#include <mdevd/config.h>
+
+#define USAGE "mdevd [ -v verbosity ] [ -D notif ] [ -o outputfd ] [ -b kbufsz ] [ -f conffile ] [ -n ] [ -s slashsys ] [ -d slashdev ] [ -F fwbase ] [ -C ]"
#define dieusage() strerr_dieusage(100, USAGE)
#define CONFBUFSIZE 8192
@@ -1012,12 +1014,13 @@ int main (int argc, char const *const *argv)
unsigned int notif = 0 ;
unsigned int kbufsz = 512288 ;
char const *slashdev = "/dev" ;
+ int docoldplug = 0 ;
PROG = "mdevd" ;
{
subgetopt_t l = SUBGETOPT_ZERO ;
for (;;)
{
- int opt = subgetopt_r(argc, argv, "nv:D:o:b:f:s:d:F:", &l) ;
+ int opt = subgetopt_r(argc, argv, "nv:D:o:b:f:s:d:F:C", &l) ;
if (opt == -1) break ;
switch (opt)
{
@@ -1030,6 +1033,7 @@ int main (int argc, char const *const *argv)
case 's' : slashsys = l.arg ; break ;
case 'd' : slashdev = l.arg ; break ;
case 'F' : fwbase = l.arg ; break ;
+ case 'C' : docoldplug = 1 ; break ;
default : dieusage() ;
}
}
@@ -1107,6 +1111,14 @@ int main (int argc, char const *const *argv)
script[scriptlen++] = scriptelem_catchall ;
script_secondpass(storage, script, envmatch) ;
cont = 2 ;
+ if (docoldplug)
+ {
+ char const *cargv[2] = { MDEVD_BINPREFIX "mdevd-coldplug", 0 } ;
+ char const *cenv = 0 ;
+ if (!child_spawn0(cargv[0], cargv, &cenv))
+ strerr_warnwu2sys("spawn ", cargv[0]) ;
+ docoldplug = 0 ;
+ }
if (notif)
{
fd_write(notif, "\n", 1) ;