bsd-misc.h revision 240075
155714Skris/* $Id: bsd-misc.h,v 1.21 2012/07/03 22:50:10 dtucker Exp $ */ 255714Skris 355714Skris/* 455714Skris * Copyright (c) 1999-2004 Damien Miller <djm@mindrot.org> 555714Skris * 655714Skris * Permission to use, copy, modify, and distribute this software for any 755714Skris * purpose with or without fee is hereby granted, provided that the above 8280304Sjkim * copyright notice and this permission notice appear in all copies. 955714Skris * 1055714Skris * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1155714Skris * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1255714Skris * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1355714Skris * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1455714Skris * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15280304Sjkim * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1655714Skris * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1755714Skris */ 1855714Skris 1955714Skris#ifndef _BSD_MISC_H 2055714Skris#define _BSD_MISC_H 2155714Skris 22280304Sjkim#include "includes.h" 2355714Skris 2455714Skrischar *ssh_get_progname(char *); 2555714Skris 2655714Skris#ifndef HAVE_SETSID 2755714Skris#define setsid() setpgrp(0, getpid()) 2855714Skris#endif /* !HAVE_SETSID */ 2955714Skris 3055714Skris#ifndef HAVE_SETENV 3155714Skrisint setenv(const char *, const char *, int); 3255714Skris#endif /* !HAVE_SETENV */ 3355714Skris 3455714Skris#ifndef HAVE_SETLOGIN 3555714Skrisint setlogin(const char *); 3655714Skris#endif /* !HAVE_SETLOGIN */ 37280304Sjkim 3855714Skris#ifndef HAVE_INNETGR 3955714Skrisint innetgr(const char *, const char *, const char *, const char *); 40280304Sjkim#endif /* HAVE_INNETGR */ 4155714Skris 4255714Skris#if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) 4355714Skrisint seteuid(uid_t); 4455714Skris#endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */ 4555714Skris 4655714Skris#if !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) 4755714Skrisint setegid(uid_t); 4855714Skris#endif /* !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) */ 4955714Skris 5055714Skris#if !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST) && defined(HAVE_SYS_NERR) 5155714Skrisconst char *strerror(int); 52280304Sjkim#endif 5355714Skris 5455714Skris#if !defined(HAVE_SETLINEBUF) 5555714Skris#define setlinebuf(a) (setvbuf((a), NULL, _IOLBF, 0)) 5655714Skris#endif 5755714Skris 5855714Skris#ifndef HAVE_UTIMES 5955714Skris#ifndef HAVE_STRUCT_TIMEVAL 6055714Skrisstruct timeval { 6155714Skris long tv_sec; 6255714Skris long tv_usec; 63109998Smarkm} 6455714Skris#endif /* HAVE_STRUCT_TIMEVAL */ 6555714Skris 66280304Sjkimint utimes(char *, struct timeval *); 67280304Sjkim#endif /* HAVE_UTIMES */ 6855714Skris 69280304Sjkim#ifndef HAVE_TRUNCATE 70280304Sjkimint truncate (const char *, off_t); 71280304Sjkim#endif /* HAVE_TRUNCATE */ 7255714Skris 73280304Sjkim#if !defined(HAVE_NANOSLEEP) && !defined(HAVE_NSLEEP) 74280304Sjkim#ifndef HAVE_STRUCT_TIMESPEC 75280304Sjkimstruct timespec { 76280304Sjkim time_t tv_sec; 77280304Sjkim long tv_nsec; 78280304Sjkim}; 79280304Sjkim#endif 80280304Sjkimint nanosleep(const struct timespec *, struct timespec *); 81280304Sjkim#endif 82280304Sjkim 83280304Sjkim#ifndef HAVE_TCGETPGRP 8455714Skrispid_t tcgetpgrp(int); 8555714Skris#endif 86280304Sjkim 87280304Sjkim#ifndef HAVE_TCSENDBREAK 88280304Sjkimint tcsendbreak(int, int); 89280304Sjkim#endif 90280304Sjkim 91280304Sjkim#ifndef HAVE_UNSETENV 92280304Sjkimint unsetenv(const char *); 9355714Skris#endif 9455714Skris 95280304Sjkim/* wrapper for signal interface */ 96280304Sjkimtypedef void (*mysig_t)(int); 97280304Sjkimmysig_t mysignal(int sig, mysig_t act); 98280304Sjkim 99280304Sjkim#define signal(a,b) mysignal(a,b) 100280304Sjkim 101280304Sjkim#ifndef HAVE_ISBLANK 102280304Sjkimint isblank(int); 10355714Skris#endif 10455714Skris 105280304Sjkim#endif /* _BSD_MISC_H */ 106280304Sjkim