Mercurial > hg > xemacs-beta
comparison src/procimpl.h @ 398:74fd4e045ea6 r21-2-29
Import from CVS: tag r21-2-29
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:13:30 +0200 |
parents | 8626e4521993 |
children | 697ef44129c6 |
comparison
equal
deleted
inserted
replaced
397:f4aeb21a5bad | 398:74fd4e045ea6 |
---|---|
20 | 20 |
21 /* This file must be only included by the process implementation files: | 21 /* This file must be only included by the process implementation files: |
22 process-unix.c, process-msw.c etc. The Lisp_Process structure and other | 22 process-unix.c, process-msw.c etc. The Lisp_Process structure and other |
23 contents of this file is not exported to the rest of the world */ | 23 contents of this file is not exported to the rest of the world */ |
24 | 24 |
25 #ifndef _XEMACS_PROCIMPL_H_ | 25 #ifndef INCLUDED_procimpl_h_ |
26 #define _XEMACS_PROCIMPL_H_ | 26 #define INCLUDED_procimpl_h_ |
27 | |
28 struct Lisp_Process; | |
29 | 27 |
30 /* | 28 /* |
31 * Structure which keeps methods of the process implementation. | 29 * Structure which keeps methods of the process implementation. |
32 * There is only one object of this class exists in a particular | 30 * There is only one object of this class exists in a particular |
33 * XEmacs implementation. | 31 * XEmacs implementation. |
35 | 33 |
36 /* #### Comment me... */ | 34 /* #### Comment me... */ |
37 | 35 |
38 struct process_methods | 36 struct process_methods |
39 { | 37 { |
40 void (*mark_process_data) (struct Lisp_Process *proc, | 38 void (*mark_process_data) (Lisp_Process *proc); |
41 void (*markobj) (Lisp_Object)); | 39 void (*print_process_data) (Lisp_Process *proc, Lisp_Object printcharfun); |
42 void (*print_process_data) (struct Lisp_Process *proc, | 40 void (*finalize_process_data) (Lisp_Process *proc, int for_disksave); |
43 Lisp_Object printcharfun); | 41 void (*alloc_process_data) (Lisp_Process *p); |
44 void (*finalize_process_data) (struct Lisp_Process *proc, int for_disksave); | 42 void (*init_process_io_handles) (Lisp_Process *p, |
45 void (*alloc_process_data) (struct Lisp_Process *p); | |
46 void (*init_process_io_handles) (struct Lisp_Process *p, | |
47 void* in, void* out, int flags); | 43 void* in, void* out, int flags); |
48 int (*create_process) (struct Lisp_Process *p, | 44 int (*create_process) (Lisp_Process *p, |
49 Lisp_Object *argv, int nargv, | 45 Lisp_Object *argv, int nargv, |
50 Lisp_Object program, Lisp_Object cur_dir); | 46 Lisp_Object program, Lisp_Object cur_dir); |
51 int (*tooltalk_connection_p) (struct Lisp_Process *p); | 47 int (*tooltalk_connection_p) (Lisp_Process *p); |
52 #ifdef HAVE_SOCKETS | 48 #ifdef HAVE_SOCKETS |
53 void (*open_network_stream) (Lisp_Object name, Lisp_Object host, | 49 void (*open_network_stream) (Lisp_Object name, Lisp_Object host, |
54 Lisp_Object service, Lisp_Object family, | 50 Lisp_Object service, Lisp_Object protocol, |
55 void** vinfd, void** voutfd); | 51 void** vinfd, void** voutfd); |
56 #ifdef HAVE_MULTICAST | 52 #ifdef HAVE_MULTICAST |
57 void (*open_multicast_group) (Lisp_Object name, Lisp_Object dest, | 53 void (*open_multicast_group) (Lisp_Object name, Lisp_Object dest, |
58 Lisp_Object port, Lisp_Object ttl, | 54 Lisp_Object port, Lisp_Object ttl, |
59 void** vinfd, void** voutfd); | 55 void** vinfd, void** voutfd); |
60 #endif /* HAVE_MULTICAST */ | 56 #endif /* HAVE_MULTICAST */ |
61 #endif /* HAVE_SOCKETS */ | 57 #endif /* HAVE_SOCKETS */ |
62 Lisp_Object (*canonicalize_host_name) (Lisp_Object host); | 58 Lisp_Object (*canonicalize_host_name) (Lisp_Object host); |
63 int (*set_window_size) (struct Lisp_Process* p, int height, int width); | 59 int (*set_window_size) (Lisp_Process* p, int height, int width); |
64 void (*send_process) (Lisp_Object proc, struct lstream* lstream); | 60 void (*send_process) (Lisp_Object proc, struct lstream* lstream); |
65 void (*reap_exited_processes) (void); | 61 void (*reap_exited_processes) (void); |
66 void (*update_status_if_terminated) (struct Lisp_Process* p); | 62 void (*update_status_if_terminated) (Lisp_Process* p); |
67 void (*kill_child_process) (Lisp_Object proc, int signo, | 63 void (*kill_child_process) (Lisp_Object proc, int signo, |
68 int current_group, int nomsg); | 64 int current_group, int nomsg); |
69 int (*kill_process_by_pid) (int pid, int sigcode); | 65 int (*kill_process_by_pid) (int pid, int sigcode); |
70 int (*process_send_eof) (Lisp_Object proc); | 66 int (*process_send_eof) (Lisp_Object proc); |
71 Lisp_Object (*get_tty_name) (struct Lisp_Process *p); | 67 Lisp_Object (*get_tty_name) (Lisp_Process *p); |
72 USID (*deactivate_process) (struct Lisp_Process *p); | 68 USID (*deactivate_process) (Lisp_Process *p); |
73 void (*init_process) (void); | 69 void (*init_process) (void); |
74 }; | 70 }; |
75 | 71 |
76 extern struct process_methods the_process_methods; | 72 extern struct process_methods the_process_methods; |
77 | 73 |
157 #define DATA_OUTSTREAM(p) (p)->pipe_outstream | 153 #define DATA_OUTSTREAM(p) (p)->pipe_outstream |
158 #endif | 154 #endif |
159 | 155 |
160 /* Random externs from process.c */ | 156 /* Random externs from process.c */ |
161 extern Lisp_Object Qrun, Qstop, Qopen, Qclosed; | 157 extern Lisp_Object Qrun, Qstop, Qopen, Qclosed; |
162 extern Lisp_Object Qtcpip; | 158 extern Lisp_Object Qtcp, Qudp; |
163 extern Lisp_Object Vprocess_connection_type; | 159 extern Lisp_Object Vprocess_connection_type; |
164 extern Lisp_Object Vprocess_list; | 160 extern Lisp_Object Vprocess_list; |
165 | 161 |
166 extern struct hash_table *usid_to_process; | 162 extern struct hash_table *usid_to_process; |
167 | 163 |
176 #ifdef PROCESS_IO_BLOCKING | 172 #ifdef PROCESS_IO_BLOCKING |
177 extern Lisp_Object network_stream_blocking_port_list; | 173 extern Lisp_Object network_stream_blocking_port_list; |
178 #endif /* PROCESS_IO_BLOCKING */ | 174 #endif /* PROCESS_IO_BLOCKING */ |
179 | 175 |
180 Lisp_Object make_process_internal (Lisp_Object name); | 176 Lisp_Object make_process_internal (Lisp_Object name); |
181 void init_process_io_handles (struct Lisp_Process *p, void* in, | 177 void init_process_io_handles (Lisp_Process *p, void* in, |
182 void* out, int flags); | 178 void* out, int flags); |
183 void send_process (Lisp_Object proc, | 179 void send_process (Lisp_Object proc, |
184 Lisp_Object relocatable, | 180 Lisp_Object relocatable, |
185 CONST Bufbyte *nonrelocatable, | 181 const Bufbyte *nonrelocatable, |
186 int start, int len); | 182 int start, int len); |
187 | 183 |
188 #endif /* _XEMACS_PROCIMPL_H_ */ | 184 #endif /* INCLUDED_procimpl_h_ */ |