00001
00002
00003 #ifndef apic_i_h
00004 #define apic_i_h
00005
00006 #include <assert.h>
00007 #include <cstdio>
00008 #include <cstdlib>
00009 #include <cstring>
00010
00011 #include "config.h"
00012 #include "cpu.h"
00013 #include "cpu_lock.h"
00014 #include "entry_frame.h"
00015 #include "globals.h"
00016 #include "io.h"
00017 #include "kmem.h"
00018 #include "panic.h"
00019 #include "processor.h"
00020 #include "regdefs.h"
00021 #include "pic.h"
00022 #include "pit.h"
00023
00024 #include <cstdio>
00025 #include "simpleio.h"
00026
00027
00028
00029
00030
00031
00032
00033
00034 inline Unsigned32
00035 Apic::get_id()
00036 {
00037 return (reg_read(APIC_ID) >> 24) & 0x0f;
00038 }
00039
00040
00041
00042 inline Unsigned32
00043 Apic::get_version()
00044 {
00045 return reg_read(APIC_LVR) & 0xFF;
00046 }
00047
00048
00049
00050
00051 inline int
00052 Apic::test_present()
00053 {
00054 return Cpu::features() & FEAT_APIC;
00055 }
00056
00057 #endif // apic_i_h