diff options
author | Christopher Faylor <me@cgf.cx> | 2000-02-17 19:38:33 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-02-17 19:38:33 +0000 |
commit | 1fd5e000ace55b323124c7e556a7a864b972a5c4 (patch) | |
tree | dc4fcf1e5e22a040716ef92c496b8d94959b2baa /winsup/cygwin/sigproc.h | |
parent | 369d8a8fd5e887eca547bf34bccfdf755c9e5397 (diff) | |
download | newlib-1fd5e000ace55b323124c7e556a7a864b972a5c4.zip newlib-1fd5e000ace55b323124c7e556a7a864b972a5c4.tar.gz newlib-1fd5e000ace55b323124c7e556a7a864b972a5c4.tar.bz2 |
import winsup-2000-02-17 snapshot
Diffstat (limited to 'winsup/cygwin/sigproc.h')
-rw-r--r-- | winsup/cygwin/sigproc.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h new file mode 100644 index 0000000..b1b4eaf --- /dev/null +++ b/winsup/cygwin/sigproc.h @@ -0,0 +1,66 @@ +/* sigproc.h + + Copyright 1997, 1998, 2000 Cygnus Solutions. + +This file is part of Cygwin. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. */ + +#define EXIT_SIGNAL 0x010000 +#define EXIT_REPARENTING 0x020000 +#define EXIT_NOCLOSEALL 0x040000 + +enum procstuff +{ + PROC_ADDCHILD = 1, // add a new subprocess to list + PROC_CHILDSTOPPED = 2, // a child stopped + PROC_CHILDTERMINATED = 3, // a child died + PROC_CLEARWAIT = 4, // clear all waits - signal arrived + PROC_WAIT = 5 // setup for wait() for subproc +}; + +typedef struct struct_waitq +{ + int pid; + int options; + int status; + HANDLE ev; + void *rusage; /* pointer to potential rusage */ + struct struct_waitq *next; + HANDLE thread_ev; +} waitq; + +extern HANDLE signal_arrived; + +BOOL __stdcall my_parent_is_alive (); +extern "C" int __stdcall sig_dispatch_pending (int force = FALSE) __asm__ ("sig_dispatch_pending"); +extern "C" void __stdcall set_process_mask (sigset_t newmask); +int __stdcall sig_handle (int); +void __stdcall sig_clear (int); +void __stdcall sig_set_pending (int); +int __stdcall handle_sigsuspend (sigset_t); + +void __stdcall proc_terminate (); +void __stdcall sigproc_init (); +void __stdcall subproc_init (); +void __stdcall sigproc_terminate (); +BOOL __stdcall proc_exists (pinfo *); +int __stdcall proc_subproc (DWORD, DWORD); +int __stdcall sig_send (pinfo *, int); + +extern char myself_nowait_dummy[]; +extern char myself_nowait_nonmain_dummy[]; +extern DWORD maintid; +extern HANDLE hExeced; // Process handle of new window + // process created by spawn_guts() + +#define WAIT_SIG_EXITING (WAIT_OBJECT_0 + 1) + +#define allow_sig_dispatch(n) __allow_sig_dispatch (__FILE__, __LINE__, (n)) + +#define myself_nowait ((pinfo *)myself_nowait_dummy) +#define myself_nowait_nonmain ((pinfo *)myself_nowait_nonmain_dummy) +#define proc_register(child) \ + proc_subproc (PROC_ADDCHILD, (DWORD) (child)) |