summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-09-02 18:54:57 +0200
committerMichal Idziorek <m.i@gmx.at>2014-09-02 18:54:57 +0200
commit1a3a3a20773a5664c653a8aebcd10d288962285b (patch)
tree8af03d6cc24613d105e9f0534d0fa95b2089b117
parent3cf50b41a40f6c2bd824549104015f6d2f6799c0 (diff)
Improved directory structure.
-rw-r--r--Makefile4
-rw-r--r--kernel/console.h2
-rw-r--r--kernel/interrupts.c1
-rw-r--r--kernel/interrupts.h2
-rw-r--r--kernel/kernel.h11
-rw-r--r--kernel/mem.c5
-rw-r--r--kernel/mp.c3
-rw-r--r--kernel/shell.c26
-rw-r--r--kernel/task.c3
-rw-r--r--kernel/vesa.c3
-rw-r--r--kernel/x86.h3
-rw-r--r--lib/bool/bool.h6
-rw-r--r--lib/int/stdint.h3
-rw-r--r--lib/string/string.c15
14 files changed, 49 insertions, 38 deletions
diff --git a/Makefile b/Makefile
index 8222e07..2b7b957 100644
--- a/Makefile
+++ b/Makefile
@@ -28,7 +28,9 @@ USB_STICK=/dev/sdf
############ flags ############
-CFLAGS=-ffreestanding -std=gnu99 -m32 -fno-asynchronous-unwind-tables -O0 # -Werror
+CFLAGS=-ffreestanding -std=gnu99 -m32 -fno-asynchronous-unwind-tables -O0
+CFLAGS+= -I.
+#CFLAGS+= -Werror
############ source and object files ############
diff --git a/kernel/console.h b/kernel/console.h
index 8c547db..d3b9b58 100644
--- a/kernel/console.h
+++ b/kernel/console.h
@@ -1,7 +1,7 @@
#ifndef CONSOLE_H
#define CONSOLE_H
-#include "kernel.h"
+#include "lib/int/stdint.h"
#define SCR_VIDEOMEM 0xb8000
diff --git a/kernel/interrupts.c b/kernel/interrupts.c
index df8e673..0852812 100644
--- a/kernel/interrupts.c
+++ b/kernel/interrupts.c
@@ -1,4 +1,5 @@
#include "interrupts.h"
+#include "lib/int/stdint.h"
#include "x86.h"
#include "../lib/logger/log.h" // logger facilities
diff --git a/kernel/interrupts.h b/kernel/interrupts.h
index 5542801..6483347 100644
--- a/kernel/interrupts.h
+++ b/kernel/interrupts.h
@@ -1,8 +1,6 @@
#ifndef INTERRUPTS_H
#define INTERRUPTS_H
-#include "kernel.h"
-
#define INT_MAX 255 // size of our interrupts table
int int_unhandled; // counting unhandled interrupts
diff --git a/kernel/kernel.h b/kernel/kernel.h
index e2dda98..364375b 100644
--- a/kernel/kernel.h
+++ b/kernel/kernel.h
@@ -1,16 +1,7 @@
#ifndef FOOLOS_KERNEL_H
#define FOOLOS_KERNEL_H
-#include <stdint.h> //needed for uint16_t
+#define KERNEL_VERSION "FoolOs 0.1"
-#define KERNEL_VERSION "Welcome to FoolOs 0.0.7"
-
-#define false 0
-#define true !false
-#define bool uint8_t
-
-
-
-// #define DEBUG
#endif
diff --git a/kernel/mem.c b/kernel/mem.c
index 6329e85..0f52873 100644
--- a/kernel/mem.c
+++ b/kernel/mem.c
@@ -1,7 +1,8 @@
#define MEM_PRINT_MEMORYMAP
-#include "kernel.h"
-#include "../lib/logger/log.h" // logger facilities
+#include "lib/int/stdint.h"
+#include "lib/logger/log.h" // logger facilities
+
#define FOOLOS_MODULE_NAME "mem"
//! 8 blocks per byte
diff --git a/kernel/mp.c b/kernel/mp.c
index c8d42c7..e7e811b 100644
--- a/kernel/mp.c
+++ b/kernel/mp.c
@@ -1,7 +1,8 @@
#define FOOLOS_MODULE_NAME "mp"
#include "x86.h"
-#include "../lib/logger/log.h" // logger facilities
+#include "lib/logger/log.h" // logger facilities
+#include "lib/bool/bool.h"
#define FOOLOS_APIC_SPUR_INT 0x00f0
#define FOOLOS_APIC_INT_COMMAND_LOW 0x0300
diff --git a/kernel/shell.c b/kernel/shell.c
index aff2dc4..6a4a0aa 100644
--- a/kernel/shell.c
+++ b/kernel/shell.c
@@ -1,6 +1,8 @@
-#include "kernel.h"
#include "interrupts.h"
-#include "../lib/logger/log.h" // logger facilities
+#include "lib/logger/log.h" // logger facilities
+#include "lib/bool/bool.h"
+#include "lib/int/stdint.h"
+
#define FOOLOS_MODULE_NAME "shell"
#define COMMAND_LENGTH 255
@@ -40,16 +42,6 @@ void shell_backspace()
}
-int strcmp(char *b1, char *b2)
-{
- int i=0;
- while(b1[i]==b2[i]&&b1[i]!=0&&b2[i]!=0) i++;
-
- if(b1[i]==0&&b2[i]==0)return 1;
-
- return 0;
-}
-
// TODO: EXECUTE LATER not inside INTERRUPT !!!
void shell_execute()
{
@@ -57,24 +49,24 @@ void shell_execute()
//scr_put_string(" processing command: ");
//scr_put_string_nl(command);
- if(1==strcmp(command,"TIME"))
+ if(1==strcmp(command,"TIME",0))
{
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"%d seconds passed since system start.",timer16);
}
- else if(1==strcmp(command,"EIGHT"))
+ else if(1==strcmp(command,"EIGHT",0))
{
int_generate88();
}
- else if(1==strcmp(command,"MEM"))
+ else if(1==strcmp(command,"MEM",0))
{
mmap_show_free();
}
- else if(1==strcmp(command,"ALLOC"))
+ else if(1==strcmp(command,"ALLOC",0))
{
uint32_t *malloc= pmmngr_alloc_block();
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"allocated 4KB block at: %08x.",malloc);
}
- else if(1==strcmp(command,"READ"))
+ else if(1==strcmp(command,"READ",0))
{
uint8_t *read= flpydsk_read_sector (10);
}
diff --git a/kernel/task.c b/kernel/task.c
index a46ce88..b1c2657 100644
--- a/kernel/task.c
+++ b/kernel/task.c
@@ -2,7 +2,8 @@
//
//
#include "kernel.h"
-#include "../lib/logger/log.h" // logger facilities
+#include "lib/logger/log.h" // logger facilities
+#include "lib/int/stdint.h"
#define FOOLOS_MODULE_NAME "task"
int started;
diff --git a/kernel/vesa.c b/kernel/vesa.c
index e8b6269..eaf4edc 100644
--- a/kernel/vesa.c
+++ b/kernel/vesa.c
@@ -2,7 +2,8 @@
#include <stdarg.h>
#include "kernel.h"
-#include "../lib/logger/log.h" // logger facilities
+#include "lib/logger/log.h" // logger facilities
+#include "lib/int/stdint.h"
#define FOOLOS_MODULE_NAME "vesa"
#define FOOLSOS_SHOW_VESAMODES
diff --git a/kernel/x86.h b/kernel/x86.h
index 345162f..96671b5 100644
--- a/kernel/x86.h
+++ b/kernel/x86.h
@@ -1,8 +1,7 @@
#ifndef FOOLOS_X86_H
#define FOOLOS_X86_H
-#include "kernel.h"
-
+#include "lib/int/stdint.h"
// todo: cli/sti??
// http://wiki.osdev.org/Interrupt_Service_Routines
diff --git a/lib/bool/bool.h b/lib/bool/bool.h
new file mode 100644
index 0000000..be2cbd4
--- /dev/null
+++ b/lib/bool/bool.h
@@ -0,0 +1,6 @@
+#include "lib/int/stdint.h"
+
+#define false 0
+#define true !false
+#define bool uint8_t
+
diff --git a/lib/int/stdint.h b/lib/int/stdint.h
new file mode 100644
index 0000000..38b7040
--- /dev/null
+++ b/lib/int/stdint.h
@@ -0,0 +1,3 @@
+#include <stdint.h>
+
+
diff --git a/lib/string/string.c b/lib/string/string.c
new file mode 100644
index 0000000..45d8ad1
--- /dev/null
+++ b/lib/string/string.c
@@ -0,0 +1,15 @@
+#include "lib/bool/bool.h"
+
+
+//length 0 for null terminated strings;
+bool strcmp(char *str1, char *str2, int length)
+{
+ int i=0;
+
+ while(true)
+ {
+ if(str1[i]!=str2[i])return false;
+ i++;
+ if(i==length||str1[i]==str2[i]==0) return true;
+ }
+}