xref: /freebsd/crypto/openssh/openbsd-compat/bsd-misc.h (revision 4a421b6336e5e0c2ff27024c30fe32c6f71dcf3d)
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