aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/pinfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/pinfo.h')
-rw-r--r--winsup/cygwin/pinfo.h168
1 files changed, 0 insertions, 168 deletions
diff --git a/winsup/cygwin/pinfo.h b/winsup/cygwin/pinfo.h
deleted file mode 100644
index ef8dfff..0000000
--- a/winsup/cygwin/pinfo.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/******** Process Table ********/
-
-/* Signal constants (have to define them here, unfortunately) */
-
-enum
-{
- __SIGFLUSH = -2,
- __SIGSTRACE = -1,
- __SIGCHILDSTOPPED = 0,
- __SIGOFFSET = 3
-};
-
-#define PSIZE 1024
-
-class ThreadItem;
-
-class _pinfo
-{
-public:
- /* Cygwin pid */
- pid_t pid;
-
- /* Various flags indicating the state of the process. See PID_
- constants below. */
- DWORD process_state;
-
- /* If hProcess is set, it's because it came from a
- CreateProcess call. This means it's process relative
- to the thing which created the process. That's ok because
- we only use this handle from the parent. */
- HANDLE hProcess;
-
-#define PINFO_REDIR_SIZE ((DWORD) &(((_pinfo *)NULL)->hProcess) + sizeof (DWORD))
-
- /* Parent process id. */
- pid_t ppid;
-
- /* dwProcessId contains the processid used for sending signals. It
- * will be reset in a child process when it is capable of receiving
- * signals.
- */
- DWORD dwProcessId;
-
- /* Used to spawn a child for fork(), among other things. */
- char progname[MAX_PATH];
-
- HANDLE parent_alive;
-
- /* User information.
- The information is derived from the GetUserName system call,
- with the name looked up in /etc/passwd and assigned a default value
- if not found. This data resides in the shared data area (allowing
- tasks to store whatever they want here) so it's for informational
- purposes only. */
- uid_t uid; /* User ID */
- gid_t gid; /* Group ID */
- pid_t pgid; /* Process group ID */
- pid_t sid; /* Session ID */
- int ctty; /* Control tty */
- mode_t umask;
- char username[MAX_USER_NAME]; /* user's name */
-
- /* Extendend user information.
- The information is derived from the internal_getlogin call
- when on a NT system. */
- int use_psid; /* TRUE if psid contains valid data */
- char psid[MAX_SID_LEN]; /* buffer for user's SID */
- char logsrv[MAX_HOST_NAME]; /* Logon server, may be FQDN */
- char domain[MAX_COMPUTERNAME_LENGTH+1]; /* Logon domain of the user */
-
- /* token is needed if sexec should be called. It can be set by a call
- to `set_impersonation_token()'. */
- HANDLE token;
- BOOL impersonated;
- uid_t orig_uid; /* Remains intact also after impersonation */
- uid_t orig_gid; /* Ditto */
- uid_t real_uid; /* Remains intact on seteuid, replaced by setuid */
- gid_t real_gid; /* Ditto */
-
- /* Filled when chroot() is called by the process or one of it's parents.
- Saved without trailing backslash. */
- char root[MAX_PATH+1];
- size_t rootlen;
-
- /* Non-zero if process was stopped by a signal. */
- char stopsig;
-
- struct sigaction& getsig (int);
- void copysigs (_pinfo* );
- sigset_t& getsigmask ();
- void setsigmask (sigset_t);
- LONG* getsigtodo (int);
- HANDLE getthread2signal ();
- void setthread2signal (void *);
-
- /* Resources used by process. */
- long start_time;
- struct rusage rusage_self;
- struct rusage rusage_children;
-
-private:
- struct sigaction sigs[NSIG];
- sigset_t sig_mask; /* one set for everything to ignore. */
- LONG _sigtodo[NSIG + __SIGOFFSET];
- ThreadItem* thread2signal; // NULL means means thread any other means a pthread
-
-public:
- /* Pointer to mmap'ed areas for this process. Set up by fork. */
- void *mmap_ptr;
-
- void record_death ();
-};
-
-class pinfo
-{
- HANDLE h;
- _pinfo *procinfo;
- int destroy;
-public:
- void init (pid_t n, DWORD create = 0, HANDLE h = NULL);
- pinfo (): h (NULL), procinfo (0), destroy (0) {}
- pinfo (_pinfo *x): procinfo (x) {}
- pinfo (pid_t n) {init (n);}
- pinfo (pid_t n, int create) {init (n, create);}
- void release ();
- ~pinfo ()
- {
- if (destroy && procinfo)
- release ();
- }
-
- _pinfo *operator -> () const {return procinfo;}
- int operator == (pinfo *x) const {return x->procinfo == procinfo;}
- int operator == (pinfo &x) const {return x.procinfo == procinfo;}
- int operator == (void *x) const {return procinfo == x;}
- int operator == (int x) const {return (int) procinfo == (int) x;}
- int operator == (char *x) const {return (char *) procinfo == x;}
- _pinfo *operator * () const {return procinfo;}
- operator _pinfo * () const {return procinfo;}
- // operator bool () const {return (int) h;}
- void remember () {destroy = 0; proc_subproc (PROC_ADDCHILD, (DWORD) this);}
- HANDLE shared_handle () {return h;}
-};
-
-#define ISSTATE(p, f) (!!((p)->process_state & f))
-#define NOTSTATE(p, f) (!((p)->process_state & f))
-
-class winpids
-{
- DWORD pidlist[16384];
-public:
- DWORD npids;
- void reset () { npids = 0; }
- winpids (int) { reset (); }
- winpids () { init (); };
- void init ();
- int operator [] (int i) const {return pidlist[i];}
-};
-
-extern __inline pid_t
-cygwin_pid (pid_t pid)
-{
- return (pid_t) (os_being_run == winNT) ? pid : -(int) pid;
-}
-
-void __stdcall pinfo_init (BYTE *);
-void __stdcall set_myself (pid_t pid, HANDLE h = NULL);
-extern pinfo myself;