home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / emacs-19.28-src.tgz / tar.out / fsf / emacs / unixlib / src / processes.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  1KB  |  47 lines

  1. #ifndef _PROCESSES_H
  2. #define _PROCESSES_H_
  3.  
  4. struct process
  5. {
  6.     struct MinNode node;
  7.     struct Task *process;
  8.     int pid;
  9.     BPTR input;
  10.     enum { alive, exited } status;
  11.     int rc;
  12. };
  13.  
  14. struct exit_message        /* Sent by children when exiting */
  15. {
  16.   struct Message m;
  17.   int pid;
  18.   int rc;
  19. };
  20.  
  21. extern int _next_pid, _our_pid;
  22. extern struct MinList _processes;
  23. #define DOOR_LEN 32
  24. extern char _door_name[DOOR_LEN];
  25. extern struct MsgPort *_children_exit;
  26. extern struct MsgPort *_startup_port;
  27.  
  28. #define scan_processes(p) for (p = (struct process *)_processes.mlh_Head; \
  29.                    p->node.mln_Succ; \
  30.                    p = (struct process *)p->node.mln_Succ)
  31.  
  32. #define no_processes() (_processes.mlh_Head->mln_Succ == 0)
  33.  
  34. void _free_entry(struct process *p);
  35. struct process *_find_pid(int pid);
  36. void _init_processes(void);
  37. void _cleanup_processes(void);
  38.  
  39. int _start_process(char *command,
  40.            BPTR input, int close_input,
  41.            BPTR output, int close_output,
  42.            BPTR error, int close_error,
  43.            BPTR dir,
  44.            long stacksize);
  45.  
  46. #endif
  47.