Mercurial > hg > xemacs-beta
comparison src/sysdep.h @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 0293115a14e9 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 /* System-dependent prototypes | |
2 Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc. | |
3 | |
4 This file is part of XEmacs. | |
5 | |
6 XEmacs is free software; you can redistribute it and/or modify it | |
7 under the terms of the GNU General Public License as published by the | |
8 Free Software Foundation; either version 2, or (at your option) any | |
9 later version. | |
10 | |
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with XEmacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
19 Boston, MA 02111-1307, USA. */ | |
20 | |
21 /* Synched up with: FSF 19.30. Split out of sysdep.c/emacs.c. */ | |
22 | |
23 #ifndef _XEMACS_SYSDEP_H_ | |
24 #define _XEMACS_SYSDEP_H_ | |
25 | |
26 #include <setjmp.h> | |
27 | |
28 #if !defined(VMS) || !defined(LINK_CRTL_SHARE) || !defined(SHAREABLE_LIB_BUG) | |
29 extern char **environ; | |
30 #else | |
31 extern noshare char **environ; | |
32 #endif /* VMS sharable environ bug */ | |
33 | |
34 struct emacs_tty; | |
35 int emacs_get_tty (int fd, struct emacs_tty *settings); | |
36 int emacs_set_tty (int fd, struct emacs_tty *settings, int waitp); | |
37 | |
38 int eight_bit_tty (struct device *d); | |
39 | |
40 void stuff_char (struct console *con, int c); | |
41 | |
42 void init_baud_rate (struct device *d); | |
43 | |
44 void set_exclusive_use (int fd); | |
45 | |
46 void set_descriptor_non_blocking (int fd); | |
47 | |
48 void wait_without_blocking (void); | |
49 | |
50 /* Wait for subprocess with process id `pid' to terminate and | |
51 make sure it will get eliminated (not remain forever as a zombie) */ | |
52 void wait_for_termination (int pid); | |
53 | |
54 /* flush any pending output | |
55 * (may flush input as well; it does not matter the way we use it) | |
56 */ | |
57 void flush_pending_output (int channel); | |
58 | |
59 void child_setup_tty (int out); | |
60 | |
61 /* Suspend the Emacs process; give terminal to its superior. */ | |
62 void sys_suspend (void); | |
63 | |
64 void request_sigio (void); | |
65 void unrequest_sigio (void); | |
66 | |
67 void stop_interrupts (void); | |
68 void start_interrupts (void); | |
69 void slow_down_interrupts (void); | |
70 void speed_up_interrupts (void); | |
71 void init_poll_for_quit (void); | |
72 void reset_poll_for_quit (void); | |
73 | |
74 /* Used so that signals can break out of system calls that aren't | |
75 naturally interruptible. */ | |
76 | |
77 extern JMP_BUF break_system_call_jump; | |
78 extern int can_break_system_calls; | |
79 | |
80 int sys_write_1 (int fildes, CONST void *buf, unsigned int nbyte, | |
81 int allow_quit); | |
82 int sys_read_1 (int fildes, void *buf, unsigned int nbyte, | |
83 int allow_quit); | |
84 | |
85 /* Call these functions if you want to change some terminal parameter -- | |
86 reset the console, change the parameter, and init it again. */ | |
87 void init_one_console (struct console *c); | |
88 void reset_one_console (struct console *c); | |
89 void init_one_device (struct device *d); | |
90 void reset_one_device (struct device *d); | |
91 | |
92 /* Prepare all terminals for exiting Emacs; move the cursor to the | |
93 bottom of the frame, turn off special modes, etc. Called at exit. | |
94 This calls reset_one_console() on all consoles and does some other | |
95 stuff (e.g. fix the foreground pgroup). */ | |
96 | |
97 void reset_all_consoles (void); | |
98 | |
99 /* Call these functions if you are going to temporarily exit back to | |
100 the shell (e.g. when suspending). This calls reset_one_console() | |
101 on the initial console and does some other stuff (e.g. fix the | |
102 foreground pgroup). */ | |
103 | |
104 void reset_initial_console (void); | |
105 void reinit_initial_console (void); | |
106 | |
107 /* We muck around with our process group. This function needs | |
108 to be called at startup. The rest of the mucking is done as | |
109 part of the functions reset_all_consoles(), reset_initial_console(), | |
110 and reinit_initial_console(). */ | |
111 | |
112 void init_process_group (void); | |
113 void munge_tty_process_group (void); | |
114 void unmunge_tty_process_group (void); | |
115 | |
116 void disconnect_controlling_terminal (void); | |
117 | |
118 /* Return nonzero if safe to use tabs in output. | |
119 At the time this is called, init_sys_modes has not been done yet. */ | |
120 int tabs_safe_p (struct device *d); | |
121 | |
122 /* Get terminal size from system. | |
123 If zero or a negative number is stored, the value is not valid. */ | |
124 void get_tty_device_size (struct device *d, int *widthp, int *heightp); | |
125 /* Set the logical window size associated with descriptor FD */ | |
126 int set_window_size (int fd, int height, int width); | |
127 | |
128 /* Set up the proper status flags for use of a pty. */ | |
129 void setup_pty (int fd); | |
130 | |
131 /* Return the address of the start of the text segment prior to unexec. */ | |
132 char *start_of_text (void); | |
133 /* Return the address of the start of the data segment prior to unexec. */ | |
134 void *start_of_data (void); | |
135 /* Return the address of the end of the text segment prior to unexec. */ | |
136 char *end_of_text (void); | |
137 /* Return the address of the end of the data segment prior to unexec. */ | |
138 char *end_of_data (void); | |
139 | |
140 /* Get_system_name returns as its value a string for system-name to return. */ | |
141 void init_system_name (void); | |
142 | |
143 #ifndef HAVE_GETWD | |
144 char *getwd (char *pathname); | |
145 #endif | |
146 | |
147 #ifndef HAVE_RENAME | |
148 int rename (CONST char *from, CONST char *to); | |
149 #endif | |
150 | |
151 #ifndef HAVE_DUP2 | |
152 int dup2 (int oldd, int newd); | |
153 #endif | |
154 | |
155 #ifdef VMS | |
156 void init_vms_input (void); | |
157 | |
158 int vms_truncate (char *fn); | |
159 int vlimit (void); /* BTW, name conflicts with unix syscall */ | |
160 int define_logical_name (char *varname, char *string) | |
161 int delete_logical_name (char *varname); | |
162 int rename_sans_version (char *from, char *to); | |
163 char *vmserrstr (int status); | |
164 char *sys_translate_vms (char *vfile); | |
165 char *sys_translate_unix (char *ufile); | |
166 int creat_copy_attrs (char *old, char *new); | |
167 int link (char *file, char *new); | |
168 #endif /* VMS */ | |
169 | |
170 #ifndef HAVE_STRERROR | |
171 /* X11R6 defines strerror as a macro */ | |
172 # ifdef strerror | |
173 # undef strerror | |
174 # endif | |
175 CONST char *strerror (int); | |
176 #endif | |
177 | |
178 #ifndef HAVE_H_ERRNO | |
179 extern int h_errno; | |
180 #endif | |
181 | |
182 #endif /* _XEMACS_SYSDEP_H_ */ |