xref: /freebsd/crypto/openssh/openbsd-compat/bsd-misc.h (revision d0c8c0bcc279fcf7568c5e97c15c115cbf83be4c)
183d2307dSDag-Erling Smørgrav /*
283d2307dSDag-Erling Smørgrav  * Copyright (c) 1999-2000 Damien Miller.  All rights reserved.
383d2307dSDag-Erling Smørgrav  *
483d2307dSDag-Erling Smørgrav  * Redistribution and use in source and binary forms, with or without
583d2307dSDag-Erling Smørgrav  * modification, are permitted provided that the following conditions
683d2307dSDag-Erling Smørgrav  * are met:
783d2307dSDag-Erling Smørgrav  * 1. Redistributions of source code must retain the above copyright
883d2307dSDag-Erling Smørgrav  *    notice, this list of conditions and the following disclaimer.
983d2307dSDag-Erling Smørgrav  * 2. Redistributions in binary form must reproduce the above copyright
1083d2307dSDag-Erling Smørgrav  *    notice, this list of conditions and the following disclaimer in the
1183d2307dSDag-Erling Smørgrav  *    documentation and/or other materials provided with the distribution.
1283d2307dSDag-Erling Smørgrav  *
1383d2307dSDag-Erling Smørgrav  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1483d2307dSDag-Erling Smørgrav  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1583d2307dSDag-Erling Smørgrav  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1683d2307dSDag-Erling Smørgrav  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
1783d2307dSDag-Erling Smørgrav  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
1883d2307dSDag-Erling Smørgrav  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1983d2307dSDag-Erling Smørgrav  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2083d2307dSDag-Erling Smørgrav  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2183d2307dSDag-Erling Smørgrav  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2283d2307dSDag-Erling Smørgrav  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2383d2307dSDag-Erling Smørgrav  */
2483d2307dSDag-Erling Smørgrav 
25d0c8c0bcSDag-Erling Smørgrav /* $Id: bsd-misc.h,v 1.7 2003/03/18 18:21:41 tim Exp $ */
2683d2307dSDag-Erling Smørgrav 
2783d2307dSDag-Erling Smørgrav #ifndef _BSD_MISC_H
2883d2307dSDag-Erling Smørgrav #define _BSD_MISC_H
2983d2307dSDag-Erling Smørgrav 
3083d2307dSDag-Erling Smørgrav #include "config.h"
3183d2307dSDag-Erling Smørgrav 
3283d2307dSDag-Erling Smørgrav char *get_progname(char *argv0);
3383d2307dSDag-Erling Smørgrav 
3483d2307dSDag-Erling Smørgrav #ifndef HAVE_SETSID
3583d2307dSDag-Erling Smørgrav #define setsid() setpgrp(0, getpid())
3683d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETSID */
3783d2307dSDag-Erling Smørgrav 
3883d2307dSDag-Erling Smørgrav #ifndef HAVE_SETENV
3983d2307dSDag-Erling Smørgrav int setenv(const char *name, const char *value, int overwrite);
4083d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETENV */
4183d2307dSDag-Erling Smørgrav 
4283d2307dSDag-Erling Smørgrav #ifndef HAVE_SETLOGIN
4383d2307dSDag-Erling Smørgrav int setlogin(const char *name);
4483d2307dSDag-Erling Smørgrav #endif /* !HAVE_SETLOGIN */
4583d2307dSDag-Erling Smørgrav 
4683d2307dSDag-Erling Smørgrav #ifndef HAVE_INNETGR
4783d2307dSDag-Erling Smørgrav int innetgr(const char *netgroup, const char *host,
4883d2307dSDag-Erling Smørgrav             const char *user, const char *domain);
4983d2307dSDag-Erling Smørgrav #endif /* HAVE_INNETGR */
5083d2307dSDag-Erling Smørgrav 
5183d2307dSDag-Erling Smørgrav #if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID)
5283d2307dSDag-Erling Smørgrav int seteuid(uid_t euid);
5383d2307dSDag-Erling Smørgrav #endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */
5483d2307dSDag-Erling Smørgrav 
5583d2307dSDag-Erling Smørgrav #if !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID)
5683d2307dSDag-Erling Smørgrav int setegid(uid_t egid);
5783d2307dSDag-Erling Smørgrav #endif /* !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) */
5883d2307dSDag-Erling Smørgrav 
5983d2307dSDag-Erling Smørgrav #if !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST) && defined(HAVE_SYS_NERR)
6083d2307dSDag-Erling Smørgrav const char *strerror(int e);
6183d2307dSDag-Erling Smørgrav #endif
6283d2307dSDag-Erling Smørgrav 
6383d2307dSDag-Erling Smørgrav 
6483d2307dSDag-Erling Smørgrav #ifndef HAVE_UTIMES
6583d2307dSDag-Erling Smørgrav #ifndef HAVE_STRUCT_TIMEVAL
6683d2307dSDag-Erling Smørgrav struct timeval {
6783d2307dSDag-Erling Smørgrav 	long tv_sec;
6883d2307dSDag-Erling Smørgrav 	long tv_usec;
6983d2307dSDag-Erling Smørgrav }
7083d2307dSDag-Erling Smørgrav #endif /* HAVE_STRUCT_TIMEVAL */
7183d2307dSDag-Erling Smørgrav 
7283d2307dSDag-Erling Smørgrav int utimes(char *filename, struct timeval *tvp);
7383d2307dSDag-Erling Smørgrav #endif /* HAVE_UTIMES */
7483d2307dSDag-Erling Smørgrav 
7583d2307dSDag-Erling Smørgrav #ifndef HAVE_TRUNCATE
7683d2307dSDag-Erling Smørgrav int truncate (const char *path, off_t length);
7783d2307dSDag-Erling Smørgrav #endif /* HAVE_TRUNCATE */
7883d2307dSDag-Erling Smørgrav 
7983d2307dSDag-Erling Smørgrav #if !defined(HAVE_SETGROUPS) && defined(SETGROUPS_NOOP)
8083d2307dSDag-Erling Smørgrav int setgroups(size_t size, const gid_t *list);
8183d2307dSDag-Erling Smørgrav #endif
8283d2307dSDag-Erling Smørgrav 
83d0c8c0bcSDag-Erling Smørgrav #if !defined(HAVE_NANOSLEEP) && !defined(HAVE_NSLEEP)
84d0c8c0bcSDag-Erling Smørgrav #ifndef HAVE_STRUCT_TIMESPEC
85d0c8c0bcSDag-Erling Smørgrav struct timespec {
86d0c8c0bcSDag-Erling Smørgrav 	time_t	tv_sec;
87d0c8c0bcSDag-Erling Smørgrav 	long	tv_nsec;
88d0c8c0bcSDag-Erling Smørgrav };
89d0c8c0bcSDag-Erling Smørgrav #endif
90d0c8c0bcSDag-Erling Smørgrav int nanosleep(const struct timespec *req, struct timespec *rem);
91d0c8c0bcSDag-Erling Smørgrav #endif
9283d2307dSDag-Erling Smørgrav 
9383d2307dSDag-Erling Smørgrav #endif /* _BSD_MISC_H */
94