summaryrefslogtreecommitdiff
path: root/next-posix.h
blob: 2eb061ac7f40d608df356f70fa1c271a94e2acc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * Defines and prototypes specific to NeXT system
 */

#ifndef _NEXT_POSIX_H
#define _NEXT_POSIX_H

#ifdef HAVE_NEXT

#include <libc.h>
#include <sys/dir.h>

/* FILE */
#define O_NONBLOCK      00004   /* non-blocking open */

/* WAITPID */
#undef WIFEXITED
#undef WIFSTOPPED
#undef WIFSIGNALED

#define _W_INT(w)			(*(int*)&(w))	/* convert union wait to int */
#define WIFEXITED(w)		(!((_W_INT(w)) & 0377))
#define WIFSTOPPED(w)	((_W_INT(w)) & 0100)
#define WIFSIGNALED(w)	(!WIFEXITED(x) && !WIFSTOPPED(x))
#define WEXITSTATUS(w)	(int)(WIFEXITED(x) ? ((_W_INT(w) >> 8) & 0377) : -1)
#define WTERMSIG(w)		(int)(WIFSIGNALED(x) ? (_W_INT(w) & 0177) : -1)
#define WCOREFLAG			0x80
#define WCOREDUMP(w)		((_W_INT(w)) & WCOREFLAG)

int waitpid(int pid,int *stat_loc,int options);
#define getpgrp()	getpgrp(0)
pid_t setsid(void);

/* TC */
int tcgetattr(int fd,struct termios *t);
int tcsetattr(int fd,int opt,const struct termios *t);
int tcsetpgrp(int fd, pid_t pgrp);
speed_t cfgetospeed(const struct termios *t);
speed_t cfgetispeed(const struct termios *t);
int cfsetospeed(struct termios *t,int speed);

/* Sig*() */
typedef sigset_t;
#define SIG_BLOCK		00
#define SIG_UNBLOCK	01
#define SIG_SETMASK	02
#define SA_RESTART	00
struct sigaction {
	void			(*sa_handler)();
	sigset_t		sa_mask;
	int			sa_flags;
};

int sigemptyset(sigset_t *set);
int sigaddset(sigset_t *set, int signum);
int sigprocmask(int  how,  const  sigset_t *set, sigset_t *oldset);
int sigsuspend(const sigset_t *mask);
int sigaction(int signum,const struct sigaction *act, struct sigaction *oldact); 

#endif /* HAVE_NEXT */

#endif /* _NEXT_POSIX_H */