aboutsummaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-06-02 18:29:41 +0000
committerLaurent Bercot <ska@appnovation.com>2025-06-02 18:29:41 +0000
commit1f94bad45a8a161410c4564ebe5bbb892556d1bd (patch)
tree87ac42a398ea4536344e6ebe0a506f79d9b3564d /src/include
parentdf513f668cbd03f369bfaffa6743b5f21dbfe355 (diff)
downloadskalibs-1f94bad45a8a161410c4564ebe5bbb892556d1bd.tar.gz
Add prog.h and prog_pid_fill
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/skalibs/prog.h18
-rw-r--r--src/include/skalibs/stddjb.h1
-rw-r--r--src/include/skalibs/strerr.h3
3 files changed, 20 insertions, 2 deletions
diff --git a/src/include/skalibs/prog.h b/src/include/skalibs/prog.h
new file mode 100644
index 0000000..de23e1f
--- /dev/null
+++ b/src/include/skalibs/prog.h
@@ -0,0 +1,18 @@
+/* ISC license. */
+
+#ifndef SKALIBS_PROG_H
+#define SKALIBS_PROG_H
+
+#include <stddef.h>
+#include <skalibs/types.h>
+
+extern char const *PROG ;
+
+#define PROG_pid_len(name) (sizeof(name) + 5 + PID_FMT)
+
+#define PROG_pid_fill(buf, name) prog_pid_fill(buf, (name), sizeof(name)-1)
+#define PROG_pid_set(buf, name) do { PROG_pid_fill(buf, name) ; PROG = buf ; } while (0)
+
+extern void prog_pid_fill (char *, char const *, size_t) ;
+
+#endif
diff --git a/src/include/skalibs/stddjb.h b/src/include/skalibs/stddjb.h
index ab5bcaf..d57a3df 100644
--- a/src/include/skalibs/stddjb.h
+++ b/src/include/skalibs/stddjb.h
@@ -39,6 +39,7 @@
#include <skalibs/iopause.h>
#include <skalibs/lolstdio.h>
#include <skalibs/netstring.h>
+#include <skalibs/prog.h>
#include <skalibs/segfault.h>
#include <skalibs/selfpipe.h>
#include <skalibs/setgroups.h>
diff --git a/src/include/skalibs/strerr.h b/src/include/skalibs/strerr.h
index 2448981..2ece01e 100644
--- a/src/include/skalibs/strerr.h
+++ b/src/include/skalibs/strerr.h
@@ -4,6 +4,7 @@
#define SKALIBS_STRERR_H
#include <skalibs/gccattributes.h>
+#include <skalibs/prog.h>
extern void strerr_warnv (char const *const *, unsigned int) ;
extern void strerr_warnvsys (char const *const *, unsigned int) ;
@@ -21,8 +22,6 @@ extern void strerr_dievsys(int, char const *const *, unsigned int) gccattr_noret
#define strerr_die(e, ...) strerr_dien(e, sizeof(strerr_array(__VA_ARGS__))/sizeof(char const *), __VA_ARGS__)
#define strerr_diesys(e, ...) strerr_diensys(e, sizeof(strerr_array(__VA_ARGS__))/sizeof(char const *), __VA_ARGS__)
-extern char const *PROG ;
-
#define strerr_warnwn(n, ...) strerr_warnn((n)+2, PROG, ": warning: ", __VA_ARGS__)
#define strerr_warnwnsys(n, ...) strerr_warnnsys((n)+2, PROG, ": warning: ", __VA_ARGS__)
#define strerr_warnfn(n, ...) strerr_warnn((n)+2, PROG, ": fatal: ", __VA_ARGS__)