From 1851498df579ef115214812325e4ba9348f9fa1b Mon Sep 17 00:00:00 2001 From: chyyuu Date: Tue, 17 Sep 2013 10:34:45 +0800 Subject: [PATCH] update codes for os course-YAO-class, fall, 2013 --- code/autobuild.sh | 4 ++++ code/autotest.sh | 41 +++++++++++++++++++++++++++++++++++++ code/lab1/tools/function.mk | 2 +- code/lab4/kern/mm/kmalloc.c | 5 ----- code/lab4/tools/grade.sh | 4 ---- code/lab5/kern/mm/kmalloc.c | 5 ----- code/lab5/tools/grade.sh | 1 - code/lab6/kern/mm/kmalloc.c | 5 ----- code/lab6/tools/grade.sh | 1 - code/lab7/kern/mm/kmalloc.c | 5 ----- code/lab7/tools/grade.sh | 1 - code/lab8/kern/fs/devs/dev.c | 0 code/lab8/kern/fs/devs/dev.h | 0 code/lab8/kern/fs/devs/dev_disk0.c | 0 code/lab8/kern/fs/devs/dev_stdin.c | 0 code/lab8/kern/fs/devs/dev_stdout.c | 0 code/lab8/kern/fs/file.c | 0 code/lab8/kern/fs/file.h | 0 code/lab8/kern/fs/fs.c | 0 code/lab8/kern/fs/fs.h | 0 code/lab8/kern/fs/iobuf.c | 0 code/lab8/kern/fs/iobuf.h | 0 code/lab8/kern/fs/sfs/bitmap.c | 0 code/lab8/kern/fs/sfs/bitmap.h | 0 code/lab8/kern/fs/sfs/sfs.c | 0 code/lab8/kern/fs/sfs/sfs.h | 0 code/lab8/kern/fs/sfs/sfs_fs.c | 0 code/lab8/kern/fs/sfs/sfs_inode.c | 0 code/lab8/kern/fs/sfs/sfs_io.c | 0 code/lab8/kern/fs/sfs/sfs_lock.c | 0 code/lab8/kern/fs/swap/swapfs.c | 0 code/lab8/kern/fs/swap/swapfs.h | 0 code/lab8/kern/fs/sysfile.c | 0 code/lab8/kern/fs/sysfile.h | 0 code/lab8/kern/fs/vfs/inode.c | 0 code/lab8/kern/fs/vfs/inode.h | 0 code/lab8/kern/fs/vfs/vfs.c | 0 code/lab8/kern/fs/vfs/vfs.h | 0 code/lab8/kern/fs/vfs/vfsdev.c | 0 code/lab8/kern/fs/vfs/vfsfile.c | 0 code/lab8/kern/fs/vfs/vfslookup.c | 0 code/lab8/kern/fs/vfs/vfspath.c | 0 code/lab8/kern/mm/kmalloc.c | 5 ----- code/lab8/libs/dirent.h | 0 code/lab8/tools/grade.sh | 5 ++++- code/lab8/user/ls.c | 0 code/lab8/user/sh.c | 0 47 files changed, 50 insertions(+), 34 deletions(-) create mode 100755 code/autobuild.sh create mode 100755 code/autotest.sh mode change 100755 => 100644 code/lab8/kern/fs/devs/dev.c mode change 100755 => 100644 code/lab8/kern/fs/devs/dev.h mode change 100755 => 100644 code/lab8/kern/fs/devs/dev_disk0.c mode change 100755 => 100644 code/lab8/kern/fs/devs/dev_stdin.c mode change 100755 => 100644 code/lab8/kern/fs/devs/dev_stdout.c mode change 100755 => 100644 code/lab8/kern/fs/file.c mode change 100755 => 100644 code/lab8/kern/fs/file.h mode change 100755 => 100644 code/lab8/kern/fs/fs.c mode change 100755 => 100644 code/lab8/kern/fs/fs.h mode change 100755 => 100644 code/lab8/kern/fs/iobuf.c mode change 100755 => 100644 code/lab8/kern/fs/iobuf.h mode change 100755 => 100644 code/lab8/kern/fs/sfs/bitmap.c mode change 100755 => 100644 code/lab8/kern/fs/sfs/bitmap.h mode change 100755 => 100644 code/lab8/kern/fs/sfs/sfs.c mode change 100755 => 100644 code/lab8/kern/fs/sfs/sfs.h mode change 100755 => 100644 code/lab8/kern/fs/sfs/sfs_fs.c mode change 100755 => 100644 code/lab8/kern/fs/sfs/sfs_inode.c mode change 100755 => 100644 code/lab8/kern/fs/sfs/sfs_io.c mode change 100755 => 100644 code/lab8/kern/fs/sfs/sfs_lock.c mode change 100755 => 100644 code/lab8/kern/fs/swap/swapfs.c mode change 100755 => 100644 code/lab8/kern/fs/swap/swapfs.h mode change 100755 => 100644 code/lab8/kern/fs/sysfile.c mode change 100755 => 100644 code/lab8/kern/fs/sysfile.h mode change 100755 => 100644 code/lab8/kern/fs/vfs/inode.c mode change 100755 => 100644 code/lab8/kern/fs/vfs/inode.h mode change 100755 => 100644 code/lab8/kern/fs/vfs/vfs.c mode change 100755 => 100644 code/lab8/kern/fs/vfs/vfs.h mode change 100755 => 100644 code/lab8/kern/fs/vfs/vfsdev.c mode change 100755 => 100644 code/lab8/kern/fs/vfs/vfsfile.c mode change 100755 => 100644 code/lab8/kern/fs/vfs/vfslookup.c mode change 100755 => 100644 code/lab8/kern/fs/vfs/vfspath.c mode change 100755 => 100644 code/lab8/libs/dirent.h mode change 100755 => 100644 code/lab8/user/ls.c mode change 100755 => 100644 code/lab8/user/sh.c diff --git a/code/autobuild.sh b/code/autobuild.sh new file mode 100755 index 0000000..e0d39d6 --- /dev/null +++ b/code/autobuild.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +# Nothing to be done here +exit 0 diff --git a/code/autotest.sh b/code/autotest.sh new file mode 100755 index 0000000..1ce5b53 --- /dev/null +++ b/code/autotest.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +BASE_COMMIT=95a80f598fc57c60aed3737c60ee437d94eb8540 +LABS=`git diff $BASE_COMMIT --stat | grep -o "lab[0-9]" | uniq` + +if [ "$LABS" = "" ]; then + echo "No solutions provided. Skip this time." + exit 0 +fi + +failed=0 + +pwd=`pwd` +summary=$pwd/.score_summary + +echo -n > $summary +for lab in $LABS; do + pushd $lab > /dev/null + if ! make grade > .score 2>&1; then + failed=`echo $lab | grep -o [0-9]` + fi + score=`egrep -o "Score: [0-9]+/[0-9]+" .score` + echo "$lab $score" >> $summary + make clean > /dev/null + popd > /dev/null +done + +echo "Labs with changes detected: " $LABS +echo +echo "============================== Summary ==============================" +cat $summary +rm $summary +echo + +for lab in $LABS; do + echo "================================ $lab ===============================" + cat $lab/.score + rm $lab/.score +done + +exit $failed diff --git a/code/lab1/tools/function.mk b/code/lab1/tools/function.mk index 58a27e4..9b8be0c 100644 --- a/code/lab1/tools/function.mk +++ b/code/lab1/tools/function.mk @@ -70,7 +70,7 @@ endef # finish all define do_finish_all ALLDEPS = $$(ALLOBJS:.o=.d) -$$(sort $$(dir $$(ALLOBJS)) $(BINDIR) $(OBJDIR)): +$$(sort $$(dir $$(ALLOBJS)) $(BINDIR)$(SLASH) $(OBJDIR)$(SLASH)): @$(MKDIR) $$@ endef diff --git a/code/lab4/kern/mm/kmalloc.c b/code/lab4/kern/mm/kmalloc.c index 6565626..ed3e29a 100644 --- a/code/lab4/kern/mm/kmalloc.c +++ b/code/lab4/kern/mm/kmalloc.c @@ -186,14 +186,9 @@ static void slob_free(void *block, int size) -void check_slob(void) { - cprintf("check_slob() success\n"); -} - void slob_init(void) { cprintf("use SLOB allocator\n"); - check_slob(); } inline void diff --git a/code/lab4/tools/grade.sh b/code/lab4/tools/grade.sh index ea11411..8d2b2bd 100644 --- a/code/lab4/tools/grade.sh +++ b/code/lab4/tools/grade.sh @@ -332,10 +332,6 @@ quick_check 'check page table' \ ' |-- PTE(000e0) faf00000-fafe0000 000e0000 urw' \ ' |-- PTE(00001) fafeb000-fafec000 00001000 -rw' -pts=10 -quick_check 'check slob' \ - 'check_slob() succeeded!' - pts=25 quick_check 'check vmm' \ 'check_vma_struct() succeeded!' \ diff --git a/code/lab5/kern/mm/kmalloc.c b/code/lab5/kern/mm/kmalloc.c index 6565626..ed3e29a 100644 --- a/code/lab5/kern/mm/kmalloc.c +++ b/code/lab5/kern/mm/kmalloc.c @@ -186,14 +186,9 @@ static void slob_free(void *block, int size) -void check_slob(void) { - cprintf("check_slob() success\n"); -} - void slob_init(void) { cprintf("use SLOB allocator\n"); - check_slob(); } inline void diff --git a/code/lab5/tools/grade.sh b/code/lab5/tools/grade.sh index 44761e0..29db669 100644 --- a/code/lab5/tools/grade.sh +++ b/code/lab5/tools/grade.sh @@ -338,7 +338,6 @@ default_check() { 'PDE(001) fac00000-fb000000 00400000 -rw' \ ' |-- PTE(000e0) faf00000-fafe0000 000e0000 urw' \ ' |-- PTE(00001) fafeb000-fafec000 00001000 -rw' \ - 'check_slob() succeeded!' \ 'check_vma_struct() succeeded!' \ 'page fault at 0x00000100: K/W [no page found].' \ 'check_pgfault() succeeded!' \ diff --git a/code/lab6/kern/mm/kmalloc.c b/code/lab6/kern/mm/kmalloc.c index 6565626..ed3e29a 100644 --- a/code/lab6/kern/mm/kmalloc.c +++ b/code/lab6/kern/mm/kmalloc.c @@ -186,14 +186,9 @@ static void slob_free(void *block, int size) -void check_slob(void) { - cprintf("check_slob() success\n"); -} - void slob_init(void) { cprintf("use SLOB allocator\n"); - check_slob(); } inline void diff --git a/code/lab6/tools/grade.sh b/code/lab6/tools/grade.sh index abe0b09..a3a52d0 100644 --- a/code/lab6/tools/grade.sh +++ b/code/lab6/tools/grade.sh @@ -338,7 +338,6 @@ default_check() { 'PDE(001) fac00000-fb000000 00400000 -rw' \ ' |-- PTE(000e0) faf00000-fafe0000 000e0000 urw' \ ' |-- PTE(00001) fafeb000-fafec000 00001000 -rw' \ - 'check_slob() succeeded!' \ 'check_vma_struct() succeeded!' \ 'page fault at 0x00000100: K/W [no page found].' \ 'check_pgfault() succeeded!' \ diff --git a/code/lab7/kern/mm/kmalloc.c b/code/lab7/kern/mm/kmalloc.c index 6565626..ed3e29a 100644 --- a/code/lab7/kern/mm/kmalloc.c +++ b/code/lab7/kern/mm/kmalloc.c @@ -186,14 +186,9 @@ static void slob_free(void *block, int size) -void check_slob(void) { - cprintf("check_slob() success\n"); -} - void slob_init(void) { cprintf("use SLOB allocator\n"); - check_slob(); } inline void diff --git a/code/lab7/tools/grade.sh b/code/lab7/tools/grade.sh index b9bc485..e8c68bd 100644 --- a/code/lab7/tools/grade.sh +++ b/code/lab7/tools/grade.sh @@ -338,7 +338,6 @@ default_check() { 'PDE(001) fac00000-fb000000 00400000 -rw' \ ' |-- PTE(000e0) faf00000-fafe0000 000e0000 urw' \ ' |-- PTE(00001) fafeb000-fafec000 00001000 -rw' \ - 'check_slob() succeeded!' \ 'check_vma_struct() succeeded!' \ 'page fault at 0x00000100: K/W [no page found].' \ 'check_pgfault() succeeded!' \ diff --git a/code/lab8/kern/fs/devs/dev.c b/code/lab8/kern/fs/devs/dev.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/devs/dev.h b/code/lab8/kern/fs/devs/dev.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/devs/dev_disk0.c b/code/lab8/kern/fs/devs/dev_disk0.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/devs/dev_stdin.c b/code/lab8/kern/fs/devs/dev_stdin.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/devs/dev_stdout.c b/code/lab8/kern/fs/devs/dev_stdout.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/file.c b/code/lab8/kern/fs/file.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/file.h b/code/lab8/kern/fs/file.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/fs.c b/code/lab8/kern/fs/fs.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/fs.h b/code/lab8/kern/fs/fs.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/iobuf.c b/code/lab8/kern/fs/iobuf.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/iobuf.h b/code/lab8/kern/fs/iobuf.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sfs/bitmap.c b/code/lab8/kern/fs/sfs/bitmap.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sfs/bitmap.h b/code/lab8/kern/fs/sfs/bitmap.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sfs/sfs.c b/code/lab8/kern/fs/sfs/sfs.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sfs/sfs.h b/code/lab8/kern/fs/sfs/sfs.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sfs/sfs_fs.c b/code/lab8/kern/fs/sfs/sfs_fs.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sfs/sfs_inode.c b/code/lab8/kern/fs/sfs/sfs_inode.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sfs/sfs_io.c b/code/lab8/kern/fs/sfs/sfs_io.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sfs/sfs_lock.c b/code/lab8/kern/fs/sfs/sfs_lock.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/swap/swapfs.c b/code/lab8/kern/fs/swap/swapfs.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/swap/swapfs.h b/code/lab8/kern/fs/swap/swapfs.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sysfile.c b/code/lab8/kern/fs/sysfile.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/sysfile.h b/code/lab8/kern/fs/sysfile.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/vfs/inode.c b/code/lab8/kern/fs/vfs/inode.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/vfs/inode.h b/code/lab8/kern/fs/vfs/inode.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/vfs/vfs.c b/code/lab8/kern/fs/vfs/vfs.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/vfs/vfs.h b/code/lab8/kern/fs/vfs/vfs.h old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/vfs/vfsdev.c b/code/lab8/kern/fs/vfs/vfsdev.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/vfs/vfsfile.c b/code/lab8/kern/fs/vfs/vfsfile.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/vfs/vfslookup.c b/code/lab8/kern/fs/vfs/vfslookup.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/fs/vfs/vfspath.c b/code/lab8/kern/fs/vfs/vfspath.c old mode 100755 new mode 100644 diff --git a/code/lab8/kern/mm/kmalloc.c b/code/lab8/kern/mm/kmalloc.c index 6565626..ed3e29a 100644 --- a/code/lab8/kern/mm/kmalloc.c +++ b/code/lab8/kern/mm/kmalloc.c @@ -186,14 +186,9 @@ static void slob_free(void *block, int size) -void check_slob(void) { - cprintf("check_slob() success\n"); -} - void slob_init(void) { cprintf("use SLOB allocator\n"); - check_slob(); } inline void diff --git a/code/lab8/libs/dirent.h b/code/lab8/libs/dirent.h old mode 100755 new mode 100644 diff --git a/code/lab8/tools/grade.sh b/code/lab8/tools/grade.sh index b9bc485..920a344 100644 --- a/code/lab8/tools/grade.sh +++ b/code/lab8/tools/grade.sh @@ -314,11 +314,14 @@ quick_check() { ## kernel image osimg=$(make_print ucoreimg) +## sfs image +sfsimg=$(make_print sfsimg) + ## swap image swapimg=$(make_print swapimg) ## set default qemu-options -qemuopts="-hda $osimg -drive file=$swapimg,media=disk,cache=writeback" +qemuopts="-hda $osimg -drive file=$swapimg,media=disk,cache=writeback -drive file=$sfsimg,media=disk,cache=writeback" ## set break-function, default is readline brkfun=readline diff --git a/code/lab8/user/ls.c b/code/lab8/user/ls.c old mode 100755 new mode 100644 diff --git a/code/lab8/user/sh.c b/code/lab8/user/sh.c old mode 100755 new mode 100644