]> git.corax.cc Git - corax/log
corax
6 years agoChange the signature of sys_posixcall() so it can modify the caller's stackframe...
Matthias Kruk [Mon, 4 Nov 2019 02:01:45 +0000 (11:01 +0900)]
Change the signature of sys_posixcall() so it can modify the caller's stackframe in the case of sys_fork()

6 years agoMove definition of struct stack_frame to arch.h
Matthias Kruk [Mon, 4 Nov 2019 01:46:32 +0000 (10:46 +0900)]
Move definition of struct stack_frame to arch.h

6 years agoAdd implementation of process_fork(), modify process_create() so that it can be used...
Matthias Kruk [Wed, 30 Oct 2019 08:14:20 +0000 (17:14 +0900)]
Add implementation of process_fork(), modify process_create() so that it can be used to fork a running process

6 years agoCall process_fork() from sys_fork() and sys_vfork()
Matthias Kruk [Wed, 30 Oct 2019 08:08:18 +0000 (17:08 +0900)]
Call process_fork() from sys_fork() and sys_vfork()

6 years agoCall process_exit() from sys_exit()
Matthias Kruk [Tue, 29 Oct 2019 05:11:41 +0000 (14:11 +0900)]
Call process_exit() from sys_exit()

6 years agoAdd process_exit() function
Matthias Kruk [Tue, 29 Oct 2019 05:09:56 +0000 (14:09 +0900)]
Add process_exit() function

6 years agoMinor improvements to the scheduler:
Matthias Kruk [Tue, 29 Oct 2019 05:07:20 +0000 (14:07 +0900)]
Minor improvements to the scheduler:
 - Make _unq() return an error if it didn't succeed
 - Add sched_dequeue() function
 - Modify sched_tick() not to put tasks with TASK_STATE_EXIT back onto the ready queue
 - Add a header with prototypes for the functions implemented in sched.c

6 years agoAdd TASK_STATE_EXIT state to identify tasks that are exitting
Matthias Kruk [Tue, 29 Oct 2019 05:06:21 +0000 (14:06 +0900)]
Add TASK_STATE_EXIT state to identify tasks that are exitting

6 years agoAdd an argument to process_create() so the caller may request the process to be creat...
Matthias Kruk [Mon, 28 Oct 2019 09:35:32 +0000 (18:35 +0900)]
Add an argument to process_create() so the caller may request the process to be created with a specific pid

