annotate src/sysdep.h @ 2227:8e7b4a0c1a81

[xemacs-hg @ 2004-08-21 17:05:49 by michaels] 2004-08-15 Jan Rychter <jwr@xemacs.org> * window-xemacs.el (really-set-window-configuration): deal gracefully with the case when the buffer previously saved in the configuration (and that we want to switch to) has been killed. Switch to the next buffer on the buffer-list in that case.
author michaels
date Sat, 21 Aug 2004 17:05:51 +0000
parents ba24fcdb4cfe
children 5bb998bf84bd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* System-dependent prototypes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc.
814
a634e3b7acc8 [xemacs-hg @ 2002-04-14 12:41:59 by ben]
ben
parents: 801
diff changeset
3 Copyright (C) 2001, 2002 Ben Wing.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 Boston, MA 02111-1307, USA. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 /* Synched up with: FSF 19.30. Split out of sysdep.c/emacs.c. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 432
diff changeset
24 #ifndef INCLUDED_sysdep_h_
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 432
diff changeset
25 #define INCLUDED_sysdep_h_
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 #include <setjmp.h>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
29 #ifndef WIN32_NATIVE
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 extern char **environ;
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 432
diff changeset
31 #endif
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
33 #ifdef PDUMP
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
34 int pdump_read_file (char **pdump_start_pos, size_t *pdump_length);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
35 #endif
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
36
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 int eight_bit_tty (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 void stuff_char (struct console *con, int c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 void init_baud_rate (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 void set_exclusive_use (int fd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 void set_descriptor_non_blocking (int fd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 int get_pty_max_bytes (int fd);
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 853
diff changeset
48 Ibyte get_eof_char (int fd);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 /* Wait for subprocess with process id `pid' to terminate and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 make sure it will get eliminated (not remain forever as a zombie) */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 void wait_for_termination (int pid);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 /* flush any pending output
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 * (may flush input as well; it does not matter the way we use it)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 void flush_pending_output (int channel);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 void child_setup_tty (int out);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 /* Suspend the Emacs process; give terminal to its superior. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 void sys_suspend (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 /* Suspend a process if possible; give terminal to its superior. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 void sys_suspend_process (int process);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 void request_sigio (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 void unrequest_sigio (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68
1928
ba24fcdb4cfe [xemacs-hg @ 2004-02-25 20:05:32 by james]
james
parents: 1927
diff changeset
69 BEGIN_C_DECLS
ba24fcdb4cfe [xemacs-hg @ 2004-02-25 20:05:32 by james]
james
parents: 1927
diff changeset
70
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 void stop_interrupts (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 void start_interrupts (void);
1927
44905d8fae13 [xemacs-hg @ 2004-02-25 17:42:34 by james]
james
parents: 867
diff changeset
73 MODULE_API void slow_down_interrupts (void);
44905d8fae13 [xemacs-hg @ 2004-02-25 17:42:34 by james]
james
parents: 867
diff changeset
74 MODULE_API void speed_up_interrupts (void);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 void init_poll_for_quit (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76
1928
ba24fcdb4cfe [xemacs-hg @ 2004-02-25 20:05:32 by james]
james
parents: 1927
diff changeset
77 END_C_DECLS
ba24fcdb4cfe [xemacs-hg @ 2004-02-25 20:05:32 by james]
james
parents: 1927
diff changeset
78
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 /* Used so that signals can break out of system calls that aren't
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 naturally interruptible. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 extern JMP_BUF break_system_call_jump;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 extern volatile int can_break_system_calls;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 /* Call these functions if you want to change some terminal parameter --
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 reset the console, change the parameter, and init it again. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 void init_one_console (struct console *c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 void reset_one_console (struct console *c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 void init_one_device (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 void reset_one_device (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 /* Prepare all terminals for exiting Emacs; move the cursor to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 bottom of the frame, turn off special modes, etc. Called at exit.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 This calls reset_one_console() on all consoles and does some other
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 stuff (e.g. fix the foreground pgroup). */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 void reset_all_consoles (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 /* Call these functions if you are going to temporarily exit back to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 the shell (e.g. when suspending). This calls reset_one_console()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101 on the initial console and does some other stuff (e.g. fix the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 foreground pgroup). */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 void reset_initial_console (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 void reinit_initial_console (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 /* We muck around with our process group. This function needs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108 to be called at startup. The rest of the mucking is done as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 part of the functions reset_all_consoles(), reset_initial_console(),
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 and reinit_initial_console(). */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112 void init_process_group (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 void munge_tty_process_group (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 void unmunge_tty_process_group (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 void disconnect_controlling_terminal (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 /* Return nonzero if safe to use tabs in output.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 At the time this is called, init_sys_modes has not been done yet. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 int tabs_safe_p (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 /* Get terminal size from system.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 If zero or a negative number is stored, the value is not valid. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 void get_tty_device_size (struct device *d, int *widthp, int *heightp);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 /* Set the logical window size associated with descriptor FD */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 int set_window_size (int fd, int height, int width);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128 /* Set up the proper status flags for use of a pty. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 void setup_pty (int fd);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 /* Return the address of the start of the text segment prior to unexec. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 char *start_of_text (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 /* Return the address of the start of the data segment prior to unexec. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 void *start_of_data (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136 /* Get_system_name returns as its value a string for system-name to return. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137 void init_system_name (void);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
139 #ifdef WIN32_NATIVE
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
140 void *sbrk (unsigned long increment);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142
801
2b676dc88c66 [xemacs-hg @ 2002-04-01 03:58:02 by ben]
ben
parents: 771
diff changeset
143 Bytecount total_data_usage (void);
2b676dc88c66 [xemacs-hg @ 2002-04-01 03:58:02 by ben]
ben
parents: 771
diff changeset
144
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 432
diff changeset
145 #endif /* INCLUDED_sysdep_h_ */