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/16] uuid: add the v1 layout to uuid_t
Date: Wed, 10 May 2017 20:02:03 +0200 [thread overview]
Message-ID: <20170510180214.16852-6-hch@lst.de> (raw)
In-Reply-To: <20170510180214.16852-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>
---
include/uapi/linux/uuid.h | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/uuid.h b/include/uapi/linux/uuid.h
index 1a2914d8b225..1039d2f3e114 100644
--- a/include/uapi/linux/uuid.h
+++ b/include/uapi/linux/uuid.h
@@ -25,7 +25,34 @@ typedef struct {
} guid_t;
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 GUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
--
2.11.0
next prev parent reply other threads:[~2017-05-10 18:02 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
2017-05-10 18:01 ` [PATCH 01/16] xfs: use uuid_copy() helper to abstract uuid_t Christoph Hellwig
2017-05-10 18:02 ` [PATCH 02/16] xfs: use uuid_be to implement the uuid_t type Christoph Hellwig
2017-05-10 18:02 ` [PATCH 03/16] uuid: rename uuid types Christoph Hellwig
2017-05-10 19:15 ` Amir Goldstein
2017-05-11 7:59 ` Christoph Hellwig
2017-05-11 8:31 ` Amir Goldstein
2017-05-10 18:02 ` [PATCH 04/16] uuid: don't export guid_index and uuid_index Christoph Hellwig
2017-05-10 18:02 ` Christoph Hellwig [this message]
2017-05-11 11:40 ` [PATCH 05/16] uuid: add the v1 layout to uuid_t Andy Shevchenko
2017-05-11 12:07 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 06/16] afs: switch to use uuid_t and uuid_gen Christoph Hellwig
2017-05-10 18:02 ` [PATCH 07/16] uuid: remove struct uuid_v1 Christoph Hellwig
2017-05-10 18:02 ` [PATCH 08/16] xfs: remove uuid_getnodeuniq and xfs_uu_t Christoph Hellwig
2017-05-10 18:02 ` [PATCH 09/16] md: namespace private helper names Christoph Hellwig
2017-05-10 18:02 ` [PATCH 10/16] uuid: hoist helpers uuid_equal() and uuid_copy() from xfs Christoph Hellwig
2017-05-10 18:02 ` [PATCH 11/16] uuid: hoist uuid_is_null() helper from libnvdimm Christoph Hellwig
2017-05-10 18:02 ` [PATCH 12/16] xfs: use the common helper uuid_is_null() Christoph Hellwig
2017-05-10 18:02 ` [PATCH 13/16] block: remove blk_part_pack_uuid Christoph Hellwig
2017-05-10 18:02 ` [PATCH 14/16] " Christoph Hellwig
2017-05-10 18:09 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 15/16] ima/policy: switch to use uuid_t Christoph Hellwig
2017-05-10 18:02 ` [PATCH 16/16] fs: switch ->s_uuid to uuid_t Christoph Hellwig
2017-05-10 19:08 ` Amir Goldstein
2017-05-11 7:58 ` Christoph Hellwig
2017-05-10 18:20 ` [PATCH 03/16] uuid: rename uuid types David Howells
2017-05-11 11:38 ` Andy Shevchenko
2017-05-10 18:21 ` [PATCH 05/16] uuid: add the v1 layout to uuid_t David Howells
2017-05-10 18:22 ` [PATCH 06/16] afs: switch to use uuid_t and uuid_gen David Howells
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=20170510180214.16852-6-hch@lst.de \
--to=hch@lst.de \
--cc=amir73il@gmail.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=dan.j.williams@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 \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).