From: Christoph Hellwig <hch@lst.de> To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Amir Goldstein <amir73il@gmail.com>, linux-fsdevel@vger.kernel.org Cc: linux-xfs@vger.kernel.org, linux-raid@vger.kernel.org, linux-nvdimm@lists.01.org, Shaohua Li <shli@kernel.org>, linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>, Mimi Zohar <zohar@linux.vnet.ibm.com>, Steven Whitehouse <swhiteho@redhat.com> Subject: [PATCH 05/17] uuid: add the v1 layout to uuid_t Date: Mon, 15 May 2017 17:42:56 +0200 [thread overview] Message-ID: <20170515154308.26739-6-hch@lst.de> (raw) In-Reply-To: <20170515154308.26739-1-hch@lst.de> Turn the content of uuid_t into a union and add the fields for the v1 interpretation to it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Howells <dhowells@redhat.com> --- include/uapi/linux/uuid.h | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/include/uapi/linux/uuid.h b/include/uapi/linux/uuid.h index c31fc94695b9..6b6a583ec1fe 100644 --- a/include/uapi/linux/uuid.h +++ b/include/uapi/linux/uuid.h @@ -32,15 +32,42 @@ typedef struct { (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) typedef struct { - __u8 b[16]; + union { + __u8 b[16]; + + /* + * V1 (time-based) UUID definition [RFC 4122]: + * - the timestamp is a 60-bit value, split 32/16/12, and goes + * in 100ns increments since midnight 15th October 1582 + * - add UUID_TO_UNIX_TIME to convert unix time in 100ns + * units to UUID time + * - the clock sequence is a 14-bit counter to avoid duplicate + * times + */ + struct { + __be32 time_low; + __be16 time_mid; + __be16 time_hi_and_version; +#define UUID_TO_UNIX_TIME 0x01b21dd213814000ULL +#define UUID_TIMEHI_MASK 0x0fff +#define UUID_VERSION_TIME 0x1000 /* time-based UUID */ +#define UUID_VERSION_NAME 0x3000 /* name-based UUID */ +#define UUID_VERSION_RANDOM 0x4000 /* (pseudo-)random generated UUID */ + u8 clock_seq_hi_and_reserved; +#define UUID_CLOCKHI_MASK 0x3f +#define UUID_VARIANT_STD 0x80 + u8 clock_seq_low; + u8 node[6]; + } v1; + }; } uuid_t; -#define UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ -((uuid_t) \ -{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ - ((b) >> 8) & 0xff, (b) & 0xff, \ +#define UUID(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ +{ .b = { \ + ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ + ((_b) >> 8) & 0xff, (_b) & 0xff, \ ((c) >> 8) & 0xff, (c) & 0xff, \ - (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }} /* backwards compatibility, don't use in new code */ typedef guid_t uuid_le; -- 2.11.0 _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
WARNING: multiple messages have this Message-ID
From: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org> To: Andy Shevchenko <andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>, Amir Goldstein <amir73il-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: linux-xfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-raid-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, Shaohua Li <shli-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, Mimi Zohar <zohar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>, Steven Whitehouse <swhiteho-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Subject: [PATCH 05/17] uuid: add the v1 layout to uuid_t Date: Mon, 15 May 2017 17:42:56 +0200 [thread overview] Message-ID: <20170515154308.26739-6-hch@lst.de> (raw) In-Reply-To: <20170515154308.26739-1-hch-jcswGhMUV9g@public.gmane.org> Turn the content of uuid_t into a union and add the fields for the v1 interpretation to it. Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org> Reviewed-by: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> --- include/uapi/linux/uuid.h | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/include/uapi/linux/uuid.h b/include/uapi/linux/uuid.h index c31fc94695b9..6b6a583ec1fe 100644 --- a/include/uapi/linux/uuid.h +++ b/include/uapi/linux/uuid.h @@ -32,15 +32,42 @@ typedef struct { (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) typedef struct { - __u8 b[16]; + union { + __u8 b[16]; + + /* + * V1 (time-based) UUID definition [RFC 4122]: + * - the timestamp is a 60-bit value, split 32/16/12, and goes + * in 100ns increments since midnight 15th October 1582 + * - add UUID_TO_UNIX_TIME to convert unix time in 100ns + * units to UUID time + * - the clock sequence is a 14-bit counter to avoid duplicate + * times + */ + struct { + __be32 time_low; + __be16 time_mid; + __be16 time_hi_and_version; +#define UUID_TO_UNIX_TIME 0x01b21dd213814000ULL +#define UUID_TIMEHI_MASK 0x0fff +#define UUID_VERSION_TIME 0x1000 /* time-based UUID */ +#define UUID_VERSION_NAME 0x3000 /* name-based UUID */ +#define UUID_VERSION_RANDOM 0x4000 /* (pseudo-)random generated UUID */ + u8 clock_seq_hi_and_reserved; +#define UUID_CLOCKHI_MASK 0x3f +#define UUID_VARIANT_STD 0x80 + u8 clock_seq_low; + u8 node[6]; + } v1; + }; } uuid_t; -#define UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ -((uuid_t) \ -{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ - ((b) >> 8) & 0xff, (b) & 0xff, \ +#define UUID(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ +{ .b = { \ + ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ + ((_b) >> 8) & 0xff, (_b) & 0xff, \ ((c) >> 8) & 0xff, (c) & 0xff, \ - (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }} /* backwards compatibility, don't use in new code */ typedef guid_t uuid_le; -- 2.11.0
WARNING: multiple messages have this Message-ID
From: Christoph Hellwig <hch@lst.de> To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Amir Goldstein <amir73il@gmail.com>, linux-fsdevel@vger.kernel.org Cc: Shaohua Li <shli@kernel.org>, Dan Williams <dan.j.williams@intel.com>, David Howells <dhowells@redhat.com>, Steven Whitehouse <swhiteho@redhat.com>, Mimi Zohar <zohar@linux.vnet.ibm.com>, linux-xfs@vger.kernel.org, linux-raid@vger.kernel.org, linux-nvdimm@ml01.01.org, linux-kernel@vger.kernel.org Subject: [PATCH 05/17] uuid: add the v1 layout to uuid_t Date: Mon, 15 May 2017 17:42:56 +0200 [thread overview] Message-ID: <20170515154308.26739-6-hch@lst.de> (raw) In-Reply-To: <20170515154308.26739-1-hch@lst.de> Turn the content of uuid_t into a union and add the fields for the v1 interpretation to it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Howells <dhowells@redhat.com> --- include/uapi/linux/uuid.h | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/include/uapi/linux/uuid.h b/include/uapi/linux/uuid.h index c31fc94695b9..6b6a583ec1fe 100644 --- a/include/uapi/linux/uuid.h +++ b/include/uapi/linux/uuid.h @@ -32,15 +32,42 @@ typedef struct { (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) typedef struct { - __u8 b[16]; + union { + __u8 b[16]; + + /* + * V1 (time-based) UUID definition [RFC 4122]: + * - the timestamp is a 60-bit value, split 32/16/12, and goes + * in 100ns increments since midnight 15th October 1582 + * - add UUID_TO_UNIX_TIME to convert unix time in 100ns + * units to UUID time + * - the clock sequence is a 14-bit counter to avoid duplicate + * times + */ + struct { + __be32 time_low; + __be16 time_mid; + __be16 time_hi_and_version; +#define UUID_TO_UNIX_TIME 0x01b21dd213814000ULL +#define UUID_TIMEHI_MASK 0x0fff +#define UUID_VERSION_TIME 0x1000 /* time-based UUID */ +#define UUID_VERSION_NAME 0x3000 /* name-based UUID */ +#define UUID_VERSION_RANDOM 0x4000 /* (pseudo-)random generated UUID */ + u8 clock_seq_hi_and_reserved; +#define UUID_CLOCKHI_MASK 0x3f +#define UUID_VARIANT_STD 0x80 + u8 clock_seq_low; + u8 node[6]; + } v1; + }; } uuid_t; -#define UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ -((uuid_t) \ -{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ - ((b) >> 8) & 0xff, (b) & 0xff, \ +#define UUID(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ +{ .b = { \ + ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ + ((_b) >> 8) & 0xff, (_b) & 0xff, \ ((c) >> 8) & 0xff, (c) & 0xff, \ - (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }} /* backwards compatibility, don't use in new code */ typedef guid_t uuid_le; -- 2.11.0
WARNING: multiple messages have this Message-ID
From: Christoph Hellwig <hch@lst.de> To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Amir Goldstein <amir73il@gmail.com>, linux-fsdevel@vger.kernel.org Cc: Shaohua Li <shli@kernel.org>, Dan Williams <dan.j.williams@intel.com>, David Howells <dhowells@redhat.com>, Steven Whitehouse <swhiteho@redhat.com>, Mimi Zohar <zohar@linux.vnet.ibm.com>, linux-xfs@vger.kernel.org, linux-raid@vger.kernel.org, linux-nvdimm@lists.01.org, linux-kernel@vger.kernel.org Subject: [PATCH 05/17] uuid: add the v1 layout to uuid_t Date: Mon, 15 May 2017 17:42:56 +0200 [thread overview] Message-ID: <20170515154308.26739-6-hch@lst.de> (raw) In-Reply-To: <20170515154308.26739-1-hch@lst.de> Turn the content of uuid_t into a union and add the fields for the v1 interpretation to it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Howells <dhowells@redhat.com> --- include/uapi/linux/uuid.h | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/include/uapi/linux/uuid.h b/include/uapi/linux/uuid.h index c31fc94695b9..6b6a583ec1fe 100644 --- a/include/uapi/linux/uuid.h +++ b/include/uapi/linux/uuid.h @@ -32,15 +32,42 @@ typedef struct { (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) typedef struct { - __u8 b[16]; + union { + __u8 b[16]; + + /* + * V1 (time-based) UUID definition [RFC 4122]: + * - the timestamp is a 60-bit value, split 32/16/12, and goes + * in 100ns increments since midnight 15th October 1582 + * - add UUID_TO_UNIX_TIME to convert unix time in 100ns + * units to UUID time + * - the clock sequence is a 14-bit counter to avoid duplicate + * times + */ + struct { + __be32 time_low; + __be16 time_mid; + __be16 time_hi_and_version; +#define UUID_TO_UNIX_TIME 0x01b21dd213814000ULL +#define UUID_TIMEHI_MASK 0x0fff +#define UUID_VERSION_TIME 0x1000 /* time-based UUID */ +#define UUID_VERSION_NAME 0x3000 /* name-based UUID */ +#define UUID_VERSION_RANDOM 0x4000 /* (pseudo-)random generated UUID */ + u8 clock_seq_hi_and_reserved; +#define UUID_CLOCKHI_MASK 0x3f +#define UUID_VARIANT_STD 0x80 + u8 clock_seq_low; + u8 node[6]; + } v1; + }; } uuid_t; -#define UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ -((uuid_t) \ -{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ - ((b) >> 8) & 0xff, (b) & 0xff, \ +#define UUID(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ +{ .b = { \ + ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ + ((_b) >> 8) & 0xff, (_b) & 0xff, \ ((c) >> 8) & 0xff, (c) & 0xff, \ - (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }} /* backwards compatibility, don't use in new code */ typedef guid_t uuid_le; -- 2.11.0
next prev parent reply other threads:[~2017-05-15 15:43 UTC|newest] Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-05-15 15:42 cleanup UUID types V2 Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` [PATCH 01/17] xfs: use uuid_copy() helper to abstract uuid_t Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` [PATCH 02/17] xfs: use uuid_be to implement the uuid_t type Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` [PATCH 03/17] uuid: rename uuid types Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` [PATCH 04/17] uuid: don't export guid_index and uuid_index Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig [this message] 2017-05-15 15:42 ` [PATCH 05/17] uuid: add the v1 layout to uuid_t Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` [PATCH 06/17] uuid: hoist helpers uuid_equal() and uuid_copy() from xfs Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` [PATCH 07/17] uuid: remove the now unused uuid_be_cmp helper Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` [PATCH 08/17] uuid: hoist uuid_is_null() helper from libnvdimm Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 15:42 ` Christoph Hellwig 2017-05-15 17:48 ` Dan Williams 2017-05-15 17:48 ` Dan Williams 2017-05-15 17:48 ` Dan Williams 2017-05-15 15:43 ` [PATCH 09/17] s390/sysinfo: use uuid_is_null instead of opencoding it Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` [PATCH 10/17] afs: switch to use uuid_t and uuid_gen Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` [PATCH 11/17] uuid: remove struct uuid_v1 Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` [PATCH 12/17] xfs: remove uuid_getnodeuniq and xfs_uu_t Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` [PATCH 13/17] md: namespace private helper names Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` [PATCH 14/17] xfs: use the common helper uuid_is_null() Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` [PATCH 15/17] block: remove blk_part_pack_uuid Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` [PATCH 16/17] ima/policy: switch to use uuid_t Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` [PATCH 17/17] fs: switch ->s_uuid to uuid_t Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 15:43 ` Christoph Hellwig 2017-05-15 19:38 ` Amir Goldstein 2017-05-15 19:38 ` Amir Goldstein 2017-05-15 19:38 ` Amir Goldstein 2017-05-15 19:38 ` Amir Goldstein 2017-05-16 15:53 ` Christoph Hellwig 2017-05-16 15:53 ` Christoph Hellwig 2017-05-16 15:53 ` Christoph Hellwig
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170515154308.26739-6-hch@lst.de \ --to=hch@lst.de \ --cc=amir73il@gmail.com \ --cc=andriy.shevchenko@linux.intel.com \ --cc=dhowells@redhat.com \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nvdimm@lists.01.org \ --cc=linux-raid@vger.kernel.org \ --cc=linux-xfs@vger.kernel.org \ --cc=shli@kernel.org \ --cc=swhiteho@redhat.com \ --cc=zohar@linux.vnet.ibm.com \ --subject='Re: [PATCH 05/17] uuid: add the v1 layout to uuid_t' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.