comparison src/procimpl.h @ 412:697ef44129c6 r21-2-14

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