Merge from `emacs-23'.
[bpt/emacs.git] / src / s / gnu.h
1 /* Definitions file for GNU Emacs running on the GNU Hurd.
2 Copyright (C) 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
4
5 This file is part of GNU Emacs.
6
7 GNU Emacs is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20
21 /* Get most of the stuff from bsd-common */
22 #include "bsd-common.h"
23
24 #undef SYSTEM_TYPE
25 #define SYSTEM_TYPE "gnu"
26
27 #undef NLIST_STRUCT
28
29 #define SIGNALS_VIA_CHARACTERS
30
31 /* Tell Emacs that we are a terminfo based system; disable the use
32 of local termcap. (GNU uses ncurses.) */
33 #ifdef HAVE_LIBNCURSES
34 #define TERMINFO
35 #define LIBS_TERMCAP -lncurses
36 #endif
37
38 /* Use mmap directly for allocating larger buffers. */
39 #ifdef DOUG_LEA_MALLOC
40 #undef REL_ALLOC
41 #endif
42
43 /* GNU needs its own crt0, and libc defines data_start. */
44 #define ORDINARY_LINK
45 #define DATA_START ({ extern int data_start; (char *) &data_start; })
46
47 /* Some losing code fails to include this and then assumes
48 that because it is braindead that O_RDONLY==0. */
49 #ifndef NOT_C_CODE
50 #include <fcntl.h>
51 #endif
52
53 #ifdef emacs
54 #include <stdio.h> /* Get the definition of _IO_STDIO_H. */
55 #if defined(_IO_STDIO_H) || defined(_STDIO_USES_IOSTREAM)
56 /* new C libio names */
57 #define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \
58 ((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)
59 #endif /* !_IO_STDIO_H */
60 #endif /* emacs */
61
62 /* arch-tag: 577983d9-87a6-4922-b8f8-ff2b563714a4
63 (do not change this comment) */