x86_64: Syscall/Sysenter/int 0x80 (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Sat, 29 Jun 2013 00:23:01 +0000 (17:23 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 3 Jul 2013 00:18:00 +0000 (17:18 -0700)
commitf2506c94770f407f22d73c6efcafc3f5271e9f89
tree4d0590343e8fafd94700817afeb50f6d3edba947
parent4618d9b3d88c509f51514dad26944192f2b9eadd
x86_64: Syscall/Sysenter/int 0x80 (XCC)

Userspace can make system calls with either syscall (aka sysenter in the
codebase, 'syscall' is pretty generic) or int 0x80.

Rebuild the toolchain to use this, though _start probably doesn't work well as
is.  If you really want to test off this commit, write your own C program,
define _start, and compile with a non-cross gcc:

$ gcc minihello.c -o minihello -static -nostdinc -nostartfiles
kern/arch/x86/entry64.S
kern/arch/x86/process64.c
kern/arch/x86/ros/mmu64.h
kern/arch/x86/ros/syscall64.h
kern/arch/x86/ros/trapframe64.h
kern/arch/x86/trap.c
kern/arch/x86/trap64.c
kern/arch/x86/trap64.h
kern/arch/x86/trapentry64.S
kern/arch/x86/x86.h
user/parlib/include/x86/vcore64.h