Forráskód Böngészése

debugging proc.c at comilation, some typedef issues. also need to actually USE lists to put children into parent when forking

tarfeef101 6 éve
szülő
commit
05b59315b6
5 módosított fájl, 65 hozzáadás és 50 törlés
  1. 37 21
      kern/compile/ASST2/.depend
  2. 11 11
      kern/include/list.h
  3. 7 12
      kern/include/proc.h
  4. 9 5
      kern/lib/list.c
  5. 1 1
      kern/syscall/proc_syscalls.c

+ 37 - 21
kern/compile/ASST2/.depend

@@ -266,6 +266,10 @@ kprintf.o: ../../lib/kprintf.c ../../include/types.h \
   includelinks/kern/machine/setjmp.h ../../include/current.h \
   includelinks/machine/current.h ../../include/synch.h \
   ../../include/mainbus.h ../../include/vfs.h
+list.o: ../../lib/list.c ../../include/types.h ../../include/kern/types.h \
+  includelinks/kern/machine/types.h includelinks/machine/types.h \
+  ../../include/kern/errno.h ../../include/lib.h ../../include/cdefs.h \
+  opt-noasserts.h ../../include/list.h
 misc.o: ../../lib/misc.c ../../include/types.h ../../include/kern/types.h \
   includelinks/kern/machine/types.h includelinks/machine/types.h \
   ../../include/kern/errmsg.h ../../include/lib.h ../../include/cdefs.h \
@@ -282,8 +286,10 @@ uio.o: ../../lib/uio.c ../../include/types.h ../../include/kern/types.h \
   ../../include/spinlock.h includelinks/machine/spinlock.h \
   ../../include/thread.h ../../include/array.h ../../include/threadlist.h \
   includelinks/machine/thread.h ../../include/setjmp.h \
-  includelinks/kern/machine/setjmp.h ../../include/current.h \
-  includelinks/machine/current.h ../../include/copyinout.h
+  includelinks/kern/machine/setjmp.h ../../include/limits.h \
+  ../../include/kern/limits.h ../../include/list.h \
+  ../../include/current.h includelinks/machine/current.h \
+  ../../include/copyinout.h
 proc.o: ../../proc/proc.c ../../include/types.h \
   ../../include/kern/types.h includelinks/kern/machine/types.h \
   includelinks/machine/types.h ../../include/proc.h \
@@ -292,6 +298,7 @@ proc.o: ../../proc/proc.c ../../include/types.h \
   ../../include/array.h ../../include/lib.h opt-noasserts.h \
   ../../include/threadlist.h includelinks/machine/thread.h \
   ../../include/setjmp.h includelinks/kern/machine/setjmp.h \
+  ../../include/limits.h ../../include/kern/limits.h ../../include/list.h \
   ../../include/current.h includelinks/machine/current.h \
   ../../include/addrspace.h ../../include/vm.h includelinks/machine/vm.h \
   ../../include/vnode.h ../../include/vfs.h ../../include/synch.h \
@@ -306,6 +313,7 @@ main.o: ../../startup/main.c ../../include/types.h \
   includelinks/machine/spinlock.h ../../include/threadlist.h \
   includelinks/machine/thread.h ../../include/setjmp.h \
   includelinks/kern/machine/setjmp.h ../../include/proc.h \
+  ../../include/limits.h ../../include/kern/limits.h ../../include/list.h \
   ../../include/current.h includelinks/machine/current.h \
   ../../include/synch.h ../../include/vm.h includelinks/machine/vm.h \
   ../../include/mainbus.h ../../include/vfs.h ../../include/device.h \
@@ -322,10 +330,10 @@ menu.o: ../../startup/menu.c ../../include/types.h \
   includelinks/machine/spinlock.h ../../include/threadlist.h \
   includelinks/machine/thread.h ../../include/setjmp.h \
   includelinks/kern/machine/setjmp.h ../../include/proc.h \
-  ../../include/synch.h ../../include/vfs.h ../../include/sfs.h \
-  ../../include/fs.h ../../include/vnode.h ../../include/kern/sfs.h \
-  ../../include/syscall.h ../../include/test.h opt-synchprobs.h opt-sfs.h \
-  opt-net.h
+  ../../include/list.h ../../include/synch.h ../../include/vfs.h \
+  ../../include/sfs.h ../../include/fs.h ../../include/vnode.h \
+  ../../include/kern/sfs.h ../../include/syscall.h ../../include/test.h \
+  opt-synchprobs.h opt-sfs.h opt-net.h
 file_syscalls.o: ../../syscall/file_syscalls.c ../../include/types.h \
   ../../include/kern/types.h includelinks/kern/machine/types.h \
   includelinks/machine/types.h ../../include/kern/errno.h \
