Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

trap_state.h

Go to the documentation of this file.
00001 // AUTOMATICALLY GENERATED -- DO NOT EDIT!         -*- c++ -*-
00002 
00003 #ifndef trap_state_h
00004 #define trap_state_h
00005 
00006 #include "l4_types.h"
00007 
00008 //
00009 // INTERFACE definition follows 
00010 //
00011 
00012 
00013 class Trap_state
00014 {
00015 public:
00016   typedef int (*Handler)(Trap_state*);
00017   static Handler FIASCO_FASTCALL base_handler asm ("BASE_TRAP_HANDLER");
00018 
00019   // Saved segment registers
00020   Mword  es;
00021   Mword  ds;
00022   Mword  gs;                                      // => utcb->values[ 0]
00023   Mword  fs;                                      // => utcb->values[ 1]
00024 
00025   // PUSHA register state frame
00026   Mword  edi;                                     // => utcb->values[ 2]
00027   Mword  esi;                                     // => utcb->values[ 3]
00028   Mword  ebp;                                     // => utcb->values[ 4]
00029   Mword  cr2;  // we save cr2 over esp for PFs    // => utcb->values[ 5]
00030   Mword  ebx;                                     // => utcb->values[ 6]
00031   Mword  edx;                                     // => utcb->values[ 7]
00032   Mword  ecx;                                     // => utcb->values[ 8]
00033   Mword  eax;                                     // => utcb->values[ 9]
00034 
00035   // Processor trap number, 0-31
00036   Mword  trapno;                                  // => utcb->values[10]
00037 
00038   // Error code pushed by the processor, 0 if none
00039   Mword  err;                                     // => utcb->values[11]
00040 
00041   // Processor state frame
00042   Mword  eip;                                     // => utcb->values[12]
00043   Mword  cs;                                      // => utcb->values[13]
00044   Mword  eflags;                                  // => utcb->values[14]
00045   Mword  esp;                                     // => utcb->values[15]
00046   Mword  ss;
00047 
00048 public:  
00049   inline Mword ip();
00050   
00051   inline Mword sp();
00052   
00053   inline Mword flags();
00054   
00055   Mword value();
00056   
00057   void dump();
00058 };
00059 
00060 extern "C" FIASCO_FASTCALL void trap_dump_panic(Trap_state *ts);
00061 
00062 //
00063 // IMPLEMENTATION of inline functions (and needed classes)
00064 //
00065 
00066 
00067 
00068 
00069 inline Mword
00070 Trap_state::ip()
00071 { return eip; }
00072 
00073 
00074 
00075 inline Mword
00076 Trap_state::sp()
00077 { return esp; }
00078 
00079 
00080 
00081 inline Mword
00082 Trap_state::flags()
00083 { return eflags; }
00084 
00085 #endif // trap_state_h

Generated on Mon Sep 26 14:20:12 2005 for Fiasco by  doxygen 1.4.2