X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/f49d1f52b2e368ef67dcfececd426de958548f4e..f8643a6b9e35af22b69a84f83df5d9410de82f16:/src/process.h diff --git a/src/process.h b/src/process.h index 0350e95310..649056a99f 100644 --- a/src/process.h +++ b/src/process.h @@ -1,6 +1,5 @@ /* Definitions for asynchronous process control in GNU Emacs. - Copyright (C) 1985, 1994, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1985, 1994, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -20,9 +19,8 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_SYS_TYPES_H #include #endif -#ifdef HAVE_UNISTD_H + #include -#endif #ifdef HAVE_GNUTLS #include "gnutls.h" @@ -31,13 +29,13 @@ along with GNU Emacs. If not, see . */ /* This structure records information about a subprocess or network connection. - Every field in this structure except for the first two + Every field in this structure except for the header must be a Lisp_Object, for GC's sake. */ struct Lisp_Process { - EMACS_UINT size; - struct Lisp_Vector *v_next; + struct vectorlike_header header; + /* Name of subprocess terminal. */ Lisp_Object tty_name; /* Name of this process */ @@ -79,6 +77,8 @@ struct Lisp_Process Lisp_Object encode_coding_system; /* Working buffer for encoding. */ Lisp_Object encoding_buf; + /* Queue for storing waiting writes */ + Lisp_Object write_queue; #ifdef HAVE_GNUTLS Lisp_Object gnutls_cred_type; @@ -97,17 +97,17 @@ struct Lisp_Process /* Descriptor by which we write to this process */ int outfd; /* Event-count of last event in which this process changed status. */ - int tick; + EMACS_INT tick; /* Event-count of last such event reported. */ - int update_tick; + EMACS_INT update_tick; /* Size of carryover in decoding. */ int decoding_carryover; /* Hysteresis to try to read process output in larger blocks. On some systems, e.g. GNU/Linux, Emacs is seen as an interactive app also when reading process output, meaning that process output can be read in as little as 1 byte at a - time. Value is micro-seconds to delay reading output from - this process. Range is 0 .. 50000. */ + time. Value is nanoseconds to delay reading output from + this process. Range is 0 .. 50 * 1000 * 1000. */ int read_output_delay; /* Should we delay reading output from this process. Initialized from `Vprocess_adaptive_read_buffering'. @@ -136,6 +136,7 @@ struct Lisp_Process gnutls_certificate_client_credentials gnutls_x509_cred; gnutls_anon_client_credentials_t gnutls_anon_cred; int gnutls_log_level; + int gnutls_handshakes_tried; int gnutls_p; #endif }; @@ -143,13 +144,7 @@ struct Lisp_Process /* Every field in the preceding structure except for the first two must be a Lisp_Object, for GC's sake. */ -#define ChannelMask(n) (1<<(n)) - -/* Indexed by descriptor, gives the process (if any) for that descriptor. */ -extern Lisp_Object chan_process[]; - -/* Alist of elements (NAME . PROCESS). */ -extern Lisp_Object Vprocess_alist; +#define ChannelMask(n) (1 << (n)) /* True if we are about to fork off a synchronous process or if we are waiting for it. */ @@ -183,7 +178,7 @@ extern Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime; extern Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs; extern Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtpgid, Qcstime; extern Lisp_Object Qtime, Qctime; -extern Lisp_Object QCport, QCspeed, QCprocess; +extern Lisp_Object QCspeed; extern Lisp_Object QCbytesize, QCstopbits, QCparity, Qodd, Qeven; extern Lisp_Object QCflowcontrol, Qhw, Qsw, QCsummary; @@ -200,6 +195,3 @@ extern void add_read_fd (int fd, fd_callback func, void *data); extern void delete_read_fd (int fd); extern void add_write_fd (int fd, fd_callback func, void *data); extern void delete_write_fd (int fd); - -/* arch-tag: dffedfc4-d7bc-4b58-a26f-c16155449c72 - (do not change this comment) */