bsd-misc.h revision 128456
1170754Sdelphij/* $Id: bsd-misc.h,v 1.15 2004/03/08 11:59:03 dtucker Exp $ */
2170754Sdelphij
3170754Sdelphij/*
4170754Sdelphij * Copyright (c) 1999-2004 Damien Miller <djm@mindrot.org>
5170754Sdelphij *
6170754Sdelphij * Permission to use, copy, modify, and distribute this software for any
7170754Sdelphij * purpose with or without fee is hereby granted, provided that the above
8170754Sdelphij * copyright notice and this permission notice appear in all copies.
9170754Sdelphij *
10170754Sdelphij * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11170754Sdelphij * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12170754Sdelphij * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13170754Sdelphij * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14170754Sdelphij * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15170754Sdelphij * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16170754Sdelphij * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17170754Sdelphij */
18170754Sdelphij
19170754Sdelphij#ifndef _BSD_MISC_H
20170754Sdelphij#define _BSD_MISC_H
21170754Sdelphij
22170754Sdelphij#include "includes.h"
23170754Sdelphij
24170754Sdelphijchar *ssh_get_progname(char *);
25170754Sdelphij
26170754Sdelphij#ifndef HAVE_SETSID
27170754Sdelphij#define setsid() setpgrp(0, getpid())
28170754Sdelphij#endif /* !HAVE_SETSID */
29170754Sdelphij
30170754Sdelphij#ifndef HAVE_SETENV
31170754Sdelphijint setenv(const char *, const char *, int);
32170754Sdelphij#endif /* !HAVE_SETENV */
33170754Sdelphij
34170754Sdelphij#ifndef HAVE_SETLOGIN
35170754Sdelphijint setlogin(const char *);
36170754Sdelphij#endif /* !HAVE_SETLOGIN */
37170754Sdelphij
38170754Sdelphij#ifndef HAVE_INNETGR
39170754Sdelphijint innetgr(const char *, const char *, const char *, const char *);
40170754Sdelphij#endif /* HAVE_INNETGR */
41170754Sdelphij
42170754Sdelphij#if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID)
43170754Sdelphijint seteuid(uid_t);
44170754Sdelphij#endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */
45170754Sdelphij
46170754Sdelphij#if !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID)
47170754Sdelphijint setegid(uid_t);
48170754Sdelphij#endif /* !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) */
49170754Sdelphij
50170754Sdelphij#if !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST) && defined(HAVE_SYS_NERR)
51170754Sdelphijconst char *strerror(int);
52170754Sdelphij#endif
53170754Sdelphij
54170754Sdelphij
55170754Sdelphij#ifndef HAVE_UTIMES
56170754Sdelphij#ifndef HAVE_STRUCT_TIMEVAL
57170754Sdelphijstruct timeval {
58170754Sdelphij	long tv_sec;
59170754Sdelphij	long tv_usec;
60170754Sdelphij}
61170754Sdelphij#endif /* HAVE_STRUCT_TIMEVAL */
62170754Sdelphij
63170754Sdelphijint utimes(char *, struct timeval *);
64170754Sdelphij#endif /* HAVE_UTIMES */
65170754Sdelphij
66170754Sdelphij#ifndef HAVE_TRUNCATE
67170754Sdelphijint truncate (const char *, off_t);
68170754Sdelphij#endif /* HAVE_TRUNCATE */
69170754Sdelphij
70170754Sdelphij#if !defined(HAVE_SETGROUPS) && defined(SETGROUPS_NOOP)
71170754Sdelphijint setgroups(size_t, const gid_t *);
72170754Sdelphij#endif
73170754Sdelphij
74170754Sdelphij#if !defined(HAVE_NANOSLEEP) && !defined(HAVE_NSLEEP)
75170754Sdelphij#ifndef HAVE_STRUCT_TIMESPEC
76170754Sdelphijstruct timespec {
77170754Sdelphij	time_t	tv_sec;
78170754Sdelphij	long	tv_nsec;
79170754Sdelphij};
80170754Sdelphij#endif
81170754Sdelphijint nanosleep(const struct timespec *, struct timespec *);
82170754Sdelphij#endif
83170754Sdelphij
84170754Sdelphij#ifndef HAVE_TCGETPGRP
85170754Sdelphijpid_t tcgetpgrp(int);
86170754Sdelphij#endif
87170754Sdelphij
88170754Sdelphij#ifndef HAVE_TCSENDBREAK
89170754Sdelphijint tcsendbreak(int, int);
90170754Sdelphij#endif
91170754Sdelphij
92170754Sdelphij#ifndef HAVE_UNSETENV
93170754Sdelphijvoid unsetenv(const char *);
94170754Sdelphij#endif
95170754Sdelphij
96170754Sdelphij/* wrapper for signal interface */
97170754Sdelphijtypedef void (*mysig_t)(int);
98170754Sdelphijmysig_t mysignal(int sig, mysig_t act);
99170754Sdelphij
100170754Sdelphij#define signal(a,b) mysignal(a,b)
101170754Sdelphij
102170754Sdelphij#endif /* _BSD_MISC_H */
103170754Sdelphij