How do GEOM_PART_* options configure geom_part_* modules??

From: Nick Hibma <nick_at_van-laarhoven.org>
Date: Thu, 28 Sep 2017 17:31:40 +0200
I created a new kernel config file from scratch, wondered what the GEOM_PART_MBR option and friends were doing, search for them, didn't find them in the tree, and deleted them from my config. But... de resulting disk image didn't boot, because of the fact that it didn't recognise the MBR partitions (it only had a single diskid entry on the mount-root prompt).

Can anyone explain to me how these kernel options work, as in: they are defined in kernel configs and as a consequence in opt_geom.h, but how are they actually used to select which geom_part_* modules/kernel parts to build? I thought these options were translated to stuff that cpp would use, but there are not uses of for example GEOM_PART_MBR anywhere for example!

The only thing I was able to come up with, but could not figure out, was FEATURE() doing some magic.

Thanks in advance for any pointers!

Nick Hibma
nick_at_van-laarhoven.org <mailto:nick_at_van-laarhoven.org>

-- Open Source: We stand on the shoulders of giants.


% grep -r GEOM_PART_ /usr/src/sys/ | grep -Ev '/conf/.*options'
/usr/src/sys/geom/part/g_part_mbr.c:    "GEOM_PART_MBR Master Boot Record");
/usr/src/sys/geom/part/g_part_ldm.c:    "GEOM_PART_LDM Logical Disk Manager");
/usr/src/sys/geom/part/g_part_ldm.c:	 * XXX: We use some knowledge about GEOM_PART_GPT internal
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part.h:#ifndef _GEOM_PART_H_
/usr/src/sys/geom/part/g_part.h:#define	_GEOM_PART_H_
/usr/src/sys/geom/part/g_part.h:#endif /* !_GEOM_PART_H_ */

Received on Thu Sep 28 2017 - 13:31:52 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:13 UTC