/* * ---------------------------------------------------------------- * Night Light System Headers (headers.h) * ---------------------------------------------------------------- * Copyright (C) 1997-2007 Jonas Kvinge * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * Last modified by: * Jonas Kvinge (27.11.2007) * */ #ifdef HEADERS_H #warning "headers.h already included." #else #define HEADERS_H #if OS_HPUNIX #define _XOPEN_SOURCE_EXTENDED #endif #ifndef NEED_SYS_TYPES_H #define NEED_SYS_TYPES_H 1 #endif #ifndef NEED_SYS_PARAM_H #define NEED_SYS_PARAM_H 1 #endif #ifndef NEED_LIMITS_H #define NEED_LIMITS_H 0 #endif #ifndef NEED_STDARG_H #define NEED_STDARG_H 1 #endif #ifndef NEED_ERRNO_H #define NEED_ERRNO_H 1 #endif #ifndef NEED_CTYPE_H #define NEED_CTYPE_H 1 #endif #ifndef NEED_NETINET_IN_H #define NEED_NETINET_IN_H 0 #endif #ifndef NEED_STDIO_H #define NEED_STDIO_H 1 #endif #ifndef NEED_STDLIB_H #define NEED_STDLIB_H 1 #endif #ifndef NEED_TIME_H #define NEED_TIME_H 1 #endif #ifndef NEED_SYS_STAT_H #define NEED_SYS_STAT_H 0 #endif #ifndef NEED_SYS_UIO_H #define NEED_SYS_UIO_H 0 #endif #ifndef NEED_FCNTL_H #define NEED_FCNTL_H 0 #endif #ifndef NEED_SYS_IOCTL_H #define NEED_SYS_IOCTL_H 0 #endif #ifndef NEED_SYS_FILIO_H #define NEED_SYS_FILIO_H 0 #endif #ifndef NEED_UNISTD_H #define NEED_UNISTD_H 1 #endif #ifndef NEED_STRING_H #define NEED_STRING_H 1 #endif #ifndef NEED_SIGNAL_H #define NEED_SIGNAL_H 0 #endif #ifndef NEED_ARPA_INET_H #define NEED_ARPA_INET_H 0 #endif #ifndef NEED_SYS_SOCKET_H #define NEED_SYS_SOCKET_H 0 #endif #ifndef NEED_NETDB_H #define NEED_NETDB_H 0 #endif #ifndef NEED_SYSCTL_H #define NEED_SYSCTL_H 0 #endif #ifndef NEED_ARPA_NAMESER_H #define NEED_ARPA_NAMESER_H 0 #endif #ifndef NEED_GETUSERPW_HEADERS #define NEED_GETUSERPW_HEADERS 0 #endif /* * * * size_t, time_t, pid_t, uid_t, gid_t, socklen_t, off_t quad_t * FD_SETSIZE, FD_SET(), FD_CLR(), FD_ISSET(), FD_COPY(), FD_ZERO() * */ #if NEED_SYS_TYPES_H #if HAVE_SYS_TYPES_H #include #else #warning "This system does not have sys/types.h" #endif #endif /* * * * Some systems need this file. * */ #if NEED_SYS_PARAM_H #if HAVE_SYS_PARAM_H #include #else #warning "This system does not have sys/param.h" #endif #endif /* * * */ #if NEED_LIMITS_H #if HAVE_LIMITS_H #include #else #warning "This system does not have limits.h!" #endif #endif /* * * * va_list, va_start, va_arg, va_end * */ #if NEED_STDARG_H #if HAVE_STDARG_H #include #else #warning "This system does not have stdarg.h!" #endif #endif /* * * * errno * */ #if NEED_ERRNO_H #if HAVE_ERRNO_H #include #else #warning "This system does not have errno.h!" #endif #endif /* * * * isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(), tolower(), toupper() * digittoint(), isascii(), isblank(), ishexnumber(), isideogram(), isnumber(), isphonogram(), isrune(), isspecial(), toascii() * */ #if NEED_CTYPE_H #if HAVE_CTYPE_H #include #else #warning "This system does not have ctype.h!" #endif #endif /* * Definitions for third level IPv4/IPv6 identifiers and fourth level IPv4/v6 identifiers * * struct in_addr, struct sockaddr_in * */ #if NEED_NETINET_IN_H #if HAVE_NETINET_IN_H #include #else #warning "This system does not have netinet/in.h!" #endif #endif /* * * * FILE, BUFSIZ, EOF, stdin, stdout, stderr * * fopen(), fdopen(), freopen(), fclose(), fflush(), fpurge(), fread(), fwrite(), fgets(), gets() * printf(), fprintf(), sprintf(), snprintf(), asprintf(), vprintf(), vfprintf(), vsprintf(), vsnprintf(), vasprintf() * scanf(), fscanf(), sscanf(), vscanf(), vsscanf(), vfscanf() * clearerr(), feof(), ferror(), fileno() * fgetc(), getc(), getchar(), getw() * fputc(), putc(), putchar(), putw() * ungetc() * fseek(), ftell(), rewind(), fgetpos(), fsetpos(), fseeko(), ftello() * setbuf(), setbuffer(), setlinebuf(), setvbuf() * perror() * remove(), rename() * tmpfile(), tmpnam(), tempnam() * ctermid(), ctermid_r() * fgetln() * fmtcheck() * popen(), pclose() * funopen(), fropen(), fwopen() * */ #if NEED_STDIO_H #if HAVE_STDIO_H #include #else #warning "This system does not have stdio.h!" #endif #endif /* * * * NULL, EXIT_FAILURE, EXIT_SUCCESS * * exit(), abort(), atexit() * atof(), atoi(), atol() * strtod(), strtol(), strtoll(), strtoul(), strtoull() strtoq() strtouq() * malloc(), calloc(), realloc(), reallocf(), free() * labs(), abs(), div(), ldiv(), math() * bsearch(), lsearch(), qsort(), heapsort(), mergesort() * rand(), srand(), rand_r() * random(), srandom(), srandomdev(), initstate(), setstate() * system(), daemon(), devname(), getloadavg(), getprogname(), setprogname() * getenv(), setenv(), putenv(), unsetenv() * mblen(), mbstowcs(), mbtowc(), wcstombs(), wctomb() * getbsize() * cgetent(), cgetset(), cgetmatch(), cgetcap(), cgetnum(), cgetstr(), cgetustr(), cgetfirst(), cgetnext(), cgetclose() * radixsort(), sradixsort() * realpath() * user_from_uid(), group_from_gid() * */ #if NEED_STDLIB_H #if HAVE_STDLIB_H #include #else #warning "This system does not have stdlib.h!" #endif #endif /* * / * * struct tm, struct timeval, struct timespec, struct timecounter, struct itimerval, struct clockinfo * * microtime(), getmicrotime(), nanotime(), getnanotime() * microuptime(), getmicrouptime(), nanouptime(), getnanouptime() * time(), tvtohz(), clock() * adjtime() * utimes(), lutimes(), futimes() * getitimer(), setitimer() * gettimeofday(), settimeofday() * ctime(), difftime(), asctime(), localtime(), gmtime(), mktime(), timegm(), ctime_r(), localtime_r(), gmtime_r(), asctime_r() * strftime(), strptime() * timezone() * tzset(), tzsetwall() * clock_getres(), clock_gettime(), clock_settime() * nanosleep() * */ #if NEED_TIME_H #if TIME_WITH_SYS_TIME #include #include #else #if HAVE_SYS_TIME_H #include #else #include #endif #endif #endif /* * * * chmod(), fchmod(), lchmod() * stat(), lstat(), fstat() * mkdir(), mkfifo(), umask() * chflags(), fchflags() * */ #if NEED_SYS_STAT_H #if HAVE_SYS_STAT_H #include #else #warning "This system does not have sys/stat.h!" #endif #endif /* * * * struct iovec, struct uio * * uiomove() * */ #if NEED_SYS_UIO_H #if HAVE_SYS_UIO_H #include #else #warning "This system does not have sys/uio.h!" #endif #endif /* * * * open(), creat(), fcntl() * * */ #if NEED_FCNTL_H #if HAVE_FCNTL_H #include #else #warning "This system does not have fcntl.h!" #endif #endif /* * * * ioctl() * * */ #if NEED_SYS_IOCTL_H #if HAVE_SYS_IOCTL_H #include #else #warning "This system does not have sys/ioctl.h!" #endif #endif /* * * * Solaris need this for ioctl() * * */ #if NEED_SYS_FILIO_H #if HAVE_SYS_FILIO_H #include #endif #endif /* * * * STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO * * getopt(), getsubopt() * pause(), sleep(), usleep() * alarm(), ualarm() * _exit() * access() * chdir(), fchdir(), rmdir() * chown(), fchown(), lchown() * execl(), execlp(), execle(), exect(), execv(), execvp() * pipe() * read(), readv(), pread() * write(), writev(), pwrite() * dup(), dup2(), close(), select() * revoke(), lockf(), lseek() * valloc() * fork(), rfork(), rfork_thread(), vfork() * getpid(), getppid() * getdomainname(), setdomainname(), gethostid(), sethostid(), gethostname(), sethostname(), getlogin_r(), setlogin(), getusershell(), setusershell(), endusershell() * getcwd(), getwd(), chroot() * sysconf(), pathconf(), fpathconf() * getuid(), geteuid(), getgid(), getegid() * setuid(), seteuid(), setgid(), setegid() * setruid(), setrgid(), setreuid(), setregid(), setresgid(), setresuid() * issetugid() * initgroups(), getgrouplist(), getgroups(), getlogin(), getlogin_r(), setlogin() * getpgrp(), getpgid(), getpid(), getppid() * setpgid(), setpgrp() * setproctitle() * getsid(), setsid() * ttyname(), isatty(), ttyslot() * link(), unlink(), readlink(), symlink() * tcgetpgrp(), tcsetpgrp() * acct(), brk() * confstr() * getpass(), crypt(), crypt_get_format(), crypt_set_format() * setkey(), encrypt(), des_setkey(), des_cipher() * getusershell(), setusershell(), endusershell() * fflagstostr(), strtofflags() * fsync(), truncate(), ftruncate() * getdtablesize() getpagesize() * getmode(), setmode() * getpeereid() * rcmd(), rresvport(), iruserok(), ruserok(), rcmd_af(), rresvport_af(), iruserok_sa() * rcmdsh * mktemp(), mkstemp(), mkstemps(), mkdtemp() * mknod() * nfssvc() * nice() * profil() * re_comp(), re_exec() * swapon(), sync(), reboot() * brk(), sbrk() * syscall() * undelete() * */ #if NEED_UNISTD_H #if HAVE_UNISTD_H #include #else #warning "This system does not have unistd.h!" #endif #endif /* * * * memchr(), memcmp(), memcpy(), memmove(), memset() * strchr(), strstr(), strpbrk(), strrchr(), strtok(), strtok_r(), strxfrm() * strcat(), strncat() * strcmp, strncmp(), strcpy, strncpy * strcoll() * strspn(), strcspn() * strerror() * strlen() * */ #if NEED_STRING_H #if HAVE_STRING_H #include #else #warning "This system does not have string.h!" #endif #endif /* * * * struct sigaction, sig_t * * raise(), kill(), killpg() * signal(), sigaction(), sigpending(), sigprocmask(), sigsuspend(), sigwait() * sigaltstack(), sigblock(), siginterrupt(), sigpause(), sigreturn(), sigsetmask(), sigstack(), sigvec(), psignal() * sigemptyset(), sigfillset(), sigaddset(), sigdelset(), sigismember() * */ #if NEED_SIGNAL_H #if HAVE_SIGNAL_H #include #else #warning "This system does not have errno.h!" #endif #endif /* * * * inet_addr(), inet_aton(), inet_lnaof(), inet_makeaddr(), inet_neta(), inet_netof(), inet_network() * inet_net_ntop(), inet_net_pton(), inet_ntoa(), inet_pton(), inet_ntop(), inet_nsap_addr(), inet_nsap_ntoa() * */ #if NEED_ARPA_INET_H #if HAVE_ARPA_INET_H #include #else #warning "This system does not have arpa/inet.h!" #endif #endif /* * Definitions for second level network identifiers * * struct sockaddr * * socket(), bind(), connect(), listen(), accept() * getpeername(), getsockname(), getsockopt() * recv(), recvfrom(), recvmsg(), send(), sendto(), sendmsg() * sendfile(), shutdown(), socketpair() * */ #if NEED_SYS_SOCKET_H #if HAVE_SYS_SOCKET_H #include #else #warning "This system does not have sys/socket.h!" #endif #endif /* * * * h_errno * struct hostent, struct netent, struct servent, struct protoent, struct addrinfo * * gethostbyname(), gethostbyname2(), gethostbyaddr(), gethostent(), sethostent(), endhostent(), herror(), hstrerror() * getnetent(), getnetbyname(), getnetbyaddr(), setnetent(), endnetent() * getnetgrent(), innetgr(), setnetgrent(), endnetgrent() * getprotoent(), getprotobyname(), getprotobynumber(), setprotoent(), endprotoent() * getservent(), getservbyname(), getservbyport(), setservent(), endservent() * getipnodebyname(), getipnodebyaddr(), freehostent() * getaddrinfo(), freeaddrinfo(), gai_strerror() * getnameinfo() * */ #if NEED_NETDB_H #if HAVE_NETDB_H #include #else #warning "This system does not have netdb.h!" #endif #endif /* * * Definitions for top level identifiers, second level kernel and hardware identifiers, and user level identifiers * * sysctl_add_oid(), sysctl_remove_oid() * sysctl_ctx_init(), sysctl_ctx_free(), sysctl_ctx_entry_add(), sysctl_ctx_entry_find(), sysctl_ctx_entry_del() * sysctl(), sysctlbyname(), sysctlnametomib() * */ #if NEED_SYSCTL_H #if HAVE_SYS_SYSCTL_H #include #else #warning "This system does not have sys/sysctl.h!" #endif #endif /* * * * Nameserver stuff needed for Ares. * */ #if NEED_ARPA_NAMESER_H #if HAVE_ARPA_NAMESER_H #include #else #warning "This system does not have arpa/nameser.h!" #endif #endif /* * * * * */ #if NEED_CRYPT && HAVE_CRYPT_H #include #endif /* * * */ #if USE_ASSERT && HAVE_ASSERT_H #include #else #warning "!!! NOT USING ASSERTIONS !!!" #define assert(X) #endif /* * Stuff we need to retrive system passwords. * This might not work on all systems. * */ #if NEED_GETUSERPW_HEADERS #if HAVE_PWD_H #include #endif #if HAVE_PROT_H #include #endif #if HAVE_SHADOW_H #include #endif #if HAVE_USERPW_H #include #endif #if HAVE_HPSECURITY_H #include #endif #endif /* * Stuff needed for ares functions */ #if ARES && NEED_ARES && HAVE_ARES_H #include #if HAVE_ARES_VERSION_H #include #endif #endif /* * Stuff needed for SSL support * * */ #if SSL_SUPPORT && NEED_SSL #if HAVE_OPENSSL_CRYPTO_H #include #endif #if HAVE_OPENSSL_X509_H #include #endif #if HAVE_OPENSSL_RAND_H #include #endif #if HAVE_OPENSSL_PEM_H #include #endif #if HAVE_OPENSSL_SSL_H #include #endif #if HAVE_OPENSSL_ERR_H #include #endif #if HAVE_OPENSSL_BIO_H #include #endif #endif /* * Memory debugging * */ #if MEMDEBUG #if HAVE_MEMCALLS_H #include #else #include "memcalls.h" #endif #if 0 #include "memlist.h" #endif #endif /* * FD debugging * */ #if FDDEBUG #if HAVE_FDCALLS_H #include #else #include "fdcalls.h" #endif #endif #endif