From 743a4860cce117baec6ef3c40deb0f945529c34f Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Fri, 5 Dec 2014 00:16:42 +0100 Subject: struggling with paging exceptions! --- kernel/config.h | 2 +- kernel/interrupts.c | 36 ++++++++++++++++++------------------ kernel/syscalls.c | 5 ----- kernel/task.c | 5 ++++- 4 files changed, 23 insertions(+), 25 deletions(-) (limited to 'kernel') 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); } -- cgit v1.2.3