On Tue, Aug 3, 2010 at 5:55 PM, Blue Swirl <blauwir...@gmail.com> wrote: >> + if (strlen(current_snapshot_id) > 0) { >> + pstrcpy(sn->parent_id_str, sizeof(sn->parent_id_str), >> current_snapshot_id); >> + } else { >> + pstrcpy(sn->parent_id_str, sizeof(sn->parent_id_str), >> "00000000-0000-0000-0000-000000000000"); >> + } >> + >> + uuid_generate(uuid_buf); >> + uuid_unparse(uuid_buf, sn->id_str); > > We have qemu_uuid which is defined with command line switch, can you use that? >
Didn't know that. It does the job, but there is some code inside qemu_uuid_parse() that I'm not familiar with: int qemu_uuid_parse(const char *str, uint8_t *uuid) { ... #ifdef TARGET_I386 smbios_add_field(1, offsetof(struct smbios_type_1, uuid), 16, uuid); #endif return 0; } I see that there are more uuid functions and spread in the code: - block/vdi.c: typedef unsigned char uuid_t[16]; void uuid_generate(uuid_t out); int uuid_is_null(const uuid_t uu); void uuid_unparse(const uuid_t uu, char *out); - monitor.c: do_info_uuid() does the conversion manually too, instead of using unparse/parse. I think it would be better to cleanup this stuff and have a common code shaded. Regards, Miguel