UbixOS  2.0
trap.c File Reference
#include <i386/signal.h>
#include <sys/trap.h>
#include <sys/gdt.h>
#include <ubixos/sched.h>
#include <lib/kprintf.h>
#include <vmm/vmm.h>
#include <ubixos/endtask.h>
Include dependency graph for trap.c:

Go to the source code of this file.

Macros

#define FIRST_TSS_ENTRY   6
 
#define get_seg_byte(seg, addr)
 
#define get_seg_long(seg, addr)
 
#define store_TR(n)
 
#define VM_MASK   0x00020000
 

Functions

void die_if_kernel (char *str, struct trapframe *regs, long err)
 
void trap (struct trapframe *frame)
 

Macro Definition Documentation

◆ FIRST_TSS_ENTRY

#define FIRST_TSS_ENTRY   6

Definition at line 37 of file trap.c.

◆ get_seg_byte

#define get_seg_byte (   seg,
  addr 
)
Value:
({ \
register char __res; \
__asm__("push %%fs;mov %%ax,%%fs;movb %%fs:%2,%%al;pop %%fs" \
:"=a" (__res):"0" (seg),"m" (*(addr))); \
__res;})

Definition at line 53 of file trap.c.

◆ get_seg_long

#define get_seg_long (   seg,
  addr 
)
Value:
({ \
register unsigned long __res; \
__asm__("push %%fs;mov %%ax,%%fs;movl %%fs:%2,%%eax;pop %%fs" \
:"=a" (__res):"0" (seg),"m" (*(addr))); \
__res;})

Definition at line 47 of file trap.c.

◆ store_TR

#define store_TR (   n)
Value:
__asm__("str %%ax\n\t" \
"subl %2,%%eax\n\t" \
"shrl $4,%%eax" \
:"=a" (n) \
:"0" (0),"i" (FIRST_TSS_ENTRY<<3))

Definition at line 40 of file trap.c.

◆ VM_MASK

#define VM_MASK   0x00020000

Definition at line 38 of file trap.c.

Function Documentation

◆ die_if_kernel()

◆ trap()

void trap ( struct trapframe frame)

Definition at line 101 of file trap.c.

References trapframe::tf_trapno.

FIRST_TSS_ENTRY
#define FIRST_TSS_ENTRY
Definition: trap.c:37