Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/linux/linux_sysvec.c
Show All 23 Lines | |||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
*/ | */ | ||||
#include <sys/cdefs.h> | #include <sys/cdefs.h> | ||||
__FBSDID("$FreeBSD$"); | __FBSDID("$FreeBSD$"); | ||||
#include "opt_pax.h" | |||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <sys/exec.h> | #include <sys/exec.h> | ||||
#include <sys/fcntl.h> | #include <sys/fcntl.h> | ||||
#include <sys/imgact.h> | #include <sys/imgact.h> | ||||
#include <sys/imgact_aout.h> | #include <sys/imgact_aout.h> | ||||
#include <sys/imgact_elf.h> | #include <sys/imgact_elf.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/lock.h> | #include <sys/lock.h> | ||||
#include <sys/malloc.h> | #include <sys/malloc.h> | ||||
#include <sys/module.h> | #include <sys/module.h> | ||||
#include <sys/mutex.h> | #include <sys/mutex.h> | ||||
#include <sys/pax.h> | |||||
#include <sys/proc.h> | #include <sys/proc.h> | ||||
#include <sys/signalvar.h> | #include <sys/signalvar.h> | ||||
#include <sys/syscallsubr.h> | #include <sys/syscallsubr.h> | ||||
#include <sys/sysent.h> | #include <sys/sysent.h> | ||||
#include <sys/sysproto.h> | #include <sys/sysproto.h> | ||||
#include <sys/vnode.h> | #include <sys/vnode.h> | ||||
#include <sys/eventhandler.h> | #include <sys/eventhandler.h> | ||||
▲ Show 20 Lines • Show All 917 Lines • ▼ Show 20 Lines | struct sysentvec linux_sysvec = { | ||||
.sv_maxssiz = NULL, | .sv_maxssiz = NULL, | ||||
.sv_flags = SV_ABI_LINUX | SV_AOUT | SV_IA32 | SV_ILP32, | .sv_flags = SV_ABI_LINUX | SV_AOUT | SV_IA32 | SV_ILP32, | ||||
.sv_set_syscall_retval = cpu_set_syscall_retval, | .sv_set_syscall_retval = cpu_set_syscall_retval, | ||||
.sv_fetch_syscall_args = linux_fetch_syscall_args, | .sv_fetch_syscall_args = linux_fetch_syscall_args, | ||||
.sv_syscallnames = NULL, | .sv_syscallnames = NULL, | ||||
.sv_shared_page_base = LINUX_SHAREDPAGE, | .sv_shared_page_base = LINUX_SHAREDPAGE, | ||||
.sv_shared_page_len = PAGE_SIZE, | .sv_shared_page_len = PAGE_SIZE, | ||||
.sv_schedtail = linux_schedtail, | .sv_schedtail = linux_schedtail, | ||||
#ifdef PAX_ASLR | |||||
.sv_pax_aslr_init = _pax_aslr_init, | |||||
#endif | |||||
}; | }; | ||||
INIT_SYSENTVEC(aout_sysvec, &linux_sysvec); | INIT_SYSENTVEC(aout_sysvec, &linux_sysvec); | ||||
struct sysentvec elf_linux_sysvec = { | struct sysentvec elf_linux_sysvec = { | ||||
.sv_size = LINUX_SYS_MAXSYSCALL, | .sv_size = LINUX_SYS_MAXSYSCALL, | ||||
.sv_table = linux_sysent, | .sv_table = linux_sysent, | ||||
.sv_mask = 0, | .sv_mask = 0, | ||||
.sv_sigsize = LINUX_SIGTBLSZ, | .sv_sigsize = LINUX_SIGTBLSZ, | ||||
Show All 22 Lines | struct sysentvec elf_linux_sysvec = { | ||||
.sv_maxssiz = NULL, | .sv_maxssiz = NULL, | ||||
.sv_flags = SV_ABI_LINUX | SV_IA32 | SV_ILP32 | SV_SHP, | .sv_flags = SV_ABI_LINUX | SV_IA32 | SV_ILP32 | SV_SHP, | ||||
.sv_set_syscall_retval = cpu_set_syscall_retval, | .sv_set_syscall_retval = cpu_set_syscall_retval, | ||||
.sv_fetch_syscall_args = linux_fetch_syscall_args, | .sv_fetch_syscall_args = linux_fetch_syscall_args, | ||||
.sv_syscallnames = NULL, | .sv_syscallnames = NULL, | ||||
.sv_shared_page_base = LINUX_SHAREDPAGE, | .sv_shared_page_base = LINUX_SHAREDPAGE, | ||||
.sv_shared_page_len = PAGE_SIZE, | .sv_shared_page_len = PAGE_SIZE, | ||||
.sv_schedtail = linux_schedtail, | .sv_schedtail = linux_schedtail, | ||||
#ifdef PAX_ASLR | |||||
.sv_pax_aslr_init = _pax_aslr_init, | |||||
#endif | |||||
}; | }; | ||||
INIT_SYSENTVEC(elf_sysvec, &elf_linux_sysvec); | INIT_SYSENTVEC(elf_sysvec, &elf_linux_sysvec); | ||||
static char GNU_ABI_VENDOR[] = "GNU"; | static char GNU_ABI_VENDOR[] = "GNU"; | ||||
static int GNULINUX_ABI_DESC = 0; | static int GNULINUX_ABI_DESC = 0; | ||||
static boolean_t | static boolean_t | ||||
linux_trans_osrel(const Elf_Note *note, int32_t *osrel) | linux_trans_osrel(const Elf_Note *note, int32_t *osrel) | ||||
▲ Show 20 Lines • Show All 138 Lines • Show Last 20 Lines |