From b6ed791046d332d04dfc9231c17ab7ff6b08ff95 Mon Sep 17 00:00:00 2001 From: Huan <2981268462@qq.com> Date: Fri, 9 Jul 2021 04:03:53 +0100 Subject: [PATCH] update --- linux-0.11-lab/1/README | 0 .../1/Source-Insight/Linux-0.11.IAB | Bin .../1/Source-Insight/Linux-0.11.IAD | Bin .../1/Source-Insight/Linux-0.11.IMB | Bin .../1/Source-Insight/Linux-0.11.IMD | Bin .../1/Source-Insight/Linux-0.11.PFI | Bin linux-0.11-lab/1/Source-Insight/Linux-0.11.PO | Bin linux-0.11-lab/1/Source-Insight/Linux-0.11.PR | Bin linux-0.11-lab/1/Source-Insight/Linux-0.11.PS | Bin .../1/Source-Insight/Linux-0.11.SearchResults | 0 linux-0.11-lab/1/linux/Image | Bin 138372 -> 138436 bytes linux-0.11-lab/1/linux/Image.bkp | Bin linux-0.11-lab/1/linux/Makefile | 0 linux-0.11-lab/1/linux/System.map | 214 ++++----- linux-0.11-lab/1/linux/System.map.2 | 448 +++++++++--------- linux-0.11-lab/1/linux/boot/bootsect.o | Bin linux-0.11-lab/1/linux/boot/bootsect.s | 0 linux-0.11-lab/1/linux/boot/head.o | Bin linux-0.11-lab/1/linux/boot/head.s | 0 linux-0.11-lab/1/linux/boot/setup.o | Bin linux-0.11-lab/1/linux/boot/setup.s | 0 linux-0.11-lab/1/linux/fs/Makefile | 0 linux-0.11-lab/1/linux/fs/bitmap.c | 0 linux-0.11-lab/1/linux/fs/bitmap.o | Bin 10284 -> 10284 bytes linux-0.11-lab/1/linux/fs/block_dev.c | 0 linux-0.11-lab/1/linux/fs/block_dev.o | Bin 7300 -> 7304 bytes linux-0.11-lab/1/linux/fs/buffer.c | 0 linux-0.11-lab/1/linux/fs/buffer.o | Bin 13352 -> 13356 bytes linux-0.11-lab/1/linux/fs/char_dev.c | 0 linux-0.11-lab/1/linux/fs/char_dev.o | Bin 8296 -> 8296 bytes linux-0.11-lab/1/linux/fs/exec.c | 18 - linux-0.11-lab/1/linux/fs/exec.o | Bin 19528 -> 19528 bytes linux-0.11-lab/1/linux/fs/fcntl.c | 0 linux-0.11-lab/1/linux/fs/fcntl.o | Bin 6752 -> 6756 bytes linux-0.11-lab/1/linux/fs/file_dev.c | 66 +-- linux-0.11-lab/1/linux/fs/file_dev.o | Bin 9476 -> 7832 bytes linux-0.11-lab/1/linux/fs/file_table.c | 0 linux-0.11-lab/1/linux/fs/file_table.o | Bin 2648 -> 2648 bytes linux-0.11-lab/1/linux/fs/fs.o | Bin 149888 -> 149992 bytes linux-0.11-lab/1/linux/fs/inode.c | 0 linux-0.11-lab/1/linux/fs/inode.o | Bin 14076 -> 14080 bytes linux-0.11-lab/1/linux/fs/ioctl.c | 0 linux-0.11-lab/1/linux/fs/ioctl.o | Bin 5836 -> 5836 bytes linux-0.11-lab/1/linux/fs/namei.c | 80 ---- linux-0.11-lab/1/linux/fs/namei.o | Bin 23120 -> 23120 bytes linux-0.11-lab/1/linux/fs/open.c | 0 linux-0.11-lab/1/linux/fs/open.o | Bin 11192 -> 11192 bytes linux-0.11-lab/1/linux/fs/pipe.c | 42 -- linux-0.11-lab/1/linux/fs/pipe.o | Bin 9024 -> 8112 bytes linux-0.11-lab/1/linux/fs/read_write.c | 0 linux-0.11-lab/1/linux/fs/read_write.o | Bin 7528 -> 7528 bytes linux-0.11-lab/1/linux/fs/select.c | 0 linux-0.11-lab/1/linux/fs/select.o | Bin 1780 -> 1784 bytes linux-0.11-lab/1/linux/fs/stat.c | 0 linux-0.11-lab/1/linux/fs/stat.o | Bin 7216 -> 7220 bytes linux-0.11-lab/1/linux/fs/super.c | 0 linux-0.11-lab/1/linux/fs/super.o | Bin 12292 -> 12292 bytes linux-0.11-lab/1/linux/fs/truncate.c | 0 linux-0.11-lab/1/linux/fs/truncate.o | Bin 6852 -> 6856 bytes linux-0.11-lab/1/linux/include/linux/sys.h | 12 - linux-0.11-lab/1/linux/include/unistd.h | 8 - linux-0.11-lab/1/linux/init/main.c | 4 - linux-0.11-lab/1/linux/init/main.o | Bin 12220 -> 12220 bytes linux-0.11-lab/1/linux/kernel/Makefile | 0 linux-0.11-lab/1/linux/kernel/asm.o | Bin linux-0.11-lab/1/linux/kernel/asm.s | 0 .../1/linux/kernel/blk_drv/Makefile | 0 linux-0.11-lab/1/linux/kernel/blk_drv/blk.h | 0 .../1/linux/kernel/blk_drv/blk_drv.a | Bin 52232 -> 52240 bytes .../1/linux/kernel/blk_drv/floppy.c | 0 .../1/linux/kernel/blk_drv/floppy.o | Bin 16620 -> 16620 bytes linux-0.11-lab/1/linux/kernel/blk_drv/hd.c | 0 linux-0.11-lab/1/linux/kernel/blk_drv/hd.o | Bin 15524 -> 15528 bytes .../1/linux/kernel/blk_drv/ll_rw_blk.c | 0 .../1/linux/kernel/blk_drv/ll_rw_blk.o | Bin 8744 -> 8748 bytes .../1/linux/kernel/blk_drv/ramdisk.c | 0 .../1/linux/kernel/blk_drv/ramdisk.o | Bin 10668 -> 10668 bytes .../1/linux/kernel/chr_drv/Makefile | 0 .../1/linux/kernel/chr_drv/chr_drv.a | Bin 68926 -> 68930 bytes .../1/linux/kernel/chr_drv/console.c | 0 .../1/linux/kernel/chr_drv/console.o | Bin 20904 -> 20904 bytes .../1/linux/kernel/chr_drv/keyboard.2.o | Bin .../1/linux/kernel/chr_drv/keyboard.2.s | 0 .../1/linux/kernel/chr_drv/keyboard.S | 0 linux-0.11-lab/1/linux/kernel/chr_drv/rs_io.o | Bin linux-0.11-lab/1/linux/kernel/chr_drv/rs_io.s | 0 .../1/linux/kernel/chr_drv/serial.c | 0 .../1/linux/kernel/chr_drv/serial.o | Bin 6756 -> 6756 bytes .../1/linux/kernel/chr_drv/tty_io.c | 0 .../1/linux/kernel/chr_drv/tty_io.o | Bin 22508 -> 22512 bytes .../1/linux/kernel/chr_drv/tty_ioctl.c | 0 .../1/linux/kernel/chr_drv/tty_ioctl.o | Bin 10656 -> 10656 bytes linux-0.11-lab/1/linux/kernel/exit.c | 0 linux-0.11-lab/1/linux/kernel/exit.o | Bin 11172 -> 11172 bytes linux-0.11-lab/1/linux/kernel/fork.c | 112 ----- linux-0.11-lab/1/linux/kernel/fork.o | Bin 13016 -> 9648 bytes linux-0.11-lab/1/linux/kernel/kernel.o | Bin 84402 -> 84466 bytes linux-0.11-lab/1/linux/kernel/math/Makefile | 0 linux-0.11-lab/1/linux/kernel/math/math.a | Bin 6632 -> 6636 bytes .../1/linux/kernel/math/math_emulate.c | 0 .../1/linux/kernel/math/math_emulate.o | Bin 6468 -> 6472 bytes linux-0.11-lab/1/linux/kernel/mktime.c | 0 linux-0.11-lab/1/linux/kernel/mktime.o | Bin 2876 -> 2880 bytes linux-0.11-lab/1/linux/kernel/panic.c | 0 linux-0.11-lab/1/linux/kernel/panic.o | Bin 5432 -> 5432 bytes linux-0.11-lab/1/linux/kernel/printk.c | 0 linux-0.11-lab/1/linux/kernel/printk.o | Bin 2428 -> 2432 bytes linux-0.11-lab/1/linux/kernel/sched.c | 0 linux-0.11-lab/1/linux/kernel/sched.o | Bin 22944 -> 22944 bytes linux-0.11-lab/1/linux/kernel/signal.c | 8 - linux-0.11-lab/1/linux/kernel/signal.o | Bin 9348 -> 8968 bytes linux-0.11-lab/1/linux/kernel/sys.c | 0 linux-0.11-lab/1/linux/kernel/sys.o | Bin 13096 -> 13096 bytes linux-0.11-lab/1/linux/kernel/system_call.s | 22 - linux-0.11-lab/1/linux/kernel/traps.c | 0 linux-0.11-lab/1/linux/kernel/traps.o | Bin 12976 -> 12980 bytes linux-0.11-lab/1/linux/kernel/vsprintf.c | 0 linux-0.11-lab/1/linux/kernel/vsprintf.o | Bin 6160 -> 6160 bytes linux-0.11-lab/1/linux/mm/Makefile | 0 linux-0.11-lab/1/linux/mm/memory.c | 124 ----- linux-0.11-lab/1/linux/mm/memory.o | Bin 13828 -> 13828 bytes linux-0.11-lab/1/linux/mm/mm.o | Bin 13954 -> 13954 bytes linux-0.11-lab/1/linux/mm/page.o | Bin linux-0.11-lab/1/linux/mm/page.s | 0 linux-0.11-lab/1/linux/tools/build | Bin 15148 -> 15152 bytes linux-0.11-lab/1/linux/tools/build.c | 0 linux-0.11-lab/1/linux/tools/system | Bin 300866 -> 300830 bytes 127 files changed, 332 insertions(+), 826 deletions(-) mode change 100755 => 100644 linux-0.11-lab/1/README mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.IAB mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.IAD mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.IMB mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.IMD mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.PFI mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.PO mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.PR mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.PS mode change 100755 => 100644 linux-0.11-lab/1/Source-Insight/Linux-0.11.SearchResults mode change 100755 => 100644 linux-0.11-lab/1/linux/Image.bkp mode change 100755 => 100644 linux-0.11-lab/1/linux/Makefile mode change 100755 => 100644 linux-0.11-lab/1/linux/boot/bootsect.o mode change 100755 => 100644 linux-0.11-lab/1/linux/boot/bootsect.s mode change 100755 => 100644 linux-0.11-lab/1/linux/boot/head.o mode change 100755 => 100644 linux-0.11-lab/1/linux/boot/head.s mode change 100755 => 100644 linux-0.11-lab/1/linux/boot/setup.o mode change 100755 => 100644 linux-0.11-lab/1/linux/boot/setup.s mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/Makefile mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/bitmap.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/bitmap.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/block_dev.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/block_dev.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/buffer.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/buffer.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/char_dev.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/char_dev.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/fcntl.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/file_dev.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/file_dev.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/file_table.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/file_table.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/inode.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/inode.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/ioctl.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/ioctl.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/open.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/pipe.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/read_write.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/read_write.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/select.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/select.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/stat.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/stat.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/super.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/super.o mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/truncate.c mode change 100755 => 100644 linux-0.11-lab/1/linux/fs/truncate.o mode change 100755 => 100644 linux-0.11-lab/1/linux/init/main.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/Makefile mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/asm.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/asm.s mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/Makefile mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/blk.h mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/blk_drv.a mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/floppy.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/floppy.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/hd.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/hd.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/ll_rw_blk.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/ll_rw_blk.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/ramdisk.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/blk_drv/ramdisk.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/Makefile mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/chr_drv.a mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/console.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/console.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.2.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.2.s mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.S mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/rs_io.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/rs_io.s mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/serial.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/serial.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/tty_io.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/tty_io.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/tty_ioctl.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/chr_drv/tty_ioctl.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/exit.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/exit.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/fork.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/fork.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/math/Makefile mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/math/math.a mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/math/math_emulate.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/math/math_emulate.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/mktime.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/mktime.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/panic.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/panic.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/printk.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/printk.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/sched.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/sched.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/signal.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/signal.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/sys.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/sys.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/traps.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/traps.o mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/vsprintf.c mode change 100755 => 100644 linux-0.11-lab/1/linux/kernel/vsprintf.o mode change 100755 => 100644 linux-0.11-lab/1/linux/mm/Makefile mode change 100755 => 100644 linux-0.11-lab/1/linux/mm/page.o mode change 100755 => 100644 linux-0.11-lab/1/linux/mm/page.s mode change 100755 => 100644 linux-0.11-lab/1/linux/tools/build.c diff --git a/linux-0.11-lab/1/README b/linux-0.11-lab/1/README old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.IAB b/linux-0.11-lab/1/Source-Insight/Linux-0.11.IAB old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.IAD b/linux-0.11-lab/1/Source-Insight/Linux-0.11.IAD old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.IMB b/linux-0.11-lab/1/Source-Insight/Linux-0.11.IMB old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.IMD b/linux-0.11-lab/1/Source-Insight/Linux-0.11.IMD old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.PFI b/linux-0.11-lab/1/Source-Insight/Linux-0.11.PFI old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.PO b/linux-0.11-lab/1/Source-Insight/Linux-0.11.PO old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.PR b/linux-0.11-lab/1/Source-Insight/Linux-0.11.PR old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.PS b/linux-0.11-lab/1/Source-Insight/Linux-0.11.PS old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/Source-Insight/Linux-0.11.SearchResults b/linux-0.11-lab/1/Source-Insight/Linux-0.11.SearchResults old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/Image b/linux-0.11-lab/1/linux/Image index 6b21367e96426db0453d9d83361acebdc63e903a..f5e2f859f83ada7ea1943ab7e6cde9e591010bb5 100644 GIT binary patch delta 22130 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�lw{u7 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 PYiyHc6vvw_K*t!e&8=2f!raE7Tc_*Rjm@@h zB)Ev<3{09(rpP*qDzv~86hP_;I!;H zu6MnI$fiNAmX_;h_NbpYTCX}9IY3S9R|kNC{^nCX)XS)8GyDgWeA<-N%$+mL4u!Z@ zbus6JhvF#cM!-vR2s{ifr8RI*kbC*)ZFKD2#pinZ4IBYiQye*ufH%_X(20UK30p6* zhI^QMexh^)BGkcg9mNWQ&agv2Iw+!;@)C>a#}KgTGX(m;UMd5}-XtEtxs9Ad@cX3m zDU8D-Y^;~gSs4A;w^};?ngyq~{Td1%M{IAM4cC!8hv(Ho0RK?rrBWM$o&h9%#zjO|vvJe@Pj@K-C z+M2#ZeDqm9GrRzrC1A`;=Upg|VS$s*09)Ly{LmY@%ie-XE0oLZ5y0#4Ee_@4()2roXAQ{1XF#x@Dpss_2RmHNBYfJlXkIC+w_Y?~lpT$H&jadUg#TzZ3NK#H zVa7s}3jWMl_@-{gH$`6|u>~1|rg%zyA6V;jIwrSopK5ZDrQWxM{VQfaibV$_;2;TQBq9`qxxAFn)Y$EHIr-WCF+2fxZ*z%-Gca zcq$c0C8x9VJAykyp&hCCNFY>n1fEFeuU59ne4ysEm0zu$QPwx6p>B({Y`W^UTC4fl Ix{uxe1F8tx=l}o! delta 1434 zcmX|>YfPJE6vv;-+n)Am3k5c=3n8#^SsX1Fv6*ws$u2Npm0^a1tpkd-8-tNjhY{&u zMknZ;c{I^z<`-im?!&T%MB`>+<`Qp_FMKn`#Ar;^7`G25e(-Ystyz;k@9&)RKmYSQ z@B6k_qgSKX?s&?7&_e9yFFr@z`Kxm1ee3l$WWJX|aPXGG#Z|_U%W);AW`$Bzg{1VP zx!3&+DmBC0t)%-q&gfOHZq;4&T%bnI>wQ2$w|Uk3`xqUnMgBmNR}ZBe=7VRM4gCX6 zH*-e#s2M>I3V!NhQ+)^=pqt>{FwY9o2bkE`!Rsda72FRlr)FplgSXH$e4^kQ;c=GO z!#lz=Z)m353Uk#z^s8ELq4d? zGJ>OH9Bfi%5Wx`6TdvGkcER-Ry$zGcA#PXZZ`5-^M47wyD!Y^~os0|T81Bv8tm`>y38Rs%pmiC&?{^a)U!At)nH5-7J`PsPk|M! zfzN>*dKGqakbCG2jDPwZ=l%R1^&;BO(n&o(<6?{7Fz4C49czSM$l2|tbtp4=zbS~$ zgWdEdycfY9TF1;Ku%QRR7jS$(U9sN;$}&Hp>jg|{ry%F`MJNYp6%H?AcSAIQu4V8D zy$1aX98OXbroV&-5vMiiU&gISkPDhi;3O?0{|fk&@Z*QF$fE*-9FuS_%AMHlHjXsj z{GdDh1`HyCc@Z;q? z!I&FTB6JxK-Ei9Qo1)htY==V7P9Eso4|beXDlD81u!lPB*}?;ALuEfIBq=-Xr@>nJ zq5UzqPX_Gvq6t}OFBjF9{>xfk?(#7m7Kjv|`B6!H5Iet`mkrAOho$8!Ix{V8Gb?jjh^sn6_?9 zX6heeh#>}YHNFrOW1_rBmhu3^s1GVHghYdhMvU2uCdQZ;9!TVc@BEg~r1ze4zVn@X zZ}07y&1W~CZ;_wPuezne^&ugIbpNW3>Mv3Vt*NMjX+B_PJ5NTNe6cLFq6ZMA_YYgb zXBdZDhPYkJ@L`Tob1b*&ool#23Fx~31>HeccQ+Jj#JD@pqeu6+N$)w$*wWv!%49D{ zga**C4>(Heu$>oy>*+jjPnz3e^bDGNH}cp-R&}M+iN~b(6yp1c?Dw%z@xMw3|cBOTZrOf_@Mzv-a}4JeHMp*p&}5qwHb0$8f4SWs`2f?AUsR)4KHWt!$v{T-GPBPeB)1*TcYy zvYeq$E?)kx@QeU^^q(6EFRy+C#oxmIB_udTpTfnokk1}H4reR0(;b^T*>Q}pVw}Bo_t~@FE1sIkIxeR%8M&Wh{gqX zuWq%9D;Kh>VhfxlllVWY3tB86a-BBUzKvT|47*hq3W*9>!y=nVoPgT6$o#}6ch$bJ zH1KC0``z=A74mj%Ao6plBQ-HKIhHC`{BmlllsY(DDvwR>7%3D|g?zCxvp&5clUZLF z8BJvth1981t$pcLS&K9rl2X)$8!t;a=w#E!@=bTSXK1tPU0u9QPPk0GO^IdhXnc+Q&b`Hwu3d@$W*!0L2+Pg@ delta 1315 zcmX|=Uu=_A7{<>zJzw8%ryX>q?K)v*gvpiwYrB84;G&T+VQzFtaZI*#o8Mq{-G*uF zhN6u|jEP);#~c47>;}COVrn!oO1Qw7c;gMmL?w$+Z@kbLO_YQX-{+g5NzeCt-t)ZA zIj7(0>wT~GU1*VOA8r3i1w#QLt|a1RtLTF9d0iS57@Y9PJdA%0er;fueMO zV@vP|bFk%vKqZ*t7z0d{FWJDsE8Fuj0!?&BbDz#Ib~Lp`EQ24ZZM zMNFAGh~qeKQkex?(IZ=j5Hb#Pw=(B3?~A?46zwhDRNal8JcXa-QDtt!?27>vI#uw5 za{@Di%49L)i-XDxAjTI%%KQQ`fdz&+lON6`#3-+Z9$(~?xq43=SLPCW{24u=%**zS z^GLg+x%TvHJeHN2#;!bwRb_U-J%>}BRi@GY`GsC-Guh$YYN_1!pT+B+P@`sTuwPl6O-I z{%61)^a*$YoTfE!5jUojo(C_2yQmpCOWD_~83Vu4lIUHTV6XI8i#=Ib`hGr=*o66Mf_yAz@GO(cKAbCg+U z6x8%4MCW-HnjS`_YnDfsezj}-Pw2B>Qa)SZ949^Q@U0eMyx0O`{RqPrq2A);n@$(5 zB`v_%4TqpVz&&6cD3#K}=>@y=x3nd9P?l?-xvso#8!s;u06Cn2Ki_Q$#h z)X&le%=XASuOXZ8e^wW@XdJiQW^`9Sx2gzst1cFkC8&lCHJ_Y9HM*g^WRJaSUfk^a zGxz*^tTvrg=iJZmqj9 jy%UefXt=o3DCDMhZrQ1zt*?tLCYHWeF6qEw3q1Lw0Pqw%%$Zl<` zm2I`5R1mB$gkVWj;tzr(rYJJj+7eO&KMvVbXG=UhSi3T;sc+al#=gzt3o^$Vg zZ)VPgFNELl%c=R52c6a>Lx^UnPdoGFNxk4KT0gCXFbqdqTJlks%*?Y=2!~+~48??@ z919>N8EjP+us4En^S81-uP-DSZZg6L22=g+AMBkUa}oy|M?ig;L;B^Q)khUoM&j(4XvcHEgS!w67 zI+RfpoW{JKSysiA?d4mwdXbDO8y9Hx;gsXb-k?uqY>fZPl`6AiGe77PE}Na$P0%+? zn7e@$o#fM)ds1J)FVJ)W6Mcj?)}4CW6U>-BskeO;n%)ME88m?}r5}U+Gy~0Ecvn#y zyy4CboCGNkh5-yKrfnF!4|oj;n4beKrF-Bb7*J00z=OaQ^r4=6s386m+C2|uoiGcy z>^5UKG`)}AhtWdNkH9YgE7}Re2(UrhF=jL=r%JRQJHfn5q#3)g*iE)Y%<*wnQ3Axv zun9si4<*~h=^%XZRKF64CV(yKK<`Olq6lWb0&LSY$@o>=g^M18cM80lJRHr#nB}1h z=ravmNz1?=fu@B9(Q^j-w$gX#^I9B9J2k^_6ixTgUEpK5_+A==;dR_jnBKt>$AJf^ z5&Q|@eZqx5?-eVjXla%Tn#Ukh&}KgJSj z*6?(PgC@1CS&vgZJfY{jg>tRF;tg{3p4XR~&lb5_e!$D- z^Zm**cWfbiVZA)3T^`pj~c10qg$iUF>Xi4dsva*s$S9ho^MTGjJi5tFkGT~fNEzSOcgV9)G#D7^z zkqG6_E19S7tZI_Qx~%YRS*dRpj>t2*G0-G0=+lAK@|gZKP{5abH&7(Yb!Jf!YaZoz VQFn1%)H57^)AL{wUl%pG{sqqnA6ozb delta 1668 zcmX|AeN5F=7(VB4&+oqc?u9OJ0WH7_$h~(Hyq6D=MlR40{Je^kln9Dk^b zGEGcHcGk36xwY0DYiYaMtk_(u^|>{+bgQ*;wbfdivwxavbFKHeIR81n=Xu}fdEfV( z-#PE~TmL>l z<(xrKl47g+o-+>LkPt$zGX?J4c!-mFeLDvnREBWl6t6^K&A90}W1G66*#PXKV_ZOQ z1a{Lk#5Vz_(M}#fZ?5IlLk-+XZ>eYOrE|brftS$R&_{st=u6buRv%~L6RAtN+kA?( z6@H3w%G!n*1ubQ}wH??&f3V$Z1}5r2dU(A84y#M))4PTv8Q3GQubM-lB7o27an9DQ?8L%m$06hVp*NCPh-d=S*z?p z9)FQMp~zoIUh|!vmf5& z6o9v1c^FbeFTt(b8vDW?jQK0L#5w@7g$@9kS`>(%4qtfFJs z+KaFW!lEaV<>GV*zW8E20nsF|MY~XY3Yh3o^n3}}CLGV(^hByrz zqejGMfDZ^aUfxL#q(zxKh5C^zJDt5uG~STM8NR_;D&fUhev4N@3*6ON!6px%;!fBq z@t%lk&8Cdy@)L6?qeG^eg^axNIWBR-s>C~_f4Q<%h1)FXeICbJ1?;efhQh+C1|~|F z{LDt#pNM9zkkVsjvnu4f=JTvNX&LREkzbkDyhU=H4kA11xUXj&m9?yolJ3E+m6uO)1v5SW%%=zpRnPNW84s!Od?EKt+cqq9- zUgBYkcvktwueK2RwWc7aO`bF_3*8yp%= ztX{T8hC@9AebG?=NY`*^U?>#X(b2oNv!f!^8|xn#D+{kIFE8Uj=zbv7J(M`?`$#6L ziY_a;#QeTIB7-+#_O|IAG$pKCwY4$kp4 zeGwziO*Jwr?VgoFDD9N-7Co7b4-=iqK*KE@XW`F5iUcm0vTv5_L(Op1dAvRR87^lo=h>gctgp|p!up!+zu>?7r;ICHZDlB;sSEkG!(M1CdILqdR++V89 z1DNw-nJVZ?C57IC&T?g@qLUX5%B)9BUNkDR6aj76V3jg$Jn43bHOe$$OU|Gh!C_Id;qNI68IokQx0)`uzNI&p#BD~2l#s3V5PV4;JRThIk+rAw<4xF?E?GV z*kVROMJ*7O!#rxL;fh;@i{sH1yU?8>TWyEiAy3*zZb{=Ej(Df5aN+0>A3|5-7Zvmq zTm#nrOr}EUd0>zJpgtcQ;Cf8xI5w!P!#QaUV}1f8^!6 zywTVfc98!VU+oZ03%-D<=rlLgc`ZUut!KjWrj3}m9B;ewe3tpTeP+JPHhZriBj4Ea z06fisxZH2g1lm=ZvR?v|##HhPtJaUiUk#HGCH`FTs3Bivbl2YQ&S+0>G8^5Si8l9V zvYp-aiF7)ePWANml~+V!vGR0cdo(sui0;hfz6Ec~+^aDWnfpDqRLfU(QfRt-YwJR@ L9h27>3U|bMD;x9T%e|rh|}HqfK;v+F~?BD}q)-wG~yZ(JJlGpUAXYiE4B~ zB!0q42+_5aO=V(1gq1e&6BbxlSg=6ErYkJ)y%TYhIrsVA@BQ9$@7(jH`b+gxX<+9y zC34rDe|M$bRw;zi&JWfD+DZ2h3Z>lJ5T*BmZ92*vT(O$_?2fRaWN>9b2&cgg2MWhV zx$Wv!ZhL20eH73;Et_bT72SX_LGO{X8?5Oo`*kDOBcBI!6WFIVc$yakg$S7hcn|cD zG9eUuE4Wyw%m+-jjB^oIrkXo8tm~FUkh2f|N@e=s&lO2!O6{mF7+Zv?)++9AR^|cB zxnhf&)1B@TdOtc_m06BXuGp?j5n^&hoig(g(1s1_m1*OfZb#9eOg(0DMYA%)|BDu7 z&LJSz(QV4q*aD}zd*};66Ogp{JDjZqGOyI|jIublPw7jgD~J zIe_OB)X9RA0xSB)t8)-znl8c90ru!RXFHuW%s%aa=MZ=lU-*;IM?;ctUg9Rrb4y z4UB>c8c~#gNXxaRRs-n!2l z<y zQ>wS4GgThzP4^Ftl*OZoL>UXQe?sg?Ci^lkCbPft3$=V^mxYVuD_av@C4Xkq;Xm$Q Db+4+` diff --git a/linux-0.11-lab/1/linux/fs/exec.c b/linux-0.11-lab/1/linux/fs/exec.c index 7f69d7b..c3fcb61 100755 --- a/linux-0.11-lab/1/linux/fs/exec.c +++ b/linux-0.11-lab/1/linux/fs/exec.c @@ -360,10 +360,7 @@ exec_error1: /* * 'do_execve2()' executes a new program by using execve2 -<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/exec.c * without page fault -======= ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/exec.c */ int do_execve2(unsigned long * eip,long tmp,char * filename, char ** argv, char ** envp) @@ -378,11 +375,7 @@ int do_execve2(unsigned long * eip,long tmp,char * filename, int sh_bang = 0; unsigned long p=PAGE_SIZE*MAX_ARG_PAGES-4; unsigned long tmp1; /* by lzh */ -<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/exec.c printk("This is do_execve2!\n"); -======= - ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/exec.c if ((0xffff & eip[1]) != 0x000f) panic("execve called from supervisor mode"); for (i=0 ; istart_stack = p & 0xfffff000; current->euid = e_uid; current->egid = e_gid; -<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/exec.c /* printk("current->brk=%x, current->start_code=%x\n",current->brk,current->start_code); */ /* by lzh */ for (tmp1 = 0; tmp1 <= ((current->brk - 1) & 0xfffff000); tmp1 += 4096) do_no_page_my(5, tmp1 + current->start_code); /* by lzh */ -======= ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/exec.c i = ex.a_text+ex.a_data; while (i&0xfff) put_fs_byte(0,(char *) (i++)); eip[0] = ex.a_entry; /* eip, magic happens :-) */ eip[3] = p; /* stack pointer */ -<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/exec.c -======= - /* printk("current->brk=%x, current->start_code=%x\n",current->brk,current->start_code); */ - /* by lzh */ - for (tmp1 = 0; tmp1 <= ((current->brk - 1) & 0xfffff000); tmp1 += 4096) - do_no_page_my(5, tmp1 + current->start_code); - /* by lzh */ ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/exec.c return 0; exec_error2: iput(inode); diff --git a/linux-0.11-lab/1/linux/fs/exec.o b/linux-0.11-lab/1/linux/fs/exec.o index a93103fef9666819d04614fb08aa8b872f02dcec..72cf1518815450faa2b09adbef8a2a282720a845 100644 GIT binary patch delta 70 zcmX>xgYm=+#tkzR3=BM285r2&fdq$PFpy+m`^W-h8!-UcENn?Y0S;qh5Xn{wQe(3D PghH+mqv2*VVxgYm=+#tkzR3=BP385r2&fdq$9Fpy+m`^W-h8#4geENn?Y0S*&m5Xn{wQe(RL PghH+mqrqk~V(s diff --git a/linux-0.11-lab/1/linux/fs/fcntl.c b/linux-0.11-lab/1/linux/fs/fcntl.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/fs/fcntl.o b/linux-0.11-lab/1/linux/fs/fcntl.o index 95ec8b799ffde94cb3a198616121ee5bd74dce86..93acfecc7c42cff6df70bff97a865bff08ccbc8e 100644 GIT binary patch delta 1138 zcmX|9OK4PA7(VCRGxyGaI?5z>%%i4s)YzzXGMN}j79*yy6%84U)y78>H8GXy+u7CJoBGnkGs0#XzP< zI9oCtYgA?##!QkXWe(X!UEc8=;dc0|l=*s^G%Hh&a0eE&D6@`lPA5pKGR6GHQ)GiO zOQ*>uWe#J&WUNCO&)(FH3r@h_@gJXgWjZjk2V_W@4fED>%)7w$gbPSm;;2@1b@7~8aM2&EF0MDSM$n>1!b0!_ZoSpbm zQCf}6E_5sDS9E(*E0`>xHy{}-TTHi6-VIz$O(^dHuAy&$vsh3|0=N%&3Drnj;m#et zhY|ZB)eGk`&j{;0-kKJ|7{ClcO~40$6&(j21lE+tydlJcbRGK-4zeEN|80z!TZzM) z&yv%E$!<+T^R!ORyNM)2L9)#L>6Xe~`^c@7&Gx;!P42htUPXD13lE(o_}yq1uXO70 zNd^67PkW{1e?zH<64JR`LO2b;VY+L_y}10LFyR^LzU5HSyEBwpndFVK5)YzAL?q3l zKQk@-JD`iY*_2$Ejr+xad2OT(two<&!vDuw`mW*@(uoB7YGj`%nPBSq@+7xP_Y@{* zxlo|qEiJ9CBV897wuA?S7ZF>0XV6LJ-gC}(&bj}e|GtgCj2|hL3wuYM zQ^QUwAr|u=ztq27X>X2wrYd?eQV1q*@|*7?TYTD=ZR-$9d3zvA{~^w}WsH5LDV{6o zzGlVK`4vRs)3 zXv^E0l=0c?I$3!D^L1}{?NDYcIx`^M$~*vBkC)n`%r!g0H??ORPZE07Dc-1zyYy;2 znV^v@=w@I=FL~8#5Yx0Dp0&V!+R1e~y^V1JB{5wGJdhMT8C-!u)PtTDe5q2J2hRp% z%c%+3jkU9wRMJh5EDjq_eF$#?o=8cAHv>nh9Jmz+RMT&GwgA`AFJVjE(LHBSu^rMR z;auW*KzHD+=_^aR6CHvE!?Y7vQ6q2{u%;d8?uOk@SJ1tyi}eD&Z)kGAu+{a(u;hf% z>_%gn+fwXzV^bIkl0)rnw^+8=CvLecwm;lvInAcLl5mm(kDVG^H;QwQ6UQeNbl4v8 zio?gDOoCFN+uLKpNdO1vq`m7!WKr(3XQX?NO@-f%QSI!>e4;GJgQ%k-RL#}@nHIr2 zpjBxeN)8Oie)<(38)`(V>R(C(?^{bVO0K~ji}73?-6n>9V(JCuK~5DXa-V6slS>cW zA)}FvTeqx_v~^}WB3s)dbxWFC*QT4RBdyuC&h81(iLuxO79!EVLZqcV_h?X!%=rTs zrA*k~!n5+CZ78af@9p`bE?H^A!8+En!Ey4CJrOLE&uw3@LTdXezf!0|CT)z@({=@~ Rx9r|fh59)pcR6&!_XqV|w}Jow diff --git a/linux-0.11-lab/1/linux/fs/file_dev.c b/linux-0.11-lab/1/linux/fs/file_dev.c old mode 100755 new mode 100644 index 99fd852..0c50eaa --- a/linux-0.11-lab/1/linux/fs/file_dev.c +++ b/linux-0.11-lab/1/linux/fs/file_dev.c @@ -10,14 +10,11 @@ #include #include #include -#include -#include #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) -#define PATH_MAX 255 -int file_read(struct m_inode * inode, struct file * filp, char * buf, int count) +int file_read(struct m_inode * inode, struct file * filp, char * buf, int count) { int left,chars,nr; struct buffer_head * bh; @@ -91,64 +88,3 @@ int file_write(struct m_inode * inode, struct file * filp, char * buf, int count } return (i?i:-1); } - -int sys_getdents(unsigned int fd, struct linux_dirent *d, unsigned int count) -{ - struct linux_dirent tmp; - struct file * file; - struct m_inode * inode; - struct buffer_head * block; - struct dir_entry * ptr; - char * buf; - int bpos; - int dpos; - int ld_size; - int i; - - ld_size = sizeof(struct linux_dirent); /* size of linux_dirent */ - file = current->filp[fd]; /* opened file */ - - if (fd >= NR_OPEN) - return -EINVAL; - if (!count) - return -1; - if (!file) - return ENOTDIR; - - inode = file->f_inode; - block = bread(inode->i_dev,inode->i_zone[0]); - - /* count: size of linux_dirent[], target - * dd_size: size of dir_entry[], block 400? - */ - for (dpos = 0,bpos = 0;bposi_size;bpos += sizeof(struct dir_entry)) { - if (dpos >= (count-ld_size)) - return 0; /* d full */ - ptr = (struct dir_entry *) (bpos + block->b_data); - if (!ptr -> inode) - continue; /* when it 's empty inode, jump it */ - - tmp.d_ino = ptr -> inode; - for (i = 0; i < 14; i++) tmp.d_name[i] = ptr -> name[i]; - tmp.d_reclen = sizeof(tmp); - tmp.d_off = 0; - - buf = &tmp; - for (i = 0; i < tmp.d_reclen; i++){ - put_fs_byte(*(buf+i),((char*)d)+i+dpos); /* move data from kernel to user */ - } - dpos += tmp.d_reclen; - } - return dpos; -} - -long sys_mmap(void *start, size_t len, int prot, int flags, - int fd, off_t off) -{ - return 0; -} - -int sys_munmap(void * start, size_t len) -{ - return 0; -} \ No newline at end of file diff --git a/linux-0.11-lab/1/linux/fs/file_dev.o b/linux-0.11-lab/1/linux/fs/file_dev.o old mode 100755 new mode 100644 index ec1deef09e11fafb9147680e91a3c93c0ececc54..b86ce5c9da7f6ca9a241734265d37b8043405b75 GIT binary patch delta 3789 zcmY+GZERE58OM*0@4d%do8ZJIFHRt760!gxaY%qPg*Jik5(+e3(iO5m;@8;VBqnws zOjI5!sz%3FqO*0ImeF;cHri?H7)4W8Hnn?`CbmM=eb|Pk4Q;IgqEg$@ePC4V`P)w- z5h?fge_qaWo_l=Gz4zqKZ*DqMBg>bbul>6-_j8vJhQOcUc$%(`Mu!leb{2#* z)bGhH4YP~jG|c39R!FHTBsm=}KcyMZQN*fgq5+hBCLgelQ$R|ymS9#>#N{+j5v-7K znh?Uug;^RH_5sx}&(hd>qh}3iRZcm^R!E`#MOR}Rh8d~^*X^Bjb*Y<}eMdKGTX|@# z(F^TXPa=OOv`6iM|5510>SxfqHqa=q+MC1R-J9s@S0|wNK$oi~Bs~UQrKVA+54uLU zj6o{0=v^`{In6z&qB<#V_TkQjY9fdEIJBXXRKxr%v`Za=zaQG8uEIa?hD8n7xmRF3 zfq+-q&%k)HjSRoE55U-q`z@FDn+ryjv{#d_5UG*w@Z=#j>ZMIJ*=UsRbTTT;eJI@| z?MX!PMvx42lQ(kh(!P$`d8`$dHIBQzlG-!2$?rF|O}@{u8F zKfe$ek@hiEIDlEB(w)s76Xpn3E+Op{A|XUlv~fdP{2b=ij_3JPPt00AeV_l<5j_HDE$wL zsn+*N3iU(iwVJe{+Tm!!CUB`w;BWtc{2oz+)Ftp!VN~$Cj9UaV<)HafX5$F`oK^%I zWhM5YurkoApbaYvy&BqO#gl1aHbHx=c!YMs8fdQ-pO_G4Gqj&H`CFjN)i3D=%pl5F z2@hP@IQb3Y6Xp%NrQDy*HarQ`1!T4(MW`MMnCqYoE0YNdb3L?6^}@da+C%I0T1rO+hT&D^m<>~;^hhX0PQ>NRbfHiM-eGda5M^f}im@3R=s))(G99z@ zybvW$no$BoCa&O|HjQr-a0zb`FhU7_-b5M?LPUl7&aA$2F;-U|!u1@CJwcwc+L``XKw zp!R%eIuCL!&NbSLVfy?Tl`})WNN&MM4&42%(_%5uAnAK}an)SgFuO2K}qQ6kGtT_=2MVo11 zg@|Vg%tR6~c4d#HWAIYXndInrD5c*n2{?}E8znRJU8Jx2Doet{(NH!dqOnY5IFp^6 zie&W?|4O~tU#%1Vr`NV5CdOhd<5SUW%S5K7|5zp)8`}~}rCL(S@u}%G!RFT1HK|az zrM2K_iD&dpe{E-ccx)mX6UpIpG944);mE`keX_;yLXQu}Qz1HC$+nISJR>EH$ELHx z@yS?BCzhVkpDvB*gQel3WT8wZmdPY1#`Rq31G=+pNY9q7(pSoA^qsPxURS_1l3`eJS8A$Oh{kEyo)!eJ4#$m~%cMPU}-ub>{SPderIjq_Tb?UefObeEL?E*X*E!n%0hGb>=zxoyT?XGmElfOhVD~V4nV)0sXGWPx=4s{(^E=F!nHQOF zG5=IxPW+V}?=e4Oe#%^gb4d*?Wj?@cXLd7pGxsrL%)`v5n9nl5ktaPBzR!;H%*)L8 zm>)B7{Ll!#yuk)$8*?{vkU7fCGEXqS%KSE%qeAD{aglk2iMJ*u`Y#htP1s)M0CR+y zVoozpGS4t)ndg|V5pyW`COiJf{0sBn%nzA&nJ#(^W1OE^!)#)9Ft;)vXYOYvnNtS6 zhEV7PJHDoWTw9&{4O>^3x0wU!vpu z;;jYd#0Cfo3~(UA9Ap1+wx4DGfcYBp*UXzBemr^*V*)owc7W|hW)E{DPkK0fmmNQK Q>7Ue>I$qYltN+aZ0doHbTmS$7 literal 9476 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 YEkp334`hT1q2I-nZc9H1?^br%AFIYqUH||9 diff --git a/linux-0.11-lab/1/linux/fs/fs.o b/linux-0.11-lab/1/linux/fs/fs.o index 1aaa26b2b36db561de70122ad269128a00b937d3..90dfb66a9ec7d1c84ec99d9472c1ad69e85becf7 100644 GIT binary patch delta 25282 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 delta 25720 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 Bm?!`M delta 1018 zcmX|9O-NKx7`^wt``*mGjxvLmDJ7#BDmjj$h9XA(B#5OssidZvI+~V0)Qmr&VYst4 z*(D+uMJo#oqFDvfqBboI41}PC8w-Lc3L*$0`py`>#k=R6@0@er&s`6!2cCy{Q>Vq) zDZvug``v{J>1yDN7W)$^mb6F4V@wFw4T#)5M|PP>*!CCFoZKH11Luu-$n)k0iMV7J zP24$DzGhj?h7xKET`fp3b&CWm3@lZg{MK1uw|W7+71*P^z->NJA< zN{OTi{RE_Afye=&8AZ%V(OCNu*-rS&gwEb06+*w;BUK`4awNj6u1d013(e7#AhkmG znGKQA{R-yum^TQ$jd_AJ3cW*`)r}2K3*7+H1JWY&4`dRgP3Tnm0K23^=&HR*x6q$W zy;Yq*hWWrY-D5)gu|Wi6M(EcdgA3F-C-jPWW*whTqDh79S*As0QkT4dCu8a_a4)b> zALuSGA|_QG^gdv>nx;D0UqjfV$}t@PPF8=QM;?$fMGaB09Kyfyt7>>IA)Bju;2B=1 zBa*MyKt`}xp;{%YybN5VG7-K4T&yJUC^jfjTkwnlm#SaPtje7EN2s_8shrt&Y3`LV zytVp9lAJ^bQw~g1z(TbHPXkL8M)wTtZuJ=5*YWi|bmE?ZeIcvkIzp0-^W$}jLz3Dm z$?t@!2r|Wgn`S$m*P9_bm#3K9b}v6+zS;*fLKN7vN^#=UG3v3(@JpGxWBg8f#yu$I zP&`gF8e&!juvaac7AMG6{HEjP{JvRq74V}b?y5PoLUr69qBgNKx-T*~#dtOjtyqer zy)`~}R#p)`6;ItFhfRpF{hJhVrSe6>=>_p7_l}6qCdGJhaCl;DFgQLLi3KO3!85JB zqka9oCBe~=@yVG$aZxA~AR+i)2o6Q#-#s}zo|5ug@N35Q9p>Anz?a99<6+;d{SVf1 Bnt1>K diff --git a/linux-0.11-lab/1/linux/fs/namei.c b/linux-0.11-lab/1/linux/fs/namei.c index 115233d..05fc764 100755 --- a/linux-0.11-lab/1/linux/fs/namei.c +++ b/linux-0.11-lab/1/linux/fs/namei.c @@ -29,7 +29,6 @@ #define MAY_EXEC 1 #define MAY_WRITE 2 #define MAY_READ 4 -#define PATH_MAX 255 /* * permission() @@ -94,10 +93,7 @@ static int match_kernel(int len,const char * name,struct dir_entry * de) ); return same; } -<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/namei.c -======= ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/namei.c /* * find_entry() * @@ -173,11 +169,7 @@ static struct buffer_head * find_entry(struct m_inode ** dir, return NULL; } -<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/namei.c struct buffer_head * find_entry_kernel(struct m_inode ** dir, -======= -static struct buffer_head * find_entry_kernel(struct m_inode ** dir, ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/namei.c const char * name, int namelen, struct dir_entry ** res_dir) { int entries; @@ -198,11 +190,7 @@ static struct buffer_head * find_entry_kernel(struct m_inode ** dir, if (!namelen) return NULL; /* check for '..', as we might have to do some "magic" for it */ -<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/namei.c if (namelen==2 && *name=='.' && *(name+1)=='.') { -======= - if (namelen==2 && *(name)=='.' && *(name+1)=='.') { ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/namei.c /* '..' in a pseudo-root results in a faked '.' (just change namelen) */ if ((*dir) == current->root) namelen=1; @@ -362,11 +350,7 @@ static struct m_inode * get_dir(const char * pathname) } } -<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/namei.c struct m_inode * get_dir_kernel(const char * pathname) -======= -static struct m_inode * get_dir_kernel(const char * pathname) ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/namei.c { char c; const char * thisname; @@ -922,67 +906,3 @@ int sys_link(const char * oldname, const char * newname) iput(oldinode); return 0; } - -char * sys_getcwd(char * buf, size_t size) -{ - struct m_inode * inode; - struct buffer_head * block; - struct dir_entry * ptr; - char path[PATH_MAX]; - char path_buf[PATH_MAX]; - char back[PATH_MAX]; - int bpos; - int inode_down; - int inode_up; - int i; - - strcpy(back,".."); - if (!(inode = get_dir_kernel(back))) - return NULL; - if (!(block = bread(inode->i_dev,inode->i_zone[0]))) - return NULL; - ptr = (struct dir_entry *) (block->b_data); - inode_down = ptr->inode; - for (i = 0; i < PATH_MAX; i+=3) - { - back[2+i] = '/'; - back[3+i] = '.'; - back[4+i] = '.'; - if (!(inode = get_dir_kernel(back))) - return NULL; - if (!(block = bread(inode->i_dev,inode->i_zone[0]))) - return NULL; - ptr = (struct dir_entry *) (block->b_data); - inode_up = ptr->inode; - for (bpos = 0;bposi_size;bpos += sizeof(struct dir_entry)) - { - ptr = (struct dir_entry *) (bpos + block->b_data); - if (!ptr -> inode) - continue; /* when it 's empty inode, jump it */ - if (ptr->inode == inode_down) - { - strcpy(path_buf,path); - memset(path,0,PATH_MAX); - if (ptr->name[0] == '.') - { - path[0] = '/'; - strcat(path,path_buf); - goto end; - } - strcpy(path,ptr->name); - path[strlen(path)] = '/'; - strcat(path,path_buf); - inode_down = inode_up; - break; - } - } - } - end: - path[strlen(path)-1] = 0; - if (size < strlen(path)) - return NULL; - for (i = 0; i < strlen(path); i++){ - put_fs_byte(*(path+i),buf+i); - } - return buf; -} diff --git a/linux-0.11-lab/1/linux/fs/namei.o b/linux-0.11-lab/1/linux/fs/namei.o index f8c588fb448750a73390e7cd4c30dfb03dd1aacb..1e92860782a48b2506e47047092ab8a52e803ad9 100644 GIT binary patch delta 16 Ycmcbxh4I1`#tq-B84Wjow~mwp07e`KdH?_b delta 16 Ycmcbxh4I1`#tq-B84Wgnw~mwp07e!Ec>n+a diff --git a/linux-0.11-lab/1/linux/fs/open.c b/linux-0.11-lab/1/linux/fs/open.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/fs/open.o b/linux-0.11-lab/1/linux/fs/open.o index 8e10b183467ce7ababb747e4cc131181f532ce35..b7f3441de184784c2f094006cd9e5110cacf94db 100644 GIT binary patch delta 68 zcmdlHz9W2t29JTk9To-#wtYZ?!|*wfWMC@=v5lqxNftIEpa6%l9f)K*2@*Hi9KqAV M&1ks!uJ~f_count++; - if (j==1) - f[0]->f_count=0; - if (j<2) - return -1; - j=0; - for(i=0;j<2 && ifilp[i]) { - current->filp[ fd[j]=i ] = f[j]; - j++; - } - if (j==1) - current->filp[fd[0]]=NULL; - if (j<2) { - f[0]->f_count=f[1]->f_count=0; - return -1; - } - if (!(inode=get_pipe_inode())) { - current->filp[fd[0]] = - current->filp[fd[1]] = NULL; - f[0]->f_count = f[1]->f_count = 0; - return -1; - } - f[0]->f_inode = f[1]->f_inode = inode; - f[0]->f_pos = f[1]->f_pos = 0; - f[0]->f_mode = 1; /* read */ - f[1]->f_mode = 2; /* write */ - put_fs_long(fd[0],0+fildes); - put_fs_long(fd[1],1+fildes); - return 0; -} \ No newline at end of file diff --git a/linux-0.11-lab/1/linux/fs/pipe.o b/linux-0.11-lab/1/linux/fs/pipe.o index 2a7cc92059917ad65c1166e4101da2cb2d16ad9e..e57ab16eee02d4958c5082b1e204dc4707b6c6e0 100644 GIT binary patch delta 1407 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 L#`|oKztr;=#6zA; delta 1060 zcmY*XJxo(k7`^Yl`(EF7DWnKen}`~Lpav-g0*GJ`qXJO@5y6U9p!`&!#Iy(!lO}8| z8geHc9CR=w4w|xP+;DMF7Y7p)1|8Id#h4i5qTeY>VuyRrIp6uty|?fC()^|QNs-ez zEk*8U)aEXgFKP)Pl_Pkwm6J%Og_OQK5H0UM+f@T&XHOM3u=_`@;BJ^9r!q6g#HXTM z@s8O-ys+&vhCApND|Qb$1U+WK?gdu#mi_iwV2?gP?*sNz74W%2SBQYl2kwU+ka`0R z19eP_rG5!AxX5IO)H~T`q}$d05&jGC*Gt{HMVh4kwnbWG-fSW+>}WIF+N3T;QjWAs zoiw-I(9ma?FQVQd^>5U3q)X}`$Pf-VCG`Mr_9c)WsSEkdo8+9-^;=|6>OrLCY(rAJ z#`d-CTR?sE6R&BhTaXzCnU{JUWNeW$Z%O^iT=TVNs<_gmF5Tme8aPW`#?1unWB94&|6M3=$%|_ zXR?ppgCuZR6}@4rx(ZxPhtYfuxP~f#r*J?m{f1{6xQ+rQ;gw~cBH=oeM&Yb-IiS*b zG!Y83h!C_F_y(|~3E(+kMdOH`huxz!MBnUS-OmHJ0;YIzeHAP@7@vS!6XBVrZuYy8 z7K}HAf*`eD5k!@&xOEsMkD{iW%B=&YlVVn{S)rYw(;V^6uEPk@Nxp<#k8dpKfmx?u z=n<4gD1JAUiU_+2I6#k0feu?0*(2Jstmo!rUPb9o4zfbHsa#e??{W->%4M&3)hy** z-i80cIuzlPd(Cja% Lv|eX>OM<>X8C0A> diff --git a/linux-0.11-lab/1/linux/fs/select.c b/linux-0.11-lab/1/linux/fs/select.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/fs/select.o b/linux-0.11-lab/1/linux/fs/select.o old mode 100755 new mode 100644 index bafc3946e208c5da8aa77bd77f95f62200e5319b..ef816cafa5a60c99d1d9c2fc48af76a1692055a6 GIT binary patch delta 198 zcmeyu`-69a0^^E_ih4rn3=qHurI}`JOcZ3a)z8S!P1VmUO)1gOFV+vPEG|jSbxzF5 z(a*`uE3MEq&@(jD%}GqsH-rf2rxi04R~E+?r{<(4mrP#EsLjZ*`8wlLM#dSFYnjU# zZ%qEm?9cdOvMY-=56EXu4K7#SF}fGpw3YghyrZ%y9IqRx0{@>3xBVKOhPIx7bg j1H=5u51E7~`>+ZyE|?q(6l(xFQgre{R`JaXSVI^Ax;i@t delta 163 zcmeyt`-OLc0^^d2ih4pt3=qHurJ2$OQ&^6FAG}HwO=tBkc(~2jrXVl(&hj9rb-k5w4Ouht?Zzc<}sxz`owgi%MCMN>Pn$4Z8`HTSmPBEhZ diff --git a/linux-0.11-lab/1/linux/fs/stat.c b/linux-0.11-lab/1/linux/fs/stat.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/fs/stat.o b/linux-0.11-lab/1/linux/fs/stat.o old mode 100755 new mode 100644 index 2536557c95e6ec24e91be09504991103ea9c913c..4054718f11c911c4a97d12ffc9b44d2619f5b977 GIT binary patch delta 1463 zcmY+DUuauZ9LLW&_ncqu&C(`q(=AyyZE5D}Y@4L1YlO{q-KNsv?Ci8vH`ms*X|}Xg zliCht-NRlKVRlD_iC~AytSGExI7HDW|A7xa6ebh)pn?c$6$C+j@b|r$f`Od-`F(%i z^ZlKBb8{(sIr~Dhyu8}-ja)pTg!oldKUZY+s&rt5(fO8p&W0Wql{P6>v^IsAvT&}W z8yiGJ1-?gd3QK$(igfE8F4nMlGdxa0^U~zwpJ;9M@o{WvzX^Ms1#ok9Qs7D6sU(fE z)l6`=SyM0f=_`9twJv%r>)>;&6P;yQZ`jZ5((}+m!^}Y%0oN3mLv(=CbnQ#b5$Xqr z+nJ*j=0oWSI7V6c>%dz?Kwso5KY~v=+`Y=34;^!Gkgv3Zl~FT@V+v|!#T)`_%5bi^ zAMDcI(1*YwT7`aiop`o)4*UT0i1Nlz4ByE`RC#SEM)q@fOnDdVigRz%L4-U6bGP!o zMBgv6%A2rtI^I9bX7ex}W54o(d?(dnp9R0wD<~?+=J||r5Iu+ z@f$Q#A7b)wCg>w1Oo7{I7yJbzx6>X>IS%fmE8r906kPxp$CN{^Z)Oy92Hf=-Z_?Dlf}6oh;?gg6of0xSc<1P47`yTF3UXLCw}W*}sgx3CC)gzydJj0ndRmw)I6^hb zUJG=}w=16OO8JMa_tJ^a`EV*6da8q_M63y0dNF8~2k~>`JBwedl!ND-uH@A0^h9!IE>}*@ zmXbp!OXZ2_y<^2cd Izj2=a0S7+S^#A|> delta 1464 zcmY+EUu;uV9LLW&z4zC9OSj(IcIy~hI#*zZt+(CgRuZ=^#2GR{h9E-)3j5a(F7BXFNO!rd@=H3;_rJqOI_#*54j zg}|Y1<|sArrVIxhrvdoG;BCThtnr;6f#z`Q4p%<&nNN)Ko&Ms&Npl?A6x7a&c@S)n z;9T=butlTL4}pX90`$Wh#J%l2_$la)vQwB$4D%$a>_54Yc@&QzuI!4w?%UtG4{5#vqvDtj+tyvdld z+jZG!={kq{akM$C><|B&998z`Fng6_%08n%Fh;uC&}Ql?k5x{_2BtAtR(1mB864o8 zvNJkn4h_A>VOcsp!3Mg(WjcW^30h^H@?b@OKsbqI27L|BDX>NF>etNXl>(G$yvast zLd-1QL4roGssLw_UgeRB;4ZS^FCn>`a_DjzoT6Lc=fG*Y0xnN7_tI(b9Jr5~ky8Qp z(@#9o{G{Ga;jy2gpMgFo%pJVIp(@Ty4hoA174#7JELhRY;3Y7B6fiEsZqY9NBK19T zL^1ofbJfI`;aKUA$(~<0*vf2W6!a3f_bXmxPzMWEA3hR`e$yM2lo=iM=L>V(#7w`z z{%ykhb-u$Gyvn|aFhAko@60}Yb2J5GKVGk(b@0PrqhVnoEzAM1MR%YNf`hDQgqa09 zbXV%T{*+v**_I{c7y1D^ll+o5r$TYA|G<}g^KC!3T<3-=gk!2z5xJxbc53A|j7jW# zgRe2q{5#D1VNT-L?3q0qQq-!^>;>(p2bDz=!Q>)iH&d&Z(P{mg;r=hf-OLb8ub_dB z20C(=5Z=F8h|LN$5b_$8>x~BMjfx_E4~=qYg#Tpx-1uZIYqe_Ng0Hr_@mHC4i}Q0c zZe?-0>dr5?2M*=SrzZ2gZn;!hT<%GyGMOG0+)crqU8uD?`(&*gz9!{09gAF%>-tt? zN#4^v(F5|nem=TOcIoTUPC2Z0r!}Mco$LDTN;8F{tNwT-O(Q9I4%o GEzv)EG}K-I diff --git a/linux-0.11-lab/1/linux/fs/super.c b/linux-0.11-lab/1/linux/fs/super.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/fs/super.o b/linux-0.11-lab/1/linux/fs/super.o old mode 100755 new mode 100644 index 36f9633fd670262cddafd80a7cb1f08f2a1efb51..637cbc12d3c6e23053590d54c448684ecd40266b GIT binary patch delta 1609 zcmYjRUrbwd7`?yWy}e(#ZLx(yVZcT#!IEq%e~*pjw!O;<^N_ z+sF)xGvqg%Tej(<4=nRxOO5eisEN@8O*Apa>|vTEdsvJ!MjzCe=={ztGrrt=zVn^$ zeCPgM7+n~>=60EPrKXh$mFKD*tY>H#l&jmP`vND&FrOTTBR-wf3`sFag!2YV%yo3i z2Q@HejiG6>l<5k+xsn?cVqSj?P@__*-f|VD@3Ka3eU2H6TG>c%19nl8Mfw3?H=PFG z4(y?7w$l&d=%xF>9rb+lQ$2h-fr}^w{UP8|T7yp)aJl9*POwML=PbRU8=WwTQ6CG8 zE+p3IJ7$c>?ez3Mn;6}|PRip6qX*bcebDq4Iyrz90)7I#S6Y8#pl^%|zqGEP=x^bo zNLstqId?}%F-!&^-XX0tChcOUw00@sDQ=oakf-9@Z<1Dp<3Z6ZT@&%BW(=a!BCXA^ zv5Qt|1z=+r2c-3Z8uAo}PNF}IHNDb$@4up7TIV6QJ44b+sf(UHp$4oue2P^`Y28GC zD2kM{e!&IAZ~^nu`b#--_od(E&Q5)J7oRA_Ui#CBq|sR>^buf5UF@NcV$7gbXd=K) z8euzqEc-ZP%;<-+kFx=qXd@qUshY#+<9I6NG!4xJW-G{#*~ykBE<&`1B93KS$;9Gk zfVa~}z|R6#(?#F}7Sz%V@Dy+zO{tuRg6S1F%z$ao+_Zu+ZoV@bkcu z+!#0tY>)#PQ;<994zeFR%DkIjt%F?2Gdz~i=Vw?&(`dhtwPTH@zi8V%NkK$PXZ^l{ z_e;PgdEk8<*h!V(PXJqV99d4{UbyK;m@a_#QVt*WQ`qIFh!WmFTNxY{k*=TK#?&jo zLqwQ*6%M0x8F&eIIZ9Q~zlK{eNr$lUG;o~$Q4wz_ZC`-GE{$-|&j8D8{uN+@?EG&4 zZ{$AZ-4__;num)~LgGNcY&s*nwAGqXl)F^^59H-+r+_vnS6f#HXq)zg;w| zmHdZAxB4)@PJE;8?|(a%;C?tlNX9r z{JZ3`7PzLa`m4H!FuM+MKZl*M#XZ&o@%o0i=vRzxR7TMfWcH9;b_OQV`x1{yE++!Z zsz#F0EviLu_TdX+W(NY!P3m?+Z5VzQr2-ou7E6dx}bJ1k@$ZWXh*laR3wJ(xL zgcI@Uxzx7m?KL&q5|OcRO_m6c&t~RICS=C5`MSt_vgNie8r9`sP^_rWf{%!gGd~9d G?tcN#5B3-U delta 1607 zcmYjRTWnNS6g`hScTew3>kOTCTBemso6?%n=@ST`p_NujX(_Z~p~XI!K1TYm>4Ta8 zwLmadd^E?R2*#)}0r^3P4>iRfH4*j0kAC<}#Apmrqlq!{A&Gn48H_*YuD$m8x+%@8zU;Z5n4@<*#vO;Un5vtAeN@LJy%X3^UFbIh zr_*iVT@~yVpxeCamJPgys0KQ%z&X?a&Tim5T7XU)aDnhzCs-rxBc?8Es}&*xRKx_U z4T%MwWKsleHc(|X7kaA{FbT)F4 zqa2?(=WmIGA+jIj8s+SQid$?_&K4unbL*QBb}Hwp=}ylrnaBJfY&w+l)_+B(a)#jPPP#duc_n>YNiA#+oo3dQa^6IM z7>ZftEJJw!H*i!rw~Qy_fw|XtvPmDjk1y1~TKW-0612n(-2<#BpEYzZwpla{P9LzB z%2-bKCy#T0JNi)aI4y8uTY1f(at@;haViBg2F?)n7SRo84mZ|wQ9=t4io>joEEqou zTu#fthk+~TJn#q%s%RW|6u6o;o3y(M=lY>AfzC#uzGb(7p2AI2HGHNaA!r7823XNo zz(;^B(#SXqx|ePs`{PHr@8?$wC#w3GI--wGFpIWed@L!)9HEc9a{K5WM4C(Loky4_ zfNkcH(=l;2#bCJSS9l>0bAteKMS17 z{~~ZI|4YEB{OA6c|7G+8!oI)}ZR+4c;j0SR6&q~!`kFJ_m31~_K~I{DU|9ZPii1V+ zxM>dd$PdlsU|w!FZ&&;T; zTG?ja&8(JRm|ruu%C}8vsClEqZgRLEAr@mI^DsXKc@gE`JivL%3ty)3XB=Tec@h6E zwJ5^J%;iw&-UHZs9pp|9JK>Vsojc^~DRR#5*qW-Woc*A=o7AE=T#MOfI3~3?5`NAU zXO+sBY0K)!Ek=@{gt}}Kkx33w#&~tHxt6s?eqz4MT7CZ|=IA$mVN3rRmdN(;FS3P6 zB=X(p5t}<6wh$u!3Vib+mu%#9BxZuj!nm=qT`d%-R(Uief>RE z(UJJr^z8bI^2*Bf+=!+c(ZR_?#@+A8#0P7B&~meRt*}rU^Ks!ic`flsQ3hjfo^r0oBhz}J?X`$;sLLX+I?_cX* z|Ji%azT5O|)2G$)uWL2umHJcId6g)BCxy_Oa>{>P@l_znkAMzj#tT9#Qs_zV4}Q2a z=v40)sJL4kA=Gg$*E%h0xIqThOv^=O`lob8j$hMvnJiyaV4 zXeS0*!9iNbq0UZlIh_W##ds`4t1#TYp4SMaz`MXzv>cue@GF!>PA9lpc=~Nvw0eDU#rgl7os(LXlst|*>GWn?q^U!q?zbr2t>n%ddp9D=i!ZXjU{yp}rP&mj3V zs)7F`bs+EKGGaBf)z&Sd$FTl521o2@rjOF;3!b08SnlNY`xe%UX!&#YQT+|nQa#Dx_|tb9_MH7O?%9h=CFM#rZ{3ekytwCiZT zFq%sZWwX(2W_)UQ@apeE$`a$NS%5bvL`DlZCfNHpV|IMo&3^%z-zaiOM)*mHm1Io~-m zvop8rZq@x3kZefa9U&B7NT-Ax2@nBfA>A<7Dsu#NU#wE5*R;Hr%GtJ>4fHdYoo}#DK@*&J(qKi; zIXc_lUjA8ldchvuu{G}e{0?L?cs;Y}5xREaVj|Rru6{Tx=pb%!0KAMA!k@+D<+KR? z-Qa3E4*nJ#qaVS8crkHGg7<(ERDwA};97dh(HS1GGj2)#HS&9rUn!K}hLAIgGm}AK z3_}Gi0q+AV%7e$jn(ktO3D`X<27f=!`5-^HR#xr?wz`x;8{SUHjoriKDb#8nG74HS z0uevTLQ^$o+(aKok7n!$RmduPg3`$>&(X2&0KaMx#KmSAi}5dog|a;Po=)IdQX0lu zI0XF*t^;c)mx~F#0_@R$(l&TaGFLe4c~bUUTeMg%v6qYL9U58}lx+8*;kNq|fG$bC-C$HaN(3kOYuQ+QQ;UB;pV!+Ul{hsH9a(cxS)*^wUX z?Mug_gV~|6iK9{;@_lA@5jJ*-A nlz-cQ!XL|;VVn@Tt diff --git a/linux-0.11-lab/1/linux/include/linux/sys.h b/linux-0.11-lab/1/linux/include/linux/sys.h index 7ef25a8..6e1ba2e 100755 --- a/linux-0.11-lab/1/linux/include/linux/sys.h +++ b/linux-0.11-lab/1/linux/include/linux/sys.h @@ -94,13 +94,6 @@ extern int sys_getdents(); extern int sys_pipe2(); extern int sys_sleep(); extern int sys_getcwd(); -<<<<<<< HEAD:linux-0.11-lab/1/linux/include/linux/sys.h -======= -extern int sys_mmap(); -extern int sys_munmap(); -extern int sys_clone(); - ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/include/linux/sys.h fn_ptr sys_call_table[] = { sys_setup, sys_exit, sys_fork, sys_read, sys_write, sys_open, sys_close, sys_waitpid, sys_creat, sys_link, @@ -117,13 +110,8 @@ sys_getpgrp, sys_setsid, sys_sigaction, sys_sgetmask, sys_ssetmask, sys_setreuid,sys_setregid, sys_sigsuspend, sys_sigpending, sys_sethostname, sys_setrlimit, sys_getrlimit, sys_getrusage, sys_gettimeofday, sys_settimeofday, sys_getgroups, sys_setgroups, sys_select, sys_symlink, -<<<<<<< HEAD:linux-0.11-lab/1/linux/include/linux/sys.h sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, sys_pipe2, sys_sleep, sys_getcwd }; -======= -sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, -sys_pipe2, sys_sleep, sys_getcwd, sys_mmap, sys_munmap, sys_clone }; ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/include/linux/sys.h /* So we don't have to do any more manual updating.... */ int NR_syscalls = sizeof(sys_call_table)/sizeof(fn_ptr); diff --git a/linux-0.11-lab/1/linux/include/unistd.h b/linux-0.11-lab/1/linux/include/unistd.h index 2199fb1..61dd3fe 100755 --- a/linux-0.11-lab/1/linux/include/unistd.h +++ b/linux-0.11-lab/1/linux/include/unistd.h @@ -144,11 +144,7 @@ #define __NR_lstat 84 #define __NR_readlink 85 #define __NR_uselib 86 -<<<<<<< HEAD:linux-0.11-lab/1/linux/include/unistd.h #define __NR_execve2 87 -======= -#define __NR_execve2 87 /* by lzh */ ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/include/unistd.h #define __NR_getdents 88 #define __NR_pipe2 89 #define __NR_sleep 90 @@ -157,10 +153,6 @@ #define __NR_munmap 93 #define __NR_clone 94 -<<<<<<< HEAD:linux-0.11-lab/1/linux/include/unistd.h -======= - ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/include/unistd.h #define _syscall0(type,name) \ type name(void) \ { \ diff --git a/linux-0.11-lab/1/linux/init/main.c b/linux-0.11-lab/1/linux/init/main.c old mode 100755 new mode 100644 index 4a67222..bd86a68 --- a/linux-0.11-lab/1/linux/init/main.c +++ b/linux-0.11-lab/1/linux/init/main.c @@ -213,8 +213,4 @@ void print_nr(int sid) { if (sid > 86) printk(" --syscall: sid=%d, pid=%d\n", sid, current->pid); -<<<<<<< HEAD:linux-0.11-lab/1/linux/init/main.c } -======= -} ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/init/main.c diff --git a/linux-0.11-lab/1/linux/init/main.o b/linux-0.11-lab/1/linux/init/main.o index 76004d9171df07e86db5b0a0639f46502a8b6448..486c3286f16fad0f0c3835afdb8ac1743800752e 100644 GIT binary patch delta 915 zcmX|dwvSme?5jXP6UK~jNC zY4}bBhl!ivEAbKH7HoaS9gg_OIZ+;5PkgLA__CgLukAR2Ygtwu`aN`Oek=J9w}v<# zR^vRL43b!6rH&#Sunh&Pi7rq z?f2?FUpzC5GPhrjOyO${J+NcK)z7duk5WHYVFWuVvY(#pwX^!ZFIHuHVzwuEhaC2U zlv8ELqVF94SRD3GasFN}t$N8{>r$XY)Cj#280c=NQMVSIc&k$3kl0`RXZiFCTL_VG zj~utljyMVlfr8^L-C*JdPBW)%TqxcRW=y>jt+yH*MurL#lf{K_OcWbp7eoI5xm1ty delta 915 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 delta 7973 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 diff --git a/linux-0.11-lab/1/linux/kernel/blk_drv/floppy.c b/linux-0.11-lab/1/linux/kernel/blk_drv/floppy.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/blk_drv/floppy.o b/linux-0.11-lab/1/linux/kernel/blk_drv/floppy.o old mode 100755 new mode 100644 index 1fbb4c98705a25a66cd72f0734e50ffd24fcf9cd..11d857abb57cb53ea8a3bd5e0866a5d1146fab31 GIT binary patch delta 2258 zcmX|BduUTv7(eIa-kW%m+r~c9)>NCmY^AnIYikwUaJt&sIoq}MQP(aeHf>|lwDw&e z3vOi$Dua3%2v!tz$mYOx#bJl2h=}ZkxEC942xBmr+rVug8=d=p_d@^3xxerC{l3?^ zU+$x${LxYV!5_NwTgDhaq%t;TGyc)5_!~xfN`5kIV@y%(%>obgP0pA@QKN}rrU?6W zklZn;Fs3e$NAZnP4uxyAltnv5_%i*L^wROv#>4=nDpH?sA*C!QPOSrEvX9cJTec8X zWC{5CNje=eM`J9hHcUYyPe8O4*eOp_nA!;Jl25?D0IbVNDxhxbpwlgXMN==L`wY32 z+EKRyXUlugHv#9$`^eJ_>|;&^{knc2=~bJy9ZBSCoF$pojG>skNC~x<%mHOOd9@Z` zhm@GL71$+z0^jz4`gZGwfp>s+3w<|?T}Q~s5V`}#Zp@o4^iLLzT%mUmXL)=gB|I2o zn(=9BK@)CKYe%Yp(3hf~X;cfn5KWoJI-$oGJsU*INVJP-dvK8(g?@nswTw+d4;vfY zIZ+S9FT>v;^cb2jjYgrrikuy&woT~A=%IDOXcqc8#F$2#(7#wTb_;zkVoXnm&`&IS z_6q%~am}5x=@Qa}P%SP}2F9qh@P`yKAoLNsENvf*VWBUlm!oyT7#DgYnu_3>4h#K` zk+XDj@-}5&r*=k3AU$-buS}Ag$$8?{Ah3{!@KX08Opynm2?0CgMZEa1wKRu_QTJI( zvk`n(FBMCX32H{|#=G}PWK(+(TO=dU^lnL#Q7UuEtw!NqE&oG-{lFFSYcvr94#?}k zaTKVM)4+YeYvc(umjJGoA>e-C8o38}0C=r@ied+VYnhm%0&aB}S0bmAP>rAhlQ)1z zfracu#2Bz5YcRq%^bUE2PIclq@h;l$arA8?soma>Ff6Ov9$?g-Ora=yrIR3&@6u_n zLaZVqMA+A0ZymBoGrmhJ>lHI@5Ev)|2QfZ4DM)zC$9d8k@r8?^H#r0ak27 zLjk6(1$M|k!Pf%2h_7VYI$*avW86&l^Dm9Z>GOJm7_AX}my8-$GB)v9VfA1yX7Rc&X?n>k|8UMrc4jNXLM(-NIIdZNFy(kCD8cavQuwN zEKs6s(X!G(j*qE;XvNhqSw*~s73rk_3p?c0B6i6;RL0`nww}-c6K!~B8FB}B6KBfh zR9Lh*;P9}t7Q^W&D6Szt@2eqdmVSJukBVo^V!A#|C#D(8{LN_b6o~bTG3qH2KGm4< z@wivbu9|&{#Ml2#9#FSb^ zl2MB(0P_sm8MBB&5M`)7ZV{h>7&D&alr;^};JnID1D3dOJJtBkm0lw;58O0Q0Xz*ZvA~N@0ejR_--`n38@h3*QhW-6R{?>`1;Yi=+P(1D@`N(*AprW#}JRS=B zD=oqwiwq_raep`-3w8~T&i!4G6vk|E=bU?GgUSyY?PZ1hXX8j&iJH2SIx_NCr_Wt2 H3uOKe$v$Yo delta 2239 zcmX|BYitx%6u$R%W_EkKQ?|DO3y1heznMv&Gsbw0&RC+M9-5Urrpl6ivF!c_%1`#*GKW7^ewepkHDi9seaT5vEiH`q~y!$}-~gT0kayDUDuNM^KYR z;MYyj>6G76FEM@n5oqKzMD@T)@&twH4ZtpWAN&SjQy!!OdSeHjZuvf%dajFbnv|4C z-w2!~Z$RG!oFi``PcyKWC28o_^#(~VCm0)%L`FG_F{2qnF&V*3o2&t)i@Zh)uv6Xu z-wN!Kv*6plGpGS`9C$N$w=g%s*m{tRG+}ZW+c0mIFpoSoa)jALobB<7?w=!DTsG8C|kHetT{*w`jaA7U&|hcMe8dv*%* zyqb4suXzV)LZ}uI$-|S>TGx3B85ZU!U6!#6#+Wcu>E#&RFrvbI7ESfwnhpr_6_vgC z+1O#qyh`s3lR(}kx4vVF+)VB#UJn8bxfd^WC&DyYNkTmY?3A;3@m==P3=*U7vX^EG zdAj@POqLO9M(@SD_sU6Vb|bbx?m%o`9WJ9-rXwJXVx{t96xah?E?-9z{lEeFB5(u+ zDrF1s0Pu2o49yJ!SIMowL%`Lt8F(0Yg?xZwdx2LnF-8U4`WUW69*#jZjtWd(1fBpE zatk6Rfi?LTszsr9%6)X|`;HUuqWzAd@4qR`;TS>~meuVDFba@g(BY^^qLaxzz?E|p ztI2IdIF@5?o$^OreUp;UKUI%Xf_$~=OwFlxlISaAITl{7peBqeYzmV<0apWS38SL{ zW~=~q$_4N%fnCH`Fk=<4TPk%m)z4p3zo%X@L&O*j;Jal|&84m3BkG^D{E8^W@+EdF z9%`L?@NQi4E$V^i0J~)^wa%ZwS0zmrsHXG`eqHsZFOA)VzC6Vm?`P=!#~jof6Z7QA z5-rP|)O4H*h*n$;lO@F4Sd(`sz{XD5NGWXWlJiu?#_ojOpaOG#Bp8F_^zJ&;Vuq{jbb{hDZHbioS2T3>w593r;5#O+*_9%m zwJJ5UkoTykG7A=2p090BA9*5~t5Y69{mW4rBWNXDx>C(&=Ebhy9`gAqdbC@-HxH9m z^FN8H#(*>4yC}PrKS?*;U}p*2dwXTFq-<$r=2v)tPG=}5snm>=>3 zBw~dDbs?*~;4(o`isX8Ni%!o{G*M;~ZV>l%<;c$ECsk3lH`azSn_H70CnxiiLOyKE zuYhPpjlDK;4MYuYXXITga+9ev<^D;p(itW%7a-qXwi!qzFP8+;{|C~5Vo3l1 diff --git a/linux-0.11-lab/1/linux/kernel/blk_drv/hd.c b/linux-0.11-lab/1/linux/kernel/blk_drv/hd.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/blk_drv/hd.o b/linux-0.11-lab/1/linux/kernel/blk_drv/hd.o old mode 100755 new mode 100644 index 52dcd3d5ae887b4145a61334e5e6fc6c15311f97..b308c31db2eb0e6736d3c3792f042a213b2216a4 GIT binary patch delta 2067 zcmX|BTWnNS6g}t6y?5?`+jd}DI-Ne8fnrNv)0VcBR;mKFrC=X`P@phjYLUN>*IC^z8^0I(dy=IhFQ=Zic*B&K2M-G9r z26(P~m2~tvU`t*>el2jE>>wZdy0x^rgi<0HtbXjD+(Dqs1;TnWbB|$SbprZpxZiOy+j{lJAy{q zftnp`6juAgpjlW3YV4id7GW)TxYa7G^HA7ED;2J~FpGo2YE|#dTeV^>&-k6=j-? zBck30Y|1g^o1YwUadPL%g) zNo6NztgFD8`bw$o+w|k(x2Vp262s_&8F7LRejVOw5YEsqirVprB;I#0Q3FW4q-r&m zoFf9dx|sZwcMi5DP;-Q;%jnC;FB36oiAwh@=Cx{-XEX0or#%bPPr})!_KQ8Cx$VP0 zh)nmCn)NKnU=W+a2*n9ck^`su9MXI}OEHD=r)=WK)o@BVe@~rFS=d|)zqb$5MY!$0 zX`@Kod4m#FvBVZg{5wO5Q+6W#AQB0@k52zuEb}XR`uRP|cCUbN7ZS`aBBL17Yo14Ysl|L_wcGu9Ft@hgZ Q6s?;23TyO_yz>eF1B+l*i~s-t delta 2071 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 E4>OtZ6aWAK delta 1478 zcmX|AZETZO6u$SqZ+p7iZs}kjZ5gAo2_$T7_aTruBk4Yv<6{UjOkj5FTGz6!-LU&W zbTbl-Ss+So1o{+901EoeEIBG?Yj~2?HO2`|C9Jfb z0(MiBHC8vUhuV?f3tUWBfcHh%*h~E!t^GSVmeG5_2Y`JPf~E(!iiY5G5I87Y_N(ks zWlHyg^mQ`vDZOMqbMD?Y$HaaX;)v4Ya4e8!rSCypAiI?Q&;-dJ?Z#F|(=3iE z{TeU4O4^lsIGqsoF;qI0o`g+-bSZrSHU-kH^cHiP{IfSv@5jturSGqiKBX(y$Z@5w zuaN%%A&p^ml)!)!z#)1F zJOUh{yTBO?Xr!yaqrgq{IE=Eu%~T4U1AdG&@EGt8+6(`2;GIH6x!G&w@lB|C7ODwM z5Yz)a39RS`;3;66cH4UkCH9u9Q!j zYkH5msmzN0Li)|;?xKS~gnljTK8L1ooOl&cI%6(-Hp?P&i{lmZr>CRhK1*faCXOGl zqkLz^#qKSpyST0740p=x*IW{nE5ghd*Lz#oQkufII-e1~i{|^{26@`(lHj^!sLTK5 zb_XLN{4ah&y2(pCnwE=^47&j#SJNa=J(34 zdiR4`##L}D5nOHEM0$W;TyfMrou7Vu|DaLh$Z z`y(AZnm;);lT*!I6zhG*Utb7D(5P_vJD<8$Jw0Z(??5KTes|B zY|{qhtYVxI+0@5ndNl%mdKZB;zyXS~fNrhhGe}LWsM{JD=hJcEwZKL68uFh7E}?Va zX$LM7K7EimvdUQVipN?D5?aY|s~sZ<3NVND+-A|vC3KldtaS+Zs1t!0u%BM#DrdfYC7;lzj;_j?tv- zcg%HPab^&0ZNiS0DSMn7c8wJ(ds{Lgtj&n5RCYgT9HT|qMWAtv)ylpHqYG-S%HGQl zYYU8aWq*$v$5^lIe`kyiW&eO0C-PXAvaimBdX#+@3@<=6p|aEIabfjf(g9^3HB(u| z)stwk?=Y97m3;%vCt!>z`xk7YADh^x>?&<;W-ZJ7$)P5_}76Q78yH3j89lqDN4%2Uyc4bTNi}ABCVizK8vOzQe6NmS-=Q zrS!g?oJHrbotIoX&JlXQOSc_m8JF%hs3(BE6n9>_12BBF5P^fhHr)Vz8LRSB8H!(l zKS)`8>ch~=rzvwiyKvPmboV;C>!8D!;0@p|5@_X3F!az*z?1k960{%rZ($b$)CH9z zz)6akT7OCA6UO=a*l#n#80ZSZp^pPAa)vnptjQVXZD1Y-%qM{#&TNLfs2=@jiovlc&Zm!>%^&_sdD0XGy5-+y zEKpK>g(+@Xi|{$1L!4tZ;4Kq$+*}A0%G2grpjl3sK+ZM!gt?isO#W;Naw}Sv@Csze z<@^r#QMb_=)|Dl|LAnH7imzur-QiP)vC1MH9}sem`)&Ks9LNoaPO)3owm6MvP!#!^ zyU`-=TXQ+Ld~P9XhZZyEd;BlYHf9MiD+SRZG@z!0$Xj|WSe|>Ac~l63YARJQW}?Bu zbqjd~s`4W)QBw&~^bH5+aM5hXU*-CHgecab1*mg|x0!pRBlQ=g?#~2RYSxeDOmM!+ zvCLP&8W}Uc2a6?{?7WInhcWFkcJPP$W1hq}OQN09+h$E(sQP`(RzGR8<4g9+2J9oO z*{kxAX0geR0&Dt6-W5+)yti+#JCz(BoL)71i}WVD_l^wrPhTu(merAgk)i&`@Mt0( z8QC3)jqgtP4=wLar6Qa@I#yFx8;#badgGC($qf}u|5JEZnz^CQ>50&!M^2eQxI%6; O(eQjZG2I!CW&a0_ITU{Y delta 1897 zcmYk6ZBSHY6vvY++fHjb%Yw6diO^ z(=inrxTfh?O;e2@v?-(MW%5H!QGK#zbZVMD@v*6FvS}ti)O7y$GEU6!?C-q&&pFTD zz1Q2Xx4(DC8+lgKvnG5PXGli;3~at3p`YYbA6Ielm6i%-7>;# z(N^SaV9p93b#a;Ah=89iBCrV@pk>@ZZ?54pNcX{88u<*-b_i_+7tvAVZv&UmCFrz* zONFVAu}01;r{44!TOmSC95-6Af}mUMFrM5gTDgSYXAz?f0h7X9VYGw&)PkgrLX!uu z%D~&<4=U?-6g(YgBc!aWFgmesk+N3VyUo>AXV@^hkX)mzhoI;f^~xHBjAN`)R=0i2 zEY9{~tR1+cW@R1VFUU34D&L-DLKr&{S*NT@$T&uevhpG07#o#!14cKxZC2JH{xEjI zXjRrZ)Hp_mvOarYbSmotYMjXOZe<;R5b9CZ6cnC8*M#zAG6#jxgG~pNb;6#^DPDRS zBlex-l8mxuFnj{Wn6hSZ6aBb}ab^ANv2W)zXFul9D!uD*{-88B)sC{DYwXZ5bWzm6 zBD%+YV%|bdFW96Q>*=`rU?5ZXxerDyauQ8^=F)MVM(@V=TT1(ovj?>mRDjxnEm=0I z=u;R;NIXorX#6a=n!W}Pf@|moIE4mvG!7mDucS5%mj>5U6?hojK*it@a3j42{k`Bv zgy(ynC8#sF6WWwT)+jm%Isx7fR^&s)0kEb8SYZtLCjErf4jy2?pP%8)Y&o4R^z&dZ^)x~IC=8PpBXA6C(Kq1ZxGF!*Li7drgOtOk zK8ao-YO`ZX>d2)hr$^s^w6tNIEybKLF34uz+DW`cI2D`Cn;oC z`%AKKFo*QiT~2bBvC&r$4t*Z1$XVuPuqJ1j3t(Ob$``?NySxIP+vU>#cDW3HPU3J$eocj_U+te`KDc%SKiXVS0KZ#=I7uA z?x1&BO_qRzG|Dr`g?M|0=tn+f1Xo$4;{!r2a^G!N?4x;+a2JZITb#jHqbT|%PoqWt zDf^SWvc&<^4mGgm>-;aTH0B6V(2u4=7(h)5kuRo#WqH?GM}^T)O{NMTwQGa(+kRs` zRdJO|)MP>weZ|2=Tr|(|SGoQkA&Pal6m`z>7HdD{wE7#Zet8h!Rs~n=%fTh;TWx<4 zTp>gDA3^@b*uMPog^pszRqW&!_aJvR3na!__?^8eKfJULyVaew*zo~-Wj*dAGJ~l@ zNHdt&@q?Z|mw(eU-7&9Q=EQsZ24ksYdT{!~!u8Udj2#+I_fJ1o^s8)&4h#?VN7JK; zOmz6U=(hG)sy801i*oYl*ovC!+S(QDh|W2pgZ=x`{i$d?H5g0m+izEfcStdv4NrLF VOLibqE<5bn$P#&Ex+~J|`w#T08#4d^ diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/Makefile b/linux-0.11-lab/1/linux/kernel/chr_drv/Makefile old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/chr_drv.a b/linux-0.11-lab/1/linux/kernel/chr_drv/chr_drv.a old mode 100755 new mode 100644 index ce7817a9316c1f281ead486150367a1c5e9a12dd..8a42d532ee3c7060b3d2b70ef02002844af5c57c GIT binary patch delta 6968 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 delta 6810 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 XM)C&}RsXhhzBdtvghO0s<*xq)gO-fk diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/console.c b/linux-0.11-lab/1/linux/kernel/chr_drv/console.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/console.o b/linux-0.11-lab/1/linux/kernel/chr_drv/console.o old mode 100755 new mode 100644 index cb2ef0c59e3db5b1aa85f7fd6bed073d6874392f..3310288a05266c5e6beba481eb327dc74ee6f6d4 GIT binary patch delta 1938 zcmY*aYiv|S7@e7&yL*ATWuaU8+OpfS#7f$ImhxzeYg-9atOzx>Xz7C%wz9N^ZlMUI zgfup!A&8?A1B!wXNYp3|3aDTVs0pAZzAzdR#Au??A0%oNHGb#bw241@d%iR0obQ{N zd$T8w@e{}R>&t!9t}w>-7%9U7WY6Ufs57=6D4H>I|O?3$T zYG9=fpl?%+n=!AI27VB{S6E3D5ACADC#`N7031NLX=XcH>-j3Tv1Ca#l@E0f`qHtsl^e zIz$g+Eh3q+h&S4Rh1yG-HQHg5>LxTDz@|E=SLWspXTWq_qCQ#b6kO|Zvq3dX8e;>L zA(bM=NCB6s8^AqCE>oj4m+>fYSXIHh5jd){fzxAz?_^@-sK?{}w?{ia<6KmniyknZRqVVh~n9!PIHs`M}aOFc4+364+GdbVq(J zzo570NBD?7nSY7C(!PS)hIc6^LZ<9(q~p!b#j)%{N|>l5^G$)H1M2m*BWIot z_&a%v-s6vY_tSOqTR3QOAk7Ne^!xtA44a(JC)lDf?Jk;=U5wa8T+%d7P%x>hi$*Jt zB7ZHPOM}$g4bDxWd*6-Vc8(2-14I5nI+MvV!wSymKZ~N3Kg0SM|8UY8oH}9M`G4y~ znPI`FbldC@@75#q+^kR1vsHgQJ2aPLzEj*q-E-_Yil4>|XLuel0h=i)(Yb-7_=fA2 zK+t<0r*azYsC!`d_8~TUf$~k|*xZI(Wpz)K$8yun@#2(#J9GkfZ_7x8O0_d{w!^J+& z_%EfqT}vXVzD?bc-odU+q;DXydiy}8dsAIUIvq*(^bQV{N5ipLdAg%B5_5>i#_lb> w-Ra1>)RwlcEnCOaWzX|*6~1Ed^ZM(=9DYOpleoi}7N$13IG#OTU6C&O5A=~X0RR91 delta 1936 zcmY*aZERCj7(VCp-1aig9fftQ+dA59B`nI?t{vlR!!hQR1(7eqQ1{8kRw*lP9Si}h zW)lq(0w-uR5SJhcXbi|gAZ7{C2%-u2LnKIu#E%%Ge+f9EUCt}qyzaLJYDX-Qosr(A_~rkcqhSKC^ZkNh>jrg|Iv zT41HFfL~YVX3T4y0DcO*S6I7Itlv$APgpr9TAHZv3+vou5fIiBOb_SBvp><2+yHA# zSYybyi)vy02DM!*5Y~;!m0FQIlsQ&PFNx2*hP!5tjU#Uh4ss1(Lp2Xoihs?u8~J} zj?gnDa<^`$rd`uWwN+SW5wj6RhBl1L=teOttTZO*!MW@b)=qtGW?h}1#0!kpi?pJy z)5B;(BvVs~H`;-Px=5QfI$)D3L`g;`u&J)FJ!#nRDtg_qhgwOcddcRl>LbXM3pk!nSgH;p+zGsvrW(-u{bBL2&}aN@ zE3=d)V?U56z}&e1+XOv*1oD^=gs;j3UUStCVKo#?-3FcqEM0?xF(zw(P4%blEG*#n z^p3(P|3sfCyg*-Rx~QS~ZyGV|skwxl1Yys7Tme(R(?NI^088biOwU4KQyl_c1gz8@ z=ojM@y{cI1e~OB;6J+yB(_7{t!41-y)1AEcXS@jm_=c-}E#;=nhW;MW& z0IrwTs6Ja9ZuAkwTgb*%(jPzk6`AseY|_5C11ztF5_pSKN#<*!blwT|CfkwUtAl|q zzFxl)hupC6~0jq&%+;u?xARX`GJ}b;O>JfUT^$B{uqp!>g&t8K0PIDJ^&$s6&)tKQN_Y)JenX-0W5Udw|p*I9W z-U)P1i8JK!5gA`D{b2&+Ti5STZS+Au=UaFv1h0;4Z; zh%kt~ARcu>DnOjnKZjP8&quT64qXo#KS{jVAsRuP*BeT!X1oOZ3Wpv8og6=0>hsh_ z`_fx_qWweNnP_@2`sCX7RA*OvJeo@O4-HqwB2`tDL`451qMLgL`g>B*jeP^{-2>ak qPgcC_8c)wX!pCzWR}4O(zfF|$Tl#)tjxi-dO>}8IZ@jiTRq`)eG&PR^ diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.2.o b/linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.2.o old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.2.s b/linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.2.s old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.S b/linux-0.11-lab/1/linux/kernel/chr_drv/keyboard.S old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/rs_io.o b/linux-0.11-lab/1/linux/kernel/chr_drv/rs_io.o old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/rs_io.s b/linux-0.11-lab/1/linux/kernel/chr_drv/rs_io.s old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/serial.c b/linux-0.11-lab/1/linux/kernel/chr_drv/serial.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/serial.o b/linux-0.11-lab/1/linux/kernel/chr_drv/serial.o old mode 100755 new mode 100644 index a91fd4ce1e5dd53e4dc616939e9ddea426fc4488..b1bb1cf105fe7223b220c716e1dc3b85b3a5fcaf GIT binary patch delta 1385 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 BB#!_9 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/tty_ioctl.c b/linux-0.11-lab/1/linux/kernel/chr_drv/tty_ioctl.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/chr_drv/tty_ioctl.o b/linux-0.11-lab/1/linux/kernel/chr_drv/tty_ioctl.o old mode 100755 new mode 100644 index cd1e0548d64c2062d7b5d32ea9564b63d2418699..39e320e258ea7f4f49dc008a26a3f2e6381d60ce GIT binary patch delta 1814 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 delta 1228 zcmX|1cOE+At59@jmF>y_58P_o9vzc`JZ!s zXYSmY=$`04anea{G+E`BcBWQg+TU}=glW~%Vl3BJoaoCnf*kIwGRWCQwwatq)l_=0 zl8|2`@fm5$ev%T_6_Oz zGDdLz3gAo*k-UO`gC7#=BLv;gQV^`+7WX^(vEV#>cDLYoE)jK7ZH zMWH@NXC-(^s0n@9mzwh{tRBEt3RRd6RtwcI9lRmb4~DMyxARYRuRl?>6Eg>}!?%Un ztKajtwQ-uc$nL48MgB}_yB8yw{F5MdAGDA`Ixc%1+DzFFzaQF>hW^h#WBnO)72@Pq z$-{)PH{y(waw*l=n^4&#e*JD_6vKQT@K6*N`q#p#fb$o@7oV!ZSOcua7-5?q6B@ty- zj0XJ3pTZ}Vhfvsp3MS{$6h0r?^pA|>7+(PG$ecbAoWbYo3qem@6y--jn+FYIG&u{t z1Y=MKRb%2Zk(^e%WEv_Itg;q>5(x^F!w-AMGRrzi!cn#5jv> zMcFSX6XV-i{HX2^&ElPUcW5;HFQtq|@Wr^p;x~l$g?IC;-WT@xE`2s!!{hp=a7x@U zK8{pBeTT5d&=jb^Si+BZ54vw#6jtV+bZLGU9rjd$=CeePUJ*&neMH+a#{Q!HiE%U9 zijuL%lVdwU+CLQ)V{v^rlHim2Or$Pz9cG&a diff --git a/linux-0.11-lab/1/linux/kernel/fork.c b/linux-0.11-lab/1/linux/kernel/fork.c old mode 100755 new mode 100644 index 77f9efa..816fdba --- a/linux-0.11-lab/1/linux/kernel/fork.c +++ b/linux-0.11-lab/1/linux/kernel/fork.c @@ -146,115 +146,3 @@ int find_empty_process(void) return i; return -EAGAIN; } - -int copy_mem_clone(int nr,struct task_struct * p) -{ - unsigned long old_data_base,new_data_base,data_limit; - unsigned long old_code_base,new_code_base,code_limit; - long stack_floor,stack_ceil; - - code_limit=get_limit(0x0f); - data_limit=get_limit(0x17); - old_code_base = get_base(current->ldt[1]); - old_data_base = get_base(current->ldt[2]); - if (old_data_base != old_code_base) - panic("We don't support separate I&D"); - if (data_limit < code_limit) - panic("Bad data_limit"); - new_data_base = new_code_base = nr * 0x4000000; - p->start_code = new_code_base; - set_base(p->ldt[1],new_code_base); - set_base(p->ldt[2],new_data_base); - - stack_floor = (p->start_stack / 0x4000000) * 0x4000000; - stack_ceil = ((p->start_stack + 0x3ffffff) / 0x4000000) * 0x4000000; - - if (copy_page_tables_clone(old_data_base,new_data_base,stack_floor)) - { - free_page_tables(new_data_base,stack_floor); - return -ENOMEM; - } - - if (stack_floor != stack_ceil) - if (copy_page_tables_fixed(old_data_base + stack_floor,new_data_base + stack_floor,p->start_stack)) - { - free_page_tables(new_data_base + stack_floor,0x4000000); - return -ENOMEM; - } - - if (copy_page_tables(old_data_base + stack_ceil,new_data_base + stack_ceil,data_limit - stack_ceil)) - { - free_page_tables(new_data_base + stack_ceil,data_limit - stack_ceil); - return -ENOMEM; - } - - return 0; -} - -int copy_process_clone(int nr,long ebp,long edi,long esi,long gs,long none, - long ebx,long ecx,long edx, - long fs,long es,long ds, - long eip,long cs,long eflags,long esp,long ss) -{ - struct task_struct *p; - int i; - struct file *f; - p = (struct task_struct *) get_free_page(); - if (!p) - return -EAGAIN; - task[nr] = p; - __asm__ volatile ("cld"); /* by wyj */ - *p = *current; /* NOTE! this doesn't copy the supervisor stack */ - p->state = TASK_UNINTERRUPTIBLE; - p->pid = last_pid; - p->father = current->pid; - p->counter = p->priority; - p->signal = 0; - p->alarm = 0; - p->leader = 0; /* process leadership doesn't inherit */ - p->utime = p->stime = 0; - p->cutime = p->cstime = 0; - p->start_time = jiffies; - p->start_stack = ecx - 4096; /* by lzh */ - p->tss.back_link = 0; - p->tss.esp0 = PAGE_SIZE + (long) p; - p->tss.ss0 = 0x10; - p->tss.eip = ebx; /* by lzh */ - p->tss.eflags = eflags; - p->tss.eax = 0; - p->tss.ecx = ecx; - p->tss.edx = edx; - p->tss.ebx = ebx; - p->tss.esp = ecx; /* by lzh */ - p->tss.ebp = ebp; - p->tss.esi = esi; - p->tss.edi = edi; - p->tss.es = es & 0xffff; - p->tss.cs = cs & 0xffff; - p->tss.ss = ss & 0xffff; - p->tss.ds = ds & 0xffff; - p->tss.fs = fs & 0xffff; - p->tss.gs = gs & 0xffff; - p->tss.ldt = _LDT(nr); - p->tss.trace_bitmap = 0x80000000; - if (last_task_used_math == current) - __asm__("clts ; fnsave %0"::"m" (p->tss.i387)); - if (copy_mem_clone(nr,p)) { - task[nr] = NULL; - free_page((long) p); - return -EAGAIN; - } - for (i=0; ifilp[i]) - f->f_count++; - if (current->pwd) - current->pwd->i_count++; - if (current->root) - current->root->i_count++; - if (current->executable) - current->executable->i_count++; - set_tss_desc(gdt+(nr<<1)+FIRST_TSS_ENTRY,&(p->tss)); - set_ldt_desc(gdt+(nr<<1)+FIRST_LDT_ENTRY,&(p->ldt)); - p->state = TASK_RUNNING; /* do this last, just in case */ - return last_pid; -} \ No newline at end of file diff --git a/linux-0.11-lab/1/linux/kernel/fork.o b/linux-0.11-lab/1/linux/kernel/fork.o old mode 100755 new mode 100644 index 50b46a261730bad5e7557b47a97b1840358b73b2..a9877429bc94bd4f1e9fc3b6f2afc81a431fc491 GIT binary patch delta 1654 zcmYjRZA@EL7(VCp-uBjW!3&pFp1LH(gl-?uQco7{Vz=Xu}f zIp^Ga+NJQ>?XTtvCF28koed(1#jZL#V+x~7;VmsS zz#heR1#60;=HQ?y>cCKxDZ+M-M6RV-7*pE_=Z>LW;noAF*p=6jJhX)HV+(J3A9JJw zn|L!dF`17A-V!&+3M}#`2y3!~^j5;Uyei6&v=vzyGxRxX+DQdN=m&|kKaV6u=mkVN z>X0~uehw}?yd$%lQaY)*Lg-&pJx;2GJ_^}}b8-`{WcM+wKPvQmd=)FCRwVQdgcyI4 zDs@5+QB0g{6Z$O0#7TqDD=AQl5%CeNdw zb`usd2{Y6lvMJI|dM{y3-XVSO3B=e=tHleuH)glMzJUHVYLmD?J7dUTH1&P`6G5( zgY5{J%s5S?OhKZ^ji^}5>C|ZQ7Yp1-_V8`+Z*n*P5W3B*`dgT>$jj-t$y2xrUO}If z$t2WyC1J%fGE&O;I>MSvBYiz#9rYmNRfG+h3D?X3zZ_dOHO`mepA<(=60U+@KaFKE z!_3FYc$40+n2EBKtw@Cfk2>qao1a?31tgP0I0&L6`48%K(8|S(Vj8#`k+I^Buv8`O zJs3?5u5BPo!HV2r{y@#Etl6A+pw?ri!I!C-{5brano)R$Dn<9hoH4W|;cdqC;uSr_ zSlV9}2&R3*FM}<;iSL44>G_=lWSyR~VtaO9D9SAM9SE)TTesmqjIAG84a<26+xXO< z8e=)X)6QR}hMXG&kH=w<8cvj>#YJy0SBw4ToZ|%*%%W|Sn`FIN11y?1j zH?beS&GaTz*wDIqwZ^op7A}Mm`zc#;FkM~i0{z2-;lR*nC>j_Z3A7#>iG~Na_C_Ls z$iUF(cyVb-FjySv-5Ut52!Z|K=Z3-&72+JD@))~q zfq683Z!q>b{Oa|nXOd}C6j9_e!~rin;`6BsD7ItSgb5T6d*KxnJt>S;!X=+abU5HU z6plLX&z|Ks)MLmNp#?p)$fmsblZH+|Hap=3zt7s3&DdQI@A%znwTrR&_>^zw8!+wH tVt@OWIHVNL$4b^7<>yK+S_(D%KwRR{SRHd#$AZ;y!|M2$9gddO{Re4#CrtnV delta 3764 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 CAuALB delta 10602 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 diff --git a/linux-0.11-lab/1/linux/kernel/math/Makefile b/linux-0.11-lab/1/linux/kernel/math/Makefile old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/math/math.a b/linux-0.11-lab/1/linux/kernel/math/math.a old mode 100755 new mode 100644 index 28f3b4e0ea31692a92a52d339d45bce2ce4459b4..706aa81e836a459b37a33c95110afa1b2362c13c GIT binary patch delta 1226 zcmYk5QEXFX6vw~s>vzw+%X()=r)%RLE;_O0t z&pBUu+w18Y>0>=KIyN>mHoA1r9&eRAFXj9G|Kdm{<9Q>Q(V?YN3Hi>smDgnB8zqE1 z&7qecd^+XoskHqUlhW2{K0?|m234VyJ;-$>odaywS5WcRw`}(DR)JPfc#m1z>$qTD zVT@@1EHfPnaXR%0qo4usP&CJ^X)R(p&C#K4=128l<1TIs?`O}25KaBcGie!J+p$bg z4T(p=n)2+V$G{GKi2O7-Ojt}i+KJb@XTdv>k0|#D#1mN7rQF>RyRNc`DRF zlM7cl^%CF4Sl0OX1e-V5`~E=BPh7V5<4S^tIblBqR&<=BeE@BmdU&6m13Q#34XeBH zIlA({bH0O)qU#yF3y(IVYZlI4>VW4UI6-sZA||h=Wp>(!z=QNSdY=XRv=Lm&G7r(6 z;5l%bKH_Kx;0)El{;U?XTpb+2l;f zqh`^Gsn>-$>GaBT=AyGnmdroS8*m+I>)ZGR-&e)5JVY&(yWhh3p9(~*#@AQtZgJA% zN1lp1?4~#IuHrXk^Ov@7mAM>Vt8@AM3+86{?aop;nDuHwr8pZD@*e-SP1F6mKY6e` zS4al6d^K6FB&X|@YGLkyT&a{S6@%KsfIpZ@4U}?ECsXE(8*QHNn2}O6yCaKI9y80G zU(4$zw`N|(%=c>^kqOfuy-zNiozZ*c!=@hXlZVY2jtk}zN8jAyc*DfI`sB|h%h7KZ HyBgNN!A#U} delta 1241 zcmYk5Uuau(6vyxHmwV5>wYgoo8*FPUT-TOH+V0*aY1S$oU71?;&~3KjI@{IQ#5OLy z(Is6wrcHgAf2fG{H<;pzum_niP>G6Q2ZJfo2Sr4Enm!bfA}UDrMHqU%St$l`?&o~Z z_nh-fe#vi%&BSXhl#2K7>y5AOIqu#j*X{9r|9>%+OuB9=nd)1;7!&6|`23tGe<3wZ ztZ`@+TJ=@G{gk>%j8ZqQupZKlTu{=aG^Zg7>jbyx8>qNl9NB%NTA=GFe9x?#?OZVK z;5?%H?=sVDh~=IS88zwz$DK5@PWK=t5*#fWRyXBCQJq)(!3iMHMn6Q|}YKhm|Kf&_|^oX>tB6$?cqSAg9$*~Pi8m0ZuPNFV_ z4mMXXVH{maX*cgAebTGIVA1tYC>;{wWD(qYsRFVhq;;@lXhw+nUMBfYE2)Ey$Z~H86=C+ zeh-tg8!SD`r%{G6FfhpGK6COf^h9}+h$D8Yg`1(x(SNAq#C>2wsHG}xj^RW=&R zTRhavY_VQPE9iO>cj3|?x@O>Pqh@$!!7;i7&S7#FU0|pA6nHOm1DhoTL?S;Xs)my|jSjX%td)PB1?M-lrL7c|*i3;R~RTV4BAUjlKq-21|0# zumIL+3ELK7w`dusJ2T9BSgX-PTrqy&Bu}yTxn4WHz&CiWI!_}bw^$}0YKyiD*L00B zGRoj+MkkN?juQBp(H4wJI5axVYpEBk*A|PuMk%mGXO(X@h-EcwdNL%{8S^ut)P8G7 ztf=R$Mma9kTUML+MP0M@izW51^&(s^)pXo{l^4lId~ms1Xm|t9?JUq5i+p_9{wIqr zzs1F-0d~{NxT~gCS^2f*TUnnk1T*e@P|VE)*^JBoX7y=!kJ<>Y^n0^~xvUq=XG&h7 z=p7!N%BP>0ihKE7Fu&OC@9pX7X2IJQyp!2eK{oHrrAxDF$-bqhGnrGBkLxm`(h^w~ z;uW=4e?$DNvbz^VRQBs}1V17q!12K<1Rs2mm}r`+4+b?P5I-J#Ak-H^_y{3BsL}Wp9#GGJYuIG&{Qm#* zzvtZS%$)7|rt3&rzdhS}P)~nnl+q_Z0G+3Xevbr%y|Tp1V)hLFp=IT@b5G zY^)S0+JwrGv7e(&U92|tU9_o-VPii-gUuMQ#@N*mqYxv;X3(uJ))^b3L0xPxR^JxR zW@B6UX5^vvw~*ek(ow2v>_zkmASR7{0pp6-#ClPV$OUI*VNk;T-sm6Lb6LvX7MxR2 zuNdA|u%TnJdfTwgp%xkF6~I2VBfot>I7)rU>;PN(5`OTzBx7`#|8<(CV{mq2S38Y^ zOX$3eX3%XHxRaj6#NFT=tpJzNt&5g`$HCq7v8-MQ?x8901h|)q;OD{1X+#U}0rx5Q zB^eO+hO77k=mVr`n4stkcpumhVaI;3LoZ|6B;r23g40dmNkr8mCn6R1TfXdW)xYwC z)bi+Gvh4zOnoQuZ-t<_wm z;eggh_|N#)`bYkvalcM+Z{kVa&Ic3s>KUF*+^yH}d?KUw@vTJ0ootX7mG?9z`Tk^F j=lJnt#{EgW54lymL*iZG6XNBTC^gDglTCA1l7agl!fMWB delta 1175 zcmX|=U1(Eh7{}lD$;oq~=B;U3XuEomS&K@mr%h`=HtJMFyE3NL%KT`pu?cN7JyDa| zio^8AiFAx@ub>V^978q`#)yI!dLatx%@{)m6F;Dcc;kgs5CykA|Ex5S=luTv=j%<* zId|i?gsoy?4t_ycbDSci-omQn!`RtV(mj%fQUKTk-+A5xGM!b!fM=IMc|) z8YN2gol=5tA@M-iaqA@!oG&`!H2osXBLT6SuLvq`0LN`TMRm9BppAu;xZ!?ruLt<^ zm(sf$ zi>M~^Zcf;LXnk!F6Lz4hl}zoN=pgg69SGDE?n#Dsek5@nnXlxm|BLlhHk?i>-i6Et zGS|>q65V9}z>1RSA#)1@`mx|MGTjgZ5Sz)=V_He{k;z~{No*(6HYc2ZG9TEtfi=s% zNA*ybqg0;E3(QGEOpy5%>r&HVeJMw@38yQuMv6P!f!FA%lws~}oKta&815jL_<}@t z5852=MNI-6;sF`w?p-S!=62K!fep{VPtHhX8Bf`NovK1DoDp;_;~&9kOm5`Un6?kR zlKZf6Ke&lI!5K`8a|L)5+``u-x<0s-r@&e8Djo+P0JrgREqoB%u7XEpLB#FJ;}77g zs2alt#lM3OgNZB9F%EY47`9EIJj9bY-4Wc0u$t!tBoqA0J`E1)_x2NB^l5{n?{f>D zDV~ucZpH0Vd|1ZuDzLL4mupho1`hF2`0e1Z_|1wtz!9FbKe0yvvJd#Sw)O{iou0Cf z-D=uF_KmwlKevlQtMxIvD|7-?&q7N-z9Flr8o!ag%T}GibyoSRIwuFE`d4Dc0|*)cR}t zHgZQlvp37fb*1f$ZqiHa$!LQV<_u0UKavC;NQd|{7Bd}J@eDc-9n G1pfm=B*{?# diff --git a/linux-0.11-lab/1/linux/kernel/mktime.c b/linux-0.11-lab/1/linux/kernel/mktime.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/mktime.o b/linux-0.11-lab/1/linux/kernel/mktime.o old mode 100755 new mode 100644 index 24891cd34835da649a7591e9415625c5f5194fb7..e3472d38ca9832b52b1e12f57eda705286a62c4d GIT binary patch delta 288 zcmdlZc0g=`0;9o3#U+f4cPAfX^pz4}WME(tTg|}0z{A1|B$>oPYyp-H43l-4ltfR1 zgrq@23Jk0)teJTw3~W0lr!W~a9-BOaNsZ|W!{P%>Ovxp=@s+8GMGV=gMR}a0Di3=E4WKV%c0{D(t;F<>$;r#hkTm7y%rOQG5UZ delta 268 zcmX>gwnuD&0;A4G#U+f4hbJFn^pz4~WME(tTg|}0z{A1|B$>oPYylQ7#>u)&N}@kN zLed~11qN0Y*37&T2DS~8Q<#hy_f4L`q{hU^xcC4QQ(|^%QC@0Jd~SA0W^O7&Wolv( zgMLPSZmND>X-bKHezCrPaC}Z;QoNCVPG(+dg|2~~p`k8NKp!fg4>5qDBsV^@IHkCR zp*XWDwWP8j6(j;OZn83~@#Y9t3r5D6$rIV;Gp0;7WG`ownY@zSpHXM>Pj+oasmZDw q%8Xi*Jvr1FLnar3$(caXWb#2E*)jPgko1`>$f?d~v)Pi9oe2PEVM=5G diff --git a/linux-0.11-lab/1/linux/kernel/panic.c b/linux-0.11-lab/1/linux/kernel/panic.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/panic.o b/linux-0.11-lab/1/linux/kernel/panic.o old mode 100755 new mode 100644 index 1c0401190b70e38769f32af365ea49ca98ba194d..e5f81dc93bfc318eac5973317e8cc460f3243c70 GIT binary patch delta 804 zcmX|9O-NKx7`^wt``+B!yqsAWDn%J;iK%a998@wxu)>H4b1Xv*W}GP}pQGl;D2ld< zHbQZAS46mI69o-|A+>4aCfXQ5e;XkPqLmN?Lf>rFVTiV%No=Fi{g~-)ivN%Tw+m-#)m)v~jHq5;3@ek%X)icF!_F3+}C#!WYN6yl8 z(F;hc*&7}k&3L(~blw}A^m=9{^O@1kr0;uvHa9ih5NV7?8~kL-i~bY5k<9H}#xKV9 fedOk}d#X6+ZVR3;6QL^JZI(mF`E2oZXx9D!^JexxIl6lgY$?hxYq8u}*G(mmHX_S|NNToWDz2`%x~*D@YlcFX zIux|LiZ0c`j!}n25=01s4jn^+poHiUK^==OLjTXg%bVZ#z3+SfH_WWot=8RJaUMz` zJgc}CKQ+pvbzt+~qka2fe-}d7+Ro-@gjRt?n36h`5YB#PySk6}wRG;V6ZoP`Ojf1( znXPl%8}y1pRu`CP0e&~wqe^g3nIlBV{e{eV_#x$PKwL<(s8sHAh*TSk-OAPGsqENu z6UB=NCzM;eBU+SOGy!!;o-|Pv4&K5>UzSs6mHSPaUR4`;39lc`9_7B@5h>*+cf=*- zJ~PWI8R@V%Jp7s086Jacj6f8W`xYXDJKa$3lqs`X!|%A?qWkZ2fc7!#0ZbOOZicL? zr897bP#`LBS*NF%J!zycwlANU7rd62Hto~Wd&E)ecAk@!^(8-` ztIA8OffAX5&**%yWN)N{UTsA*jsE4R6v$v=F#wXxEM`EGg^}$%h+<)F15@mA zK#KLs#JA~;wVOj3S29jEW>z-S&&bbB)z2$UDbdd_)(@^ME=kRGPRz;C&&kXytXFDB=*mNO$CWE*w? Zpo}lOI_m-s1_q7E6WPT#Phfw;2ms2uLInT- delta 221 zcmZn={v$L&fiY*I;sl!`3=9mVKnwzb5Q>3m6_CNiVgMwWST5J|{6L-bgE-p4;U@-%+Ik+~1#LYo$9-z1(1B(TSEx@&7 zvy1X1M)n6lX>kdr$#+%uGd66VtNMaT+!H9on9W!VRJMo%s1!&u&e8okd5%UXM75*GprF=jK?0+lV|04fF2jB|ANO`f9>%D8#* zCk;QQlT4GHG>e#k+O}z~Wi*(aqGiZvJ9(OxGh_DVTUx8wC+{};Gr7e`gU>)eCo`|K RLO(mTC@(c<^ETsGssMh4OLYJM diff --git a/linux-0.11-lab/1/linux/kernel/signal.c b/linux-0.11-lab/1/linux/kernel/signal.c old mode 100755 new mode 100644 index 2daf6e6..8d5a65f --- a/linux-0.11-lab/1/linux/kernel/signal.c +++ b/linux-0.11-lab/1/linux/kernel/signal.c @@ -127,11 +127,3 @@ void do_signal(long signr,long eax, long ebx, long ecx, long edx, put_fs_long(old_eip,tmp_esp++); current->blocked |= sa->sa_mask; } - -unsigned int sys_sleep(unsigned int seconds) -{ - sys_signal(SIGALRM,SIG_IGN,NULL); - sys_alarm(seconds); - sys_pause(); - return 0; -} \ No newline at end of file diff --git a/linux-0.11-lab/1/linux/kernel/signal.o b/linux-0.11-lab/1/linux/kernel/signal.o old mode 100755 new mode 100644 index 3fc350c3884c9ac8d25f7abbd6a71fdd445411ab..80a005d6cd87293072f680e1d0b6cacd0d030b98 GIT binary patch delta 1306 zcmX|9TWnNC7@nEVIcMkWrAtfqTFSDg-QA>gw_8f77m_MTvk;Z^qHd+t-d4JHTPSUz zjV4ms#F}7i^9L`qCPYZ21RuyICB{AoN}@4F2r9;xqQ02M7ZOPmAC&(;5GI+K@BhC4 zcIH2G`{!F1A|eyG5%V|R;xP{JJi~QMnXMH z0eLF6Q?*lpHwY)y9m2ze>(w>F1uD>>7U7^H<*A{lF=F;Gk%ZF@>)?-+^#lcAr&M{0 zzTBanqTuNh$h&adD;TIR;b9n^NC}#!*QifpfcghLjr7w9nOcGW9De>k_|zQ#0+v)| zXahZelDla1>O9txjWiRcd;)GMUnq>S+(VSBWPCi$WHVu}iU{CllCKr(O$QIRVhPTv zZ(1JQeEChxSXN#F9nNZD3Yd28@RpNX@LiO}qGT1H!zE|5)+VhD^d{1f^qBqtb}LHz z5jNm<;pWSMmtfO*p!Pm?BzBNQ^)L*j;5ud&vEyja)cEqJ1{QCFf-COJlGN}W(k-^M z{!m(R#rbi#<%*RKP{Jqav#^1(4CwAQJ_}iQo$m^Tc7KTa-}o|o`JBS6Kfsdv9li#Z zCs9gIE9_rKEcRCJf>%6EV%s0ZUp?P&xZ$mF&(fnmT64us?2zJ8uRoQ3NTh~y$3}C7qTHJ2Fj=t*yM67j z=F4DX#S;G*htq+(*z!ow((Z0!Yyr*$Eq)b#5BlL|&}*Z(b`^WM4DOJn9j(G&7j`2W zz)^h5@hw% E1FPKdH~;_u delta 1694 zcmY*Z4Qx|Y6u$TFzP@+cu9W??ulwuP(qZP-{RxOHE@6_*Fb9smIdF8Yz@X~}WiS#A z%0MtWa-WnR+CcSC@k}`xvhI)YbmbQD*ajH=Y zESqU#%x!;)@NyElg?$A%D?8B15_ShUs}`Z-750O0N^8npOjTM*TqEo!DQ-FQgnb?O zZK2t7u~+#>7sl&_V|`aAlWpWI685E(X*mtTo`5)t2Z>rk#g+;C={wFUVZTb1t;lL& ze*#jrI=%#M*-Tdh1)_AM$AvuvLA|#2Bqq+&*1Uv99mlZtDDBA9C=yybVWBw9cP*t! zHBOocVMASjBf2LtL`>%ht}fMx4QT6Vs(!T^HQIVo2GzS%VFTgWs*vn7K@3LW>bt{}vV9P6<-|O$q%!;c6&9;T_wN zcjEVc0~2lixaj&aqy&9Dw_Z_+Csm}^D;LlWQ_m8v`UO|1YLU>ZJ8(7BO}K3AZazeJ zq~ZiB^O%!neimVR6M{@8&SA+*vYIZ0dXj`Sq+sfI!uJrCX^BJylXD0gYJ$UYyj{0A zoLA+1B>5L!L0$n$@x}>3c zs0A^D4qSz=6JLJVTMZvN9xVM5i-;l$(eN-0L*@l+Q-rpm(_#^?=!|8QL$$LcrAY&GM;atksLScGY&LK)&{Q|~sVCVessKTm8 zp(A}SAA#%XvuDt}g>`wv@Y*~t6uIU!__m=|4A8e3z%J+)#t;8YnPaq(6%fNLKSr{r zJ23n$1`Al>YgBA65e0bNPA6MkXZT&^{C+ddHQ#ZcqcL-V$ulwNMMdHNdDKI`dscc1 zH=KUbc5Ou*VzFvI-e{9gcYed>k%%ORUuc zZqu!eV>7?OEHj{`P}2ZSh-9Mnu4DhdE#4Hgq2p^jv?N2vj2jEvTAhLpx;R|Vd zG8kJ9wY~uV9wI)}d0-#X(!d+j29HkqBrpdaJ(Jwlf@R#PucIL>@^rF-f8sHjX~AFmaj*z diff --git a/linux-0.11-lab/1/linux/kernel/sys.c b/linux-0.11-lab/1/linux/kernel/sys.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/sys.o b/linux-0.11-lab/1/linux/kernel/sys.o old mode 100755 new mode 100644 index 5a02413b10991c0c5a17cbcdaae455bca2e9c3ce..d99724b784d4d4e941e18c9f31b2d00ac34adeed GIT binary patch delta 1853 zcmYLJeN2^A96smpe*NBi#d|NP_kt)03AW%~K+!oYGDFM35>fFBMByUIMT|?r{9rb7 zDzrvNR~B=#qPZGd4VPiobj=Faay98|)n?7**4K3X(Q2)J&r9>(?S1d_dw$RJ{LVS| zeec=$+4!3WZELj@;&-VJ+hzURl@Nwu*Q9x04|8RH3+#&vFlHl5EyHZ@ObSEUC!v;3 z&|uly+%a-JnY1RDv5jZg<2+yraWT!TJ+W2ZQS3Vg(y$6pgiL z_~`{6Zr0DXgb26^;C0{w%B?`LA;Cqaa({xop_+@Za*yghrzZOxLN-FYP`Q^O_KGFS z{Z!v@BFhhBC7Y7mU#{F!yvC_wh4Qtvw+M4HI@QV@M~qjjQf?Dsyy8*i9@Lc-Df$Kd ztr%0U+&sj1MT2txgxD*#DEEdwKvhK}=VpmUAmH?puhNTm;J$QgBCMkm*e?y zD4|dL3gj96fv>5y5@E5+teh?Uac+Oca9Rz6455By>vgjnk0Z^8a3K_et^h9rHqyGg zW5TQecIc|^^3Rgj^ih9Q4(WINS7fz5IIXt7hBF;|v*-Pey^aHH(EH#C*rDUNyTE>- z=5nK$tgkTm4r8(b1#RTrk>k-6=7S>w4pAXAE^s!z#RJF(Tp;{-C2#4~>Avi7re(02 zYkX$%C5Llt-lpHsd(!Wb`}Onb^MZa3l93bKRYQiD8B_XddfqyZ%^zenSld8K*x|LP z08Vr%Up$Tj!>_Pk%>Y@IA}9D5RTfAX|5u*XRns%uUWC2?t-4g}BJWHs0NIct2YLOf z1Z3k~GE#+P?^kVMa-1(YyxHMR{d>2ehD64=es_9Be;Z=!k#G*roF@*Cg4_u5LW(?q zRW*XVlp-Y}cYypbMIM8FCrG^CQ<+)0AQK=zXS9XCX2va@4CKl|eKIhA4*rqU z0jT&;vj;G;f2!&gk(c$?fhswyvx0@ur8wv}ejo_>AvWrGOk@M}=b?Xz(QMR0-q^0`oEQ4vCJL%)jc?VkQ;=nvssZv%3A_Ih0z%9jbfEtFZD zg$)}Lp7ZRP+FVWy%O;O~FU79bXF@Yp;tf<8UT-4RBjkiV_S#)`&Q0XZ@z_ab%e@ti z`h=MKk^U!CQaH(3=1~xN*EzsEjz6=!Ca?qFGdnNNj=bbpUB=U<-QCySlx$Dv$?(S& z(Ve>!tcxwLa0=+A%f~ iX-m@&<~%Ysm~+XLuj`upeA%q`k#QSDg8qVQgKMA}3~GsqHEf{0Y&JHc z;iVlAwJtM-@Hr9SHt;^_{0GM!{aj>9=QN7;1}?Itvq9~%*X4{MWD~?y(wTtMEmlkC zu=>Fc)Q@75&2jG6GsQbzE!Id+Pj8nnwxH7>opHptMWb|z5#tt3(iv7Y6exZL{cRZ2 zDxF^zigxLogV^nCmCg%ljOvPyVNB<5+=xqO77KKt7?I9A4$zGQ+$Wu8^%K?BUgogX z<~H1YdVoL74y+{TBj(L0u%t%LFt@{|(Zqqs zds@wUqU#NWm7QbdGU1JJ`*Vhi)-lKs@>RBeVN~LEq~Cc@qY4T^kHb_AtfveOl?fvP zY?D%Zyh}LvfH$mdRaiHkS=O%4)Edj+AWNDCxr; zy@@X#$AQ^>AQywIOOlfuDwl$U@tSf_)umI$zq<7Ml;R#&M9FK)#VA8?aRe$aj+D z1uW1B@_drKANHLfKVBf0{tU7oM%5b{f`xA5wLAoORUf0j|bJHzMjh`nl$zgl}q zo$!aXCiSI%h4$%WdS>xF^z+a+vc1>U{|bE*jx`U+={d_)O?pU+sO{;QB|oC0Yw(<9 z&(#~2TZFaAW#3A&nd-Up#cK@=$#8ogCVLl=lkKvfEwFi)kdx=KbIew{8=dk9vHWfI zZ+dCbQO+_BfXF|>57U^yk6C^(*n{6OTM%PMe(iKi#zThsKKr~qv~MUH@9poNz7*(5 zsS5Ah-QOJ^819OPcMpY|H%9w*+!?J1_w^18kCc>^mY0_>5xz!*cXi)A(A}r%bDO3o aa^E$ylWJWkq(#+Ws7QNc`kBxZY5xPv{wKNs diff --git a/linux-0.11-lab/1/linux/kernel/system_call.s b/linux-0.11-lab/1/linux/kernel/system_call.s index 2017e91..18e762b 100755 --- a/linux-0.11-lab/1/linux/kernel/system_call.s +++ b/linux-0.11-lab/1/linux/kernel/system_call.s @@ -58,21 +58,13 @@ sa_mask = 4 sa_flags = 8 sa_restorer = 12 -<<<<<<< HEAD:linux-0.11-lab/1/linux/kernel/system_call.s nr_system_calls = 93 /* 72 */ -======= -nr_system_calls = 95 /* 72 */ ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/kernel/system_call.s /* * Ok, I get parallel printer interrupts while using the floppy for some * strange reason. Urgel. Now I just ignore them. */ -<<<<<<< HEAD:linux-0.11-lab/1/linux/kernel/system_call.s .globl system_call,sys_fork,timer_interrupt,sys_execve,sys_execve2 -======= -.globl system_call,sys_fork,timer_interrupt,sys_execve,sys_execve2,sys_clone ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/kernel/system_call.s .globl hd_interrupt,floppy_interrupt,parallel_interrupt .globl device_not_available, coprocessor_error @@ -239,20 +231,6 @@ sys_fork: addl $20,%esp 1: ret -.align 4 -sys_clone: - call find_empty_process - testl %eax,%eax - js 1f - push %gs - pushl %esi - pushl %edi - pushl %ebp - pushl %eax - call copy_process_clone - addl $20,%esp -1: ret - hd_interrupt: pushl %eax pushl %ecx diff --git a/linux-0.11-lab/1/linux/kernel/traps.c b/linux-0.11-lab/1/linux/kernel/traps.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/kernel/traps.o b/linux-0.11-lab/1/linux/kernel/traps.o old mode 100755 new mode 100644 index 58ecd07d2d08be337a69a34a9c7a2485b9fd5d42..b45a59b834d303fbb1caab5fcb784e3940cc5adf GIT binary patch delta 1326 zcmX|9Z)jUp6ufvO6P9Wc zi+m4ZOI;>DOIWLQ;s?7uEX4x)J4&9QLO|$?lnlL$Nm%F-C3|;Z(kk>VNU0qg-=i-3 zNW4X8ubcD>eH}pEvk~xE{HfDee?&Bm6!VPlr{qzgKY%rr>H3>22gpAtbT^5s$zDv{ z%F{yM23tSGKZfUY#P=GVqCls3N$5A>oPMA!iN=2Oz$a)?41;-)hA_23!fk!m$!$dC z$YCi5-R7Y=#99quG!GMQQa=)(U&iQD=dqnROq-0UXGt?c-lX~m*J>Ui+@)qnU!*bJ z>TT*jN_ew+ki16;r&W}2Y0iU5ulfaMn{3}r z&r+{b*Xgs!Yy8MxlJP4H9`D^q8T82lp7eG!s3HcBGlY?;JLvNCO2kqPAmPc-$Fo!! zcKc2b-=vF?{syb<%tKrM8KHL^L5LY~w65_CUIV69Nw|d+Oby~Feji~eCnnO2ZzXK0 zeZ=<>*2p`I_Y)4NgK)p!=D$}){TA=)Bhd}o89lxDCD!qrUKGL`!8XdU|$AgLB4E`rE zM1+`^EMf>)2*&vgtOT7}E$7z!60BybZE9ZNyWs2QM4;-PbQM#;LkSclLv`~hx3s~4 z;ZVG0IODQeI2WpSnRCf2aIMSG`!e{ALNBu_S-IjH^)jl$QtYD9w z$d~Q$2|GJIQ7#;NI9Dp!rQ+C$sh;#^$LT5M4%tqPu#Xm=A1jn9(DsFZ+2~`ORaT=d z2LBL#ja}s$mg19K!o7)IJPgx`6kmobi4Lq@OLX#Y;SY@8L!_gVx5EI&pP-0w4dyZC KE1!1!<@*opne+z$ delta 1327 zcmX|9VQf=X6u$Sq*Vnh*yY6+bkZr87eXVxcR$ki;Sxhi2QInbBV4D_|IX2sEh0%!{ z4x)r;2od)~@MO%8Vf?WWFhPbL(H|I%At({!O!i|T#-Km^VZ>jEi6QDaU41X^7E5_{VjC=W$3I8y_|FkH3uLc*>oC@#a}p%^(RElSRu#wig*=_&4WR~MUTtf1+wLqF$UxrJhX3=HW`t7Ni#;?xV%o@al*~A zoAd=5(l;pwE<9avymQd4-pJos9Ds4FAJOX>?_lk?KK%%wRCmS&U46gDxYZBi3aX5=J{+ zo+-D%&cN}}^EivAe!yxIGid8SBlJ%qu$lH7wp``y_!%&{K*A1EFd0UkZy~JfQ&TC% zA0=!`hxo0874m7uI|*Ad0gu(X{Ik-&T9Y?365Xbq(UZX+Uw9uU)IEd;<+m4+5T}{l z3umn~Z-HA@m$=8FHrOCmG-wGnChy@%L=QFK{jB~9W^u%JneL-cA8FhVjczyx2ZK(q z8~>BY5+U&OYq-T>F&O3Da3h#ruMK;(H4V%)F=azOcQyy4kPgdxXdO`<}_uzJNYE13!5P$0|USHWMM87rW*{CJ-IUV z!D`bXIzzaFK{_)bya0jEAYL&WGmv6t0SOAaY<|e4%RE_>Z&5^IQF<{$N@jXyNijol zW>qRfadu`wd}2v{CPPtbL26X-bKHezAUVWpPPru5)5ej($#NUTKA{ zfu5nEZcbv7z9B?FKRdN3FEwW}8^6hB8~y@jMyttdg_IeECSMd%XSCV;Q%IZ@0H6Rz A{Qv*} delta 303 zcmbPWFu`EM1`g{K1_lPkD?s8t5Q9JjJA`IB1f-c*41gpviy4q)VPp#hQ7m8utdfkA zUvqTJiZBB8Ym|Z1PUPV_1*Bm-0WRCglQ~Tp%_g7ZbYas6s^fQ>EX-xXq{TSdlPgmn ztTr8@GlV+|q%#x33lLBSnOe-o3>0K$0SO9vZ+^(7%gmONnVwlvJeikovA=#ser~FM zUTI2+etxmOe{g(GVp6=3eokgyX@#zVo}r;GP(U9lpr4&ul$V;rP@Gwn%21r0SrDIC ylAp;?lv>20) & 0xffc); /* _pg_dir = 0 */ - to_dir = (unsigned long *) ((to>>20) & 0xffc); - size = ((unsigned) (size+0x3fffff)) >> 22; - for( ; size-->0 ; from_dir++,to_dir++) { - if (1 & *to_dir) - panic("copy_page_tables_clone: already exist"); - if (!(1 & *from_dir)) - continue; - from_page_table = (unsigned long *) (0xfffff000 & *from_dir); - if (!(to_page_table = (unsigned long *) get_free_page())) - return -1; /* Out of memory, see freeing */ - *to_dir = ((unsigned long) to_page_table) | 7; - nr = (from==0)?0xA0:1024; - for ( ; nr-- > 0 ; from_page_table++,to_page_table++) { - this_page = *from_page_table; - if (!(1 & this_page)) - continue; - *to_page_table = this_page; - if (this_page > LOW_MEM) { - *from_page_table = this_page; - this_page -= LOW_MEM; - this_page >>= 12; - mem_map[this_page]++; - } - } - } - invalidate(); - return 0; -} - -int copy_page_tables_fixed(unsigned long from,unsigned long to,long pos) -{ - unsigned long * from_page_table; - unsigned long * to_page_table; - unsigned long this_page; - unsigned long * from_dir, * to_dir; - unsigned long nr; - long size; - long count; - - if ((from&0x3fffff) || (to&0x3fffff)) - panic("copy_page_tables_fixed called with wrong alignment"); - from_dir = (unsigned long *) ((from>>20) & 0xffc); /* _pg_dir = 0 */ - to_dir = (unsigned long *) ((to>>20) & 0xffc); - size = 1; - for( ; size-->0 ; from_dir++,to_dir++) { - if (1 & *to_dir) - panic("copy_page_tables_fixed: already exist"); - if (!(1 & *from_dir)) - continue; - from_page_table = (unsigned long *) (0xfffff000 & *from_dir); - if (!(to_page_table = (unsigned long *) get_free_page())) - return -1; /* Out of memory, see freeing */ - *to_dir = ((unsigned long) to_page_table) | 7; - nr = (from==0)?0xA0:1024; - count = -1; - for ( ; nr-- > 0 ; from_page_table++,to_page_table++) { - count++; - this_page = *from_page_table; - if (!(1 & this_page)) - continue; - if(count >= (pos / 0x1000)) - this_page &= ~2; - *to_page_table = this_page; - if (this_page > LOW_MEM) { - *from_page_table = this_page; - this_page -= LOW_MEM; - this_page >>= 12; - mem_map[this_page]++; - } - } - } - invalidate(); - return 0; -} - /* * This function puts a page in memory at the wanted address. * It returns the physical address of the page gotten, 0 if @@ -458,45 +372,7 @@ void do_no_page(unsigned long error_code,unsigned long address) if (current->pid > 5) printk(" --do_no_page: address=%x, pid=%d\n", address, current->pid); -<<<<<<< HEAD:linux-0.11-lab/1/linux/mm/memory.c -======= - - address &= 0xfffff000; - tmp = address - current->start_code; - if (!current->executable || tmp >= current->end_data) { - get_empty_page(address); - return; - } - if (share_page(tmp)) - return; - if (!(page = get_free_page())) - oom(); -/* remember that 1 block is used for header */ - block = 1 + tmp/BLOCK_SIZE; - for (i=0 ; i<4 ; block++,i++) - nr[i] = bmap(current->executable,block); - bread_page(page,current->executable->i_dev,nr); - i = tmp + 4096 - current->end_data; - tmp = page + 4096; - while (i-- > 0) { - tmp--; - *(char *)tmp = 0; - } - if (put_page(page,address)) - return; - free_page(page); - oom(); -} - -void do_no_page_my(unsigned long error_code,unsigned long address) -{ - int nr[4]; - unsigned long tmp; - unsigned long page; - int block,i; - ->>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/mm/memory.c address &= 0xfffff000; tmp = address - current->start_code; if (!current->executable || tmp >= current->end_data) { diff --git a/linux-0.11-lab/1/linux/mm/memory.o b/linux-0.11-lab/1/linux/mm/memory.o index 6c6a82c6d1fbda3315d6978f68fc17de522b5f39..3c8b55d384f7c231d86e29a73078d46eff39bc0d 100644 GIT binary patch delta 826 zcmYjPTS!z<6g~UQy~m-P_v6m(ni-Diq%io%B+c}rCn1qP!u(oD@maYmHD5(M$X zz&2P!36VcVP~eY7A4Mb)5)n}!fk+fVAR<^qG|}1D5xgJguD#Y?YwvTpV~MfElOFrI zUyLzWQ5YMSfSyR<=9?=8A3Z~QiU@z{Fy~kM(Y{PfVA!MS*NHhuOySOf zfoi5Un4du)Mm#^^0(N>6j$YXVt+X4QVczHX&fB#6J#m+a<5SGnzpYX{k1^ysQDk=9 z%y$GbX$JX1@%7`R&w!8kz;_g0;hHZ{*-Zh9TXDHS}{Du8BLc<&1=UYcOy^<-B=Z9 z1S`e@K}k=V%t9auSuEF^U>&1+5I)RJ=u4_C9_h)%lf5iUCwA-!?WhhX;;HOVIGLQA M+!Nt*8+)DJ{~DOKyZ`_I delta 824 zcmYjPO-NKx6u#&B-c`t%H#2W$-g}K{;+SJfQ)(t@ri*^j2tpDpMsY+ZW=6qLlpqr% zh%mB)MIkOqh@ge!MyVD>3=vW-gUZ591X;P5O;mKxa|GY!e&_qn_nmVuZz4VspYL+E z|6q*47lpA=3FwRDZ=77oE#{1IMI8plauhX|Ofk-LlSD$^#T>?zk5b_~E2Tkpf3*d% zM#5i?OU`lqsHE~|W%$z^_0*ayL@%~#20XzYtt231r`kqt7k7M;s(Q9s7GCa{$NO3< zyvKE|3GQK)t2*$D7RhGG)QB^L`w8zCErbUM z*NPk1=rOJ9#0=3&Ow1D=Cd|bi?Dy=37kJkb0TX|FLJlV_UqkycF^*x~u&xkufSCMk zgM<5+T4z6lxP}ou10C4rjcey+4>Z$maGH4+@twC}$7|v)5XYyOFSeyp^aoh(J6>RS z+|G8GseT68Lh;3L(iea?_|SI*p5afQSCL#zmP#>Fi2(+$Hncwd4p#X~v^nZn z`6KM{`ge@_4?_m${J~n=D@K@_j&uQI)YKy3kBIkFo6;{O7MbVOvW# zt%Y)GDbT;dr<8zwo3gCdSwPnbZKeiRDYQIWMgxsFW)#9>oHZ=D)S__=GB?c%Xva#k z9vJqSK}k>A%#xXa1eRG1@C~C@5SACNTFWYS7lmAV!|_;hXe69Su%T2e(X%jJ6ya)@ J4cCix?|&MZw0i&m diff --git a/linux-0.11-lab/1/linux/mm/mm.o b/linux-0.11-lab/1/linux/mm/mm.o index 1874ff6c28f6bcad4ee0cf8736ef991fedb0c2bd..5ee305d11f1bfb1e1673d57e568ad8e1c7db2d48 100644 GIT binary patch delta 939 zcmYjPT}V@582-L*=lfjcnR92;Z6`r-h0{PqoswF5k(H$xWhF|RG->8G6E{%`L2rf- zk$jK_6$D*`2n9;16huE>M06qj+=)mLSRz41L5tq^Y!~ffd!FZgp67kfVdIhU$b*O0 zGd~F-bWI^70RTV#%+xPaGQ5lsrtncph)LnS(HLPYV+ciRzGNaq`3Mu1zXt-~-ZBPa z69?QRE!krwtsrIIhVsWI-nt1y^h1KTVS`Yydzp`8CnryN)&>5MqRp`HP+_@LV%}l+EwOtrI%G5FW&eouR2ExzcJjg7u*a+bP z>>#6DOq zLWqmRYgu8hJ#`DS(MC`zMJM8Z#8u)X;){rVVj5Eeh^q;oh6Pp;!vn;1G{x~&A{G!2 zA!foSU)YQ3E4gL&(|mc%QBSwnV^>wUW3>w zq?~vBpy%XFPB^OvJhX8gblOJjPvx%My1W(CE}+IHiDTeDrfB!&XzrmJ!!eb1IAi^U zriqfWPvIgqY1UfcspySA0$EslFaPEqD0+#@mNDE6kNy?e&5aB~90A;93~+B!_BnNW zM<$$wS+h7G36TA}F>&NH;3XX&NT31iVD5(GgBagRyAYOo%%v zPq=EJ;EGG9EApOe=iv?XdDFR|-h{2iX&TZW!JV`uO}j|m5>|Ck{2LvC!{?3W(QQVv z>OKg~?d}p9kYnyzYL-vj9#GZ|#iB=OTwd1e=r_5jd+6J_RehGLz5ec4Z={FB@mo$5 Zc(<3AhI^y&;nGNC?pcAK&3Qc?wtx1tznK64 delta 937 zcmYjPQAkr^82$d=`~NO-bM9`r?It8HSsH1mQ&LMGvNA10EJI7Bg|4<)I7KN8eaMF* zl%G&RdWawiA0(x+@+HIviFyipD2u&BrPa%zprY@)+e3S~=bZ1H^L_WS(a30I{*k@) z8vwA68o&?&`gLR^pIl4NI4e)yrfjqpl~UPExR-F5Y#@Aza6pbz>N4SS5K~xZmoYj(-Xc>!-3oG^@Bm>h z_ox+T0ehjoJ3E+L9e4SwZCD{nlizQIaGCl2w)XWEg9s3|$m^t+6V5<=FNg}lc6mcB zx)Q8SJ=hk`JcAxq8%Lcrf%A#lnO&8$M%o3^_yo8@|1nL!uZFV^SD22;l*1kC1(qUO z(mqLx_=H7o#J6J8za_D-{!0DLKImVjWvdjf$5-DVHuEJNz|~5d%mM99sEclcO{+0? zUgkZTtS4(g-%v~L11zC_xqX2IO(df>3>jvHB}K#FxrQH+>1;><)R>D_EdbtxYW7rM z!A+0B*3_(L`;j>LcBOJbV?VVPq-c-v81H0-DcTM>52@-jqrcHnJbck?9^PU$TfK*{ zxy4(^TGfcRl7U+G`cR3Rip_|yh`MT2vCnGB@UfQ*>&Bc=Q@MV7aZxxF?H??PM4&$w Sikx3q%kAKz%Y^y9cE>;I(Y;sz diff --git a/linux-0.11-lab/1/linux/mm/page.o b/linux-0.11-lab/1/linux/mm/page.o old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/mm/page.s b/linux-0.11-lab/1/linux/mm/page.s old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/tools/build b/linux-0.11-lab/1/linux/tools/build index e5456c90e835c8744a8b1038dd628accbc7fe0cd..03963250512c333c67d10a983eb9a031e1918a81 100755 GIT binary patch delta 916 zcmX9+OGs2v7(V}*P@UO^l{AYUQH`sl5!L zO>%;?LMq6G2q^;HJqU6YwP>M)CG`K-S^W2V{`Z{W&J4^BT*-mxTG%vJXNSf)V^F~u>j%c3j0jn0BEcUw(cvHb2pz(F zgsubRVR~?L1T7Tr+oI8_mvhz*&mrLj4m8RlRBxtCc?Ur!sb@|TtS2}~OSvXEWW#RC z4sRv34u|8Mt$Jwvc^fLqUU)~IND%a@zhh7^ zASpvVpaR$=ORXk{+ayOdQc>8%qg;A_-ntY{QXTQBd z#>l=ycN4NgpLJJ3wSMaM)VHGEWcX49W@a&H_(yOuNoO^JbXO_w;!dM<3UQK*V&15j zL!2sK;xslr#+fFEbdkpmmAb*>_BK+t!GWz3IY78M6o}r=I2*I-^ zj8V3KJELrti?IMhM zJur(nSG8SV-=9Y5$Up1DF-qRdw z4L2LU*x~lB9BbxT-ar*0lxrrztQ})v%EaAJlCl LA3X6F#!>MXUS69; diff --git a/linux-0.11-lab/1/linux/tools/build.c b/linux-0.11-lab/1/linux/tools/build.c old mode 100755 new mode 100644 diff --git a/linux-0.11-lab/1/linux/tools/system b/linux-0.11-lab/1/linux/tools/system index cead7ad034e50008add7c748aef397adb4113bac..6d50154468fba522e8f21197baf0d622755861c3 100755 GIT binary patch delta 71233 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