Merge from emacs-23
[bpt/emacs.git] / src / s / unixware.h
1 /* s/ file for Unixware.
2
3 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4 2008, 2009, 2010 Free Software Foundation, Inc.
5
6 This file is part of GNU Emacs.
7
8 GNU Emacs is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12
13 GNU Emacs is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
20
21
22 #include "usg5-4.h"
23
24 /* fnf@cygnus.com says these exist. */
25 #define HAVE_TCATTR
26 /* #define HAVE_GETWD (appears to be buggy on SVR4.2) */
27 #undef HAVE_GETWD
28
29 #undef HAVE_SYSV_SIGPAUSE
30
31 /* This is the same definition as in usg5-4.h, but with sigblock/sigunblock
32 rather than sighold/sigrelse, which appear to be BSD4.1 specific.
33 It may also be appropriate for SVR4.x
34 (x<2) but I'm not sure. fnf@cygnus.com */
35 /* This sets the name of the slave side of the PTY. On SysVr4,
36 grantpt(3) forks a subprocess, so keep sigchld_handler() from
37 intercepting that death. If any child but grantpt's should die
38 within, it should be caught after sigrelse(2). */
39 #define PTY_TTY_NAME_SPRINTF \
40 { \
41 char *ptsname(), *ptyname; \
42 \
43 sigblock(sigmask(SIGCLD)); \
44 if (grantpt(fd) == -1) \
45 fatal("could not grant slave pty"); \
46 sigunblock(sigmask(SIGCLD)); \
47 if (unlockpt(fd) == -1) \
48 fatal("could not unlock slave pty"); \
49 if (!(ptyname = ptsname(fd))) \
50 fatal ("could not enable slave pty"); \
51 strncpy(pty_name, ptyname, sizeof(pty_name)); \
52 pty_name[sizeof(pty_name) - 1] = 0; \
53 }
54
55 /* Data type of load average, as read out of kmem. */
56 #define LOAD_AVE_TYPE long
57
58 /* Convert that into an integer that is 100 for a load average of 1.0 */
59 /* This is totally uncalibrated. */
60 #define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE))
61 #define FSCALE 256.0
62
63
64 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)
65
66 /* arch-tag: d82e92e7-9443-4a60-a581-7f293cbae8a3
67 (do not change this comment) */