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