1bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman/* $Id: bsd-nextstep.h,v 1.9 2003/08/29 16:59:52 mouring Exp $ */
2bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman
3bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman/*
4bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * Copyright (c) 2000,2001 Ben Lindstrom.  All rights reserved.
5bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman *
6bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * Redistribution and use in source and binary forms, with or without
7bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * modification, are permitted provided that the following conditions
8bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * are met:
9bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * 1. Redistributions of source code must retain the above copyright
10bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman *    notice, this list of conditions and the following disclaimer.
11bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * 2. Redistributions in binary form must reproduce the above copyright
12bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman *    notice, this list of conditions and the following disclaimer in the
13bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman *    documentation and/or other materials provided with the distribution.
14bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman *
15bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman *
26bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman */
27bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman
28bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#ifndef _NEXT_POSIX_H
29bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#define _NEXT_POSIX_H
30bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman
31bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#ifdef HAVE_NEXT
32bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#include <sys/dir.h>
33bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman
34bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman/* NGROUPS_MAX is behind -lposix.  Use the BSD version which is NGROUPS */
35bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#undef NGROUPS_MAX
36bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#define NGROUPS_MAX NGROUPS
37bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman
38bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman/* NeXT's readdir() is BSD (struct direct) not POSIX (struct dirent) */
39bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#define dirent direct
40bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman
41bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman/* Swap out NeXT's BSD wait() for a more POSIX complient one */
42bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanpid_t posix_wait(int *);
43bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#define wait(a) posix_wait(a)
44bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman
45bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman/* #ifdef wrapped functions that need defining for clean compiling */
46bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanpid_t getppid(void);
47bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanvoid vhangup(void);
48bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanint innetgr(const char *, const char *, const char *, const char *);
49bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman
50bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman/* TERMCAP */
51bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanint tcgetattr(int, struct termios *);
52bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanint tcsetattr(int, int, const struct termios *);
53bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanint tcsetpgrp(int, pid_t);
54bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanspeed_t cfgetospeed(const struct termios *);
55bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanspeed_t cfgetispeed(const struct termios *);
56bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanint cfsetospeed(struct termios *, int);
57bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartmanint cfsetispeed(struct termios *, int);
58bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#endif /* HAVE_NEXT */
59bd77cf78387b72b7b3ea870459077672bf75c3b5Greg Hartman#endif /* _NEXT_POSIX_H */
60