diff options
Diffstat (limited to 'winsup/cygwin/sigproc.h')
-rw-r--r-- | winsup/cygwin/sigproc.h | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h deleted file mode 100644 index 9d8a8c520..000000000 --- a/winsup/cygwin/sigproc.h +++ /dev/null @@ -1,120 +0,0 @@ -/* sigproc.h - - Copyright 1997, 1998, 2000, 2001 Red Hat, Inc. - -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. */ - -#include <signal.h> - -#define EXIT_SIGNAL 0x010000 -#define EXIT_REPARENTING 0x020000 -#define EXIT_NOCLOSEALL 0x040000 - -enum procstuff -{ - PROC_ADDCHILD = 1, // add a new subprocess to list - PROC_CHILDTERMINATED = 2, // a child died - PROC_CLEARWAIT = 3, // clear all waits - signal arrived - PROC_WAIT = 4, // setup for wait() for subproc - PROC_NOTHING = 5 // nothing, really -}; - -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; - -struct sigthread -{ - DWORD id; - DWORD frame; - CRITICAL_SECTION lock; - LONG winapi_lock; - bool get_winapi_lock (int test = 0); - void release_winapi_lock (); - void init (const char *s); -}; - -class sigframe -{ -private: - sigthread *st; - void unregister () - { - if (st) - { - EnterCriticalSection (&st->lock); - st->frame = 0; - st->release_winapi_lock (); - LeaveCriticalSection (&st->lock); - st = NULL; - } - } - -public: - void set (sigthread &t, DWORD ebp) - { - DWORD oframe = t.frame; - st = &t; - t.frame = ebp; - if (!oframe) - t.get_winapi_lock (); - } - - sigframe (): st (NULL) {} - sigframe (sigthread &t, DWORD ebp = (DWORD) __builtin_frame_address (0)) - { - if (!t.frame && t.id == GetCurrentThreadId ()) - set (t, ebp); - else - st = NULL; - } - ~sigframe () - { - unregister (); - } - - int call_signal_handler (); -}; - -extern sigthread mainthread; -extern HANDLE signal_arrived; - -BOOL __stdcall my_parent_is_alive (); -extern "C" int __stdcall sig_dispatch_pending (int force = FALSE); -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); - -int __stdcall proc_subproc (DWORD, DWORD); - -class _pinfo; -void __stdcall proc_terminate (); -void __stdcall sigproc_init (); -void __stdcall subproc_init (); -void __stdcall sigproc_terminate (); -BOOL __stdcall proc_exists (_pinfo *) __attribute__ ((regparm(1))); -BOOL __stdcall pid_exists (pid_t) __attribute__ ((regparm(1))); -int __stdcall sig_send (_pinfo *, int, DWORD ebp = (DWORD) __builtin_frame_address (0)) __attribute__ ((regparm(3))); -void __stdcall signal_fixup_after_fork (); -void __stdcall signal_fixup_after_exec (bool); - -extern char myself_nowait_dummy[]; -extern char myself_nowait_nonmain_dummy[]; - -#define WAIT_SIG_EXITING (WAIT_OBJECT_0 + 1) - -#define myself_nowait ((_pinfo *)myself_nowait_dummy) -#define myself_nowait_nonmain ((_pinfo *)myself_nowait_nonmain_dummy) |