X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/42ca463309fdb17f04a72dad92696312bf242328..d770725a3df5529f046198b2f7014918e13a06b1:/src/process.h diff --git a/src/process.h b/src/process.h index 35b01aba6a..aff9e970f6 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-2011 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -20,20 +19,23 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_SYS_TYPES_H #include #endif -#ifdef HAVE_UNISTD_H + #include + +#ifdef HAVE_GNUTLS +#include "gnutls.h" #endif /* 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 */ @@ -76,6 +78,10 @@ struct Lisp_Process /* Working buffer for encoding. */ Lisp_Object encoding_buf; +#ifdef HAVE_GNUTLS + Lisp_Object gnutls_cred_type; +#endif + /* After this point, there are no Lisp_Objects any more. */ /* alloc.c assumes that `pid' is the first such non-Lisp slot. */ @@ -121,18 +127,21 @@ struct Lisp_Process needs to be synced to `status'. */ unsigned int raw_status_new : 1; int raw_status; + +#ifdef HAVE_GNUTLS + gnutls_initstage_t gnutls_initstage; + gnutls_session_t gnutls_state; + gnutls_certificate_client_credentials gnutls_x509_cred; + gnutls_anon_client_credentials_t gnutls_anon_cred; + int gnutls_log_level; + int gnutls_p; +#endif }; /* 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. */ @@ -166,7 +175,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; @@ -177,5 +186,9 @@ extern void hold_keyboard_input (void); extern void unhold_keyboard_input (void); extern int kbd_on_hold_p (void); -/* arch-tag: dffedfc4-d7bc-4b58-a26f-c16155449c72 - (do not change this comment) */ +typedef void (*fd_callback)(int fd, void *data, int for_read); + +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);