@ -113,6 +113,26 @@ static char *print_efiname(gpt_entry *pte)
return name ;
}
static void uuid_string ( unsigned char * uuid , char * str )
{
static const u8 le [ 16 ] = { 3 , 2 , 1 , 0 , 5 , 4 , 7 , 6 , 8 , 9 , 10 , 11 ,
12 , 13 , 14 , 15 } ;
int i ;
for ( i = 0 ; i < 16 ; i + + ) {
sprintf ( str , " %02x " , uuid [ le [ i ] ] ) ;
str + = 2 ;
switch ( i ) {
case 3 :
case 5 :
case 7 :
case 9 :
* str + + = ' - ' ;
break ;
}
}
}
/*
* Public Functions ( include / part . h )
*/
@ -122,6 +142,7 @@ void print_part_efi(block_dev_desc_t * dev_desc)
ALLOC_CACHE_ALIGN_BUFFER ( gpt_header , gpt_head , 1 ) ;
gpt_entry * gpt_pte = NULL ;
int i = 0 ;
char uuid [ 37 ] ;
if ( ! dev_desc ) {
printf ( " %s: Invalid Argument(s) \n " , __func__ ) ;
@ -137,6 +158,9 @@ void print_part_efi(block_dev_desc_t * dev_desc)
debug ( " %s: gpt-entry at %p \n " , __func__ , gpt_pte ) ;
printf ( " Part \t Start LBA \t End LBA \t \t Name \n " ) ;
printf ( " \t Type UUID \n " ) ;
printf ( " \t Partition UUID \n " ) ;
for ( i = 0 ; i < le32_to_int ( gpt_head - > num_partition_entries ) ; i + + ) {
/* Stop at the first non valid PTE */
if ( ! is_pte_valid ( & gpt_pte [ i ] ) )
@ -146,6 +170,10 @@ 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 ] ) ) ;
uuid_string ( gpt_pte [ i ] . partition_type_guid . b , uuid ) ;
printf ( " \t type: \t %s \n " , uuid ) ;
uuid_string ( gpt_pte [ i ] . unique_partition_guid . b , uuid ) ;
printf ( " \t uuid: \t %s \n " , uuid ) ;
}
/* Remember to free pte */
@ -153,28 +181,6 @@ void print_part_efi(block_dev_desc_t * dev_desc)
return ;
}
# ifdef CONFIG_PARTITION_UUIDS
static void uuid_string ( unsigned char * uuid , char * str )
{
static const u8 le [ 16 ] = { 3 , 2 , 1 , 0 , 5 , 4 , 7 , 6 , 8 , 9 , 10 , 11 ,
12 , 13 , 14 , 15 } ;
int i ;
for ( i = 0 ; i < 16 ; i + + ) {
sprintf ( str , " %02x " , uuid [ le [ i ] ] ) ;
str + = 2 ;
switch ( i ) {
case 3 :
case 5 :
case 7 :
case 9 :
* str + + = ' - ' ;
break ;
}
}
}
# endif
int get_partition_info_efi ( block_dev_desc_t * dev_desc , int part ,
disk_partition_t * info )
{