Initial git release
[ZeXOS.git] / include / .svn / text-base / system.h.svn-base
blobb0be79f18949a555ef2bb9446948f1823a03736a
1 /* bkerndev - Bran's Kernel Development Tutorial\r
2 *  By:   Brandon F. (friesenb@gmail.com)\r
3 *  Desc: Global function declarations and type definitions\r
4 *\r
5 *  Notes: No warranty expressed or implied. Use at own risk. */\r
6 #ifndef __SYSTEM_H\r
7 #define __SYSTEM_H\r
8 \r
9 #define MAX_VC  12\r
10 #include "fdc.h"\r
11 #include "mytypes.h"\r
12 #include "setjmp.h"\r
13 char* shell;\r
14 int shellx;\r
15 int fd_print;\r
16 int r1;\r
17 #define NUM_TASKS       3\r
18 #define MAX_TASK        16\r
20 char key;\r
22 struct message{\r
23         int to;\r
24         int id;\r
25         char text[512];\r
26         int i;\r
27         int ok;\r
28 } message;\r
30 /* This defines what the stack looks like after an ISR was running */\r
31 struct regs\r
32 {\r
33     unsigned int ds, es, fs, gs;\r
34     unsigned int edi, esi, ebp, esp, ebx, edx, ecx, eax;\r
35     unsigned int int_no, err_code;\r
36     unsigned int eip, cs, eflags, useresp, ss;    \r
37 };\r
40 typedef struct\r
41 {\r
42         char name[25];\r
43         jmp_buf state;\r
44         enum\r
45         {\r
46                 TS_RUNNABLE = 1, TS_BLOCKED = 2, TS_ZOMBIE = 3\r
47         } status;\r
48 } task_t;\r
50 task_t _tasks[MAX_TASK];\r
52 struct dir{\r
53 char name[10];\r
54 int read;\r
55 int hidden;\r
56 int system;\r
57 int volume;\r
58 int dir;\r
59 int bin;\r
60 unsigned int start;\r
61 } dir[223];\r
63 unsigned char *file_cache;\r
65 struct variables{\r
66 unsigned char name[20];\r
67 unsigned char value[200];\r
68 } variables[30];\r
70 /* MAIN.C */\r
73 /* CONSOLE.C */\r
74 extern void init_video(void);\r
75 extern void puts(unsigned char *text);\r
76 extern void putch(unsigned char c);\r
77 extern void cls();\r
78 extern void settextcolor(unsigned char forecolor, unsigned char backcolor);\r
79 /* GDT.C */\r
80 extern void gdt_set_gate(int num, unsigned long base, unsigned long limit, unsigned char access, unsigned char gran);\r
81 extern void gdt_install();\r
83 /* IDT.C */\r
84 extern void idt_set_gate(unsigned char num, unsigned long base, unsigned short sel, unsigned char flags);\r
85 extern void idt_install();\r
87 /* ISRS.C */\r
88 extern void isrs_install();\r
90 /* IRQ.C */\r
91 extern void irq_install_handler(int irq, void (*handler)(struct regs *r));\r
92 extern void irq_uninstall_handler(int irq);\r
93 extern void irq_install();\r
95 /* TIMER.C */\r
96 extern void timer_wait(int ticks);\r
97 extern void timer_install();\r
99 /* KEYBOARD.C */\r
100 extern void keyboard_install();\r
102 extern void init_tasks(void);\r
103 extern void schedule(void);\r
104 extern void floppy_install(void);\r
105 extern void fda_print (int i);\r
106 extern void cmd_line(void);\r
107 extern void uptime(void);\r
109 /* FAT.C */\r
110 extern void read_dir(int aa);\r
111 extern void read_file(int aa);\r
113 /* LS.C */\r
114 extern int ls(unsigned char* fi);\r
116 /* CAT.C */\r
117 extern int cat(unsigned char* fi);\r
118 #endif\r