summaryrefslogtreecommitdiffstats
path: root/sbin/gbde/gbde.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-10-07 09:29:59 +0000
committerphk <phk@FreeBSD.org>2003-10-07 09:29:59 +0000
commit18f409c05782afcf041f0245ac5209f2f658fc54 (patch)
treee563723b357da29b4e62cb2c717929da5f3115bc /sbin/gbde/gbde.c
parenta7b8d85b93cd81a3d9e81f17a93f6bb779440767 (diff)
downloadFreeBSD-src-18f409c05782afcf041f0245ac5209f2f658fc54.zip
FreeBSD-src-18f409c05782afcf041f0245ac5209f2f658fc54.tar.gz
Autoload kernel module if necessary.
Submitted by: mr
Diffstat (limited to 'sbin/gbde/gbde.c')
-rw-r--r--sbin/gbde/gbde.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sbin/gbde/gbde.c b/sbin/gbde/gbde.c
index 237b272..c0786a7 100644
--- a/sbin/gbde/gbde.c
+++ b/sbin/gbde/gbde.c
@@ -53,7 +53,10 @@
#include <sys/stat.h>
#include <crypto/rijndael/rijndael.h>
#include <crypto/sha2/sha2.h>
+#include <sys/param.h>
+#include <sys/linker.h>
+#define GBDEMOD "geom_bde"
#define KASSERT(foo, bar) do { if(!(foo)) { warn bar ; exit (1); } } while (0)
#include <geom/geom.h>
@@ -669,6 +672,12 @@ main(int argc, char **argv)
if (argc < 3)
usage("Too few arguments\n");
+ if ((i = kldfind(GBDEMOD)) < 0) {
+ /* need to load the gbde module */
+ if (kldload(GBDEMOD) < 0 || kldfind(GBDEMOD) < 0) {
+ usage(GBDEMOD ": Kernel module not available");
+ }
+ }
doopen = 0;
if (!strcmp(argv[1], "attach")) {
action = ACT_ATTACH;
OpenPOWER on IntegriCloud