@@ -337,7 +345,8 @@ file_syscalls.o: ../../syscall/file_syscalls.c ../../include/types.h \
   ../../include/spinlock.h includelinks/machine/spinlock.h \
   ../../include/threadlist.h includelinks/machine/thread.h \
   ../../include/setjmp.h includelinks/kern/machine/setjmp.h \
-  ../../include/proc.h
+  ../../include/proc.h ../../include/limits.h ../../include/kern/limits.h \
+  ../../include/list.h
 loadelf.o: ../../syscall/loadelf.c ../../include/types.h \
   ../../include/kern/types.h includelinks/kern/machine/types.h \
   includelinks/machine/types.h ../../include/kern/errno.h \
@@ -346,10 +355,11 @@ loadelf.o: ../../syscall/loadelf.c ../../include/types.h \
   ../../include/spinlock.h includelinks/machine/spinlock.h \
   ../../include/thread.h ../../include/array.h ../../include/threadlist.h \
   includelinks/machine/thread.h ../../include/setjmp.h \
-  includelinks/kern/machine/setjmp.h ../../include/current.h \
-  includelinks/machine/current.h ../../include/addrspace.h \
-  ../../include/vm.h includelinks/machine/vm.h ../../include/vnode.h \
-  ../../include/elf.h includelinks/machine/elf.h
+  includelinks/kern/machine/setjmp.h ../../include/limits.h \
+  ../../include/kern/limits.h ../../include/list.h \
+  ../../include/current.h includelinks/machine/current.h \
+  ../../include/addrspace.h ../../include/vm.h includelinks/machine/vm.h \
+  ../../include/vnode.h ../../include/elf.h includelinks/machine/elf.h
 proc_syscalls.o: ../../syscall/proc_syscalls.c ../../include/types.h \
   ../../include/kern/types.h includelinks/kern/machine/types.h \
   includelinks/machine/types.h ../../include/kern/errno.h \
@@ -361,6 +371,7 @@ proc_syscalls.o: ../../syscall/proc_syscalls.c ../../include/types.h \
   includelinks/machine/spinlock.h ../../include/threadlist.h \
   includelinks/machine/thread.h ../../include/setjmp.h \
   includelinks/kern/machine/setjmp.h ../../include/proc.h \
+  ../../include/limits.h ../../include/kern/limits.h ../../include/list.h \
   ../../include/addrspace.h ../../include/vm.h includelinks/machine/vm.h \
   ../../include/copyinout.h
 runprogram.o: ../../syscall/runprogram.c ../../include/types.h \
@@ -371,10 +382,11 @@ runprogram.o: ../../syscall/runprogram.c ../../include/types.h \
   includelinks/machine/spinlock.h ../../include/thread.h \
   ../../include/array.h ../../include/threadlist.h \
   includelinks/machine/thread.h ../../include/setjmp.h \
-  includelinks/kern/machine/setjmp.h ../../include/current.h \
-  includelinks/machine/current.h ../../include/addrspace.h \
-  ../../include/vm.h includelinks/machine/vm.h ../../include/vfs.h \
-  ../../include/syscall.h ../../include/test.h
+  includelinks/kern/machine/setjmp.h ../../include/limits.h \
+  ../../include/kern/limits.h ../../include/list.h \
+  ../../include/current.h includelinks/machine/current.h \
+  ../../include/addrspace.h ../../include/vm.h includelinks/machine/vm.h \
+  ../../include/vfs.h ../../include/syscall.h ../../include/test.h
 time_syscalls.o: ../../syscall/time_syscalls.c ../../include/types.h \
   ../../include/kern/types.h includelinks/kern/machine/types.h \
   includelinks/machine/types.h ../../include/clock.h opt-synchprobs.h \
@@ -487,6 +499,7 @@ thread.o: ../../thread/thread.c ../../include/types.h \
   ../../include/thread.h includelinks/machine/thread.h \
   ../../include/setjmp.h includelinks/kern/machine/setjmp.h \
   ../../include/threadprivate.h ../../include/proc.h \
+  ../../include/limits.h ../../include/kern/limits.h ../../include/list.h \
   ../../include/current.h includelinks/machine/current.h \
   ../../include/synch.h ../../include/addrspace.h ../../include/vm.h \
   ../../include/mainbus.h ../../include/vnode.h opt-synchprobs.h
@@ -522,9 +535,10 @@ vfscwd.o: ../../vfs/vfscwd.c ../../include/types.h \
   ../../include/spinlock.h includelinks/machine/spinlock.h \
   ../../include/thread.h ../../include/array.h ../../include/threadlist.h \
   includelinks/machine/thread.h ../../include/setjmp.h \
-  includelinks/kern/machine/setjmp.h ../../include/current.h \
-  includelinks/machine/current.h ../../include/vfs.h ../../include/fs.h \
-  ../../include/vnode.h
+  includelinks/kern/machine/setjmp.h ../../include/limits.h \
+  ../../include/kern/limits.h ../../include/list.h \
+  ../../include/current.h includelinks/machine/current.h \
+  ../../include/vfs.h ../../include/fs.h ../../include/vnode.h
 vfslist.o: ../../vfs/vfslist.c ../../include/types.h \
   ../../include/kern/types.h includelinks/kern/machine/types.h \
   includelinks/machine/types.h ../../include/kern/errno.h \
