Deleted Added
full compact
cpu_machdep.c (130312) cpu_machdep.c (130344)
1/*-
2 * Copyright (c) 1992 Terrence R. Lambert.
3 * Copyright (c) 1982, 1987, 1990 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * William Jolitz.
8 *

--- 24 unchanged lines hidden (view full) ---

33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 *
37 * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
38 */
39
40#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1992 Terrence R. Lambert.
3 * Copyright (c) 1982, 1987, 1990 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * William Jolitz.
8 *

--- 24 unchanged lines hidden (view full) ---

33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 *
37 * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
38 */
39
40#include <sys/cdefs.h>
41__FBSDID("$FreeBSD: head/sys/i386/i386/machdep.c 130312 2004-06-10 20:31:00Z jhb $");
41__FBSDID("$FreeBSD: head/sys/i386/i386/machdep.c 130344 2004-06-11 11:16:26Z phk $");
42
43#include "opt_apic.h"
44#include "opt_atalk.h"
45#include "opt_compat.h"
46#include "opt_cpu.h"
47#include "opt_ddb.h"
48#include "opt_inet.h"
49#include "opt_ipx.h"

--- 220 unchanged lines hidden (view full) ---

270 regs = td->td_frame;
271 oonstack = sigonstack(regs->tf_esp);
272
273 /* Allocate space for the signal handler context. */
274 if ((td->td_pflags & TDP_ALTSTACK) && !oonstack &&
275 SIGISMEMBER(psp->ps_sigonstack, sig)) {
276 fp = (struct osigframe *)(td->td_sigstk.ss_sp +
277 td->td_sigstk.ss_size - sizeof(struct osigframe));
42
43#include "opt_apic.h"
44#include "opt_atalk.h"
45#include "opt_compat.h"
46#include "opt_cpu.h"
47#include "opt_ddb.h"
48#include "opt_inet.h"
49#include "opt_ipx.h"

--- 220 unchanged lines hidden (view full) ---

270 regs = td->td_frame;
271 oonstack = sigonstack(regs->tf_esp);
272
273 /* Allocate space for the signal handler context. */
274 if ((td->td_pflags & TDP_ALTSTACK) && !oonstack &&
275 SIGISMEMBER(psp->ps_sigonstack, sig)) {
276 fp = (struct osigframe *)(td->td_sigstk.ss_sp +
277 td->td_sigstk.ss_size - sizeof(struct osigframe));
278#if defined(COMPAT_43) || defined(COMPAT_SUNOS)
278#if defined(COMPAT_43)
279 td->td_sigstk.ss_flags |= SS_ONSTACK;
280#endif
281 } else
282 fp = (struct osigframe *)regs->tf_esp - 1;
283
284 /* Translate the signal if appropriate. */
285 if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
286 sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];

--- 123 unchanged lines hidden (view full) ---

410 sf.sf_uc.uc_mcontext.mc_gs = rgs();
411 bcopy(regs, &sf.sf_uc.uc_mcontext.mc_fs, sizeof(*regs));
412
413 /* Allocate space for the signal handler context. */
414 if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack &&
415 SIGISMEMBER(psp->ps_sigonstack, sig)) {
416 sfp = (struct sigframe4 *)(td->td_sigstk.ss_sp +
417 td->td_sigstk.ss_size - sizeof(struct sigframe4));
279 td->td_sigstk.ss_flags |= SS_ONSTACK;
280#endif
281 } else
282 fp = (struct osigframe *)regs->tf_esp - 1;
283
284 /* Translate the signal if appropriate. */
285 if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
286 sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];

--- 123 unchanged lines hidden (view full) ---

410 sf.sf_uc.uc_mcontext.mc_gs = rgs();
411 bcopy(regs, &sf.sf_uc.uc_mcontext.mc_fs, sizeof(*regs));
412
413 /* Allocate space for the signal handler context. */
414 if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack &&
415 SIGISMEMBER(psp->ps_sigonstack, sig)) {
416 sfp = (struct sigframe4 *)(td->td_sigstk.ss_sp +
417 td->td_sigstk.ss_size - sizeof(struct sigframe4));
418#if defined(COMPAT_43) || defined(COMPAT_SUNOS)
418#if defined(COMPAT_43)
419 td->td_sigstk.ss_flags |= SS_ONSTACK;
420#endif
421 } else
422 sfp = (struct sigframe4 *)regs->tf_esp - 1;
423
424 /* Translate the signal if appropriate. */
425 if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
426 sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];

--- 120 unchanged lines hidden (view full) ---

547 get_fpcontext(td, &sf.sf_uc.uc_mcontext);
548 fpstate_drop(td);
549
550 /* Allocate space for the signal handler context. */
551 if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack &&
552 SIGISMEMBER(psp->ps_sigonstack, sig)) {
553 sp = td->td_sigstk.ss_sp +
554 td->td_sigstk.ss_size - sizeof(struct sigframe);
419 td->td_sigstk.ss_flags |= SS_ONSTACK;
420#endif
421 } else
422 sfp = (struct sigframe4 *)regs->tf_esp - 1;
423
424 /* Translate the signal if appropriate. */
425 if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
426 sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];

--- 120 unchanged lines hidden (view full) ---

