187 lines
4.2 KiB
C
187 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
|