@@ -627,9 +641,11 @@ dumbvm.o: ../../arch/mips/vm/dumbvm.c ../../include/types.h \
   includelinks/machine/spinlock.h ../../include/proc.h \
   ../../include/thread.h ../../include/array.h ../../include/threadlist.h \
   includelinks/machine/thread.h ../../include/setjmp.h \
-  includelinks/kern/machine/setjmp.h ../../include/current.h \
-  includelinks/machine/current.h includelinks/mips/tlb.h \
-  ../../include/addrspace.h ../../include/vm.h includelinks/machine/vm.h
+  includelinks/kern/machine/setjmp.h ../../include/limits.h \
+  ../../include/kern/limits.h ../../include/list.h \
+  ../../include/current.h includelinks/machine/current.h \
+  includelinks/mips/tlb.h ../../include/addrspace.h ../../include/vm.h \
+  includelinks/machine/vm.h
 ram.o: ../../arch/mips/vm/ram.c ../../include/types.h \
   ../../include/kern/types.h includelinks/kern/machine/types.h \
   includelinks/machine/types.h ../../include/lib.h ../../include/cdefs.h \

+ 11 - 11
kern/include/list.h

@@ -3,22 +3,22 @@
 
 #include <lib.h>
 
-typdef struct node
+struct node
 {
   struct node * next;
   int val;
-} node;
+};
 
-typedef struct list
+struct list
 {
-  node * front;
+  struct node * front;
   int len;
-} list;
+};
 
-list * newlist(void);
-void listsert(list * l, int x);
-void listemove(list * l, int x);
-void listelete(list * l);
-int listearch(list * l, int x);
+struct list * newlist(void);
+int listsert(struct list * l, int x);
+void listemove(struct list * l, int x);
+void listelete(struct list * l);
+int listearch(struct list * l, int x);
 
-#endif /* _LIST_H_ */
+#endif /* _LIST_H_ */

+ 7 - 12
kern/include/proc.h

@@ -47,13 +47,6 @@ struct vnode;
 struct semaphore;
 #endif // UW
 
-// struct that contains all the processes in the system
-struct procs
-{
-  struct proc * pids[PID_MAX - PID_MIN + 1]; // total # of valid PIDs
-  int lastpid; // last pid issued
-}
-
 /*
  * Process structure.
  */
@@ -85,6 +78,13 @@ struct proc
 	/* add more material here as needed */
 };
 
+// struct that contains all the processes in the system
+struct procs
+{
+  struct proc * pids[PID_MAX - PID_MIN + 1]; // total # of valid PIDs
+  int lastpid; // last pid issued
+};
+
 /* This is the process structure for the kernel and for kernel-only threads. */
 extern struct proc * kproc;
 
@@ -105,11 +105,6 @@ void proc_bootstrap(void);
 /* Create a fresh process for use by runprogram(). */
 struct proc *proc_create_runprogram(const char * name);// get and return a pid for the process
 
-int assignpid(struct proc * proc);
-
-// returns the child process if it is a child, otherwise null
-struct proc * getChild(int pid);
-
 // de-allocates procs' contents (i.e. lock)
 void delete_procs(struct procs * procs);
 

+ 9 - 5
kern/lib/list.c

@@ -1,7 +1,10 @@
-if (!(newnode)) return ENOMEM;#include <lib.h>assign
-#include <list.h>
+#include <types.h>
 #include <kern/errno.h>
+#include <lib.h>
+#include <list.h>
 
+typedef struct list list;
+typedef struct node node;
 list * newlist(void)
 {
   list * ret = kmalloc(sizeof(list));
@@ -11,7 +14,7 @@ list * newlist(void)
   return ret;
 }
 
-void listsert(list * l, int x)
+int listsert(list * l, int x)
 {
   node * temp = l->front;
   node * newnode = kmalloc(sizeof(node));
@@ -20,12 +23,13 @@ void listsert(list * l, int x)
   newnode->next = temp;
   l->front = newnode;
   ++l->len;
+  return 0;
 }
 
 void listemove(list * l, int x)
 {
   node * temp = l->front;
-  node * temp2 == NULL;
+  node * temp2 = NULL;
   
   while (temp)
   {
@@ -77,4 +81,4 @@ int listearch(list * l, int x)
   }
   
   return 0;
-}
+}

+ 1 - 1
kern/syscall/proc_syscalls.c

@@ -119,4 +119,4 @@ int sys_fork(struct trapframe * tf, int * retval)
   if (curproc->pid == child->pid) *retval = 0;
   else *retval = child->pid;
   return 0;
-}
+}