ApertureOS
apic.h
Go to the documentation of this file.
1 #ifndef _APIC_DRIVER_H_
2 #define _APIC_DRIVER_H_
3 
4 #include "types.h"
5 #include "io_apic/io_apic.h"
6 
12 #define APIC_TIMER 0x320
13 #define APIC_THERMAL_SENSOR 0x330
14 #define APIC_PERF_MON 0x340
15 #define APIC_LINT0 0x350
16 #define APIC_LINT1 0x360
17 #define APIC_ERR 0x370
18 #define APIC_TIMER_VAL 0x380
19 
20 #define APIC_TIMER_ONESHOT 0x0
21 #define APIC_TIMER_PERIODIC 0x1
22 #define APIC_TIMER_TSC 0x2
23 
24 #define APIC_DELIVERY_MODE_FIXED 0x0
25 #define APIC_DELIVERY_MODE_SMI 0x2
26 #define APIC_DELIVERY_MODE_NMI 0x4
27 #define APIC_DELIVERY_MODE_EXTINT 0x7
28 #define APIC_DELIVERY_MODE_INIT 0x5
29 
30 #define APIC_TRIGGER_MODE_EDGE 0
31 #define APIC_TRIGGER_MODE_LEVEL 1
32 
33 #define APIC_POLARITY_HIGH 0
34 #define APIC_POLARITY_LOW 1
35 
36 uint8_t
38 
39 uint32_t
40 APIC_Initialize(void);
41 
42 void
43 APIC_SetEnableMode(uint8_t enabled);
44 
45 uint8_t
46 APIC_GetID(void);
47 
48 void
49 APIC_SetTimerMode(uint8_t mode);
50 
51 void
52 APIC_SetDeliveryMode(uint32_t lvt_entry,
53  uint8_t mode);
54 
55 void
56 APIC_SetTriggerMode(uint32_t lvt_entry,
57  uint8_t mode);
58 
59 void
60 APIC_SetPolarity(uint32_t lvt_entry,
61  uint8_t mode);
62 
63 void
64 APIC_SetTimerValue(uint32_t val);
65 
66 uint32_t
67 APIC_GetTimerValue(void);
68 
69 void
70 APIC_SetTimerDivisor(uint8_t divisor);
71 
72 void
73 APIC_SetEnableInterrupt(uint32_t interrupt,
74  int enableMode);
75 
76 void
77 APIC_SetVector(uint32_t interrupt,
78  uint8_t vector);
79 
80 void
81 APIC_SendEOI(uint8_t int_num);
82 
83 void
84 APIC_Virtualize(void);
85 
88 #endif /* end of include guard: _APIC_DRIVER_H_ */
uint32_t APIC_GetTimerValue(void)
Definition: apic.c:150
void APIC_SetVector(uint32_t interrupt, uint8_t vector)
Definition: apic.c:79
void APIC_SetTimerDivisor(uint8_t divisor)
Definition: apic.c:127
void APIC_SetTriggerMode(uint32_t lvt_entry, uint8_t mode)
Definition: apic.c:99
void APIC_SetPolarity(uint32_t lvt_entry, uint8_t mode)
Definition: apic.c:109
void APIC_SetTimerMode(uint8_t mode)
Definition: apic.c:119
void APIC_SetTimerValue(uint32_t val)
Definition: apic.c:144
void APIC_Virtualize(void)
Definition: apic.c:49
void APIC_SetEnableInterrupt(uint32_t interrupt, int enableMode)
Definition: apic.c:69
void APIC_SendEOI(uint8_t int_num)
Definition: apic.c:235
void APIC_SetDeliveryMode(uint32_t lvt_entry, uint8_t mode)
Definition: apic.c:89
uint8_t APIC_GetID(void)
Definition: apic.c:164
void APIC_SetEnableMode(uint8_t enabled)
Definition: apic.c:156
uint8_t APIC_LocalInitialize(void)
Definition: apic.c:16
uint32_t APIC_Initialize(void)
Definition: apic_init.c:10