diff mbox

[1/3] uefi: uefidump: Add support for DriverOrder (LP:#1237263)

Message ID 1381308476-30363-1-git-send-email-ivan.hu@canonical.com
State Rejected
Headers show

Commit Message

Ivan Hu Oct. 9, 2013, 8:47 a.m. UTC
Add support for DriverOrder - The DriverOrder variable contains
an array of UINT16’s that make up an ordered list of the
Driver#### variable.

Signed-off-by: Ivan Hu <ivan.hu@canonical.com>
---
 src/uefi/uefidump/uefidump.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

Comments

Colin Ian King Oct. 9, 2013, 11:09 a.m. UTC | #1
Thanks Ivan, just some minor things..

On 09/10/13 09:47, Ivan Hu wrote:
> Add support for DriverOrder - The DriverOrder variable contains
> an array of UINT16’s that make up an ordered list of the
> Driver#### variable.
> 
> Signed-off-by: Ivan Hu <ivan.hu@canonical.com>
> ---
>  src/uefi/uefidump/uefidump.c |   16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c
> index e4b6546..a2aa619 100644
> --- a/src/uefi/uefidump/uefidump.c
> +++ b/src/uefi/uefidump/uefidump.c
> @@ -731,6 +731,21 @@ static void uefidump_info_vendor_keys(fwts_framework *fw, fwts_uefi_var *var)
>  	fwts_log_info_verbatum(fw, "  Value: 0x%2.2" PRIx8 ".", value);
>  }
>  
> +static void uefidump_info_driverorder(fwts_framework *fw, fwts_uefi_var *var)
> +{
> +	uint16_t *data = (uint16_t*)var->data;
> +	int i;
> +	int n = (int)var->datalen / sizeof(uint16_t);

How about:

	size_t i, n = var->datalen / sizeof(uint16_t);


> +	char *str = NULL;
> +
> +	for (i = 0; i<n; i++) {

I'd prefer:

	for (i = 0; i < n; i++) {

> +		str = uefidump_vprintf(str, "0x%04" PRIx16 "%s",
> +			*data++, i < (n - 1) ? "," : "");
> +	}
> +	fwts_log_info_verbatum(fw, "  Driver Order: %s.", str);
> +	free(str);
> +}
> +
>  static uefidump_info uefidump_info_table[] = {
>  	{ "PlatformLangCodes",	uefidump_info_platform_langcodes },
>  	{ "PlatformLang",	uefidump_info_platform_lang },
> @@ -757,6 +772,7 @@ static uefidump_info uefidump_info_table[] = {
>  	{ "HwErrRecSupport",	uefidump_info_hwerrrec_support },
>  	{ "OsIndicationsSupported",	uefidump_info_osindications_supported },
>  	{ "VendorKeys",		uefidump_info_vendor_keys },
> +	{ "DriverOrder",	uefidump_info_driverorder },
>  	{ NULL, NULL }
>  };
>  
>
diff mbox

Patch

diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c
index e4b6546..a2aa619 100644
--- a/src/uefi/uefidump/uefidump.c
+++ b/src/uefi/uefidump/uefidump.c
@@ -731,6 +731,21 @@  static void uefidump_info_vendor_keys(fwts_framework *fw, fwts_uefi_var *var)
 	fwts_log_info_verbatum(fw, "  Value: 0x%2.2" PRIx8 ".", value);
 }
 
+static void uefidump_info_driverorder(fwts_framework *fw, fwts_uefi_var *var)
+{
+	uint16_t *data = (uint16_t*)var->data;
+	int i;
+	int n = (int)var->datalen / sizeof(uint16_t);
+	char *str = NULL;
+
+	for (i = 0; i<n; i++) {
+		str = uefidump_vprintf(str, "0x%04" PRIx16 "%s",
+			*data++, i < (n - 1) ? "," : "");
+	}
+	fwts_log_info_verbatum(fw, "  Driver Order: %s.", str);
+	free(str);
+}
+
 static uefidump_info uefidump_info_table[] = {
 	{ "PlatformLangCodes",	uefidump_info_platform_langcodes },
 	{ "PlatformLang",	uefidump_info_platform_lang },
@@ -757,6 +772,7 @@  static uefidump_info uefidump_info_table[] = {
 	{ "HwErrRecSupport",	uefidump_info_hwerrrec_support },
 	{ "OsIndicationsSupported",	uefidump_info_osindications_supported },
 	{ "VendorKeys",		uefidump_info_vendor_keys },
+	{ "DriverOrder",	uefidump_info_driverorder },
 	{ NULL, NULL }
 };