Move executable code out of tst_safe_macros.h
Signed-off-by: Martin Doucha <mdoucha@suse.cz>
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
diff --git a/include/tst_safe_macros.h b/include/tst_safe_macros.h
index 08c2116..ee3df41 100644
--- a/include/tst_safe_macros.h
+++ b/include/tst_safe_macros.h
@@ -45,19 +45,8 @@
#define SAFE_DIRNAME(path) \
safe_dirname(__FILE__, __LINE__, NULL, (path))
-static inline int safe_dup(const char *file, const int lineno,
- int oldfd)
-{
- int rval;
+int safe_dup(const char *file, const int lineno, int oldfd);
- rval = dup(oldfd);
- if (rval == -1) {
- tst_brk_(file, lineno, TBROK | TERRNO,
- "dup(%i) failed", oldfd);
- }
-
- return rval;
-}
#define SAFE_DUP(oldfd) \
safe_dup(__FILE__, __LINE__, (oldfd))
@@ -439,21 +428,8 @@
safe_setrlimit(__FILE__, __LINE__, (resource), (rlim))
typedef void (*sighandler_t)(int);
-static inline sighandler_t safe_signal(const char *file, const int lineno,
- int signum, sighandler_t handler)
-{
- sighandler_t rval;
-
- rval = signal(signum, handler);
-
- if (rval == SIG_ERR) {
- tst_brk_(file, lineno, TBROK | TERRNO,
- "signal(%d,%p) failed",
- signum, handler);
- }
-
- return rval;
-}
+sighandler_t safe_signal(const char *file, const int lineno,
+ int signum, sighandler_t handler);
#define SAFE_SIGNAL(signum, handler) \
safe_signal(__FILE__, __LINE__, (signum), (handler))
@@ -601,19 +577,9 @@
int safe_setns(const char *file, const int lineno, int fd, int nstype);
#define SAFE_SETNS(fd, nstype) safe_setns(__FILE__, __LINE__, (fd), (nstype))
-static inline void safe_cmd(const char *file, const int lineno, const char *const argv[],
- const char *stdout_path, const char *stderr_path)
-{
- int rval;
+void safe_cmd(const char *file, const int lineno, const char *const argv[],
+ const char *stdout_path, const char *stderr_path);
- switch ((rval = tst_cmd(argv, stdout_path, stderr_path,
- TST_CMD_PASS_RETVAL | TST_CMD_TCONF_ON_MISSING))) {
- case 0:
- break;
- default:
- tst_brk(TBROK, "%s:%d: %s failed (%d)", file, lineno, argv[0], rval);
- }
-}
#define SAFE_CMD(argv, stdout_path, stderr_path) \
safe_cmd(__FILE__, __LINE__, (argv), (stdout_path), (stderr_path))
/*
diff --git a/lib/tst_safe_macros.c b/lib/tst_safe_macros.c
index dd7f604..5c51e08 100644
--- a/lib/tst_safe_macros.c
+++ b/lib/tst_safe_macros.c
@@ -397,3 +397,47 @@
return ret;
}
+
+int safe_dup(const char *file, const int lineno, int oldfd)
+{
+ int rval;
+
+ rval = dup(oldfd);
+ if (rval == -1) {
+ tst_brk_(file, lineno, TBROK | TERRNO,
+ "dup(%i) failed", oldfd);
+ }
+
+ return rval;
+}
+
+sighandler_t safe_signal(const char *file, const int lineno,
+ int signum, sighandler_t handler)
+{
+ sighandler_t rval;
+
+ rval = signal(signum, handler);
+
+ if (rval == SIG_ERR) {
+ tst_brk_(file, lineno, TBROK | TERRNO,
+ "signal(%d,%p) failed",
+ signum, handler);
+ }
+
+ return rval;
+}
+
+void safe_cmd(const char *file, const int lineno, const char *const argv[],
+ const char *stdout_path, const char *stderr_path)
+{
+ int rval;
+
+ switch ((rval = tst_cmd(argv, stdout_path, stderr_path,
+ TST_CMD_PASS_RETVAL | TST_CMD_TCONF_ON_MISSING))) {
+ case 0:
+ break;
+ default:
+ tst_brk(TBROK, "%s:%d: %s failed (%d)", file, lineno, argv[0],
+ rval);
+ }
+}