Message ID | 20221010222944.3923556-3-ira.weiny@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | QEMU CXL Provide mock CXL events and irq support | expand |
On Mon, 10 Oct 2022 15:29:40 -0700 ira.weiny@intel.com wrote: > From: Ira Weiny <ira.weiny@intel.com> > > UUID's are defined as network byte order fields. No static initializer > was available for UUID's in their standard big endian format. > > Define a big endian initializer for UUIDs. > > Signed-off-by: Ira Weiny <ira.weiny@intel.com> Seems sensible. Would allow a cleanup in the existing cel_uuid handling in the CXL code where we use a static for this and end up filling it with the same value multiple times which is less than ideal... A quick grep and for qemu_uuid_parse() suggests there are other cases where it's passed a constant string. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > --- > include/qemu/uuid.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/qemu/uuid.h b/include/qemu/uuid.h > index 9925febfa54d..dc40ee1fc998 100644 > --- a/include/qemu/uuid.h > +++ b/include/qemu/uuid.h > @@ -61,6 +61,18 @@ typedef struct { > (clock_seq_hi_and_reserved), (clock_seq_low), (node0), (node1), (node2),\ > (node3), (node4), (node5) } > > +/* Normal (network byte order) UUID */ > +#define UUID(time_low, time_mid, time_hi_and_version, \ > + clock_seq_hi_and_reserved, clock_seq_low, node0, node1, node2, \ > + node3, node4, node5) \ > + { ((time_low) >> 24) & 0xff, ((time_low) >> 16) & 0xff, \ > + ((time_low) >> 8) & 0xff, (time_low) & 0xff, \ > + ((time_mid) >> 8) & 0xff, (time_mid) & 0xff, \ > + ((time_hi_and_version) >> 8) & 0xff, (time_hi_and_version) & 0xff, \ > + (clock_seq_hi_and_reserved), (clock_seq_low), \ > + (node0), (node1), (node2), (node3), (node4), (node5) \ > + } > + > #define UUID_FMT "%02hhx%02hhx%02hhx%02hhx-" \ > "%02hhx%02hhx-%02hhx%02hhx-" \ > "%02hhx%02hhx-" \
On Tue, Oct 11, 2022 at 10:13:17AM +0100, Jonathan Cameron wrote: > On Mon, 10 Oct 2022 15:29:40 -0700 > ira.weiny@intel.com wrote: > > > From: Ira Weiny <ira.weiny@intel.com> > > > > UUID's are defined as network byte order fields. No static initializer > > was available for UUID's in their standard big endian format. > > > > Define a big endian initializer for UUIDs. > > > > Signed-off-by: Ira Weiny <ira.weiny@intel.com> > > Seems sensible. Would allow a cleanup in the existing cel_uuid handling > in the CXL code where we use a static for this and end up filling it > with the same value multiple times which is less than ideal... > A quick grep and for qemu_uuid_parse() suggests there are other cases > where it's passed a constant string. I'll see if I can find time to clean that up. > > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Thanks, Ira > > > --- > > include/qemu/uuid.h | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/include/qemu/uuid.h b/include/qemu/uuid.h > > index 9925febfa54d..dc40ee1fc998 100644 > > --- a/include/qemu/uuid.h > > +++ b/include/qemu/uuid.h > > @@ -61,6 +61,18 @@ typedef struct { > > (clock_seq_hi_and_reserved), (clock_seq_low), (node0), (node1), (node2),\ > > (node3), (node4), (node5) } > > > > +/* Normal (network byte order) UUID */ > > +#define UUID(time_low, time_mid, time_hi_and_version, \ > > + clock_seq_hi_and_reserved, clock_seq_low, node0, node1, node2, \ > > + node3, node4, node5) \ > > + { ((time_low) >> 24) & 0xff, ((time_low) >> 16) & 0xff, \ > > + ((time_low) >> 8) & 0xff, (time_low) & 0xff, \ > > + ((time_mid) >> 8) & 0xff, (time_mid) & 0xff, \ > > + ((time_hi_and_version) >> 8) & 0xff, (time_hi_and_version) & 0xff, \ > > + (clock_seq_hi_and_reserved), (clock_seq_low), \ > > + (node0), (node1), (node2), (node3), (node4), (node5) \ > > + } > > + > > #define UUID_FMT "%02hhx%02hhx%02hhx%02hhx-" \ > > "%02hhx%02hhx-%02hhx%02hhx-" \ > > "%02hhx%02hhx-" \ >
diff --git a/include/qemu/uuid.h b/include/qemu/uuid.h index 9925febfa54d..dc40ee1fc998 100644 --- a/include/qemu/uuid.h +++ b/include/qemu/uuid.h @@ -61,6 +61,18 @@ typedef struct { (clock_seq_hi_and_reserved), (clock_seq_low), (node0), (node1), (node2),\ (node3), (node4), (node5) } +/* Normal (network byte order) UUID */ +#define UUID(time_low, time_mid, time_hi_and_version, \ + clock_seq_hi_and_reserved, clock_seq_low, node0, node1, node2, \ + node3, node4, node5) \ + { ((time_low) >> 24) & 0xff, ((time_low) >> 16) & 0xff, \ + ((time_low) >> 8) & 0xff, (time_low) & 0xff, \ + ((time_mid) >> 8) & 0xff, (time_mid) & 0xff, \ + ((time_hi_and_version) >> 8) & 0xff, (time_hi_and_version) & 0xff, \ + (clock_seq_hi_and_reserved), (clock_seq_low), \ + (node0), (node1), (node2), (node3), (node4), (node5) \ + } + #define UUID_FMT "%02hhx%02hhx%02hhx%02hhx-" \ "%02hhx%02hhx-%02hhx%02hhx-" \ "%02hhx%02hhx-" \