diff --git a/core/process.c b/core/process.c index 7024366..d76a040 100644 --- a/core/process.c +++ b/core/process.c @@ -5,13 +5,14 @@ #include "list.h" #include "mmuContext.h" #include "types.h" +#include "thread.h" #include "uaddrspace.h" struct process { char name[PROCESS_NAME_MAX_LENGTH]; int ref; - int pid; - int nextTid; + pid_t pid; + pid_t nextTid; struct uAddrSpace *addrSpace; struct thread *thList; @@ -68,7 +69,7 @@ void processListPrint() struct thread *th; int nbTh; - printf("%d %s %d %d\n", proc->pid, proc->name, processCountThread(proc), proc->ref); + printf("%lu %s %d %d\n", proc->pid, proc->name, processCountThread(proc), proc->ref); list_foreach_named(proc->thList, th, nbTh, prevInProcess, nextInProcess) { if (th == cur) { @@ -183,10 +184,10 @@ int processInitHeap(struct process *proc, uaddr_t lastUserAddr){ return uAddrSpaceSetHeap(proc->addrSpace, lastUserAddr, 0); } -int processGetId(struct process *proc){ +pid_t processGetId(struct process *proc){ return proc->pid; } -int processGetNextTid(struct process *proc){ +pid_t processGetNextTid(struct process *proc){ return proc->nextTid++; } diff --git a/core/process.h b/core/process.h index 172aeb4..a28895f 100644 --- a/core/process.h +++ b/core/process.h @@ -1,9 +1,11 @@ #pragma once -#include "thread.h" +#include "types.h" #define PROCESS_NAME_MAX_LENGTH 32 +typedef unsigned long int pid_t; struct process; +struct thread; int processSetup(); struct process *processCreate(char *name); @@ -18,5 +20,5 @@ int processRemoveThread(struct thread *th); struct mmu_context *processGetMMUContext(struct process *th); struct uAddrSpace *processGetAddrSpace(struct process *proc); int processInitHeap(struct process *proc, uaddr_t lastUserAddr); -int processGetId(struct process *proc); -int processGetNextTid(struct process *proc); +pid_t processGetId(struct process *proc); +pid_t processGetNextTid(struct process *proc); diff --git a/core/thread.c b/core/thread.c index d450392..206bef8 100644 --- a/core/thread.c +++ b/core/thread.c @@ -14,7 +14,7 @@ static struct thread *currentThread; static struct thread *threadWithTimeout; static thread_id_t nextTid; // This is the TID for kernel thread ONLY -thread_id_t threadGetId(struct thread *th) +pid_t threadGetId(struct thread *th) { return th->tid; } diff --git a/core/uaddrspace.h b/core/uaddrspace.h index 9cf8cac..1456c4a 100644 --- a/core/uaddrspace.h +++ b/core/uaddrspace.h @@ -1,8 +1,9 @@ #pragma once #include "mmuContext.h" #include "process.h" +#include "stddef.h" +#include "stdint.h" #include "types.h" -#include struct uAddrSpace; struct uAddrVirtualReg; diff --git a/drivers/zero.c b/drivers/zero.c index 4a830f3..b55bec3 100644 --- a/drivers/zero.c +++ b/drivers/zero.c @@ -3,6 +3,7 @@ #include "alloc.h" #include "kernel.h" #include "klibc.h" +#include "mem.h" struct zeroMappedEntry { int refCnt; diff --git a/userspace/main_user.c b/userspace/main_user.c index 92dc49b..3c5382b 100644 --- a/userspace/main_user.c +++ b/userspace/main_user.c @@ -123,7 +123,7 @@ int func_munmap() static void *print_hello(void *arg) { (void)arg; - printf("Hello World from thread %d\n", gettid()); + printf("Hello World from thread %lu\n", gettid()); usleep(100); return NULL; diff --git a/userspace/unistd.h b/userspace/unistd.h index e9675d3..db3d631 100644 --- a/userspace/unistd.h +++ b/userspace/unistd.h @@ -3,4 +3,4 @@ typedef unsigned int useconds_t; int usleep(useconds_t usec); -typedef int pid_t; +typedef unsigned long int pid_t;