Skip to content
Snippets Groups Projects
trapasm.S 557 B
Newer Older
rsc's avatar
rsc committed

  # vectors.S sends all traps here.
rsc's avatar
rsc committed
.globl alltraps
rtm's avatar
rtm committed
alltraps:
rsc's avatar
rsc committed
  # Build trap frame.
  pushl %ds
  pushl %es
rsc's avatar
rsc committed
  pushal
  
rsc's avatar
rsc committed
  # Set up data and per-cpu segments.
  movw $(SEG_KDATA<<3), %ax
  movw %ax, %ds
  movw %ax, %es
  movw $(SEG_KCPU<<3), %ax
  movw %ax, %fs
  movw %ax, %gs
rsc's avatar
rsc committed

  # Call trap(tf), where tf=%esp
  pushl %esp
  call trap
  addl $4, %esp
rsc's avatar
rsc committed
  # Return falls through to trapret...
rsc's avatar
 
rsc committed
.globl trapret
rtm's avatar
rtm committed
trapret:
  popl %es
  popl %ds
rsc's avatar
rsc committed
  addl $0x8, %esp  # trapno and errcode