sigcompat.c (51870) | sigcompat.c (52040) |
---|---|
1/* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 22 unchanged lines hidden (view full) --- 31 * SUCH DAMAGE. 32 */ 33 34#if defined(LIBC_SCCS) && !defined(lint) 35#if 0 36static char sccsid[] = "@(#)sigcompat.c 8.1 (Berkeley) 6/2/93"; 37#endif 38static const char rcsid[] = | 1/* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 22 unchanged lines hidden (view full) --- 31 * SUCH DAMAGE. 32 */ 33 34#if defined(LIBC_SCCS) && !defined(lint) 35#if 0 36static char sccsid[] = "@(#)sigcompat.c 8.1 (Berkeley) 6/2/93"; 37#endif 38static const char rcsid[] = |
39 "$FreeBSD: head/lib/libc/compat-43/sigcompat.c 51870 1999-10-02 19:24:24Z marcel $"; | 39 "$FreeBSD: head/lib/libc/compat-43/sigcompat.c 52040 1999-10-09 00:25:29Z jdp $"; |
40#endif /* LIBC_SCCS and not lint */ 41 42#include <sys/param.h> 43#include <signal.h> 44 45int 46sigvec(signo, sv, osv) 47 int signo; 48 struct sigvec *sv, *osv; 49{ | 40#endif /* LIBC_SCCS and not lint */ 41 42#include <sys/param.h> 43#include <signal.h> 44 45int 46sigvec(signo, sv, osv) 47 int signo; 48 struct sigvec *sv, *osv; 49{ |
50 struct sigaction sa, osa; 51 struct sigaction *sap, *osap; |
|
50 int ret; 51 | 52 int ret; 53 |
52 if (sv) 53 sv->sv_flags ^= SV_INTERRUPT; /* !SA_INTERRUPT */ 54 ret = osigaction(signo, (struct osigaction *)sv, 55 (struct osigaction *)osv); 56 if (ret == 0 && osv) 57 osv->sv_flags ^= SV_INTERRUPT; /* !SA_INTERRUPT */ | 54 if (sv != NULL) { 55 sa.sa_handler = sv->sv_handler; 56 sa.sa_flags = sv->sv_flags ^ SV_INTERRUPT; 57 sigemptyset(&sa.sa_mask); 58 sa.sa_mask.__bits[0] = sv->sv_mask; 59 sap = &sa; 60 } else 61 sap = NULL; 62 osap = osv != NULL ? &osa : NULL; 63 ret = sigaction(signo, sap, osap); 64 if (ret == 0 && osv != NULL) { 65 osv->sv_handler = osa.sa_handler; 66 osv->sv_flags = osa.sa_flags ^ SV_INTERRUPT; 67 osv->sv_mask = osa.sa_mask.__bits[0]; 68 } |
58 return (ret); 59} 60 61int 62sigsetmask(mask) 63 int mask; 64{ 65 sigset_t set, oset; --- 35 unchanged lines hidden --- | 69 return (ret); 70} 71 72int 73sigsetmask(mask) 74 int mask; 75{ 76 sigset_t set, oset; --- 35 unchanged lines hidden --- |