1 /*
2  * This file and its contents are supplied under the terms of the
3  * Common Development and Distribution License ("CDDL"), version 1.0.
4  * You may only use this file in accordance with the terms of version
5  * 1.0 of the CDDL.
6  *
7  * A full copy of the text of the CDDL should have accompanied this
8  * source.  A copy of the CDDL is also available via the Internet at
9  * http://www.illumos.org/license/CDDL.
10  */
11 
12 /*
13  * Copyright 2020 Toomas Soome <tsoome@me.com>
14  */
15 
16 #ifndef _ZFS_BOOTENV_H
17 #define	_ZFS_BOOTENV_H
18 
19 /*
20  * Define macros for label bootenv nvlist pair keys.
21  */
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #define	BOOTENV_VERSION		"version"
28 
29 #define	BE_ILLUMOS_VENDOR	"illumos"
30 #define	BE_FREEBSD_VENDOR	"freebsd"
31 #define	BE_GRUB_VENDOR		"grub"
32 #define	BE_LINUX_VENDOR		"linux"
33 
34 #include <sys/zfs_bootenv_os.h>
35 
36 #define	GRUB_ENVMAP		BE_GRUB_VENDOR ":" "envmap"
37 
38 #define	FREEBSD_BOOTONCE	BE_FREEBSD_VENDOR ":" "bootonce"
39 #define	FREEBSD_BOOTONCE_USED	BE_FREEBSD_VENDOR ":" "bootonce-used"
40 #define	FREEBSD_NVSTORE		BE_FREEBSD_VENDOR ":" "nvstore"
41 #define	ILLUMOS_BOOTONCE	BE_ILLUMOS_VENDOR ":" "bootonce"
42 #define	ILLUMOS_BOOTONCE_USED	BE_ILLUMOS_VENDOR ":" "bootonce-used"
43 #define	ILLUMOS_NVSTORE		BE_ILLUMOS_VENDOR ":" "nvstore"
44 
45 #define	OS_BOOTONCE		BOOTENV_OS ":" "bootonce"
46 #define	OS_BOOTONCE_USED	BOOTENV_OS ":" "bootonce-used"
47 #define	OS_NVSTORE		BOOTENV_OS ":" "nvstore"
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 #endif /* _ZFS_BOOTENV_H */
54