1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.9~svn20110310 //
GDT_H gdt.h 3;" d
INTERRUPT_H interrupt.h 3;" d
KERNEL main.c 2;" d file:
PORT_H port.h 3;" d
STA_R gdt.h 10;" d
STA_W gdt.h 9;" d
STA_X gdt.h 8;" d
STRING_H string.h 3;" d
STS_IG32 gdt.h 13;" d
STS_T32A gdt.h 12;" d
STS_TG32 gdt.h 14;" d
VGA_H vga.h 3;" d
VGA_HEIGHT vga.h /^static const size_t VGA_HEIGHT = 25;$/;" v
VGA_WIDTH vga.h /^static const size_t VGA_WIDTH = 80;$/;" v
_start boot.s /^_start:$/;" l
access interrupt.h /^ uint8_t access; \/\/ Access rights$/;" m struct:gate_desc
bandwidth port.h /^ port16bit, port32bit} bandwidth;$/;" m struct:port typeref:enum:port::__anon1
base interrupt.h /^ uint32_t base;$/;" m struct:idt_pointer
base_15_0 gdt.h /^ unsigned int base_15_0 : 16; \/\/ Low bits of segment base address$/;" m struct:gdt_seg
base_23_16 gdt.h /^ unsigned int base_23_16 : 8; \/\/ Middle bits of segment base address$/;" m struct:gdt_seg
base_31_24 gdt.h /^ unsigned int base_31_24 : 8; \/\/ High bits of segment base address$/;" m struct:gdt_seg
code gdt.h /^ struct gdt_seg code;$/;" m struct:kernel_gdt typeref:struct:kernel_gdt::gdt_seg
data gdt.h /^ struct gdt_seg data;$/;" m struct:kernel_gdt typeref:struct:kernel_gdt::gdt_seg
db gdt.h /^ unsigned int db : 1; \/\/ 0 = 16-bit segment, 1 = 32-bit segment$/;" m struct:gdt_seg
g gdt.h /^ unsigned int g : 1; \/\/ Granularity: limit scaled by 4K when set$/;" m struct:gdt_seg
gate_desc interrupt.h /^struct gate_desc$/;" s
gdt_code_seg interrupt.h /^ uint16_t gdt_code_seg; \/\/ The address of the code segment descriptor$/;" m struct:gate_desc
gdt_seg gdt.h /^struct gdt_seg$/;" s
handle_int interrupt.c /^uint32_t handle_int(uint8_t int_number, uint32_t esp)$/;" f
handle_irq interrupt_stub.s /^handle_irq 0x00$/;" l
handle_irq interrupt_stub.s /^handle_irq 0x01$/;" l
handler_high interrupt.h /^ uint16_t handler_high; \/\/ The high bits of the address of the handler$/;" m struct:gate_desc
handler_low interrupt.h /^ uint16_t handler_low; \/\/ The low bits of the address of the handler$/;" m struct:gate_desc
hex string.c /^char *hex(uint32_t n, char *buf)$/;" f
idt interrupt.h /^struct gate_desc idt[256];$/;" v typeref:struct:gate_desc
idt_pointer interrupt.h /^struct idt_pointer$/;" s
init_gdt_seg gdt.c /^struct gdt_seg *init_gdt_seg(struct gdt_seg *g, uint32_t base, uint32_t limit, uint8_t flags)$/;" f
init_kernel_gdt gdt.c /^struct kernel_gdt *init_kernel_gdt()$/;" f
int_bottom interrupt_stub.s /^int_bottom:$/;" l
int_ignore interrupt_stub.s /^int_ignore:$/;" l
int_number interrupt_stub.s /^ int_number: .byte 0$/;" l
interrupt_init interrupt.c /^void interrupt_init(const struct kernel_gdt *g)$/;" f
kernel_gdt gdt.h /^struct kernel_gdt$/;" s
kernel_main main.c /^void kernel_main(void)$/;" f
kgdt gdt.c /^struct kernel_gdt kgdt;$/;" v typeref:struct:kernel_gdt
lim_15_0 gdt.h /^ unsigned int lim_15_0 : 16; \/\/ Low bits of segment limit$/;" m struct:gdt_seg
lim_19_16 gdt.h /^ unsigned int lim_19_16 : 4; \/\/ High bits of segment limit$/;" m struct:gdt_seg
load_kernel_gdt gdt.c /^void __attribute__((optimize("O0"))) load_kernel_gdt(struct kernel_gdt *g)$/;" f
memcmp string.c /^int memcmp(void *s1, const void *s2, size_t n)$/;" f
memcpy string.c /^void *memcpy(void *dest, const void *src, size_t n)$/;" f
memmove string.c /^void *memmove(void *dest, const void *src, size_t n)$/;" f
memset string.c /^void *memset(void *s, int c, size_t n) $/;" f
null gdt.h /^ struct gdt_seg null;$/;" m struct:kernel_gdt typeref:struct:kernel_gdt::gdt_seg
pic_master_command interrupt.c /^struct port pic_master_command = {0x20, port8bit_slow};$/;" v typeref:struct:port
pic_master_command interrupt.h /^struct port pic_master_command;$/;" v typeref:struct:port
pic_master_data interrupt.c /^struct port pic_master_data = {0x21, port8bit_slow};$/;" v typeref:struct:port
pic_master_data interrupt.h /^struct port pic_master_data;$/;" v typeref:struct:port
pic_slave_command interrupt.c /^struct port pic_slave_command = {0xA0, port8bit_slow};$/;" v typeref:struct:port
pic_slave_command interrupt.h /^struct port pic_slave_command;$/;" v typeref:struct:port
pic_slave_data interrupt.c /^struct port pic_slave_data = {0xA1, port8bit_slow}; $/;" v typeref:struct:port
pic_slave_data interrupt.h /^struct port pic_slave_data; $/;" v typeref:struct:port
port port.h /^struct port$/;" s
port16bit port.h /^ port16bit, port32bit} bandwidth;$/;" e enum:port::__anon1
port32bit port.h /^ port16bit, port32bit} bandwidth;$/;" e enum:port::__anon1
port8bit port.h /^ enum { port8bit, port8bit_slow,$/;" e enum:port::__anon1
port8bit_slow port.h /^ enum { port8bit, port8bit_slow,$/;" e enum:port::__anon1
port_number port.h /^ uint16_t port_number;$/;" m struct:port
port_read port.c /^uint32_t port_read(struct port p)$/;" f
port_write port.c /^void port_write(struct port p, uint32_t data)$/;" f
present gdt.h /^ unsigned int present : 1; \/\/ Present$/;" m struct:gdt_seg
priv gdt.h /^ unsigned int priv : 2; \/\/ Descriptor Privilege Level$/;" m struct:gdt_seg
reserved gdt.h /^ unsigned int reserved : 1; \/\/ Reserved$/;" m struct:gdt_seg
reserved interrupt.h /^ uint8_t reserved; \/\/ We don't use this apparently$/;" m struct:gate_desc
s gdt.h /^ unsigned int s : 1; \/\/ 0 = system, 1 = application$/;" m struct:gdt_seg
set_int_desc_entry interrupt.c /^void set_int_desc_entry(uint8_t int_number, uint16_t gdt_code_seg,$/;" f
size interrupt.h /^ uint16_t size;$/;" m struct:idt_pointer
spin main.c /^void spin()$/;" f
stack_bottom boot.s /^stack_bottom:$/;" l
stack_top boot.s /^stack_top:$/;" l
start_interrupts interrupt.c /^void start_interrupts()$/;" f
strlen string.c /^size_t strlen(const char *s)$/;" f
terminal_buffer vga.h /^uint16_t* terminal_buffer;$/;" v
terminal_color vga.h /^uint8_t terminal_color;$/;" v
terminal_column vga.h /^size_t terminal_column;$/;" v
terminal_row vga.h /^size_t terminal_row;$/;" v
type gdt.h /^ unsigned int type : 4; \/\/ Segment type $/;" m struct:gdt_seg
unused gdt.h /^ unsigned int unused : 1; \/\/ Unused (available for software use)$/;" m struct:gdt_seg
vga_black vga.h /^ vga_black,$/;" e enum:vga_color
vga_blue vga.h /^ vga_blue,$/;" e enum:vga_color
vga_brown vga.h /^ vga_brown,$/;" e enum:vga_color
vga_color vga.c /^uint8_t vga_color(enum vga_color fg, enum vga_color bg)$/;" f
vga_color vga.h /^enum vga_color {$/;" g
vga_cyan vga.h /^ vga_cyan,$/;" e enum:vga_color
vga_dgray vga.h /^ vga_dgray,$/;" e enum:vga_color
vga_entry vga.c /^uint16_t vga_entry(unsigned char uc, uint8_t color)$/;" f
vga_green vga.h /^ vga_green,$/;" e enum:vga_color
vga_lblue vga.h /^ vga_lblue,$/;" e enum:vga_color
vga_lbrown vga.h /^ vga_lbrown,$/;" e enum:vga_color
vga_lcyan vga.h /^ vga_lcyan,$/;" e enum:vga_color
vga_lgray vga.h /^ vga_lgray,$/;" e enum:vga_color
vga_lgreen vga.h /^ vga_lgreen,$/;" e enum:vga_color
vga_lmagenta vga.h /^ vga_lmagenta,$/;" e enum:vga_color
vga_lred vga.h /^ vga_lred,$/;" e enum:vga_color
vga_magenta vga.h /^ vga_magenta,$/;" e enum:vga_color
vga_red vga.h /^ vga_red,$/;" e enum:vga_color
vga_white vga.h /^ vga_white$/;" e enum:vga_color
vinit vga.c /^void vinit(void)$/;" f
vlocate vga.c /^void vlocate(size_t column, size_t row)$/;" f
vprint vga.c /^void vprint(const char* str)$/;" f
vputchar vga.c /^void vputchar(char c)$/;" f
vscroll vga.c /^void vscroll()$/;" f
vsetchar vga.c /^void vsetchar(char c, uint8_t color, size_t x, size_t y)$/;" f
vsetcolor vga.c /^void vsetcolor(uint8_t color)$/;" f
|