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_ */