diff options
author | phk <phk@FreeBSD.org> | 2003-10-07 09:29:59 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-10-07 09:29:59 +0000 |
commit | 18f409c05782afcf041f0245ac5209f2f658fc54 (patch) | |
tree | e563723b357da29b4e62cb2c717929da5f3115bc /sbin/gbde | |
parent | a7b8d85b93cd81a3d9e81f17a93f6bb779440767 (diff) | |
download | FreeBSD-src-18f409c05782afcf041f0245ac5209f2f658fc54.zip FreeBSD-src-18f409c05782afcf041f0245ac5209f2f658fc54.tar.gz |
Autoload kernel module if necessary.
Submitted by: mr
Diffstat (limited to 'sbin/gbde')
-rw-r--r-- | sbin/gbde/gbde.c | 9 |
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; |