Messages in this thread Patch in this message | | | Date | Sat, 1 Apr 2023 20:48:05 +0300 | From | Alexey Dobriyan <> | Subject | [PATCH] string: implement streq() |
| |
Most of the time strcmp() is being used, strings are checked for equality. Add wrapper to relay such intent (it is shorter to type, too).
Use if (streq(s, "s")) { } or if (!streq(s, "s")) { }
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> ---
drivers/clk/socfpga/clk-gate-a10.c | 2 -- drivers/clk/socfpga/clk.h | 1 - include/linux/string.h | 6 ++++++ scripts/dtc/dtc.h | 6 +++++- 4 files changed, 11 insertions(+), 4 deletions(-)
--- a/drivers/clk/socfpga/clk-gate-a10.c +++ b/drivers/clk/socfpga/clk-gate-a10.c @@ -11,8 +11,6 @@ #include "clk.h" -#define streq(a, b) (strcmp((a), (b)) == 0) - #define to_socfpga_gate_clk(p) container_of(p, struct socfpga_gate_clk, hw.hw) /* SDMMC Group for System Manager defines */ --- a/drivers/clk/socfpga/clk.h +++ b/drivers/clk/socfpga/clk.h @@ -19,7 +19,6 @@ #define SOCFPGA_MAX_PARENTS 5 -#define streq(a, b) (strcmp((a), (b)) == 0) #define SYSMGR_SDMMC_CTRL_SET(smplsel, drvsel) \ ((((smplsel) & 0x7) << 3) | (((drvsel) & 0x7) << 0)) --- a/include/linux/string.h +++ b/include/linux/string.h @@ -47,6 +47,12 @@ extern size_t strlcat(char *, const char *, __kernel_size_t); #ifndef __HAVE_ARCH_STRCMP extern int strcmp(const char *,const char *); #endif + +static inline bool streq(const char *a, const char *b) +{ + return strcmp(a, b) == 0; +} + #ifndef __HAVE_ARCH_STRNCMP extern int strncmp(const char *,const char *,__kernel_size_t); #endif --- a/scripts/dtc/dtc.h +++ b/scripts/dtc/dtc.h @@ -88,7 +88,11 @@ static inline uint64_t dtb_ld64(const void *p) | bp[7]; } -#define streq(a, b) (strcmp((a), (b)) == 0) +static inline bool streq(const char *a, const char *b) +{ + return strcmp(a, b) == 0; +} + #define strstarts(s, prefix) (strncmp((s), (prefix), strlen(prefix)) == 0) #define strprefixeq(a, n, b) (strlen(b) == (n) && (memcmp(a, b, n) == 0)) static inline bool strends(const char *str, const char *suffix)
| |