1 /* System description header for FreeBSD systems.
3 Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 Free Software Foundation, Inc.
8 (according to authors.el)
10 This file is part of GNU Emacs.
12 GNU Emacs is free software: you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation, either version 3 of the License, or
15 (at your option) any later version.
17 GNU Emacs is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 GNU General Public License for more details.
22 You should have received a copy of the GNU General Public License
23 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
25 /* Get most of the stuff from bsd-common */
26 #include "bsd-common.h"
28 /* For mem-limits.h. */
31 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
36 #define HAVE_GETLOADAVG 1
37 #define DECLARE_GETPWUID_WITH_UID_T
39 /* this silences a few compilation warnings */
42 #define BSD_SYSTEM 199103
43 #elif __FreeBSD__ == 2
44 #define BSD_SYSTEM 199306
45 #elif __FreeBSD__ >= 3
46 #define BSD_SYSTEM 199506
49 /* Don't close pty in process.c to make it as controlling terminal.
50 It is already a controlling terminal of subprocess, because we did
52 #define DONT_REOPEN_PTY
54 /* Circumvent a bug in FreeBSD. In the following sequence of
55 writes/reads on a PTY, read(2) returns bogus data:
58 write(2) 954 bytes, get EAGAIN
59 read(2) 1024 bytes in process_read_output
60 read(2) 11 bytes in process_read_output
62 That is, read(2) returns more bytes than have ever been written
63 successfully. The 1033 bytes read are the 1022 bytes written
64 successfully after processing (for example with CRs added if the
65 terminal is set up that way which it is here). The same bytes will
66 be seen again in a later read(2), without the CRs. */
68 #define BROKEN_PTY_READ_AFTER_EAGAIN 1
70 /* Tell that garbage collector that setjmp is known to save all
71 registers relevant for conservative garbage collection in the
74 #define GC_SETJMP_WORKS 1
76 /* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the
79 #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
81 /* Define USE_MMAP_FOR_BUFFERS to let Emacs use mmap(2) to allocate
82 buffer text. This overrides REL_ALLOC. */
84 #define USE_MMAP_FOR_BUFFERS 1
86 /* arch-tag: 426529ca-b7c4-448f-b10a-d4dcdc9c78eb
87 (do not change this comment) */