summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authornetchild <netchild@FreeBSD.org>2011-02-25 10:24:35 +0000
committernetchild <netchild@FreeBSD.org>2011-02-25 10:24:35 +0000
commit6bf702a55bf6e540929bc37a97ba26e51394a94c (patch)
tree9d3d4c4ac744558b0f121bc95130f956f192c80f /sys
parentcc4128c6b1ffcb09a70e70959874cc2bb6e81d0e (diff)
downloadFreeBSD-src-6bf702a55bf6e540929bc37a97ba26e51394a94c.zip
FreeBSD-src-6bf702a55bf6e540929bc37a97ba26e51394a94c.tar.gz
Add some FEATURE macros for various GEOM classes.
No FreeBSD version bump, the userland application to query the features will be committed last and can serve as an indication of the availablility if needed. Sponsored by: Google Summer of Code 2010 Submitted by: kibab Reviewed by: silence on geom@ during 2 weeks X-MFC after: to be determined in last commit with code from this project
Diffstat (limited to 'sys')
-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 696c70f..bd4b107 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 7be8cb3..01c7873 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 545cb8f..85d8a21 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 d1c31bd..0dd0d0c 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 e035f97..7951209 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 7c3d227..c5b9252 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 d943d85..2fea00d 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 6b034ba..6a736a7 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 4f89958..ffc48bd 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 e9002de..f05b7e6 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 c21b1b6..4fa4da5 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 f3f9072..48c03a1 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 c4582894..bee7a85 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 d210611..2ac19e0 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 41d35e4..326851f 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 8806b58..6c53f41 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 c73d7f6..1a1a3bd 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 e51a22f..61fe89a 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 7bf0c55..5f665ca 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 d0896b8..9e897a4 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 c39c92f..63b7e64 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 e7b3341..d8aa87d 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 d22c5b1..e59c8e4 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 110b3f9..6cc2094 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 7be39bb..ee2cf4b 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 a799284..add0be0 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 2301efb..c8b0dfc 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 38ce782..d48a2b1 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");
OpenPOWER on IntegriCloud