xref: /freebsd/crypto/openssh/openbsd-compat/bsd-misc.h (revision 462c32cb8d7a451c999a3f1e7d00f9c89e96700c)
1*462c32cbSDag-Erling Smørgrav /* $Id: bsd-misc.h,v 1.21 2012/07/03 22:50:10 dtucker 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 
54*462c32cbSDag-Erling Smørgrav #if !defined(HAVE_SETLINEBUF)
55*462c32cbSDag-Erling Smørgrav #define setlinebuf(a)	(setvbuf((a), NULL, _IOLBF, 0))
56*462c32cbSDag-Erling Smørgrav #endif
5783d2307dSDag-Erling Smørgrav 
5883d2307dSDag-Erling Smørgrav #ifndef HAVE_UTIMES
5983d2307dSDag-Erling Smørgrav #ifndef HAVE_STRUCT_TIMEVAL
6083d2307dSDag-Erling Smørgrav struct timeval {
6183d2307dSDag-Erling Smørgrav 	long tv_sec;
6283d2307dSDag-Erling Smørgrav 	long tv_usec;
6383d2307dSDag-Erling Smørgrav }
6483d2307dSDag-Erling Smørgrav #endif /* HAVE_STRUCT_TIMEVAL */
6583d2307dSDag-Erling Smørgrav 
66d95e11bfSDag-Erling Smørgrav int utimes(char *, struct timeval *);
6783d2307dSDag-Erling Smørgrav #endif /* HAVE_UTIMES */
6883d2307dSDag-Erling Smørgrav 
6983d2307dSDag-Erling Smørgrav #ifndef HAVE_TRUNCATE
70d95e11bfSDag-Erling Smørgrav int truncate (const char *, off_t);
7183d2307dSDag-Erling Smørgrav #endif /* HAVE_TRUNCATE */
7283d2307dSDag-Erling Smørgrav 
73d0c8c0bcSDag-Erling Smørgrav #if !defined(HAVE_NANOSLEEP) && !defined(HAVE_NSLEEP)
74d0c8c0bcSDag-Erling Smørgrav #ifndef HAVE_STRUCT_TIMESPEC
75d0c8c0bcSDag-Erling Smørgrav struct timespec {
76d0c8c0bcSDag-Erling Smørgrav 	time_t	tv_sec;
77d0c8c0bcSDag-Erling Smørgrav 	long	tv_nsec;
78d0c8c0bcSDag-Erling Smørgrav };
79d0c8c0bcSDag-Erling Smørgrav #endif
80d95e11bfSDag-Erling Smørgrav int nanosleep(const struct timespec *, struct timespec *);
81d0c8c0bcSDag-Erling Smørgrav #endif
8283d2307dSDag-Erling Smørgrav 
83d95e11bfSDag-Erling Smørgrav #ifndef HAVE_TCGETPGRP
84d95e11bfSDag-Erling Smørgrav pid_t tcgetpgrp(int);
85d95e11bfSDag-Erling Smørgrav #endif
86d95e11bfSDag-Erling Smørgrav 
87d95e11bfSDag-Erling Smørgrav #ifndef HAVE_TCSENDBREAK
88d95e11bfSDag-Erling Smørgrav int tcsendbreak(int, int);
89d95e11bfSDag-Erling Smørgrav #endif
90d95e11bfSDag-Erling Smørgrav 
9152028650SDag-Erling Smørgrav #ifndef HAVE_UNSETENV
92*462c32cbSDag-Erling Smørgrav int unsetenv(const char *);
9352028650SDag-Erling Smørgrav #endif
9452028650SDag-Erling Smørgrav 
95d95e11bfSDag-Erling Smørgrav /* wrapper for signal interface */
96d95e11bfSDag-Erling Smørgrav typedef void (*mysig_t)(int);
97d95e11bfSDag-Erling Smørgrav mysig_t mysignal(int sig, mysig_t act);
98d95e11bfSDag-Erling Smørgrav 
99d95e11bfSDag-Erling Smørgrav #define signal(a,b) mysignal(a,b)
100d95e11bfSDag-Erling Smørgrav 
1014a421b63SDag-Erling Smørgrav #ifndef HAVE_ISBLANK
1024a421b63SDag-Erling Smørgrav int	isblank(int);
1034a421b63SDag-Erling Smørgrav #endif
1044a421b63SDag-Erling Smørgrav 
10583d2307dSDag-Erling Smørgrav #endif /* _BSD_MISC_H */
106