6 years agoAdd syscall stubs for some POSIX process management syscalls (fork, vfork, exit,...
Matthias Kruk [Mon, 28 Oct 2019 09:33:46 +0000 (18:33 +0900)]
Add syscall stubs for some POSIX process management syscalls (fork, vfork, exit, ...)

6 years agoTemporarily add assembly stubs for syscalls, to avoid having to link against the...
Matthias Kruk [Sun, 27 Oct 2019 16:20:19 +0000 (01:20 +0900)]
Temporarily add assembly stubs for syscalls, to avoid having to link against the C library

6 years agoAdd some IPC testing code to main.c
Matthias Kruk [Sun, 27 Oct 2019 16:18:53 +0000 (01:18 +0900)]
Add some IPC testing code to main.c

6 years agoMake debug output in IPC code depend on CONFIG_DEBUG_IPC
Matthias Kruk [Sun, 27 Oct 2019 15:58:17 +0000 (00:58 +0900)]
Make debug output in IPC code depend on CONFIG_DEBUG_IPC

6 years agoSignal the receiving process in process_inbox_put()
Matthias Kruk [Sun, 27 Oct 2019 15:53:51 +0000 (00:53 +0900)]
Signal the receiving process in process_inbox_put()

6 years agoPrint the address and pid of the executing context when an exception occurs
Matthias Kruk [Sun, 27 Oct 2019 15:52:27 +0000 (00:52 +0900)]
Print the address and pid of the executing context when an exception occurs

6 years agoImplement various IPC and scheduling improvements:
Matthias Kruk [Sat, 26 Oct 2019 07:24:58 +0000 (16:24 +0900)]
Implement various IPC and scheduling improvements:
 - Implement signalling/waiting facilities for processes and tasks
 - Implement primitive message passing between processes
 - Implement helper functions for accesing properties of a process
 - Also keep the pid within the task structure, for faster access
 - Add a wait-queue to the scheduler, to keep track of waiting processes

6 years agoAdd CONFIG_IPC_MSGSIZE configuration option
Matthias Kruk [Sat, 26 Oct 2019 07:23:06 +0000 (16:23 +0900)]
Add CONFIG_IPC_MSGSIZE configuration option

6 years agoAdd definitions for ENOTSUP, EOPNOTSUPP, and ENOENT
Matthias Kruk [Sat, 26 Oct 2019 07:22:49 +0000 (16:22 +0900)]
Add definitions for ENOTSUP, EOPNOTSUPP, and ENOENT

6 years agoAdd typedef for pid_t
Matthias Kruk [Sat, 26 Oct 2019 05:17:03 +0000 (14:17 +0900)]
Add typedef for pid_t

6 years agoImplement process_memcpy_ptop() function for copying data directly between processes
Matthias Kruk [Sat, 26 Oct 2019 05:12:54 +0000 (14:12 +0900)]
Implement process_memcpy_ptop() function for copying data directly between processes

6 years agoAdd mbuf type and functions to allocate and free them
Matthias Kruk [Fri, 25 Oct 2019 06:45:33 +0000 (15:45 +0900)]
Add mbuf type and functions to allocate and free them

6 years agoAdd sobind() function stub and call it from sys_bind()
Matthias Kruk [Sat, 5 Oct 2019 07:22:14 +0000 (16:22 +0900)]
Add sobind() function stub and call it from sys_bind()

6 years agoAlso compile libc from the top-level Makefile
Matthias Kruk [Sat, 5 Oct 2019 07:14:17 +0000 (16:14 +0900)]
Also compile libc from the top-level Makefile

6 years agoAdd dummy soshutdown() function and call it from sys_shutdown()
Matthias Kruk [Sat, 5 Oct 2019 07:13:21 +0000 (16:13 +0900)]
Add dummy soshutdown() function and call it from sys_shutdown()

6 years agoStart implementation of a statically linked standard C library:
Matthias Kruk [Sat, 5 Oct 2019 07:06:45 +0000 (16:06 +0900)]
Start implementation of a statically linked standard C library:
 - Add implementation of network-related syscalls

6 years agoImplement sys_getsockopt() and sys_setsockopt() functions
Matthias Kruk [Sat, 5 Oct 2019 06:32:37 +0000 (15:32 +0900)]
Implement sys_getsockopt() and sys_setsockopt() functions

6 years agoAdd (incomplete) sosetopt() and sogetopt() functions
Matthias Kruk [Sat, 5 Oct 2019 06:31:45 +0000 (15:31 +0900)]
Add (incomplete) sosetopt() and sogetopt() functions

6 years agoImplement functions for copying memory between page directories
Matthias Kruk [Sat, 5 Oct 2019 06:14:44 +0000 (15:14 +0900)]
Implement functions for copying memory between page directories

6 years agoAdd definition for EADDRNOTAVAIL
Matthias Kruk [Sat, 5 Oct 2019 06:00:07 +0000 (15:00 +0900)]
Add definition for EADDRNOTAVAIL

6 years agoAdd definition for SOL_SOCKET
Matthias Kruk [Fri, 4 Oct 2019 07:06:42 +0000 (16:06 +0900)]
Add definition for SOL_SOCKET

6 years agoAdd definitions for various socket options
Matthias Kruk [Fri, 4 Oct 2019 06:50:39 +0000 (15:50 +0900)]
Add definitions for various socket options

6 years agoCall soclose() from sys_close()
Matthias Kruk [Fri, 4 Oct 2019 06:40:10 +0000 (15:40 +0900)]
Call soclose() from sys_close()

6 years agoInitialize a new socket's refcount to 1
Matthias Kruk [Fri, 4 Oct 2019 06:39:33 +0000 (15:39 +0900)]
Initialize a new socket's refcount to 1

6 years agoAdd soclose() and sofree() functions
Matthias Kruk [Fri, 4 Oct 2019 06:38:29 +0000 (15:38 +0900)]
Add soclose() and sofree() functions

6 years agoAdd process_flookup() and process_get_current() functions
Matthias Kruk [Fri, 4 Oct 2019 06:37:58 +0000 (15:37 +0900)]
Add process_flookup() and process_get_current() functions

6 years agoAdd a comment to task.S high-lighting a possible future problem with regards to EBX
Matthias Kruk [Thu, 3 Oct 2019 09:44:13 +0000 (18:44 +0900)]
Add a comment to task.S high-lighting a possible future problem with regards to EBX

6 years agoAdd a pointer to struct task that points to the process the task is a part of
Matthias Kruk [Thu, 3 Oct 2019 09:43:29 +0000 (18:43 +0900)]
Add a pointer to struct task that points to the process the task is a part of

6 years agoInclude socket.c file in compilation of kernel core
Matthias Kruk [Thu, 3 Oct 2019 09:42:28 +0000 (18:42 +0900)]
Include socket.c file in compilation of kernel core

6 years agoCall socreate() function from sys_socket()
Matthias Kruk [Thu, 3 Oct 2019 09:41:38 +0000 (18:41 +0900)]
Call socreate() function from sys_socket()

6 years agoAdd very simplistic socreate() implementation
Matthias Kruk [Thu, 3 Oct 2019 09:41:17 +0000 (18:41 +0900)]
Add very simplistic socreate() implementation

6 years agoAdd infrastructure to allocate file descriptors to processes
Matthias Kruk [Thu, 3 Oct 2019 09:39:51 +0000 (18:39 +0900)]
Add infrastructure to allocate file descriptors to processes

6 years agoAdd some definitions to sys/socket.h that can be used to check the validity of parame...
Matthias Kruk [Thu, 3 Oct 2019 09:38:08 +0000 (18:38 +0900)]
Add some definitions to sys/socket.h that can be used to check the validity of parameters passed to socket()

6 years agoAdd some error numbers needed by the socket layer:
Matthias Kruk [Thu, 3 Oct 2019 09:36:44 +0000 (18:36 +0900)]
Add some error numbers needed by the socket layer:
 - EAFNOSUPPORT
 - EMFILE
 - EBADF
 - ENFILE

6 years agoAdd CONFIG_SOCKET_MAX configuration option to adjust the system-wide socket limit
Matthias Kruk [Thu, 3 Oct 2019 09:36:05 +0000 (18:36 +0900)]
Add CONFIG_SOCKET_MAX configuration option to adjust the system-wide socket limit

6 years agoAdd definitions for syscall interrupt vectors to corax/syscall.h
Matthias Kruk [Wed, 2 Oct 2019 07:36:55 +0000 (16:36 +0900)]
Add definitions for syscall interrupt vectors to corax/syscall.h

6 years agoAdd sys_bind() syscall
Matthias Kruk [Wed, 2 Oct 2019 07:23:39 +0000 (16:23 +0900)]
Add sys_bind() syscall

6 years agoAdd CONFIG_DEBUG_NET definition to config.h
Matthias Kruk [Wed, 2 Oct 2019 07:22:49 +0000 (16:22 +0900)]
Add CONFIG_DEBUG_NET definition to config.h

6 years agoAdd sys_cxnet() handler for network-related syscalls and handler stubs for a number...
Matthias Kruk [Wed, 2 Oct 2019 07:16:35 +0000 (16:16 +0900)]
Add sys_cxnet() handler for network-related syscalls and handler stubs for a number of sub-syscalls:
 - sys_socket()
 - sys_close()
 - sys_sendto()
 - sys_recvfrom()
 - sys_connect()
 - sys_listen()
 - sys_accept()
 - sys_setsockopt()
 - sys_getsockopt()
 - sys_shutdown()
 - sys_select()
 - sys_poll()

6 years agoAdd include/poll.h header
Matthias Kruk [Wed, 2 Oct 2019 07:15:46 +0000 (16:15 +0900)]
Add include/poll.h header

6 years agoAdd sys/select.h header
Matthias Kruk [Wed, 2 Oct 2019 07:12:36 +0000 (16:12 +0900)]
Add sys/select.h header

6 years agoAdd sys/types.h header
Matthias Kruk [Wed, 2 Oct 2019 07:12:07 +0000 (16:12 +0900)]
Add sys/types.h header

6 years agoAdd definitions for struct timeval and struct timezone
Matthias Kruk [Wed, 2 Oct 2019 07:11:46 +0000 (16:11 +0900)]
Add definitions for struct timeval and struct timezone

6 years agoAdd generic socket definitions
Matthias Kruk [Wed, 2 Oct 2019 07:11:17 +0000 (16:11 +0900)]
Add generic socket definitions

6 years agoPass the 6th argument of a syscall in ebp
Matthias Kruk [Wed, 2 Oct 2019 06:13:10 +0000 (15:13 +0900)]
Pass the 6th argument of a syscall in ebp

6 years agoAdd syscall number definitions
Matthias Kruk [Wed, 2 Oct 2019 05:50:22 +0000 (14:50 +0900)]
Add syscall number definitions

6 years agoAdd interrupt vector for network-related syscalls
Matthias Kruk [Wed, 2 Oct 2019 05:22:22 +0000 (14:22 +0900)]
Add interrupt vector for network-related syscalls

6 years agoMake debug output from the scheduler depend on CONFIG_DEBUG_SCHED
Matthias Kruk [Wed, 2 Oct 2019 05:02:49 +0000 (14:02 +0900)]
Make debug output from the scheduler depend on CONFIG_DEBUG_SCHED

6 years agoMake _int_handle(), _exc_handle(), and _sys_handle() void functions since the assembl...
Matthias Kruk [Wed, 2 Oct 2019 05:00:37 +0000 (14:00 +0900)]
Make _int_handle(), _exc_handle(), and _sys_handle() void functions since the assembly code that calls them ignores the return value

6 years agoSave/restore the EBP register used in kernel-space during task switches, otherwise...
Matthias Kruk [Tue, 1 Oct 2019 17:20:15 +0000 (02:20 +0900)]
Save/restore the EBP register used in kernel-space during task switches, otherwise the new task will execute on the old stack (causing a page fault) after the C function that called task_switch returns

6 years agoIssue the EOI at the beginning of the interrupt handler in order to avoid deadlocks
Matthias Kruk [Tue, 1 Oct 2019 12:53:28 +0000 (21:53 +0900)]
Issue the EOI at the beginning of the interrupt handler in order to avoid deadlocks

6 years agoImprove interrupt handling and task switching code:
Matthias Kruk [Tue, 1 Oct 2019 09:13:09 +0000 (18:13 +0900)]
Improve interrupt handling and task switching code:
 - Introduce definitions to make task_prepare and task_switch easier to understand
 - Make interrupt handlers push cr3 onto the stack and restore it before an iret
 - Make interrupt handlers adjust the stack pointers upon entry/exit since the tasks'
   kernel-mode stacks are mapped at their linear addresses in the kernel's page directory

6 years agoDon't perform arithmetic on the stack pointer arguments within task_prepare, i.e...
Matthias Kruk [Tue, 1 Oct 2019 07:01:49 +0000 (16:01 +0900)]
Don't perform arithmetic on the stack pointer arguments within task_prepare, i.e. the caller is expected to provide the correct addresses where the stacks may be placed

6 years agoSwitch to the kernel page directory when entering the kernel (i.e. separate the kerne...
Matthias Kruk [Tue, 1 Oct 2019 06:42:37 +0000 (15:42 +0900)]
Switch to the kernel page directory when entering the kernel (i.e. separate the kernel and user address spaces to avoid side-channel attacks on speculative execution in certain CPUs)

6 years agoMove some of the definitions from arch/task.S to arch/defs.h so they can be shared...
Matthias Kruk [Tue, 1 Oct 2019 06:37:52 +0000 (15:37 +0900)]
Move some of the definitions from arch/task.S to arch/defs.h so they can be shared with other source files

6 years agoInitialize two tasks at boot time, for testing purposes
Matthias Kruk [Sun, 29 Sep 2019 05:54:13 +0000 (14:54 +0900)]
Initialize two tasks at boot time, for testing purposes

6 years agoUse task_switch() to switch tasks in sched_tick(), instead of task_set_current()
Matthias Kruk [Sun, 29 Sep 2019 05:53:38 +0000 (14:53 +0900)]
Use task_switch() to switch tasks in sched_tick(), instead of task_set_current()

6 years agoInitialize the process's time slice and put it on the ready queue in process_create()
Matthias Kruk [Sun, 29 Sep 2019 05:52:25 +0000 (14:52 +0900)]
Initialize the process's time slice and put it on the ready queue in process_create()

6 years agoModify task_switch function so it can be used to switch to new tasks which have not...
Matthias Kruk [Fri, 27 Sep 2019 07:51:46 +0000 (16:51 +0900)]
Modify task_switch function so it can be used to switch to new tasks which have not been executed before, but also to return to interrupted tasks

6 years agoAdd a _very_ naive scheduler
Matthias Kruk [Fri, 27 Sep 2019 07:10:31 +0000 (16:10 +0900)]
Add a _very_ naive scheduler

6 years agoAdd task_get_current() and task_set_current() functions; add definitions for keeping...
Matthias Kruk [Fri, 27 Sep 2019 07:09:05 +0000 (16:09 +0900)]
Add task_get_current() and task_set_current() functions; add definitions for keeping track of a task's state and quantum

6 years agoSeparate the architecture dependent and independent parts of the kernel more cleanly:
Matthias Kruk [Fri, 27 Sep 2019 06:18:59 +0000 (15:18 +0900)]
Separate the architecture dependent and independent parts of the kernel more cleanly:
 - Add pg_dir_get_pdbr() function
 - Make definitions, types, and functions necessary for other parts of the
   kernel visible to them by moving them into the kernel/include/arch.h header

6 years agoMove architecture-independent process implementation out of the arch directory
Matthias Kruk [Fri, 27 Sep 2019 06:08:52 +0000 (15:08 +0900)]
Move architecture-independent process implementation out of the arch directory

6 years agoMove process.h definitions into a kernel-wide header file; add entry argument to...
Matthias Kruk [Fri, 27 Sep 2019 06:06:12 +0000 (15:06 +0900)]
Move process.h definitions into a kernel-wide header file; add entry argument to process_create()

6 years agoFix order of arguments passed to dbg_printf() in cpu_tss_debug()
Matthias Kruk [Thu, 26 Sep 2019 07:27:33 +0000 (16:27 +0900)]
Fix order of arguments passed to dbg_printf() in cpu_tss_debug()

6 years agoAdd privilege level information to processes and tasks
Matthias Kruk [Wed, 25 Sep 2019 13:46:09 +0000 (22:46 +0900)]
Add privilege level information to processes and tasks

6 years agoDon't print ESP0 value in process_create(); split long lines
Matthias Kruk [Wed, 25 Sep 2019 10:08:22 +0000 (19:08 +0900)]
Don't print ESP0 value in process_create(); split long lines

6 years agoCreate new processes with privilege level 3 by default
Matthias Kruk [Wed, 25 Sep 2019 10:05:05 +0000 (19:05 +0900)]
Create new processes with privilege level 3 by default

6 years agoMake sure PAGE_ATTR_USER is set on page tables when we're mapping something with...
Matthias Kruk [Wed, 25 Sep 2019 10:03:51 +0000 (19:03 +0900)]
Make sure PAGE_ATTR_USER is set on page tables when we're mapping something with PAGE_ATTR_USER within them (IA-32 legacy paging)

6 years agoUnmask the timer interrupt when initializing the i8259 PIC
Matthias Kruk [Wed, 25 Sep 2019 10:02:36 +0000 (19:02 +0900)]
Unmask the timer interrupt when initializing the i8259 PIC

6 years agoAdd definitions for the offsets into the TSS; change the TSS selector to 0x48 instead...
Matthias Kruk [Wed, 25 Sep 2019 10:01:35 +0000 (19:01 +0900)]
Add definitions for the offsets into the TSS; change the TSS selector to 0x48 instead of (0x48 | RPL_USER)

6 years agoAdd cpu_tss_debug() function to display the contents of the TSS; make cpu_debug(...
Matthias Kruk [Wed, 25 Sep 2019 10:00:29 +0000 (19:00 +0900)]
Add cpu_tss_debug() function to display the contents of the TSS; make cpu_debug() and cpu_tss_debug() depend on CONFIG_DEBUG

6 years agoFix a bug in task_switch() that would cause the TSS update to be skipped
Matthias Kruk [Wed, 25 Sep 2019 09:57:58 +0000 (18:57 +0900)]
Fix a bug in task_switch() that would cause the TSS update to be skipped

6 years agoLeave interrupts disabled until we switch to user-space
Matthias Kruk [Wed, 25 Sep 2019 09:40:05 +0000 (18:40 +0900)]
Leave interrupts disabled until we switch to user-space

6 years agoUse KERNEL_CODE macro when initializing the IDT, instead of numerals
Matthias Kruk [Wed, 25 Sep 2019 09:24:53 +0000 (18:24 +0900)]
Use KERNEL_CODE macro when initializing the IDT, instead of numerals

6 years agoSet the limit of the TSS descriptor to TSS_SIZE + 1
Matthias Kruk [Wed, 25 Sep 2019 08:47:30 +0000 (17:47 +0900)]
Set the limit of the TSS descriptor to TSS_SIZE + 1

6 years agoUpdate the ESP0 and SS0 TSS entries when switching tasks
Matthias Kruk [Wed, 25 Sep 2019 08:07:48 +0000 (17:07 +0900)]
Update the ESP0 and SS0 TSS entries when switching tasks

6 years agoEnsure that PAGE_ATTR_USER is set and PAGE_ATTR_WRITABLE is not set on kernel code...
Matthias Kruk [Wed, 25 Sep 2019 08:07:03 +0000 (17:07 +0900)]
Ensure that PAGE_ATTR_USER is set and PAGE_ATTR_WRITABLE is not set on kernel code/data segments in user-space page directories

6 years agoImplement functions to spawn and run processes
Matthias Kruk [Tue, 24 Sep 2019 08:42:12 +0000 (17:42 +0900)]
Implement functions to spawn and run processes

6 years agoFix several paging-related issues; implement functions to get the addresses of the...
Matthias Kruk [Tue, 24 Sep 2019 08:39:34 +0000 (17:39 +0900)]
Fix several paging-related issues; implement functions to get the addresses of the kernel and user-space stack that is mapped within a page directory

6 years agoDisable interrupts while we don't have a valid stack in task_switch()
Matthias Kruk [Tue, 24 Sep 2019 08:38:26 +0000 (17:38 +0900)]
Disable interrupts while we don't have a valid stack in task_switch()

6 years agoMove the per-process kernel stack to 0xffffe000
Matthias Kruk [Tue, 24 Sep 2019 08:32:40 +0000 (17:32 +0900)]
Move the per-process kernel stack to 0xffffe000

6 years agoFix control flow in task_switch function; add userspace esp argument to task_prepare...
Matthias Kruk [Sat, 21 Sep 2019 02:31:50 +0000 (11:31 +0900)]
Fix control flow in task_switch function; add userspace esp argument to task_prepare function

6 years agoAdd code for debugging of PAE paging structures
Matthias Kruk [Fri, 20 Sep 2019 06:15:59 +0000 (15:15 +0900)]
Add code for debugging of PAE paging structures

6 years agoImplement pg_frame_free() function; add code for debugging physical page tables ...
Matthias Kruk [Fri, 20 Sep 2019 05:48:14 +0000 (14:48 +0900)]
Implement pg_frame_free() function; add code for debugging physical page tables (legacy IA-32 mode)

6 years agoMake debug messages in heap.c depend on CONFIG_DEBUG_HEAP instead of CONFIG_DEBUG...
Matthias Kruk [Fri, 20 Sep 2019 05:00:43 +0000 (14:00 +0900)]
Make debug messages in heap.c depend on CONFIG_DEBUG_HEAP instead of CONFIG_DEBUG since they cause a lot of output

6 years agoMake the hacky reboot-upon-keyboard-interrupt behavior depend on CONFIG_DEBUG
Matthias Kruk [Fri, 20 Sep 2019 04:58:23 +0000 (13:58 +0900)]
Make the hacky reboot-upon-keyboard-interrupt behavior depend on CONFIG_DEBUG

6 years agoRename pg_dir_alloc() method to pg_dir_create()
Matthias Kruk [Thu, 19 Sep 2019 11:18:51 +0000 (20:18 +0900)]
Rename pg_dir_alloc() method to pg_dir_create()

6 years agoUse the kernel stack passed to task_prepare on the stack, instead of the (invalid...
Matthias Kruk [Thu, 19 Sep 2019 10:38:42 +0000 (19:38 +0900)]
Use the kernel stack passed to task_prepare on the stack, instead of the (invalid) pointer in the task structure

6 years agoKeep a pointer to the kernel stack in struct task, instead of the entire stack
Matthias Kruk [Thu, 19 Sep 2019 10:34:19 +0000 (19:34 +0900)]
Keep a pointer to the kernel stack in struct task, instead of the entire stack

6 years agoRemove the kernel stack from the struct cpu structure, since each task will be alloca...
Matthias Kruk [Thu, 19 Sep 2019 10:05:46 +0000 (19:05 +0900)]
Remove the kernel stack from the struct cpu structure, since each task will be allocated its own kernel-mode stack; instead, the initial kernel stack will start at 0x200000 and disappear when the kernel switches into user mode