diff options
author | David Howells <dhowells@redhat.com> | 2019-06-26 21:02:31 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2019-06-26 21:02:31 +0100 |
commit | f771fde82051976a6fc0fd570f8b86de4a92124b (patch) | |
tree | 9721996d5d081b26f4c8a76fa275c01585030ba3 /include/linux/key.h | |
parent | 3b8c4a08a471d56ecaaca939c972fdf5b8255629 (diff) | |
download | linux-f771fde82051976a6fc0fd570f8b86de4a92124b.tar.gz linux-f771fde82051976a6fc0fd570f8b86de4a92124b.tar.bz2 linux-f771fde82051976a6fc0fd570f8b86de4a92124b.zip |
keys: Simplify key description management
Simplify key description management by cramming the word containing the
length with the first few chars of the description also. This simplifies
the code that generates the index-key used by assoc_array. It should speed
up key searching a bit too.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'include/linux/key.h')
-rw-r--r-- | include/linux/key.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/key.h b/include/linux/key.h index 4cd5669184f3..86ccc2d010f6 100644 --- a/include/linux/key.h +++ b/include/linux/key.h @@ -86,9 +86,20 @@ struct keyring_list; struct keyring_name; struct keyring_index_key { + union { + struct { +#ifdef __LITTLE_ENDIAN /* Put desc_len at the LSB of x */ + u8 desc_len; + char desc[sizeof(long) - 1]; /* First few chars of description */ +#else + char desc[sizeof(long) - 1]; /* First few chars of description */ + u8 desc_len; +#endif + }; + unsigned long x; + }; struct key_type *type; const char *description; - size_t desc_len; }; union key_payload { @@ -202,6 +213,7 @@ struct key { union { struct keyring_index_key index_key; struct { + unsigned long len_desc; struct key_type *type; /* type of key */ char *description; }; |