linux_sysvec.c (2da829a0c8cedd4ed876fd174b8593e07e447bc6) | linux_sysvec.c (806d7daafe9953ef3f37c1ced4f10e9fb7ec6f31) |
---|---|
1/*- 2 * Copyright (c) 1994-1996 S�ren Schmidt 3 * 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 --- 619 unchanged lines hidden (view full) --- 628 regs->tf_ecx = context->sc_ecx; 629 regs->tf_eax = context->sc_eax; 630 regs->tf_eip = context->sc_eip; 631 regs->tf_cs = context->sc_cs; 632 regs->tf_eflags = eflags; 633 regs->tf_esp = context->sc_esp_at_signal; 634 regs->tf_ss = context->sc_ss; 635 | 1/*- 2 * Copyright (c) 1994-1996 S�ren Schmidt 3 * 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 --- 619 unchanged lines hidden (view full) --- 628 regs->tf_ecx = context->sc_ecx; 629 regs->tf_eax = context->sc_eax; 630 regs->tf_eip = context->sc_eip; 631 regs->tf_cs = context->sc_cs; 632 regs->tf_eflags = eflags; 633 regs->tf_esp = context->sc_esp_at_signal; 634 regs->tf_ss = context->sc_ss; 635 |
636 | |
637 /* 638 * call sigaltstack & ignore results.. 639 */ 640 ss = stackgap_alloc(&sg, sizeof(stack_t)); 641 lss = &uc.uc_stack; 642 ss->ss_sp = lss->ss_sp; | 636 /* 637 * call sigaltstack & ignore results.. 638 */ 639 ss = stackgap_alloc(&sg, sizeof(stack_t)); 640 lss = &uc.uc_stack; 641 ss->ss_sp = lss->ss_sp; |
643 ss->ss_size = (lss->ss_size >= LINUX_MINSIGSTKSZ && 644 lss->ss_size < MINSIGSTKSZ) ? MINSIGSTKSZ : lss->ss_size; | 642 ss->ss_size = lss->ss_size; |
645 ss->ss_flags = linux_to_bsd_sigaltstack(lss->ss_flags); 646 647#ifdef DEBUG 648 printf("Linux-emul(%ld): rt_sigret flags: 0x%x, sp: %p, ss: 0x%x, mask: 0x%x\n", 649 (long)p->p_pid, ss->ss_flags, ss->ss_sp, ss->ss_size, context->sc_mask); 650#endif 651 sasargs.ss = ss; 652 sasargs.oss = NULL; --- 68 unchanged lines hidden (view full) --- 721 translate_traps, 722 linux_fixup, 723 linux_sendsig, 724 linux_sigcode, 725 &linux_szsigcode, 726 linux_prepsyscall, 727 "Linux a.out", 728 aout_coredump, | 643 ss->ss_flags = linux_to_bsd_sigaltstack(lss->ss_flags); 644 645#ifdef DEBUG 646 printf("Linux-emul(%ld): rt_sigret flags: 0x%x, sp: %p, ss: 0x%x, mask: 0x%x\n", 647 (long)p->p_pid, ss->ss_flags, ss->ss_sp, ss->ss_size, context->sc_mask); 648#endif 649 sasargs.ss = ss; 650 sasargs.oss = NULL; --- 68 unchanged lines hidden (view full) --- 719 translate_traps, 720 linux_fixup, 721 linux_sendsig, 722 linux_sigcode, 723 &linux_szsigcode, 724 linux_prepsyscall, 725 "Linux a.out", 726 aout_coredump, |
729 exec_linux_imgact_try | 727 exec_linux_imgact_try, 728 LINUX_MINSIGSTKSZ |
730}; 731 732struct sysentvec elf_linux_sysvec = { 733 LINUX_SYS_MAXSYSCALL, 734 linux_sysent, 735 0xff, 736 LINUX_SIGTBLSZ, 737 bsd_to_linux_signal, 738 ELAST + 1, 739 bsd_to_linux_errno, 740 translate_traps, 741 elf_linux_fixup, 742 linux_sendsig, 743 linux_sigcode, 744 &linux_szsigcode, 745 linux_prepsyscall, 746 "Linux ELF", 747 elf_coredump, | 729}; 730 731struct sysentvec elf_linux_sysvec = { 732 LINUX_SYS_MAXSYSCALL, 733 linux_sysent, 734 0xff, 735 LINUX_SIGTBLSZ, 736 bsd_to_linux_signal, 737 ELAST + 1, 738 bsd_to_linux_errno, 739 translate_traps, 740 elf_linux_fixup, 741 linux_sendsig, 742 linux_sigcode, 743 &linux_szsigcode, 744 linux_prepsyscall, 745 "Linux ELF", 746 elf_coredump, |
748 exec_linux_imgact_try | 747 exec_linux_imgact_try, 748 LINUX_MINSIGSTKSZ |
749}; 750 751static Elf32_Brandinfo linux_brand = { 752 ELFOSABI_LINUX, 753 "/compat/linux", 754 "/lib/ld-linux.so.1", 755 &elf_linux_sysvec 756 }; --- 65 unchanged lines hidden --- | 749}; 750 751static Elf32_Brandinfo linux_brand = { 752 ELFOSABI_LINUX, 753 "/compat/linux", 754 "/lib/ld-linux.so.1", 755 &elf_linux_sysvec 756 }; --- 65 unchanged lines hidden --- |