547 get_fpcontext(td, &sf.sf_uc.uc_mcontext);
548 fpstate_drop(td);
549
550 /* Allocate space for the signal handler context. */
551 if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack &&
552 SIGISMEMBER(psp->ps_sigonstack, sig)) {
553 sp = td->td_sigstk.ss_sp +
554 td->td_sigstk.ss_size - sizeof(struct sigframe);
555#if defined(COMPAT_43) || defined(COMPAT_SUNOS)
555#if defined(COMPAT_43)
556 td->td_sigstk.ss_flags |= SS_ONSTACK;
557#endif
558 } else
559 sp = (char *)regs->tf_esp - sizeof(struct sigframe);
560 /* Align to 16 bytes. */
561 sfp = (struct sigframe *)((unsigned int)sp & ~0xF);
562
563 /* Translate the signal if appropriate. */

--- 200 unchanged lines hidden (view full) ---

764 regs->tf_ss = scp->sc_ss;
765 regs->tf_isp = scp->sc_isp;
766 regs->tf_ebp = scp->sc_fp;
767 regs->tf_esp = scp->sc_sp;
768 regs->tf_eip = scp->sc_pc;
769 regs->tf_eflags = eflags;
770
771 PROC_LOCK(p);
556 td->td_sigstk.ss_flags |= SS_ONSTACK;
557#endif
558 } else
559 sp = (char *)regs->tf_esp - sizeof(struct sigframe);
560 /* Align to 16 bytes. */
561 sfp = (struct sigframe *)((unsigned int)sp & ~0xF);
562
563 /* Translate the signal if appropriate. */

--- 200 unchanged lines hidden (view full) ---

764 regs->tf_ss = scp->sc_ss;
765 regs->tf_isp = scp->sc_isp;
766 regs->tf_ebp = scp->sc_fp;
767 regs->tf_esp = scp->sc_sp;
768 regs->tf_eip = scp->sc_pc;
769 regs->tf_eflags = eflags;
770
771 PROC_LOCK(p);
772#if defined(COMPAT_43) || defined(COMPAT_SUNOS)
772#if defined(COMPAT_43)
773 if (scp->sc_onstack & 1)
774 td->td_sigstk.ss_flags |= SS_ONSTACK;
775 else
776 td->td_sigstk.ss_flags &= ~SS_ONSTACK;
777#endif
778 SIGSETOLD(td->td_sigmask, scp->sc_mask);
779 SIG_CANTMASK(td->td_sigmask);
780 signotify(td);

--- 90 unchanged lines hidden (view full) ---

871 trapsignal(td, SIGBUS, T_PROTFLT);
872 return (EINVAL);
873 }
874
875 bcopy(&ucp->uc_mcontext.mc_fs, regs, sizeof(*regs));
876 }
877
878 PROC_LOCK(p);
773 if (scp->sc_onstack & 1)
774 td->td_sigstk.ss_flags |= SS_ONSTACK;
775 else
776 td->td_sigstk.ss_flags &= ~SS_ONSTACK;
777#endif
778 SIGSETOLD(td->td_sigmask, scp->sc_mask);
779 SIG_CANTMASK(td->td_sigmask);
780 signotify(td);

--- 90 unchanged lines hidden (view full) ---

871 trapsignal(td, SIGBUS, T_PROTFLT);
872 return (EINVAL);
873 }
874
875 bcopy(&ucp->uc_mcontext.mc_fs, regs, sizeof(*regs));
876 }
877
878 PROC_LOCK(p);
879#if defined(COMPAT_43) || defined(COMPAT_SUNOS)
879#if defined(COMPAT_43)
880 if (ucp->uc_mcontext.mc_onstack & 1)
881 td->td_sigstk.ss_flags |= SS_ONSTACK;
882 else
883 td->td_sigstk.ss_flags &= ~SS_ONSTACK;
884#endif
885
886 td->td_sigmask = ucp->uc_sigmask;
887 SIG_CANTMASK(td->td_sigmask);

--- 93 unchanged lines hidden (view full) ---

981
982 ret = set_fpcontext(td, &ucp->uc_mcontext);
983 if (ret != 0)
984 return (ret);
985 bcopy(&ucp->uc_mcontext.mc_fs, regs, sizeof(*regs));
986 }
987
988 PROC_LOCK(p);
880 if (ucp->uc_mcontext.mc_onstack & 1)
881 td->td_sigstk.ss_flags |= SS_ONSTACK;
882 else
883 td->td_sigstk.ss_flags &= ~SS_ONSTACK;
884#endif
885
886 td->td_sigmask = ucp->uc_sigmask;
887 SIG_CANTMASK(td->td_sigmask);

--- 93 unchanged lines hidden (view full) ---

981
982 ret = set_fpcontext(td, &ucp->uc_mcontext);
983 if (ret != 0)
984 return (ret);
985 bcopy(&ucp->uc_mcontext.mc_fs, regs, sizeof(*regs));
986 }
987
988 PROC_LOCK(p);
989#if defined(COMPAT_43) || defined(COMPAT_SUNOS)
989#if defined(COMPAT_43)
990 if (ucp->uc_mcontext.mc_onstack & 1)
991 td->td_sigstk.ss_flags |= SS_ONSTACK;
992 else
993 td->td_sigstk.ss_flags &= ~SS_ONSTACK;
994#endif
995
996 td->td_sigmask = ucp->uc_sigmask;
997 SIG_CANTMASK(td->td_sigmask);

--- 1902 unchanged lines hidden ---
990 if (ucp->uc_mcontext.mc_onstack & 1)
991 td->td_sigstk.ss_flags |= SS_ONSTACK;
992 else
993 td->td_sigstk.ss_flags &= ~SS_ONSTACK;
994#endif
995
996 td->td_sigmask = ucp->uc_sigmask;
997 SIG_CANTMASK(td->td_sigmask);

--- 1902 unchanged lines hidden ---