From 961189af2a6969bddae4d3759defff5027b5701a Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 25 Apr 2019 01:19:07 +0200 Subject: [PATCH] util: introduce PTR_TO_MODE and MODE_TO_PTR macros --- src/basic/fs-util.h | 7 +++++++ src/basic/parse-util.h | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h index c153bc4448d..c5527cc44fd 100644 --- a/src/basic/fs-util.h +++ b/src/basic/fs-util.h @@ -14,6 +14,13 @@ #include "errno-util.h" #include "time-util.h" +#define MODE_INVALID ((mode_t) -1) + +/* The following macros add 1 when converting things, since 0 is a valid mode, while the pointer + * NULL is special */ +#define PTR_TO_MODE(p) ((mode_t) ((uintptr_t) (p)-1)) +#define MODE_TO_PTR(u) ((void *) ((uintptr_t) (u)+1)) + int unlink_noerrno(const char *path); int rmdir_parents(const char *path, const char *stop); diff --git a/src/basic/parse-util.h b/src/basic/parse-util.h index 7f5b0cf2b48..5a05dfeac55 100644 --- a/src/basic/parse-util.h +++ b/src/basic/parse-util.h @@ -9,8 +9,6 @@ #include "macro.h" -#define MODE_INVALID ((mode_t) -1) - int parse_boolean(const char *v) _pure_; int parse_dev(const char *s, dev_t *ret); int parse_pid(const char *s, pid_t* ret_pid); -- 2.39.5