aboutsummaryrefslogtreecommitdiff
path: root/sys/geom
diff options
context:
space:
mode:
Diffstat (limited to 'sys/geom')
-rw-r--r--sys/geom/bde/g_bde.c3
-rw-r--r--sys/geom/cache/g_cache.c2
-rw-r--r--sys/geom/concat/g_concat.c1
-rw-r--r--sys/geom/eli/g_eli.c1
-rw-r--r--sys/geom/gate/g_gate.c2
-rw-r--r--sys/geom/geom_bsd.c3
-rw-r--r--sys/geom/geom_fox.c3
-rw-r--r--sys/geom/geom_mbr.c3
-rw-r--r--sys/geom/geom_pc98.c3
-rw-r--r--sys/geom/geom_sunlabel.c3
-rw-r--r--sys/geom/geom_vol_ffs.c3
-rw-r--r--sys/geom/journal/g_journal.c1
-rw-r--r--sys/geom/label/g_label.c2
-rw-r--r--sys/geom/linux_lvm/g_linux_lvm.c2
-rw-r--r--sys/geom/mirror/g_mirror.c1
-rw-r--r--sys/geom/multipath/g_multipath.c1
-rw-r--r--sys/geom/part/g_part_apm.c3
-rw-r--r--sys/geom/part/g_part_bsd.c3
-rw-r--r--sys/geom/part/g_part_ebr.c8
-rw-r--r--sys/geom/part/g_part_gpt.c3
-rw-r--r--sys/geom/part/g_part_mbr.c3
-rw-r--r--sys/geom/part/g_part_pc98.c3
-rw-r--r--sys/geom/part/g_part_vtoc8.c3
-rw-r--r--sys/geom/raid3/g_raid3.c1
-rw-r--r--sys/geom/shsec/g_shsec.c1
-rw-r--r--sys/geom/stripe/g_stripe.c1
-rw-r--r--sys/geom/uzip/g_uzip.c3
-rw-r--r--sys/geom/virstor/g_virstor.c2
28 files changed, 68 insertions, 0 deletions
diff --git a/sys/geom/bde/g_bde.c b/sys/geom/bde/g_bde.c
index 696c70fdc267..bd4b10770f69 100644
--- a/sys/geom/bde/g_bde.c
+++ b/sys/geom/bde/g_bde.c
@@ -41,6 +41,7 @@
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/kthread.h>
+#include <sys/sysctl.h>
#include <crypto/rijndael/rijndael-api-fst.h>
#include <crypto/sha2/sha2.h>
@@ -48,6 +49,8 @@
#include <geom/bde/g_bde.h>
#define BDE_CLASS_NAME "BDE"
+FEATURE(geom_bde, "GEOM-based Disk Encryption");
+
static void
g_bde_start(struct bio *bp)
{
diff --git a/sys/geom/cache/g_cache.c b/sys/geom/cache/g_cache.c
index 7be8cb34385c..01c787390b08 100644
--- a/sys/geom/cache/g_cache.c
+++ b/sys/geom/cache/g_cache.c
@@ -42,6 +42,8 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/cache/g_cache.h>
+FEATURE(geom_cache, "GEOM cache module");
+
static MALLOC_DEFINE(M_GCACHE, "gcache_data", "GEOM_CACHE Data");
SYSCTL_DECL(_kern_geom);
diff --git a/sys/geom/concat/g_concat.c b/sys/geom/concat/g_concat.c
index 545cb8f4ce7a..85d8a21b3e83 100644
--- a/sys/geom/concat/g_concat.c
+++ b/sys/geom/concat/g_concat.c
@@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/concat/g_concat.h>
+FEATURE(geom_concat, "GEOM concatenation support");
static MALLOC_DEFINE(M_CONCAT, "concat_data", "GEOM_CONCAT Data");
diff --git a/sys/geom/eli/g_eli.c b/sys/geom/eli/g_eli.c
index d1c31bde599a..0dd0d0cdaee5 100644
--- a/sys/geom/eli/g_eli.c
+++ b/sys/geom/eli/g_eli.c
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$");
#include <geom/eli/g_eli.h>
#include <geom/eli/pkcs5v2.h>
+FEATURE(geom_eli, "GEOM crypto module");
MALLOC_DEFINE(M_ELI, "eli data", "GEOM_ELI Data");
diff --git a/sys/geom/gate/g_gate.c b/sys/geom/gate/g_gate.c
index e035f97fbefa..7951209a95f4 100644
--- a/sys/geom/gate/g_gate.c
+++ b/sys/geom/gate/g_gate.c
@@ -53,6 +53,8 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/gate/g_gate.h>
+FEATURE(geom_gate, "GEOM Gate module");
+
static MALLOC_DEFINE(M_GATE, "gg_data", "GEOM Gate Data");
SYSCTL_DECL(_kern_geom);
diff --git a/sys/geom/geom_bsd.c b/sys/geom/geom_bsd.c
index 7c3d2273b31e..c5b92520c1a8 100644
--- a/sys/geom/geom_bsd.c
+++ b/sys/geom/geom_bsd.c
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/endian.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <sys/kernel.h>
#include <sys/fcntl.h>
#include <sys/conf.h>
@@ -60,6 +61,8 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/geom_slice.h>
+FEATURE(geom_bsd, "GEOM BSD disklabels support");
+
#define BSD_CLASS_NAME "BSD"
#define ALPHA_LABEL_OFFSET 64
diff --git a/sys/geom/geom_fox.c b/sys/geom/geom_fox.c
index d943d859340c..2fea00d963a5 100644
--- a/sys/geom/geom_fox.c
+++ b/sys/geom/geom_fox.c
@@ -37,6 +37,7 @@
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <sys/kernel.h>
#include <sys/conf.h>
#include <sys/bio.h>
@@ -52,6 +53,8 @@
#define FOX_CLASS_NAME "FOX"
#define FOX_MAGIC "GEOM::FOX"
+FEATURE(geom_fox, "GEOM FOX redundant path mitigation support");
+
struct g_fox_softc {
off_t mediasize;
u_int sectorsize;
diff --git a/sys/geom/geom_mbr.c b/sys/geom/geom_mbr.c
index 6b034ba833b5..6a736a74c4fc 100644
--- a/sys/geom/geom_mbr.c
+++ b/sys/geom/geom_mbr.c
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
#include <sys/errno.h>
#include <sys/endian.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <sys/kernel.h>
#include <sys/fcntl.h>
#include <sys/malloc.h>
@@ -50,6 +51,8 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/geom_slice.h>
+FEATURE(geom_mbr, "GEOM DOS/MBR partitioning support");
+
#define MBR_CLASS_NAME "MBR"
#define MBREXT_CLASS_NAME "MBREXT"
diff --git a/sys/geom/geom_pc98.c b/sys/geom/geom_pc98.c
index 4f89958dfc58..ffc48bd2f1b4 100644
--- a/sys/geom/geom_pc98.c
+++ b/sys/geom/geom_pc98.c
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/endian.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <sys/kernel.h>
#include <sys/fcntl.h>
#include <sys/malloc.h>
@@ -47,6 +48,8 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/geom_slice.h>
+FEATURE(geom_pc98, "GEOM NEC PC9800 partitioning support");
+
#define PC98_CLASS_NAME "PC98"
struct g_pc98_softc {
diff --git a/sys/geom/geom_sunlabel.c b/sys/geom/geom_sunlabel.c
index e9002de7fd6a..f05b7e622477 100644
--- a/sys/geom/geom_sunlabel.c
+++ b/sys/geom/geom_sunlabel.c
@@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/endian.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <sys/kernel.h>
#include <sys/conf.h>
#include <sys/bio.h>
@@ -51,6 +52,8 @@ __FBSDID("$FreeBSD$");
#include <geom/geom_slice.h>
#include <machine/endian.h>
+FEATURE(geom_sunlabel, "GEOM Sun/Solaris partitioning support");
+
#define SUNLABEL_CLASS_NAME "SUN"
struct g_sunlabel_softc {
diff --git a/sys/geom/geom_vol_ffs.c b/sys/geom/geom_vol_ffs.c
index c21b1b6c81f5..4fa4da599893 100644
--- a/sys/geom/geom_vol_ffs.c
+++ b/sys/geom/geom_vol_ffs.c
@@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/errno.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/bio.h>
@@ -42,6 +43,8 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/geom_slice.h>
+FEATURE(geom_vol, "GEOM support for volume names from UFS superblock");
+
#define VOL_FFS_CLASS_NAME "VOL_FFS"
static int superblocks[] = SBLOCKSEARCH;
diff --git a/sys/geom/journal/g_journal.c b/sys/geom/journal/g_journal.c
index f3f9072052a3..48c03a1cd5c2 100644
--- a/sys/geom/journal/g_journal.c
+++ b/sys/geom/journal/g_journal.c
@@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$");
#include <geom/journal/g_journal.h>
+FEATURE(geom_journal, "GEOM journaling support");
/*
* On-disk journal format:
diff --git a/sys/geom/label/g_label.c b/sys/geom/label/g_label.c
index c45828949dc3..bee7a8505749 100644
--- a/sys/geom/label/g_label.c
+++ b/sys/geom/label/g_label.c
@@ -36,10 +36,12 @@ __FBSDID("$FreeBSD$");
#include <sys/bio.h>
#include <sys/malloc.h>
#include <sys/libkern.h>
+#include <sys/sysctl.h>
#include <geom/geom.h>
#include <geom/geom_slice.h>
#include <geom/label/g_label.h>
+FEATURE(geom_label, "GEOM labeling support");
SYSCTL_DECL(_kern_geom);
SYSCTL_NODE(_kern_geom, OID_AUTO, label, CTLFLAG_RW, 0, "GEOM_LABEL stuff");
diff --git a/sys/geom/linux_lvm/g_linux_lvm.c b/sys/geom/linux_lvm/g_linux_lvm.c
index d210611702ce..2ac19e06958f 100644
--- a/sys/geom/linux_lvm/g_linux_lvm.c
+++ b/sys/geom/linux_lvm/g_linux_lvm.c
@@ -42,6 +42,8 @@ __FBSDID("$FreeBSD$");
#include <geom/linux_lvm/g_linux_lvm.h>
+FEATURE(geom_linux_lvm, "GEOM Linux LVM partitioning support");
+
/* Declare malloc(9) label */
static MALLOC_DEFINE(M_GLLVM, "gllvm", "GEOM_LINUX_LVM Data");
diff --git a/sys/geom/mirror/g_mirror.c b/sys/geom/mirror/g_mirror.c
index 41d35e45d34f..326851f96c9d 100644
--- a/sys/geom/mirror/g_mirror.c
+++ b/sys/geom/mirror/g_mirror.c
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
#include <sys/sched.h>
#include <geom/mirror/g_mirror.h>
+FEATURE(geom_mirror, "GEOM mirroring support");
static MALLOC_DEFINE(M_MIRROR, "mirror_data", "GEOM_MIRROR Data");
diff --git a/sys/geom/multipath/g_multipath.c b/sys/geom/multipath/g_multipath.c
index 8806b589f0e5..6c53f4163c40 100644
--- a/sys/geom/multipath/g_multipath.c
+++ b/sys/geom/multipath/g_multipath.c
@@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/multipath/g_multipath.h>
+FEATURE(geom_multipath, "GEOM multipath support");
SYSCTL_DECL(_kern_geom);
SYSCTL_NODE(_kern_geom, OID_AUTO, multipath, CTLFLAG_RW, 0,
diff --git a/sys/geom/part/g_part_apm.c b/sys/geom/part/g_part_apm.c
index c73d7f6f0982..1a1a3bd28606 100644
--- a/sys/geom/part/g_part_apm.c
+++ b/sys/geom/part/g_part_apm.c
@@ -41,11 +41,14 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <geom/geom.h>
#include <geom/part/g_part.h>
#include "g_part_if.h"
+FEATURE(geom_part_apm, "GEOM partitioning class for Apple-style partitions");
+
struct g_part_apm_table {
struct g_part_table base;
struct apm_ddr ddr;
diff --git a/sys/geom/part/g_part_bsd.c b/sys/geom/part/g_part_bsd.c
index e51a22ff35c1..61fe89a41411 100644
--- a/sys/geom/part/g_part_bsd.c
+++ b/sys/geom/part/g_part_bsd.c
@@ -40,11 +40,14 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <geom/geom.h>
#include <geom/part/g_part.h>
#include "g_part_if.h"
+FEATURE(geom_part_bsd, "GEOM partitioning class for BSD disklabels");
+
struct g_part_bsd_table {
struct g_part_table base;
u_char *bbarea;
diff --git a/sys/geom/part/g_part_ebr.c b/sys/geom/part/g_part_ebr.c
index 7bf0c55a07e2..5f665ca45219 100644
--- a/sys/geom/part/g_part_ebr.c
+++ b/sys/geom/part/g_part_ebr.c
@@ -42,11 +42,19 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <geom/geom.h>
#include <geom/part/g_part.h>
#include "g_part_if.h"
+FEATURE(geom_part_ebr,
+ "GEOM partitioning class for extended boot records support");
+#if defined(GEOM_PART_EBR_COMPAT)
+FEATURE(geom_part_ebr_compat,
+ "GEOM EBR partitioning class: backward-compatible partition names");
+#endif
+
#define EBRSIZE 512
struct g_part_ebr_table {
diff --git a/sys/geom/part/g_part_gpt.c b/sys/geom/part/g_part_gpt.c
index d0896b8e11f7..9e897a4393ba 100644
--- a/sys/geom/part/g_part_gpt.c
+++ b/sys/geom/part/g_part_gpt.c
@@ -41,12 +41,15 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <sys/uuid.h>
#include <geom/geom.h>
#include <geom/part/g_part.h>
#include "g_part_if.h"
+FEATURE(geom_part_gpt, "GEOM partitioning class for GPT partitions support");
+
CTASSERT(offsetof(struct gpt_hdr, padding) == 92);
CTASSERT(sizeof(struct gpt_ent) == 128);
diff --git a/sys/geom/part/g_part_mbr.c b/sys/geom/part/g_part_mbr.c
index c39c92fb2307..63b7e6448aa9 100644
--- a/sys/geom/part/g_part_mbr.c
+++ b/sys/geom/part/g_part_mbr.c
@@ -40,11 +40,14 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <geom/geom.h>
#include <geom/part/g_part.h>
#include "g_part_if.h"
+FEATURE(geom_part_mbr, "GEOM partitioning class for MBR support");
+
#define MBRSIZE 512
struct g_part_mbr_table {
diff --git a/sys/geom/part/g_part_pc98.c b/sys/geom/part/g_part_pc98.c
index e7b334195082..d8aa87d2bc39 100644
--- a/sys/geom/part/g_part_pc98.c
+++ b/sys/geom/part/g_part_pc98.c
@@ -40,11 +40,14 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <geom/geom.h>
#include <geom/part/g_part.h>
#include "g_part_if.h"
+FEATURE(geom_part_pc98, "GEOM partitioning class for PC-9800 disk partitions");
+
#define SECSIZE 512
#define MENUSIZE 7168
#define BOOTSIZE 8192
diff --git a/sys/geom/part/g_part_vtoc8.c b/sys/geom/part/g_part_vtoc8.c
index d22c5b1af9d6..e59c8e4454f5 100644
--- a/sys/geom/part/g_part_vtoc8.c
+++ b/sys/geom/part/g_part_vtoc8.c
@@ -39,12 +39,15 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <sys/vtoc.h>
#include <geom/geom.h>
#include <geom/part/g_part.h>
#include "g_part_if.h"
+FEATURE(geom_part_vtoc8, "GEOM partitioning class for SMI VTOC8 disk labels");
+
struct g_part_vtoc8_table {
struct g_part_table base;
struct vtoc8 vtoc;
diff --git a/sys/geom/raid3/g_raid3.c b/sys/geom/raid3/g_raid3.c
index 110b3f9ef779..6cc20947ef54 100644
--- a/sys/geom/raid3/g_raid3.c
+++ b/sys/geom/raid3/g_raid3.c
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
#include <sys/sched.h>
#include <geom/raid3/g_raid3.h>
+FEATURE(geom_raid3, "GEOM RAID-3 functionality");
static MALLOC_DEFINE(M_RAID3, "raid3_data", "GEOM_RAID3 Data");
diff --git a/sys/geom/shsec/g_shsec.c b/sys/geom/shsec/g_shsec.c
index 7be39bb648db..ee2cf4bab554 100644
--- a/sys/geom/shsec/g_shsec.c
+++ b/sys/geom/shsec/g_shsec.c
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/shsec/g_shsec.h>
+FEATURE(geom_shsec, "GEOM shared secret device support");
static MALLOC_DEFINE(M_SHSEC, "shsec_data", "GEOM_SHSEC Data");
diff --git a/sys/geom/stripe/g_stripe.c b/sys/geom/stripe/g_stripe.c
index a79928471e6a..add0be0f3132 100644
--- a/sys/geom/stripe/g_stripe.c
+++ b/sys/geom/stripe/g_stripe.c
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
#include <geom/geom.h>
#include <geom/stripe/g_stripe.h>
+FEATURE(geom_stripe, "GEOM striping support");
static MALLOC_DEFINE(M_STRIPE, "stripe_data", "GEOM_STRIPE Data");
diff --git a/sys/geom/uzip/g_uzip.c b/sys/geom/uzip/g_uzip.c
index 2301efbe0e19..c8b0dfccae4c 100644
--- a/sys/geom/uzip/g_uzip.c
+++ b/sys/geom/uzip/g_uzip.c
@@ -36,10 +36,13 @@ __FBSDID("$FreeBSD$");
#include <sys/mutex.h>
#include <sys/malloc.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <geom/geom.h>
#include <net/zlib.h>
+FEATURE(geom_uzip, "GEOM uzip read-only compressed disks support");
+
#undef GEOM_UZIP_DEBUG
#ifdef GEOM_UZIP_DEBUG
#define DPRINTF(a) printf a
diff --git a/sys/geom/virstor/g_virstor.c b/sys/geom/virstor/g_virstor.c
index 38ce78283c8a..d48a2b1ef9a1 100644
--- a/sys/geom/virstor/g_virstor.c
+++ b/sys/geom/virstor/g_virstor.c
@@ -52,6 +52,8 @@ __FBSDID("$FreeBSD$");
#include <geom/virstor/g_virstor.h>
#include <geom/virstor/g_virstor_md.h>
+FEATURE(g_virstor, "GEOM virtual storage support");
+
/* Declare malloc(9) label */
static MALLOC_DEFINE(M_GVIRSTOR, "gvirstor", "GEOM_VIRSTOR Data");