Add three GPT attributes:

GPT_ENT_ATTR_BOOTME - this is bootable partition

GPT_ENT_ATTR_BOOTONCE - try to boot only once from this partition

GPT_ENT_ATTR_BOOTFAILED - set this flag if we cannot boot from partition
	containing GPT_ENT_ATTR_BOOTONCE flag; note that if we cannot
	boot from partition that contains only GPT_ENT_ATTR_BOOTME flag,
	the GPT_ENT_ATTR_BOOTFAILED flag won't be set

According to wikipedia Microsoft TechNet says that attributes are divided into
two halves: the lower 4 bytes representing partition independent attributes,
and the upper 4 bytes are partition type dependent. Microsoft is already using
bits 60 (read-only), 62 (hidden) and 63 (do not automount) and I'd like to not
collide with those, so we are using bit 59 (bootme), 58 (bootonce) and 57
(bootfailed).

Reviewed by:	arch (Message-ID: <20100917234542.GE1902@garage.freebsd.pl>)
MFC after:	2 weeks
This commit is contained in:
pjd 2010-09-24 19:31:08 +00:00
parent 95c69781b5
commit 4f5572a9be

View File

@ -65,6 +65,9 @@ struct gpt_ent {
uint64_t ent_lba_end;
uint64_t ent_attr;
#define GPT_ENT_ATTR_PLATFORM (1ULL << 0)
#define GPT_ENT_ATTR_BOOTME (1ULL << 59)
#define GPT_ENT_ATTR_BOOTONCE (1ULL << 58)
#define GPT_ENT_ATTR_BOOTFAILED (1ULL << 57)
uint16_t ent_name[36]; /* UTF-16. */
};