diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2020-03-28 13:43:22 -0400 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2020-07-13 17:28:24 -0400 |
commit | 07e9a6325a35fb9655f7b52e2b9dc632da6eef51 (patch) | |
tree | 44c25f6c649d1f7a0f4034a64203b0a4a018098d /include/linux/sunrpc | |
parent | 0b8dc1b69995cbd81c2c9a2f1730c46cce085f62 (diff) |
SUNRPC: Add helpers for decoding list discriminators symbolically
Use these helpers in a few spots to demonstrate their use.
The remaining open-coded discriminator checks in rpcrdma will be
addressed in subsequent patches.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'include/linux/sunrpc')
-rw-r--r-- | include/linux/sunrpc/xdr.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h index 22c207b2425f..5a6a81b7cd9f 100644 --- a/include/linux/sunrpc/xdr.h +++ b/include/linux/sunrpc/xdr.h @@ -475,6 +475,32 @@ xdr_stream_encode_uint32_array(struct xdr_stream *xdr, } /** + * xdr_item_is_absent - symbolically handle XDR discriminators + * @p: pointer to undecoded discriminator + * + * Return values: + * %true if the following XDR item is absent + * %false if the following XDR item is present + */ +static inline bool xdr_item_is_absent(const __be32 *p) +{ + return *p == xdr_zero; +} + +/** + * xdr_item_is_present - symbolically handle XDR discriminators + * @p: pointer to undecoded discriminator + * + * Return values: + * %true if the following XDR item is present + * %false if the following XDR item is absent + */ +static inline bool xdr_item_is_present(const __be32 *p) +{ + return *p != xdr_zero; +} + +/** * xdr_stream_decode_u32 - Decode a 32-bit integer * @xdr: pointer to xdr_stream * @ptr: location to store integer |