1b528cefcSMark Murray /* 2c19800e8SDoug Rabson * Copyright (c) 1995 - 2005 Kungliga Tekniska Högskolan 3b528cefcSMark Murray * (Royal Institute of Technology, Stockholm, Sweden). 4b528cefcSMark Murray * All rights reserved. 5b528cefcSMark Murray * 6b528cefcSMark Murray * Redistribution and use in source and binary forms, with or without 7b528cefcSMark Murray * modification, are permitted provided that the following conditions 8b528cefcSMark Murray * are met: 9b528cefcSMark Murray * 10b528cefcSMark Murray * 1. Redistributions of source code must retain the above copyright 11b528cefcSMark Murray * notice, this list of conditions and the following disclaimer. 12b528cefcSMark Murray * 13b528cefcSMark Murray * 2. Redistributions in binary form must reproduce the above copyright 14b528cefcSMark Murray * notice, this list of conditions and the following disclaimer in the 15b528cefcSMark Murray * documentation and/or other materials provided with the distribution. 16b528cefcSMark Murray * 17b528cefcSMark Murray * 3. Neither the name of the Institute nor the names of its contributors 18b528cefcSMark Murray * may be used to endorse or promote products derived from this software 19b528cefcSMark Murray * without specific prior written permission. 20b528cefcSMark Murray * 21b528cefcSMark Murray * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 22b528cefcSMark Murray * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23b528cefcSMark Murray * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24b528cefcSMark Murray * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 25b528cefcSMark Murray * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26b528cefcSMark Murray * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27b528cefcSMark Murray * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28b528cefcSMark Murray * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29b528cefcSMark Murray * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30b528cefcSMark Murray * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31b528cefcSMark Murray * SUCH DAMAGE. 32b528cefcSMark Murray */ 33b528cefcSMark Murray 34c19800e8SDoug Rabson /* $Id$ */ 35b528cefcSMark Murray 36b528cefcSMark Murray #ifndef __ROKEN_COMMON_H__ 37b528cefcSMark Murray #define __ROKEN_COMMON_H__ 38b528cefcSMark Murray 39c19800e8SDoug Rabson #ifndef ROKEN_LIB_FUNCTION 40c19800e8SDoug Rabson #ifdef _WIN32 41c19800e8SDoug Rabson #define ROKEN_LIB_FUNCTION 42c19800e8SDoug Rabson #define ROKEN_LIB_CALL __cdecl 43c19800e8SDoug Rabson #else 44c19800e8SDoug Rabson #define ROKEN_LIB_FUNCTION 45c19800e8SDoug Rabson #define ROKEN_LIB_CALL 46c19800e8SDoug Rabson #endif 475e9cd1aeSAssar Westerlund #endif 485e9cd1aeSAssar Westerlund 495e9cd1aeSAssar Westerlund #ifdef __cplusplus 505e9cd1aeSAssar Westerlund #define ROKEN_CPP_START extern "C" { 515e9cd1aeSAssar Westerlund #define ROKEN_CPP_END } 525e9cd1aeSAssar Westerlund #else 535e9cd1aeSAssar Westerlund #define ROKEN_CPP_START 545e9cd1aeSAssar Westerlund #define ROKEN_CPP_END 55b528cefcSMark Murray #endif 56b528cefcSMark Murray 57b528cefcSMark Murray #ifndef INADDR_NONE 58b528cefcSMark Murray #define INADDR_NONE 0xffffffff 59b528cefcSMark Murray #endif 60b528cefcSMark Murray 61b528cefcSMark Murray #ifndef INADDR_LOOPBACK 62b528cefcSMark Murray #define INADDR_LOOPBACK 0x7f000001 63b528cefcSMark Murray #endif 64b528cefcSMark Murray 65b528cefcSMark Murray #ifndef SOMAXCONN 66b528cefcSMark Murray #define SOMAXCONN 5 67b528cefcSMark Murray #endif 68b528cefcSMark Murray 69b528cefcSMark Murray #ifndef STDIN_FILENO 70b528cefcSMark Murray #define STDIN_FILENO 0 71b528cefcSMark Murray #endif 72b528cefcSMark Murray 73b528cefcSMark Murray #ifndef STDOUT_FILENO 74b528cefcSMark Murray #define STDOUT_FILENO 1 75b528cefcSMark Murray #endif 76b528cefcSMark Murray 77b528cefcSMark Murray #ifndef STDERR_FILENO 78b528cefcSMark Murray #define STDERR_FILENO 2 79b528cefcSMark Murray #endif 80b528cefcSMark Murray 81b528cefcSMark Murray #ifndef max 82b528cefcSMark Murray #define max(a,b) (((a)>(b))?(a):(b)) 83b528cefcSMark Murray #endif 84b528cefcSMark Murray 85b528cefcSMark Murray #ifndef min 86b528cefcSMark Murray #define min(a,b) (((a)<(b))?(a):(b)) 87b528cefcSMark Murray #endif 88b528cefcSMark Murray 89b528cefcSMark Murray #ifndef TRUE 90b528cefcSMark Murray #define TRUE 1 91b528cefcSMark Murray #endif 92b528cefcSMark Murray 93b528cefcSMark Murray #ifndef FALSE 94b528cefcSMark Murray #define FALSE 0 95b528cefcSMark Murray #endif 96b528cefcSMark Murray 97b528cefcSMark Murray #ifndef LOG_DAEMON 98b528cefcSMark Murray #define openlog(id,option,facility) openlog((id),(option)) 99b528cefcSMark Murray #define LOG_DAEMON 0 100b528cefcSMark Murray #endif 101b528cefcSMark Murray #ifndef LOG_ODELAY 102b528cefcSMark Murray #define LOG_ODELAY 0 103b528cefcSMark Murray #endif 104b528cefcSMark Murray #ifndef LOG_NDELAY 105b528cefcSMark Murray #define LOG_NDELAY 0x08 106b528cefcSMark Murray #endif 107b528cefcSMark Murray #ifndef LOG_CONS 108b528cefcSMark Murray #define LOG_CONS 0 109b528cefcSMark Murray #endif 110b528cefcSMark Murray #ifndef LOG_AUTH 111b528cefcSMark Murray #define LOG_AUTH 0 112b528cefcSMark Murray #endif 113b528cefcSMark Murray #ifndef LOG_AUTHPRIV 114b528cefcSMark Murray #define LOG_AUTHPRIV LOG_AUTH 115b528cefcSMark Murray #endif 116b528cefcSMark Murray 117b528cefcSMark Murray #ifndef F_OK 118b528cefcSMark Murray #define F_OK 0 119b528cefcSMark Murray #endif 120b528cefcSMark Murray 121b528cefcSMark Murray #ifndef O_ACCMODE 122b528cefcSMark Murray #define O_ACCMODE 003 12313e3f4d6SMark Murray #endif 12413e3f4d6SMark Murray 12513e3f4d6SMark Murray #ifndef _WIN32 12613e3f4d6SMark Murray 127b528cefcSMark Murray #ifndef _PATH_DEV 128b528cefcSMark Murray #define _PATH_DEV "/dev/" 129b528cefcSMark Murray #endif 130b528cefcSMark Murray 131b528cefcSMark Murray #ifndef _PATH_DEVNULL 132b528cefcSMark Murray #define _PATH_DEVNULL "/dev/null" 133b528cefcSMark Murray #endif 134b528cefcSMark Murray 1355e9cd1aeSAssar Westerlund #ifndef _PATH_HEQUIV 1365e9cd1aeSAssar Westerlund #define _PATH_HEQUIV "/etc/hosts.equiv" 1375e9cd1aeSAssar Westerlund #endif 1385e9cd1aeSAssar Westerlund 1395e9cd1aeSAssar Westerlund #ifndef _PATH_VARRUN 1405e9cd1aeSAssar Westerlund #define _PATH_VARRUN "/var/run/" 1415e9cd1aeSAssar Westerlund #endif 1425e9cd1aeSAssar Westerlund 143b528cefcSMark Murray #ifndef _PATH_BSHELL 144b528cefcSMark Murray #define _PATH_BSHELL "/bin/sh" 145b528cefcSMark Murray #endif 146b528cefcSMark Murray 147b528cefcSMark Murray #ifndef MAXPATHLEN 1485e9cd1aeSAssar Westerlund #define MAXPATHLEN (1024+4) 149b528cefcSMark Murray #endif 150b528cefcSMark Murray 151b528cefcSMark Murray #endif /* !_WIN32 */ 152b528cefcSMark Murray 153b528cefcSMark Murray #ifndef PATH_MAX 154b528cefcSMark Murray #define PATH_MAX MAX_PATH 155b528cefcSMark Murray #endif 156b528cefcSMark Murray 157b528cefcSMark Murray #ifndef RETSIGTYPE 158b528cefcSMark Murray #define RETSIGTYPE void 159b528cefcSMark Murray #endif 160b528cefcSMark Murray 161b528cefcSMark Murray #ifndef SIG_ERR 162b528cefcSMark Murray #define SIG_ERR ((RETSIGTYPE (*)(int))-1) 163b528cefcSMark Murray #endif 164b528cefcSMark Murray 165b528cefcSMark Murray /* 166b528cefcSMark Murray * error code for getipnodeby{name,addr} 167b528cefcSMark Murray */ 168b528cefcSMark Murray 169b528cefcSMark Murray #ifndef HOST_NOT_FOUND 170b528cefcSMark Murray #define HOST_NOT_FOUND 1 171b528cefcSMark Murray #endif 172b528cefcSMark Murray 173b528cefcSMark Murray #ifndef TRY_AGAIN 174b528cefcSMark Murray #define TRY_AGAIN 2 175b528cefcSMark Murray #endif 176b528cefcSMark Murray 177b528cefcSMark Murray #ifndef NO_RECOVERY 178b528cefcSMark Murray #define NO_RECOVERY 3 179b528cefcSMark Murray #endif 180b528cefcSMark Murray 181b528cefcSMark Murray #ifndef NO_DATA 182b528cefcSMark Murray #define NO_DATA 4 1831c43270aSJacques Vidrine #endif 184b528cefcSMark Murray 185b528cefcSMark Murray #ifndef NO_ADDRESS 186b528cefcSMark Murray #define NO_ADDRESS NO_DATA 187b528cefcSMark Murray #endif 188b528cefcSMark Murray 189b528cefcSMark Murray /* 190b528cefcSMark Murray * error code for getaddrinfo 191b528cefcSMark Murray */ 192b528cefcSMark Murray 193b528cefcSMark Murray #ifndef EAI_NOERROR 194b528cefcSMark Murray #define EAI_NOERROR 0 /* no error */ 195b528cefcSMark Murray #endif 196b528cefcSMark Murray 1971c43270aSJacques Vidrine #ifndef EAI_NONAME 198b528cefcSMark Murray 199b528cefcSMark Murray #define EAI_ADDRFAMILY 1 /* address family for nodename not supported */ 200b528cefcSMark Murray #define EAI_AGAIN 2 /* temporary failure in name resolution */ 201b528cefcSMark Murray #define EAI_BADFLAGS 3 /* invalid value for ai_flags */ 202b528cefcSMark Murray #define EAI_FAIL 4 /* non-recoverable failure in name resolution */ 203b528cefcSMark Murray #define EAI_FAMILY 5 /* ai_family not supported */ 204b528cefcSMark Murray #define EAI_MEMORY 6 /* memory allocation failure */ 205b528cefcSMark Murray #define EAI_NODATA 7 /* no address associated with nodename */ 2068373020dSJacques Vidrine #define EAI_NONAME 8 /* nodename nor servname provided, or not known */ 2078373020dSJacques Vidrine #define EAI_SERVICE 9 /* servname not supported for ai_socktype */ 2088373020dSJacques Vidrine #define EAI_SOCKTYPE 10 /* ai_socktype not supported */ 2098373020dSJacques Vidrine #define EAI_SYSTEM 11 /* system error returned in errno */ 210b528cefcSMark Murray 211b528cefcSMark Murray #endif /* EAI_NONAME */ 212b528cefcSMark Murray 213b528cefcSMark Murray /* flags for getaddrinfo() */ 214b528cefcSMark Murray 215b528cefcSMark Murray #ifndef AI_PASSIVE 216b528cefcSMark Murray #define AI_PASSIVE 0x01 217b528cefcSMark Murray #define AI_CANONNAME 0x02 218b528cefcSMark Murray #endif /* AI_PASSIVE */ 219b528cefcSMark Murray 220b528cefcSMark Murray #ifndef AI_NUMERICHOST 221b528cefcSMark Murray #define AI_NUMERICHOST 0x04 222b528cefcSMark Murray #endif 223b528cefcSMark Murray 224b528cefcSMark Murray #ifndef AI_NUMERICSERV 225b528cefcSMark Murray #define AI_NUMERICSERV 0x08 226b528cefcSMark Murray #endif 227b528cefcSMark Murray 228b528cefcSMark Murray /* flags for getnameinfo() */ 229b528cefcSMark Murray 230b528cefcSMark Murray #ifndef NI_DGRAM 231b528cefcSMark Murray #define NI_DGRAM 0x01 232b528cefcSMark Murray #define NI_NAMEREQD 0x02 233b528cefcSMark Murray #define NI_NOFQDN 0x04 234b528cefcSMark Murray #define NI_NUMERICHOST 0x08 235b528cefcSMark Murray #define NI_NUMERICSERV 0x10 236b528cefcSMark Murray #endif 237b528cefcSMark Murray 238b528cefcSMark Murray /* 239b528cefcSMark Murray * constants for getnameinfo 240b528cefcSMark Murray */ 241b528cefcSMark Murray 242b528cefcSMark Murray #ifndef NI_MAXHOST 243b528cefcSMark Murray #define NI_MAXHOST 1025 244b528cefcSMark Murray #define NI_MAXSERV 32 245b528cefcSMark Murray #endif 246b528cefcSMark Murray 247b528cefcSMark Murray /* 248b528cefcSMark Murray * constants for inet_ntop 249b528cefcSMark Murray */ 250b528cefcSMark Murray 251b528cefcSMark Murray #ifndef INET_ADDRSTRLEN 252b528cefcSMark Murray #define INET_ADDRSTRLEN 16 253b528cefcSMark Murray #endif 254b528cefcSMark Murray 255b528cefcSMark Murray #ifndef INET6_ADDRSTRLEN 256b528cefcSMark Murray #define INET6_ADDRSTRLEN 46 257b528cefcSMark Murray #endif 258b528cefcSMark Murray 259b528cefcSMark Murray /* 260b528cefcSMark Murray * for shutdown(2) 2615e9cd1aeSAssar Westerlund */ 2625e9cd1aeSAssar Westerlund 2630cadf2f4SJacques Vidrine #ifndef SHUT_RD 264b528cefcSMark Murray #define SHUT_RD 0 2655e9cd1aeSAssar Westerlund #endif 266b528cefcSMark Murray 267b528cefcSMark Murray #ifndef SHUT_WR 268b528cefcSMark Murray #define SHUT_WR 1 269b528cefcSMark Murray #endif 270c19800e8SDoug Rabson 271c19800e8SDoug Rabson #ifndef SHUT_RDWR 272b528cefcSMark Murray #define SHUT_RDWR 2 273c19800e8SDoug Rabson #endif 274c19800e8SDoug Rabson 275c19800e8SDoug Rabson #ifndef HAVE___ATTRIBUTE__ 276c19800e8SDoug Rabson #define __attribute__(x) 277c19800e8SDoug Rabson #endif 278c19800e8SDoug Rabson 279b528cefcSMark Murray ROKEN_CPP_START 280c19800e8SDoug Rabson 281c19800e8SDoug Rabson #ifndef IRIX4 /* fix for compiler bug */ 282c19800e8SDoug Rabson #ifndef _WIN32 283c19800e8SDoug Rabson #ifdef RETSIGTYPE 284c19800e8SDoug Rabson typedef RETSIGTYPE (*SigAction)(int); 285b528cefcSMark Murray SigAction signal(int iSig, SigAction pAction); /* BSD compatible */ 286c19800e8SDoug Rabson #endif 287c19800e8SDoug Rabson #endif 288c19800e8SDoug Rabson #endif 289c19800e8SDoug Rabson 290c19800e8SDoug Rabson #define SE_E_UNSPECIFIED (-1) 291c19800e8SDoug Rabson #define SE_E_FORKFAILED (-2) 292c19800e8SDoug Rabson #define SE_E_WAITPIDFAILED (-3) 293c19800e8SDoug Rabson #define SE_E_EXECTIMEOUT (-4) 294c19800e8SDoug Rabson #define SE_E_NOEXEC 126 295c19800e8SDoug Rabson #define SE_E_NOTFOUND 127 296c19800e8SDoug Rabson 297c19800e8SDoug Rabson #define SE_PROCSTATUS(st) (((st) >= 0 && (st) < 126)? st: -1) 298c19800e8SDoug Rabson #define SE_PROCSIGNAL(st) (((st) >= 128)? (st) - 128: -1) 299c19800e8SDoug Rabson #define SE_IS_ERROR(st) ((st) < 0 || (st) >= 126) 300c19800e8SDoug Rabson 301c19800e8SDoug Rabson 302c19800e8SDoug Rabson #define simple_execve rk_simple_execve 303c19800e8SDoug Rabson ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 304c19800e8SDoug Rabson simple_execve(const char*, char*const[], char*const[]); 305c19800e8SDoug Rabson 306c19800e8SDoug Rabson #define simple_execve_timed rk_simple_execve_timed 307c19800e8SDoug Rabson ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 308c19800e8SDoug Rabson simple_execve_timed(const char *, char *const[], 309b528cefcSMark Murray char *const [], time_t (*)(void *), 3104137ff4cSJacques Vidrine void *, time_t); 3114137ff4cSJacques Vidrine 312c19800e8SDoug Rabson #define simple_execvp rk_simple_execvp 313c19800e8SDoug Rabson ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 3144137ff4cSJacques Vidrine simple_execvp(const char*, char *const[]); 315c19800e8SDoug Rabson 316c19800e8SDoug Rabson #define simple_execvp_timed rk_simple_execvp_timed 3175e9cd1aeSAssar Westerlund ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 318c19800e8SDoug Rabson simple_execvp_timed(const char *, char *const[], 319c19800e8SDoug Rabson time_t (*)(void *), void *, time_t); 320b528cefcSMark Murray 321c19800e8SDoug Rabson #define simple_execlp rk_simple_execlp 322c19800e8SDoug Rabson ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 323b528cefcSMark Murray simple_execlp(const char*, ...); 324c19800e8SDoug Rabson 325c19800e8SDoug Rabson #define simple_execle rk_simple_execle 326b528cefcSMark Murray ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 327c19800e8SDoug Rabson simple_execle(const char*, ...); 328c19800e8SDoug Rabson 329b528cefcSMark Murray #define wait_for_process rk_wait_for_process 330c19800e8SDoug Rabson ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 331c19800e8SDoug Rabson wait_for_process(pid_t); 332b528cefcSMark Murray 333c19800e8SDoug Rabson #define wait_for_process_timed rk_wait_for_process_timed 334c19800e8SDoug Rabson ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 335b528cefcSMark Murray wait_for_process_timed(pid_t, time_t (*)(void *), 336c19800e8SDoug Rabson void *, time_t); 337c19800e8SDoug Rabson 338b528cefcSMark Murray #define pipe_execv rk_pipe_execv 339c19800e8SDoug Rabson ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 340c19800e8SDoug Rabson pipe_execv(FILE**, FILE**, FILE**, const char*, ...); 3414137ff4cSJacques Vidrine 342c19800e8SDoug Rabson #define print_version rk_print_version 343c19800e8SDoug Rabson ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 344b528cefcSMark Murray print_version(const char *); 345c19800e8SDoug Rabson 346c19800e8SDoug Rabson #define eread rk_eread 347b528cefcSMark Murray ROKEN_LIB_FUNCTION ssize_t ROKEN_LIB_CALL 348c19800e8SDoug Rabson eread (int fd, void *buf, size_t nbytes); 349c19800e8SDoug Rabson 350b528cefcSMark Murray #define ewrite rk_ewrite 351c19800e8SDoug Rabson ROKEN_LIB_FUNCTION ssize_t ROKEN_LIB_CALL 352c19800e8SDoug Rabson ewrite (int fd, const void *buf, size_t nbytes); 353c19800e8SDoug Rabson 354c19800e8SDoug Rabson struct hostent; 35513e3f4d6SMark Murray 35613e3f4d6SMark Murray #define hostent_find_fqdn rk_hostent_find_fqdn 357c19800e8SDoug Rabson ROKEN_LIB_FUNCTION const char * ROKEN_LIB_CALL 35813e3f4d6SMark Murray hostent_find_fqdn (const struct hostent *); 35913e3f4d6SMark Murray 360c19800e8SDoug Rabson #define esetenv rk_esetenv 361c19800e8SDoug Rabson ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 3625e9cd1aeSAssar Westerlund esetenv(const char *, const char *, int); 363c19800e8SDoug Rabson 364c19800e8SDoug Rabson #define socket_set_address_and_port rk_socket_set_address_and_port 3655e9cd1aeSAssar Westerlund ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 366c19800e8SDoug Rabson socket_set_address_and_port (struct sockaddr *, const void *, int); 367c19800e8SDoug Rabson 368c19800e8SDoug Rabson #define socket_addr_size rk_socket_addr_size 369c19800e8SDoug Rabson ROKEN_LIB_FUNCTION size_t ROKEN_LIB_CALL 370c19800e8SDoug Rabson socket_addr_size (const struct sockaddr *); 371c19800e8SDoug Rabson 372c19800e8SDoug Rabson #define socket_set_any rk_socket_set_any 373c19800e8SDoug Rabson ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 374c19800e8SDoug Rabson socket_set_any (struct sockaddr *, int); 375c19800e8SDoug Rabson 3765e9cd1aeSAssar Westerlund #define socket_sockaddr_size rk_socket_sockaddr_size 3775e9cd1aeSAssar Westerlund ROKEN_LIB_FUNCTION size_t ROKEN_LIB_CALL 378c19800e8SDoug Rabson socket_sockaddr_size (const struct sockaddr *); 379c19800e8SDoug Rabson 380c19800e8SDoug Rabson #define socket_get_address rk_socket_get_address 381c19800e8SDoug Rabson ROKEN_LIB_FUNCTION void * ROKEN_LIB_CALL 382c19800e8SDoug Rabson socket_get_address (const struct sockaddr *); 3835e9cd1aeSAssar Westerlund 3845e9cd1aeSAssar Westerlund #define socket_get_port rk_socket_get_port 385c19800e8SDoug Rabson ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 386c19800e8SDoug Rabson socket_get_port (const struct sockaddr *); 387c19800e8SDoug Rabson 388c19800e8SDoug Rabson #define socket_set_port rk_socket_set_port 389c19800e8SDoug Rabson ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 390c19800e8SDoug Rabson socket_set_port (struct sockaddr *, int); 391c19800e8SDoug Rabson 392c19800e8SDoug Rabson #define socket_set_portrange rk_socket_set_portrange 393c19800e8SDoug Rabson ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 394c19800e8SDoug Rabson socket_set_portrange (rk_socket_t, int, int); 395c19800e8SDoug Rabson 396c19800e8SDoug Rabson #define socket_set_debug rk_socket_set_debug 397c19800e8SDoug Rabson ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 398c19800e8SDoug Rabson socket_set_debug (rk_socket_t); 399c19800e8SDoug Rabson 400c19800e8SDoug Rabson #define socket_set_tos rk_socket_set_tos 401c19800e8SDoug Rabson ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 402c19800e8SDoug Rabson socket_set_tos (rk_socket_t, int); 4035e9cd1aeSAssar Westerlund 404283d988cSMark Murray #define socket_set_reuseaddr rk_socket_set_reuseaddr 405b528cefcSMark Murray ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 406 socket_set_reuseaddr (rk_socket_t, int); 407 408 #define socket_set_ipv6only rk_socket_set_ipv6only 409 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 410 socket_set_ipv6only (rk_socket_t, int); 411 412 #define socket_to_fd rk_socket_to_fd 413 ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 414 socket_to_fd(rk_socket_t, int); 415 416 #define vstrcollect rk_vstrcollect 417 ROKEN_LIB_FUNCTION char ** ROKEN_LIB_CALL 418 vstrcollect(va_list *ap); 419 420 #define strcollect rk_strcollect 421 ROKEN_LIB_FUNCTION char ** ROKEN_LIB_CALL 422 strcollect(char *first, ...); 423 424 #define timevalfix rk_timevalfix 425 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 426 timevalfix(struct timeval *t1); 427 428 #define timevaladd rk_timevaladd 429 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 430 timevaladd(struct timeval *t1, const struct timeval *t2); 431 432 #define timevalsub rk_timevalsub 433 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 434 timevalsub(struct timeval *t1, const struct timeval *t2); 435 436 #define pid_file_write rk_pid_file_write 437 ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL 438 pid_file_write (const char *progname); 439 440 #define pid_file_delete rk_pid_file_delete 441 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 442 pid_file_delete (char **); 443 444 #define read_environment rk_read_environment 445 ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 446 read_environment(const char *file, char ***env); 447 448 #define free_environment rk_free_environment 449 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 450 free_environment(char **); 451 452 #define warnerr rk_warnerr 453 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 454 rk_warnerr(int doerrno, const char *fmt, va_list ap) 455 __attribute__ ((format (printf, 2, 0))); 456 457 ROKEN_LIB_FUNCTION void * ROKEN_LIB_CALL 458 rk_realloc(void *, size_t); 459 460 struct rk_strpool; 461 462 ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL 463 rk_strpoolcollect(struct rk_strpool *); 464 465 ROKEN_LIB_FUNCTION struct rk_strpool * ROKEN_LIB_CALL 466 rk_strpoolprintf(struct rk_strpool *, const char *, ...) 467 __attribute__ ((format (printf, 2, 3))); 468 469 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 470 rk_strpoolfree(struct rk_strpool *); 471 472 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 473 rk_dumpdata (const char *, const void *, size_t); 474 475 ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 476 rk_undumpdata (const char *, void **, size_t *); 477 478 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 479 rk_xfree (void *); 480 481 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 482 rk_cloexec(int); 483 484 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 485 rk_cloexec_file(FILE *); 486 487 ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL 488 rk_cloexec_dir(DIR *); 489 490 ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL 491 ct_memcmp(const void *, const void *, size_t); 492 493 void ROKEN_LIB_FUNCTION 494 rk_random_init(void); 495 496 ROKEN_CPP_END 497 498 #endif /* __ROKEN_COMMON_H__ */ 499