src/include/openbsd/compat.h

188 lines
4.2 KiB
C

#ifndef _COMPAT_H_
#define _COMPAT_H_
#define FAIL_INSTEAD_OF_TRYING_FALLBACK
#define __warn_references(x,y)
#ifndef ALIGN
/* XXX: x86_64 only, see sys/arch/$arch/include/_types.h */
#define ALIGNBYTES (sizeof(long) - 1)
#define ALIGN(p) (((size_t)(p) + ALIGNBYTES) &~ ALIGNBYTES)
#endif
#define __UNUSED __attribute__ ((unused))
/* XXX: __unused clashes with musls stat.h
#define __unused __attribute__ ((unused))
*/
#define __dead __attribute__((__noreturn__))
#define __BEGIN_DECLS
#define __END_DECLS
#define __BEGIN_HIDDEN_DECLS
#define __END_HIDDEN_DECLS
#ifndef __CONCAT
#define __CONCAT(x,y) x ## y
#endif
#ifndef __STRING
#define __STRING(x) #x
#endif
#undef __weak_alias
#define __weak_alias(new, old) \
extern __typeof(old) new __attribute__((weak, alias(#old)))
#define __strong_alias(new, old) \
extern __typeof(old) new __attribute__((alias(#old)))
#ifndef SA_LEN
#define SA_LEN(X) \
(((struct sockaddr*)(X))->sa_family == AF_INET ? sizeof(struct sockaddr_in) : \
((struct sockaddr*)(X))->sa_family == AF_INET6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr))
#endif
#ifndef SS_LEN
#define SS_LEN(X) \
(((struct sockaddr_storage*)(X))->ss_family == AF_INET ? sizeof(struct sockaddr_in) : \
((struct sockaddr_storage*)(X))->ss_family == AF_INET6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr))
#endif
#define _PW_BUF_LEN 1024
#define _GR_BUF_LEN 1024
#define NOFILE_MAX NOFILE
#if !defined(HAVE_ATTRIBUTE__BOUNDED__)
#define __bounded__(x, y, z)
#endif
#if !defined(DEF_WEAK)
#define DEF_WEAK(x)
#endif
#if !defined(DEF_STRONG)
#define DEF_STRONG(x)
#endif
#if !defined(PROTO_NORMAL)
#define PROTO_NORMAL(x)
#endif
/* sys/sys/param.h */
/*
* File system parameters and macros.
*
* The file system is made out of blocks of at most MAXBSIZE units, with
* smaller units (fragments) only in the last direct block. MAXBSIZE
* primarily determines the size of buffers in the buffer pool. It may be
* made larger without any effect on existing file systems; however making
* it smaller makes some file systems unmountable.
*/
#define MAXBSIZE (64 * 1024)
#ifndef NL_TEXTMAX
#define NL_TEXTMAX 2048
#endif
#ifndef howmany
#define howmany(n,d) (((n)+((d)-1))/(d))
#endif
/* API definitions lifted from OpenBSD src/include */
/* pwd.h */
#define _PW_NAME_LEN 63
/* stdlib.h */
/* unistd.h */
#ifndef HAVE_EXECVPE
int execvpe(const char *, char *const *, char *const *);
#endif /* !HAVE_EXECVPE */
#ifndef HAVE_SETRESUID
/* int setresuid(uid_t, uid_t, uid_t); */
#endif /* !HAVE_SETRESUID */
#ifndef HAVE_PLEDGE
int pledge(const char *, const char *[]);
#endif /* !HAVE_PLEDGE */
#ifndef HAVE_SETPROGNAME
const char * getprogname(void);
void setprogname(const char *progname);
#endif /* !HAVE_SETPROGNAME */
/* pwcache.c */
/* char *user_from_uid(uid_t, int); */
/* char *group_from_gid(gid_t gid, int); */
/* getbsize.c */
char *getbsize(int *, long *);
#define strtoq strtoll
/* inttypes.h */
/*
intmax_t strtoimax(const char *, char **, int);
uintmax_t strtoumax(const char *, char **, int);
*/
/* #define d_namlen d_reclen */
#if !defined(_DIRENT_HAVE_NAMLEN)
#define D_NAMLEN(x) \
strnlen((x)->d_name, (x)->d_reclen)
#else
#define D_NAMLEN(x) \
(x)->d_namlen
#endif
/* for musl, required by xinstall */
#ifndef S_BLKSIZE
#define S_BLKSIZE 512
#endif
/**/
#ifndef MAXNAMLEN
#define MAXNAMLEN 255
#endif
/* XXX: read dynamically? */
#define UID_MAX 60000
#define GID_MAX 60000
/* sys/sys/stat.h */
#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 00777 */
#define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO) /* 00666 */
#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
#define S_ISTXT S_ISVTX
/* lib/libc/include/thread_private.h */
#define _MUTEX_LOCK(mutex) do {} while (0)
#define _MUTEX_UNLOCK(mutex) do {} while (0)
#define SHA512_Update SHA512Update
#define SHA512_CTX SHA2_CTX
#define SHA512_Init SHA512Init
#define SHA512_Final SHA512Final
/* sys/socket.h */
#define RT_TABLEID_MAX 255
/* sys/syslimits.h */
#define CHILD_MAX 80 /* max simultaneous processes */
/* setproctitle.c */
void setproctitle(const char *, ...);
/* pw_dup.c */
struct passwd *pw_dup(const struct passwd *);
int issetugid(void);
#define OPEN_MAX 64 /* max open files per process */
#endif