1d95e11bfSDag-Erling Smørgrav /* $Id: bsd-misc.h,v 1.13 2003/08/29 16:59:52 mouring Exp $ */ 2d95e11bfSDag-Erling Smørgrav 383d2307dSDag-Erling Smørgrav /* 4d95e11bfSDag-Erling Smørgrav * Copyright (c) 1999-2003 Damien Miller. All rights reserved. 583d2307dSDag-Erling Smørgrav * 683d2307dSDag-Erling Smørgrav * Redistribution and use in source and binary forms, with or without 783d2307dSDag-Erling Smørgrav * modification, are permitted provided that the following conditions 883d2307dSDag-Erling Smørgrav * are met: 983d2307dSDag-Erling Smørgrav * 1. Redistributions of source code must retain the above copyright 1083d2307dSDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer. 1183d2307dSDag-Erling Smørgrav * 2. Redistributions in binary form must reproduce the above copyright 1283d2307dSDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer in the 1383d2307dSDag-Erling Smørgrav * documentation and/or other materials provided with the distribution. 1483d2307dSDag-Erling Smørgrav * 1583d2307dSDag-Erling Smørgrav * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1683d2307dSDag-Erling Smørgrav * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1783d2307dSDag-Erling Smørgrav * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1883d2307dSDag-Erling Smørgrav * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 1983d2307dSDag-Erling Smørgrav * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2083d2307dSDag-Erling Smørgrav * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2183d2307dSDag-Erling Smørgrav * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2283d2307dSDag-Erling Smørgrav * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2383d2307dSDag-Erling Smørgrav * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2483d2307dSDag-Erling Smørgrav * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2583d2307dSDag-Erling Smørgrav */ 2683d2307dSDag-Erling Smørgrav 2783d2307dSDag-Erling Smørgrav #ifndef _BSD_MISC_H 2883d2307dSDag-Erling Smørgrav #define _BSD_MISC_H 2983d2307dSDag-Erling Smørgrav 30d95e11bfSDag-Erling Smørgrav #include "includes.h" 3183d2307dSDag-Erling Smørgrav 32d95e11bfSDag-Erling Smørgrav char *ssh_get_progname(char *); 3383d2307dSDag-Erling Smørgrav 3483d2307dSDag-Erling Smørgrav #ifndef HAVE_SETSID 3583d2307dSDag-Erling Smørgrav #define setsid() setpgrp(0, getpid()) 3683d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETSID */ 3783d2307dSDag-Erling Smørgrav 3883d2307dSDag-Erling Smørgrav #ifndef HAVE_SETENV 39d95e11bfSDag-Erling Smørgrav int setenv(const char *, const char *, int); 4083d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETENV */ 4183d2307dSDag-Erling Smørgrav 4283d2307dSDag-Erling Smørgrav #ifndef HAVE_SETLOGIN 43d95e11bfSDag-Erling Smørgrav int setlogin(const char *); 4483d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETLOGIN */ 4583d2307dSDag-Erling Smørgrav 4683d2307dSDag-Erling Smørgrav #ifndef HAVE_INNETGR 47d95e11bfSDag-Erling Smørgrav int innetgr(const char *, const char *, const char *, const char *); 4883d2307dSDag-Erling Smørgrav #endif /* HAVE_INNETGR */ 4983d2307dSDag-Erling Smørgrav 5083d2307dSDag-Erling Smørgrav #if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) 51d95e11bfSDag-Erling Smørgrav int seteuid(uid_t); 5283d2307dSDag-Erling Smørgrav #endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */ 5383d2307dSDag-Erling Smørgrav 5483d2307dSDag-Erling Smørgrav #if !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) 55d95e11bfSDag-Erling Smørgrav int setegid(uid_t); 5683d2307dSDag-Erling Smørgrav #endif /* !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) */ 5783d2307dSDag-Erling Smørgrav 5883d2307dSDag-Erling Smørgrav #if !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST) && defined(HAVE_SYS_NERR) 59d95e11bfSDag-Erling Smørgrav const char *strerror(int); 6083d2307dSDag-Erling Smørgrav #endif 6183d2307dSDag-Erling Smørgrav 6283d2307dSDag-Erling Smørgrav 6383d2307dSDag-Erling Smørgrav #ifndef HAVE_UTIMES 6483d2307dSDag-Erling Smørgrav #ifndef HAVE_STRUCT_TIMEVAL 6583d2307dSDag-Erling Smørgrav struct timeval { 6683d2307dSDag-Erling Smørgrav long tv_sec; 6783d2307dSDag-Erling Smørgrav long tv_usec; 6883d2307dSDag-Erling Smørgrav } 6983d2307dSDag-Erling Smørgrav #endif /* HAVE_STRUCT_TIMEVAL */ 7083d2307dSDag-Erling Smørgrav 71d95e11bfSDag-Erling Smørgrav int utimes(char *, struct timeval *); 7283d2307dSDag-Erling Smørgrav #endif /* HAVE_UTIMES */ 7383d2307dSDag-Erling Smørgrav 7483d2307dSDag-Erling Smørgrav #ifndef HAVE_TRUNCATE 75d95e11bfSDag-Erling Smørgrav int truncate (const char *, off_t); 7683d2307dSDag-Erling Smørgrav #endif /* HAVE_TRUNCATE */ 7783d2307dSDag-Erling Smørgrav 7883d2307dSDag-Erling Smørgrav #if !defined(HAVE_SETGROUPS) && defined(SETGROUPS_NOOP) 79d95e11bfSDag-Erling Smørgrav int setgroups(size_t, const gid_t *); 8083d2307dSDag-Erling Smørgrav #endif 8183d2307dSDag-Erling Smørgrav 82d0c8c0bcSDag-Erling Smørgrav #if !defined(HAVE_NANOSLEEP) && !defined(HAVE_NSLEEP) 83d0c8c0bcSDag-Erling Smørgrav #ifndef HAVE_STRUCT_TIMESPEC 84d0c8c0bcSDag-Erling Smørgrav struct timespec { 85d0c8c0bcSDag-Erling Smørgrav time_t tv_sec; 86d0c8c0bcSDag-Erling Smørgrav long tv_nsec; 87d0c8c0bcSDag-Erling Smørgrav }; 88d0c8c0bcSDag-Erling Smørgrav #endif 89d95e11bfSDag-Erling Smørgrav int nanosleep(const struct timespec *, struct timespec *); 90d0c8c0bcSDag-Erling Smørgrav #endif 9183d2307dSDag-Erling Smørgrav 92d95e11bfSDag-Erling Smørgrav #ifndef HAVE_TCGETPGRP 93d95e11bfSDag-Erling Smørgrav pid_t tcgetpgrp(int); 94d95e11bfSDag-Erling Smørgrav #endif 95d95e11bfSDag-Erling Smørgrav 96d95e11bfSDag-Erling Smørgrav #ifndef HAVE_TCSENDBREAK 97d95e11bfSDag-Erling Smørgrav int tcsendbreak(int, int); 98d95e11bfSDag-Erling Smørgrav #endif 99d95e11bfSDag-Erling Smørgrav 100d95e11bfSDag-Erling Smørgrav /* wrapper for signal interface */ 101d95e11bfSDag-Erling Smørgrav typedef void (*mysig_t)(int); 102d95e11bfSDag-Erling Smørgrav mysig_t mysignal(int sig, mysig_t act); 103d95e11bfSDag-Erling Smørgrav 104d95e11bfSDag-Erling Smørgrav #define signal(a,b) mysignal(a,b) 105d95e11bfSDag-Erling Smørgrav 10683d2307dSDag-Erling Smørgrav #endif /* _BSD_MISC_H */ 107