1*4a421b63SDag-Erling Smørgrav /* $Id: bsd-misc.h,v 1.19 2010/11/08 22:26:23 tim Exp $ */ 2d95e11bfSDag-Erling Smørgrav 383d2307dSDag-Erling Smørgrav /* 4efcad6b7SDag-Erling Smørgrav * Copyright (c) 1999-2004 Damien Miller <djm@mindrot.org> 583d2307dSDag-Erling Smørgrav * 6efcad6b7SDag-Erling Smørgrav * Permission to use, copy, modify, and distribute this software for any 7efcad6b7SDag-Erling Smørgrav * purpose with or without fee is hereby granted, provided that the above 8efcad6b7SDag-Erling Smørgrav * copyright notice and this permission notice appear in all copies. 983d2307dSDag-Erling Smørgrav * 10efcad6b7SDag-Erling Smørgrav * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11efcad6b7SDag-Erling Smørgrav * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12efcad6b7SDag-Erling Smørgrav * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13efcad6b7SDag-Erling Smørgrav * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14efcad6b7SDag-Erling Smørgrav * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15efcad6b7SDag-Erling Smørgrav * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16efcad6b7SDag-Erling Smørgrav * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1783d2307dSDag-Erling Smørgrav */ 1883d2307dSDag-Erling Smørgrav 1983d2307dSDag-Erling Smørgrav #ifndef _BSD_MISC_H 2083d2307dSDag-Erling Smørgrav #define _BSD_MISC_H 2183d2307dSDag-Erling Smørgrav 22d95e11bfSDag-Erling Smørgrav #include "includes.h" 2383d2307dSDag-Erling Smørgrav 24d95e11bfSDag-Erling Smørgrav char *ssh_get_progname(char *); 2583d2307dSDag-Erling Smørgrav 2683d2307dSDag-Erling Smørgrav #ifndef HAVE_SETSID 2783d2307dSDag-Erling Smørgrav #define setsid() setpgrp(0, getpid()) 2883d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETSID */ 2983d2307dSDag-Erling Smørgrav 3083d2307dSDag-Erling Smørgrav #ifndef HAVE_SETENV 31d95e11bfSDag-Erling Smørgrav int setenv(const char *, const char *, int); 3283d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETENV */ 3383d2307dSDag-Erling Smørgrav 3483d2307dSDag-Erling Smørgrav #ifndef HAVE_SETLOGIN 35d95e11bfSDag-Erling Smørgrav int setlogin(const char *); 3683d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETLOGIN */ 3783d2307dSDag-Erling Smørgrav 3883d2307dSDag-Erling Smørgrav #ifndef HAVE_INNETGR 39d95e11bfSDag-Erling Smørgrav int innetgr(const char *, const char *, const char *, const char *); 4083d2307dSDag-Erling Smørgrav #endif /* HAVE_INNETGR */ 4183d2307dSDag-Erling Smørgrav 4283d2307dSDag-Erling Smørgrav #if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) 43d95e11bfSDag-Erling Smørgrav int seteuid(uid_t); 4483d2307dSDag-Erling Smørgrav #endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */ 4583d2307dSDag-Erling Smørgrav 4683d2307dSDag-Erling Smørgrav #if !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) 47d95e11bfSDag-Erling Smørgrav int setegid(uid_t); 4883d2307dSDag-Erling Smørgrav #endif /* !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) */ 4983d2307dSDag-Erling Smørgrav 5083d2307dSDag-Erling Smørgrav #if !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST) && defined(HAVE_SYS_NERR) 51d95e11bfSDag-Erling Smørgrav const char *strerror(int); 5283d2307dSDag-Erling Smørgrav #endif 5383d2307dSDag-Erling Smørgrav 5483d2307dSDag-Erling Smørgrav 5583d2307dSDag-Erling Smørgrav #ifndef HAVE_UTIMES 5683d2307dSDag-Erling Smørgrav #ifndef HAVE_STRUCT_TIMEVAL 5783d2307dSDag-Erling Smørgrav struct timeval { 5883d2307dSDag-Erling Smørgrav long tv_sec; 5983d2307dSDag-Erling Smørgrav long tv_usec; 6083d2307dSDag-Erling Smørgrav } 6183d2307dSDag-Erling Smørgrav #endif /* HAVE_STRUCT_TIMEVAL */ 6283d2307dSDag-Erling Smørgrav 63d95e11bfSDag-Erling Smørgrav int utimes(char *, struct timeval *); 6483d2307dSDag-Erling Smørgrav #endif /* HAVE_UTIMES */ 6583d2307dSDag-Erling Smørgrav 6683d2307dSDag-Erling Smørgrav #ifndef HAVE_TRUNCATE 67d95e11bfSDag-Erling Smørgrav int truncate (const char *, off_t); 6883d2307dSDag-Erling Smørgrav #endif /* HAVE_TRUNCATE */ 6983d2307dSDag-Erling Smørgrav 70d0c8c0bcSDag-Erling Smørgrav #if !defined(HAVE_NANOSLEEP) && !defined(HAVE_NSLEEP) 71d0c8c0bcSDag-Erling Smørgrav #ifndef HAVE_STRUCT_TIMESPEC 72d0c8c0bcSDag-Erling Smørgrav struct timespec { 73d0c8c0bcSDag-Erling Smørgrav time_t tv_sec; 74d0c8c0bcSDag-Erling Smørgrav long tv_nsec; 75d0c8c0bcSDag-Erling Smørgrav }; 76d0c8c0bcSDag-Erling Smørgrav #endif 77d95e11bfSDag-Erling Smørgrav int nanosleep(const struct timespec *, struct timespec *); 78d0c8c0bcSDag-Erling Smørgrav #endif 7983d2307dSDag-Erling Smørgrav 80d95e11bfSDag-Erling Smørgrav #ifndef HAVE_TCGETPGRP 81d95e11bfSDag-Erling Smørgrav pid_t tcgetpgrp(int); 82d95e11bfSDag-Erling Smørgrav #endif 83d95e11bfSDag-Erling Smørgrav 84d95e11bfSDag-Erling Smørgrav #ifndef HAVE_TCSENDBREAK 85d95e11bfSDag-Erling Smørgrav int tcsendbreak(int, int); 86d95e11bfSDag-Erling Smørgrav #endif 87d95e11bfSDag-Erling Smørgrav 8852028650SDag-Erling Smørgrav #ifndef HAVE_UNSETENV 8952028650SDag-Erling Smørgrav void unsetenv(const char *); 9052028650SDag-Erling Smørgrav #endif 9152028650SDag-Erling Smørgrav 92d95e11bfSDag-Erling Smørgrav /* wrapper for signal interface */ 93d95e11bfSDag-Erling Smørgrav typedef void (*mysig_t)(int); 94d95e11bfSDag-Erling Smørgrav mysig_t mysignal(int sig, mysig_t act); 95d95e11bfSDag-Erling Smørgrav 96d95e11bfSDag-Erling Smørgrav #define signal(a,b) mysignal(a,b) 97d95e11bfSDag-Erling Smørgrav 98*4a421b63SDag-Erling Smørgrav #ifndef HAVE_ISBLANK 99*4a421b63SDag-Erling Smørgrav int isblank(int); 100*4a421b63SDag-Erling Smørgrav #endif 101*4a421b63SDag-Erling Smørgrav 10283d2307dSDag-Erling Smørgrav #endif /* _BSD_MISC_H */ 103