1: /* Definitions for asynchronous process control in GNU Emacs.
   2:    Copyright (C) 1985 Richard M. Stallman.
   3: 
   4: This file is part of GNU Emacs.
   5: 
   6: GNU Emacs is distributed in the hope that it will be useful,
   7: but WITHOUT ANY WARRANTY.  No author or distributor
   8: accepts responsibility to anyone for the consequences of using it
   9: or for whether it serves any particular purpose or works at all,
  10: unless he says so in writing.  Refer to the GNU Emacs General Public
  11: License for full details.
  12: 
  13: Everyone is granted permission to copy, modify and redistribute
  14: GNU Emacs, but only under the conditions described in the
  15: GNU Emacs General Public License.   A copy of this license is
  16: supposed to have been given to you along with GNU Emacs so you
  17: can know your rights and responsibilities.  It should be in a
  18: file named COPYING.  Among other things, the copyright notice
  19: and this notice must be preserved on all copies.  */
  20: 
  21: 
  22: /*
  23:  * Structure records pertinent information about open channels.
  24:  * There is one channel associated with each process.
  25:  */
  26: 
  27: struct Lisp_Process
  28:   {
  29:     int size;
  30:     struct Lisp_Vector *v_next;
  31:     /* Descriptor by which we read from this process */
  32:     Lisp_Object infd;
  33:     /* Descriptor by which we write to this process */
  34:     Lisp_Object outfd;
  35:     /* Name of this process */
  36:     Lisp_Object name;
  37:     /* List of command arguments that this process was run with */
  38:     Lisp_Object command;
  39:     /* (funcall FILTER PROC STRING)  (if FILTER is non-nil)
  40:        to dispose of a bunch of chars from the process all at once */
  41:     Lisp_Object filter;
  42:     /* (funcall SENTINEL PROCESS) when process state changes */
  43:     Lisp_Object sentinel;
  44:     /* Buffer that output is going to */
  45:     Lisp_Object buffer;
  46:     /* Number of this process */
  47:     Lisp_Object pid;
  48:     /* Non-nil if this is really a command channel */
  49:     Lisp_Object command_channel_p;
  50:     /* Non-nil if this is really a child process */
  51:     Lisp_Object childp;
  52:     /* The state of the process, expressed by flags
  53: 	(RUNNING, STOPPED, etc.)  */
  54:     Lisp_Object flags;
  55:     /* # of signal that the process got, that stopped it,
  56:        or code it exited with.  */
  57:     Lisp_Object reason;
  58:     /* Marker set to end of last buffer-inserted output from this process */
  59:     Lisp_Object mark;
  60:     /* Non-nil means kill silently if Emacs is exited.  */
  61:     Lisp_Object kill_without_query;
  62: };
  63: 
  64: /* Process status, found in the flags component */
  65: #define PROC_STATUS 3
  66: 
  67: /* Values of process status */
  68: #define RUNNING 0   /* process is running */
  69: #define STOPPED 1   /* process has stopped */
  70: #define EXITED  2   /* process has exited */
  71: #define SIGNALED 3  /* process was signalled */
  72: 
  73: /* Additional bits in the flags component */
  74: #define CHANGED 4   /* This bit is set when state changes;
  75: 			   cleared when a change message has been given */
  76: #define COREDUMPED 8    /* This bit is set if core was dumped */
  77: 
  78: 
  79: #define ChannelMask(n) (1<<(n))

Defined struct's

Lisp_Process defined in line 27; used 20 times

Defined macros

CHANGED defined in line 74; used 8 times
COREDUMPED defined in line 76; used 3 times
ChannelMask defined in line 79; used 7 times
EXITED defined in line 70; used 4 times
PROC_STATUS defined in line 65; used 9 times
RUNNING defined in line 68; used 5 times
SIGNALED defined in line 71; used 3 times
STOPPED defined in line 69; used 3 times

Usage of this include

Last modified: 1985-11-23
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 809
Valid CSS Valid XHTML 1.0 Strict