1 #ifndef _LIB_OPENBSD_H_
2 #define _LIB_OPENBSD_H_
8 # define __UNUSED __attribute__ ((unused))
12 # define __dead __attribute__ ((noreturn))
15 /* API definitions lifted from OpenBSD src/include */
18 #define _PW_NAME_LEN 63
21 #ifndef HAVE_REALLOCARRAY
22 void * reallocarray(void *optr, size_t nmemb, size_t size);
23 #endif /* HAVE_REALLOCARRAY */
25 long long strtonum(const char *numstr, long long minval,
26 long long maxval, const char **errstrp);
27 #endif /* !HAVE_STRTONUM */
30 #ifndef HAVE_EXPLICIT_BZERO
31 void explicit_bzero(void *, size_t);
34 size_t strlcat(char *dst, const char *src, size_t dsize);
35 #endif /* !HAVE_STRLCAT */
37 size_t strlcpy(char *dst, const char *src, size_t dsize);
38 #endif /* !HAVE_STRLCPY */
42 int execvpe(const char *, char *const *, char *const *);
43 #endif /* !HAVE_EXECVPE */
44 #ifndef HAVE_SETRESUID
45 int setresuid(uid_t, uid_t, uid_t);
46 #endif /* !HAVE_SETRESUID */
48 int pledge(const char *promises, const char *paths[]);
49 #endif /* !HAVE_PLEDGE */
50 #ifndef HAVE_CLOSEFROM
52 #endif /* !HAVE_CLOSEFROM */
56 void __dead verrc(int eval, int code, const char *fmt, va_list ap);
57 #endif /* !HAVE_VERRC */
59 __dead void errc(int eval, int code, const char *fmt, ...);
60 #endif /* !HAVE_ERRC */
62 #ifndef HAVE_SETPROGNAME
63 const char * getprogname(void);
64 void setprogname(const char *progname);
65 #endif /* !HAVE_SETPROGNAME */
67 #endif /* _LIB_OPENBSD_H_ */