From 3334a537ed385e487a47208dab8f36b25643bcdb Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Tue, 26 Dec 2023 21:39:33 +0200 Subject: [PATCH] Convert fsidcmp(9) from macro to inline function This allows type checking the arguments. Explicit structure members comparisions are done to avoid introducting string.h pollution for userspace. Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D43205 --- sys/sys/mount.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/sys/mount.h b/sys/sys/mount.h index 6cb7ea81068..dd5eaad184f 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -50,7 +50,12 @@ typedef struct fsid { int32_t val[2]; } fsid_t; /* filesystem id type */ -#define fsidcmp(a, b) memcmp((a), (b), sizeof(fsid_t)) +/* Returns non-zero if fsids are different. */ +static inline int +fsidcmp(const fsid_t *a, const fsid_t *b) +{ + return (a->val[0] != b->val[0] || a->val[1] != b->val[1]); +} /* * File identifier.