aboutsummaryrefslogtreecommitdiff
path: root/stand/i386/zfsboot
diff options
context:
space:
mode:
authorIan Lepore <ian@FreeBSD.org>2018-11-28 18:09:42 +0000
committerIan Lepore <ian@FreeBSD.org>2018-11-28 18:09:42 +0000
commitb92c2c907e20c633a75eff2edfd56ffe0dba4690 (patch)
tree4816f0c35d75dbfa4db475017519783fdfda15d5 /stand/i386/zfsboot
parente8e0ecb9698d4bb7b25fe7e85436e978ae7fba3f (diff)
downloadsrc-b92c2c907e20c633a75eff2edfd56ffe0dba4690.tar.gz
src-b92c2c907e20c633a75eff2edfd56ffe0dba4690.zip
Add comments describing the bootargs handoff between loader(8) and gptboot
or zfsboot, when loader(8) is the BTX loader. No functional changes.
Notes
Notes: svn path=/head/; revision=341160
Diffstat (limited to 'stand/i386/zfsboot')
-rw-r--r--stand/i386/zfsboot/zfsboot.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/stand/i386/zfsboot/zfsboot.c b/stand/i386/zfsboot/zfsboot.c
index e88527757158..2369276f5e69 100644
--- a/stand/i386/zfsboot/zfsboot.c
+++ b/stand/i386/zfsboot/zfsboot.c
@@ -1005,6 +1005,11 @@ load(void)
zfsargs.primary_vdev = primary_vdev->v_guid;
else
printf("failed to detect primary vdev\n");
+ /*
+ * Note that the zfsargs struct is passed by value, not by pointer. Code in
+ * btxldr.S copies the values from the entry stack to a fixed location
+ * within loader(8) at startup due to the presence of KARGS_FLAGS_EXTARG.
+ */
__exec((caddr_t)addr, RB_BOOTINFO | (opts & RBX_MASK),
bootdev,
KARGS_FLAGS_ZFS | KARGS_FLAGS_EXTARG,