summaryrefslogtreecommitdiff
path: root/kernel/sched
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2023-11-15 02:44:45 +0100
committerAnton Kling <anton@kling.gg>2023-11-15 21:40:13 +0100
commite22e493940266e0aa9be2bf58df1821a3539e19b (patch)
tree64d3516642fae984b5f801db3348d884f661731d /kernel/sched
parent6747f9407a061684c2fba837541c254f48bfcff0 (diff)
Kernel/LibC: Add chdir function and syscall
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/scheduler.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c
index e81320b..7d13277 100644
--- a/kernel/sched/scheduler.c
+++ b/kernel/sched/scheduler.c
@@ -54,7 +54,11 @@ process_t *create_process(process_t *p) {
r->cr3);
r->signal_handler_stack = 0x80000000;
- strcpy(r->current_working_directory, "/");
+ if (p) {
+ strcpy(r->current_working_directory, p->current_working_directory);
+ } else {
+ strcpy(r->current_working_directory, "/");
+ }
r->data_segment_end = (p) ? p->data_segment_end : NULL;
memset((void *)r->halts, 0, 2 * sizeof(u32));
for (int i = 0; i < 100; i++) {