disk: part_efi: print raw partition attributes
authorStephen Warren <swarren@nvidia.com>
Mon, 8 Oct 2012 08:14:36 +0000 (08:14 +0000)
committerTom Rini <trini@ti.com>
Wed, 17 Oct 2012 14:59:10 +0000 (07:59 -0700)
When printing the EFI partition table, print the raw attributes. Convert
struct gpt_entry_attributes to a union to allow raw access.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
disk/part_efi.c
disk/part_efi.h

index 6b80cd98d4c3ada00a4e8c5ffc07cde986028c55..d563509584af9fa5290953a65955b053b5159c21 100644 (file)
@@ -158,6 +158,7 @@ void print_part_efi(block_dev_desc_t * dev_desc)
        debug("%s: gpt-entry at %p\n", __func__, gpt_pte);
 
        printf("Part\tStart LBA\tEnd LBA\t\tName\n");
+       printf("\tAttributes\n");
        printf("\tType UUID\n");
        printf("\tPartition UUID\n");
 
@@ -170,6 +171,7 @@ void print_part_efi(block_dev_desc_t * dev_desc)
                        le64_to_int(gpt_pte[i].starting_lba),
                        le64_to_int(gpt_pte[i].ending_lba),
                        print_efiname(&gpt_pte[i]));
+               printf("\tattrs:\t0x%016llx\n", gpt_pte[i].attributes.raw);
                uuid_string(gpt_pte[i].partition_type_guid.b, uuid);
                printf("\ttype:\t%s\n", uuid);
                uuid_string(gpt_pte[i].unique_partition_guid.b, uuid);
index 1d0c67cbe0b15ef52917da18f2634343cd1833eb..4e28d1dcb66c1e15d8b9b8f40b2ba9b61ca7c896 100644 (file)
@@ -111,12 +111,15 @@ typedef struct _gpt_header {
        unsigned char reserved2[GPT_BLOCK_SIZE - 92];
 } __attribute__ ((packed)) gpt_header;
 
-typedef struct _gpt_entry_attributes {
-       unsigned long long required_to_function:1;
-       unsigned long long no_block_io_protocol:1;
-       unsigned long long legacy_bios_bootable:1;
-       unsigned long long reserved:45;
-       unsigned long long type_guid_specific:16;
+typedef union _gpt_entry_attributes {
+       struct {
+               unsigned long long required_to_function:1;
+               unsigned long long no_block_io_protocol:1;
+               unsigned long long legacy_bios_bootable:1;
+               unsigned long long reserved:45;
+               unsigned long long type_guid_specific:16;
+       } fields;
+       unsigned long long raw;
 } __attribute__ ((packed)) gpt_entry_attributes;
 
 #define PARTNAME_SZ    (72 / sizeof(efi_char16_t))