summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-12-05 00:16:42 +0100
committerMichal Idziorek <m.i@gmx.at>2014-12-05 00:16:42 +0100
commit743a4860cce117baec6ef3c40deb0f945529c34f (patch)
treefe9f609521ac66331364d8a9c97ac9dcf5fcd46c /kernel
parent41c3e0bc640f570831bd6c18fbfb8c7cec23a43d (diff)
struggling with paging exceptions!
Diffstat (limited to 'kernel')
-rw-r--r--kernel/config.h2
-rw-r--r--kernel/interrupts.c36
-rw-r--r--kernel/syscalls.c5
-rw-r--r--kernel/task.c5
4 files changed, 23 insertions, 25 deletions
diff --git a/kernel/config.h b/kernel/config.h
index a741c4a..60c650a 100644
--- a/kernel/config.h
+++ b/kernel/config.h
@@ -8,7 +8,7 @@
#define FOOLOS_CONFIG_H
#define FOOLOS_CONSOLE_AUTOBREAK // add newline automatically at end of line
-#define FOOLOS_LOG_OFF // do not log anything
+//#define FOOLOS_LOG_OFF // do not log anything
#define FOOLOS_CONSOLE // otherwise VESA will be used!
#define MEM_PRINT_MEMORYMAP
#define LOG_BUF_SIZE 4069
diff --git a/kernel/interrupts.c b/kernel/interrupts.c
index f82c59c..349b842 100644
--- a/kernel/interrupts.c
+++ b/kernel/interrupts.c
@@ -118,24 +118,24 @@ void int_init(uint16_t sel)
// exceptions
int_install_ir(0, 0b10001110, 0x08,&int_irq0);
- int_install_ir(1, 0b10001110, 0x08,&int_irq0);
- int_install_ir(2, 0b10001110, 0x08,&int_irq0);
- int_install_ir(3, 0b10001110, 0x08,&int_irq0);
- int_install_ir(4, 0b10001110, 0x08,&int_irq0);
- int_install_ir(5, 0b10001110, 0x08,&int_irq0);
- int_install_ir(6, 0b10001110, 0x08,&int_irq0);
- int_install_ir(7, 0b10001110, 0x08,&int_irq0);
- int_install_ir(8, 0b10001110, 0x08,&int_irq0);
- int_install_ir(9, 0b10001110, 0x08,&int_irq0);
- int_install_ir(10, 0b10001110, 0x08,&int_irq0);
- int_install_ir(11, 0b10001110, 0x08,&int_irq0);
- int_install_ir(12, 0b10001110, 0x08,&int_irq0);
- int_install_ir(13, 0b10001110, 0x08,&int_irq0);
- int_install_ir(14, 0b10001110, 0x08,&int_irq0);
- int_install_ir(15, 0b10001110, 0x08,&int_irq0);
- int_install_ir(16, 0b10001110, 0x08,&int_irq0);
- int_install_ir(17, 0b10001110, 0x08,&int_irq0);
- int_install_ir(18, 0b10001110, 0x08,&int_irq0);
+ int_install_ir(1, 0b10001110, 0x08,&int_irq1);
+ int_install_ir(2, 0b10001110, 0x08,&int_irq2);
+ int_install_ir(3, 0b10001110, 0x08,&int_irq3);
+ int_install_ir(4, 0b10001110, 0x08,&int_irq4);
+ int_install_ir(5, 0b10001110, 0x08,&int_irq5);
+ int_install_ir(6, 0b10001110, 0x08,&int_irq6);
+ int_install_ir(7, 0b10001110, 0x08,&int_irq7);
+ int_install_ir(8, 0b10001110, 0x08,&int_irq8);
+ int_install_ir(9, 0b10001110, 0x08,&int_irq9);
+ int_install_ir(10, 0b10001110, 0x08,&int_irq10);
+ int_install_ir(11, 0b10001110, 0x08,&int_irq11);
+ int_install_ir(12, 0b10001110, 0x08,&int_irq12);
+ int_install_ir(13, 0b10001110, 0x08,&int_irq13);
+ int_install_ir(14, 0b10001110, 0x08,&int_irq14);
+ int_install_ir(15, 0b10001110, 0x08,&int_irq15);
+ int_install_ir(16, 0b10001110, 0x08,&int_irq16);
+ int_install_ir(17, 0b10001110, 0x08,&int_irq17);
+ int_install_ir(18, 0b10001110, 0x08,&int_irq18);
diff --git a/kernel/syscalls.c b/kernel/syscalls.c
index 6925b87..62b924f 100644
--- a/kernel/syscalls.c
+++ b/kernel/syscalls.c
@@ -127,11 +127,6 @@ int syscall_execve(char *name, char **argv1, char **env1)
uint32_t *entry=temp;
temp+=4;
- char *force_argv[]={"",NULL};
- char *force_env[]={"PS1=$","PWD=/home/miguel","PATH=/bin",NULL};
- if(argv1==NULL)argv1=force_argv;
- if(env1==NULL)env1=force_env;
-
int env_count=0;
do{env_count++;}while(env1[env_count]!=NULL);
diff --git a/kernel/task.c b/kernel/task.c
index b01975d..1bfc1b2 100644
--- a/kernel/task.c
+++ b/kernel/task.c
@@ -154,7 +154,10 @@ volatile void task_init(pdirectory *dir)
task_list[0].vmem=dir;
task_list[0].esp = 0; // will be set by next task_switch_next() call.
current_task=0;
- syscall_execve("/bin/init",NULL,NULL);
+
+ char *argv[]={"/bin/init",NULL};
+ char *env[]={NULL};
+ syscall_execve("/bin/init",argv,env);
}