diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-12-05 00:16:42 +0100 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-12-05 00:16:42 +0100 |
| commit | 743a4860cce117baec6ef3c40deb0f945529c34f (patch) | |
| tree | fe9f609521ac66331364d8a9c97ac9dcf5fcd46c /kernel | |
| parent | 41c3e0bc640f570831bd6c18fbfb8c7cec23a43d (diff) | |
struggling with paging exceptions!
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/config.h | 2 | ||||
| -rw-r--r-- | kernel/interrupts.c | 36 | ||||
| -rw-r--r-- | kernel/syscalls.c | 5 | ||||
| -rw-r--r-- | kernel/task.c | 5 |
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); } |
