
On Sat, Aug 5, 2017 at 3:33 PM, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On 08/04/2017 09:31 PM, Rob Clark wrote:
There are a couple places where we'll need GUID -> string. So add a helper.
Signed-off-by: Rob Clark robdclark@gmail.com
include/efi_loader.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/include/efi_loader.h b/include/efi_loader.h index 1028bfb75d..e6c46f713e 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -239,6 +239,21 @@ static inline int guidcmp(const efi_guid_t *g1, const efi_guid_t *g2) return memcmp(g1, g2, sizeof(efi_guid_t)); }
+static inline int guidstr(char *s, const efi_guid_t *g) +{
/* unpacked-guid, otherwise we have to have to consider endianess */
struct {
uint32_t data1;
uint16_t data2;
uint16_t data3;
uint8_t data4[8];
} *ug = (void *)g;
return sprintf(s, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
ug->data1, ug->data2, ug->data3, ug->data4[0],
ug->data4[1], ug->data4[2], ug->data4[3], ug->data4[4],
ug->data4[5], ug->data4[6], ug->data4[7]);
+}
/*
- Use these to indicate that your code / data should go into the EFI runtime
- section and thus still be available when the OS is running
You may want to have a look at these:
include/uuid.h:40 int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin);
int uuid_guid_get_str(unsigned char *guid_bin, char *guid_str);
With a conversion to uchar* you should be able to use uuid_guid_get_str for your purposes. So this patch could be eliminated from the series.
hmm, wow, those seem a bit over-engineered. But I think we should add this to vsprintf.c and drop both this patch plus your patch that adds a macro to print GUIDs. (And vsprintf.c should re-use uuid_guid_get_str().. and I could re-use uuid_guid_get_bin() when I get around to implementing efi_get_next_variable(), so thanks for pointing that out.)
BR, -R