From 0cbef7923e6f4b2619567f6b8f343897a11393d7 Mon Sep 17 00:00:00 2001 From: unknown <2232324209@qq.com> Date: Thu, 23 Jun 2022 08:09:04 +0800 Subject: [PATCH] the first --- linux-0.11-lab/0.gdb | 5 + linux-0.11-lab/0/README | 6 + .../0/Source-Insight/Linux-0.11.IAB | Bin 0 -> 102400 bytes .../0/Source-Insight/Linux-0.11.IAD | Bin 0 -> 1328 bytes .../0/Source-Insight/Linux-0.11.IMB | Bin 0 -> 81920 bytes .../0/Source-Insight/Linux-0.11.IMD | Bin 0 -> 1128 bytes .../0/Source-Insight/Linux-0.11.PFI | Bin 0 -> 412 bytes linux-0.11-lab/0/Source-Insight/Linux-0.11.PO | Bin 0 -> 776 bytes linux-0.11-lab/0/Source-Insight/Linux-0.11.PR | Bin 0 -> 32648 bytes .../0/Source-Insight/Linux-0.11.PRI | Bin 0 -> 208984 bytes linux-0.11-lab/0/Source-Insight/Linux-0.11.PS | Bin 0 -> 623496 bytes .../0/Source-Insight/Linux-0.11.SearchResults | 2 + .../0/Source-Insight/Linux-0.11.WK3 | Bin 0 -> 8851 bytes linux-0.11-lab/0/linux/Image | Bin 0 -> 131556 bytes linux-0.11-lab/0/linux/Image.bkp | Bin 0 -> 131556 bytes linux-0.11-lab/0/linux/Makefile | 125 ++ linux-0.11-lab/0/linux/System.map | 576 +++++++++ linux-0.11-lab/0/linux/System.map.2 | 1075 +++++++++++++++++ linux-0.11-lab/0/linux/boot/bootsect | Bin 0 -> 544 bytes linux-0.11-lab/0/linux/boot/bootsect.o | Bin 0 -> 923 bytes linux-0.11-lab/0/linux/boot/bootsect.s | 260 ++++ linux-0.11-lab/0/linux/boot/head.o | Bin 0 -> 27012 bytes linux-0.11-lab/0/linux/boot/head.s | 240 ++++ linux-0.11-lab/0/linux/boot/setup | Bin 0 -> 344 bytes linux-0.11-lab/0/linux/boot/setup.o | Bin 0 -> 596 bytes linux-0.11-lab/0/linux/boot/setup.s | 231 ++++ linux-0.11-lab/0/linux/fs/Makefile | 101 ++ linux-0.11-lab/0/linux/fs/bitmap.c | 168 +++ linux-0.11-lab/0/linux/fs/bitmap.o | Bin 0 -> 10280 bytes linux-0.11-lab/0/linux/fs/block_dev.c | 73 ++ linux-0.11-lab/0/linux/fs/block_dev.o | Bin 0 -> 7296 bytes linux-0.11-lab/0/linux/fs/buffer.c | 384 ++++++ linux-0.11-lab/0/linux/fs/buffer.o | Bin 0 -> 13348 bytes linux-0.11-lab/0/linux/fs/char_dev.c | 104 ++ linux-0.11-lab/0/linux/fs/char_dev.o | Bin 0 -> 8288 bytes linux-0.11-lab/0/linux/fs/exec.c | 359 ++++++ linux-0.11-lab/0/linux/fs/exec.o | Bin 0 -> 14936 bytes linux-0.11-lab/0/linux/fs/fcntl.c | 75 ++ linux-0.11-lab/0/linux/fs/fcntl.o | Bin 0 -> 6748 bytes linux-0.11-lab/0/linux/fs/file_dev.c | 90 ++ linux-0.11-lab/0/linux/fs/file_dev.o | Bin 0 -> 7828 bytes linux-0.11-lab/0/linux/fs/file_table.c | 9 + linux-0.11-lab/0/linux/fs/file_table.o | Bin 0 -> 2644 bytes linux-0.11-lab/0/linux/fs/fs.o | Bin 0 -> 142937 bytes linux-0.11-lab/0/linux/fs/inode.c | 340 ++++++ linux-0.11-lab/0/linux/fs/inode.o | Bin 0 -> 14072 bytes linux-0.11-lab/0/linux/fs/ioctl.c | 46 + linux-0.11-lab/0/linux/fs/ioctl.o | Bin 0 -> 5828 bytes linux-0.11-lab/0/linux/fs/namei.c | 783 ++++++++++++ linux-0.11-lab/0/linux/fs/namei.o | Bin 0 -> 20756 bytes linux-0.11-lab/0/linux/fs/open.c | 208 ++++ linux-0.11-lab/0/linux/fs/open.o | Bin 0 -> 11184 bytes linux-0.11-lab/0/linux/fs/pipe.c | 111 ++ linux-0.11-lab/0/linux/fs/pipe.o | Bin 0 -> 8104 bytes linux-0.11-lab/0/linux/fs/read_write.c | 103 ++ linux-0.11-lab/0/linux/fs/read_write.o | Bin 0 -> 7520 bytes linux-0.11-lab/0/linux/fs/select.c | 10 + linux-0.11-lab/0/linux/fs/select.o | Bin 0 -> 1776 bytes linux-0.11-lab/0/linux/fs/stat.c | 66 + linux-0.11-lab/0/linux/fs/stat.o | Bin 0 -> 7212 bytes linux-0.11-lab/0/linux/fs/super.c | 282 +++++ linux-0.11-lab/0/linux/fs/super.o | Bin 0 -> 12284 bytes linux-0.11-lab/0/linux/fs/truncate.c | 65 + linux-0.11-lab/0/linux/fs/truncate.o | Bin 0 -> 6848 bytes linux-0.11-lab/0/linux/include/a.out.h | 220 ++++ linux-0.11-lab/0/linux/include/asm/io.h | 24 + linux-0.11-lab/0/linux/include/asm/memory.h | 15 + linux-0.11-lab/0/linux/include/asm/segment.h | 65 + linux-0.11-lab/0/linux/include/asm/system.h | 66 + linux-0.11-lab/0/linux/include/const.h | 15 + linux-0.11-lab/0/linux/include/ctype.h | 34 + linux-0.11-lab/0/linux/include/errno.h | 60 + linux-0.11-lab/0/linux/include/fcntl.h | 55 + linux-0.11-lab/0/linux/include/linux/config.h | 48 + linux-0.11-lab/0/linux/include/linux/fdreg.h | 71 ++ linux-0.11-lab/0/linux/include/linux/fs.h | 202 ++++ linux-0.11-lab/0/linux/include/linux/hdreg.h | 65 + linux-0.11-lab/0/linux/include/linux/head.h | 20 + linux-0.11-lab/0/linux/include/linux/kernel.h | 22 + linux-0.11-lab/0/linux/include/linux/mm.h | 10 + linux-0.11-lab/0/linux/include/linux/sched.h | 239 ++++ linux-0.11-lab/0/linux/include/linux/sys.h | 115 ++ linux-0.11-lab/0/linux/include/linux/tty.h | 77 ++ linux-0.11-lab/0/linux/include/signal.h | 68 ++ linux-0.11-lab/0/linux/include/stdarg.h | 28 + linux-0.11-lab/0/linux/include/stddef.h | 19 + linux-0.11-lab/0/linux/include/string.h | 405 +++++++ linux-0.11-lab/0/linux/include/sys/stat.h | 60 + linux-0.11-lab/0/linux/include/sys/times.h | 15 + linux-0.11-lab/0/linux/include/sys/types.h | 46 + linux-0.11-lab/0/linux/include/sys/utsname.h | 16 + linux-0.11-lab/0/linux/include/sys/wait.h | 23 + linux-0.11-lab/0/linux/include/termios.h | 228 ++++ linux-0.11-lab/0/linux/include/time.h | 42 + linux-0.11-lab/0/linux/include/unistd.h | 273 +++++ linux-0.11-lab/0/linux/include/utime.h | 13 + linux-0.11-lab/0/linux/init/main.c | 210 ++++ linux-0.11-lab/0/linux/init/main.o | Bin 0 -> 9040 bytes linux-0.11-lab/0/linux/kernel/Makefile | 83 ++ linux-0.11-lab/0/linux/kernel/asm.o | Bin 0 -> 1740 bytes linux-0.11-lab/0/linux/kernel/asm.s | 146 +++ .../0/linux/kernel/blk_drv/Makefile | 58 + linux-0.11-lab/0/linux/kernel/blk_drv/blk.h | 140 +++ .../0/linux/kernel/blk_drv/blk_drv.a | Bin 0 -> 52212 bytes .../0/linux/kernel/blk_drv/floppy.c | 463 +++++++ .../0/linux/kernel/blk_drv/floppy.o | Bin 0 -> 16612 bytes linux-0.11-lab/0/linux/kernel/blk_drv/hd.c | 351 ++++++ linux-0.11-lab/0/linux/kernel/blk_drv/hd.o | Bin 0 -> 15520 bytes .../0/linux/kernel/blk_drv/ll_rw_blk.c | 165 +++ .../0/linux/kernel/blk_drv/ll_rw_blk.o | Bin 0 -> 8740 bytes .../0/linux/kernel/blk_drv/ramdisk.c | 126 ++ .../0/linux/kernel/blk_drv/ramdisk.o | Bin 0 -> 10664 bytes .../0/linux/kernel/chr_drv/Makefile | 68 ++ .../0/linux/kernel/chr_drv/chr_drv.a | Bin 0 -> 68902 bytes .../0/linux/kernel/chr_drv/console.c | 710 +++++++++++ .../0/linux/kernel/chr_drv/console.o | Bin 0 -> 20896 bytes .../0/linux/kernel/chr_drv/keyboard.2.o | Bin 0 -> 6024 bytes .../0/linux/kernel/chr_drv/keyboard.2.s | 466 +++++++ .../0/linux/kernel/chr_drv/keyboard.S | 588 +++++++++ linux-0.11-lab/0/linux/kernel/chr_drv/rs_io.o | Bin 0 -> 1320 bytes linux-0.11-lab/0/linux/kernel/chr_drv/rs_io.s | 147 +++ .../0/linux/kernel/chr_drv/serial.c | 59 + .../0/linux/kernel/chr_drv/serial.o | Bin 0 -> 6752 bytes .../0/linux/kernel/chr_drv/tty_io.c | 349 ++++++ .../0/linux/kernel/chr_drv/tty_io.o | Bin 0 -> 22504 bytes .../0/linux/kernel/chr_drv/tty_ioctl.c | 204 ++++ .../0/linux/kernel/chr_drv/tty_ioctl.o | Bin 0 -> 10648 bytes linux-0.11-lab/0/linux/kernel/exit.c | 197 +++ linux-0.11-lab/0/linux/kernel/exit.o | Bin 0 -> 11164 bytes linux-0.11-lab/0/linux/kernel/fork.c | 148 +++ linux-0.11-lab/0/linux/kernel/fork.o | Bin 0 -> 9640 bytes linux-0.11-lab/0/linux/kernel/kernel.o | Bin 0 -> 84086 bytes linux-0.11-lab/0/linux/kernel/math/Makefile | 43 + linux-0.11-lab/0/linux/kernel/math/math.a | Bin 0 -> 6628 bytes .../0/linux/kernel/math/math_emulate.c | 42 + .../0/linux/kernel/math/math_emulate.o | Bin 0 -> 6464 bytes linux-0.11-lab/0/linux/kernel/mktime.c | 58 + linux-0.11-lab/0/linux/kernel/mktime.o | Bin 0 -> 2872 bytes linux-0.11-lab/0/linux/kernel/panic.c | 24 + linux-0.11-lab/0/linux/kernel/panic.o | Bin 0 -> 5424 bytes linux-0.11-lab/0/linux/kernel/printk.c | 41 + linux-0.11-lab/0/linux/kernel/printk.o | Bin 0 -> 2424 bytes linux-0.11-lab/0/linux/kernel/sched.c | 412 +++++++ linux-0.11-lab/0/linux/kernel/sched.o | Bin 0 -> 22732 bytes linux-0.11-lab/0/linux/kernel/signal.c | 129 ++ linux-0.11-lab/0/linux/kernel/signal.o | Bin 0 -> 8960 bytes linux-0.11-lab/0/linux/kernel/sys.c | 292 +++++ linux-0.11-lab/0/linux/kernel/sys.o | Bin 0 -> 13088 bytes linux-0.11-lab/0/linux/kernel/system_call.o | Bin 0 -> 2520 bytes linux-0.11-lab/0/linux/kernel/system_call.s | 285 +++++ linux-0.11-lab/0/linux/kernel/traps.c | 208 ++++ linux-0.11-lab/0/linux/kernel/traps.o | Bin 0 -> 12972 bytes linux-0.11-lab/0/linux/kernel/vsprintf.c | 233 ++++ linux-0.11-lab/0/linux/kernel/vsprintf.o | Bin 0 -> 6156 bytes linux-0.11-lab/0/linux/lib/Makefile | 73 ++ linux-0.11-lab/0/linux/lib/_exit.c | 13 + linux-0.11-lab/0/linux/lib/_exit.o | Bin 0 -> 1992 bytes linux-0.11-lab/0/linux/lib/close.c | 10 + linux-0.11-lab/0/linux/lib/close.o | Bin 0 -> 2224 bytes linux-0.11-lab/0/linux/lib/ctype.c | 35 + linux-0.11-lab/0/linux/lib/ctype.o | Bin 0 -> 1908 bytes linux-0.11-lab/0/linux/lib/dup.c | 10 + linux-0.11-lab/0/linux/lib/dup.o | Bin 0 -> 2200 bytes linux-0.11-lab/0/linux/lib/errno.c | 7 + linux-0.11-lab/0/linux/lib/errno.o | Bin 0 -> 1472 bytes linux-0.11-lab/0/linux/lib/execve.c | 10 + linux-0.11-lab/0/linux/lib/execve.o | Bin 0 -> 2340 bytes linux-0.11-lab/0/linux/lib/lib.a | Bin 0 -> 34170 bytes linux-0.11-lab/0/linux/lib/malloc.c | 232 ++++ linux-0.11-lab/0/linux/lib/malloc.o | Bin 0 -> 4880 bytes linux-0.11-lab/0/linux/lib/open.c | 25 + linux-0.11-lab/0/linux/lib/open.o | Bin 0 -> 2368 bytes linux-0.11-lab/0/linux/lib/setsid.c | 10 + linux-0.11-lab/0/linux/lib/setsid.o | Bin 0 -> 2244 bytes linux-0.11-lab/0/linux/lib/string.c | 14 + linux-0.11-lab/0/linux/lib/string.o | Bin 0 -> 6380 bytes linux-0.11-lab/0/linux/lib/wait.c | 16 + linux-0.11-lab/0/linux/lib/wait.o | Bin 0 -> 2584 bytes linux-0.11-lab/0/linux/lib/write.c | 10 + linux-0.11-lab/0/linux/lib/write.o | Bin 0 -> 2376 bytes linux-0.11-lab/0/linux/mm/Makefile | 38 + linux-0.11-lab/0/linux/mm/memory.c | 431 +++++++ linux-0.11-lab/0/linux/mm/memory.o | Bin 0 -> 12924 bytes linux-0.11-lab/0/linux/mm/mm.o | Bin 0 -> 13048 bytes linux-0.11-lab/0/linux/mm/page.o | Bin 0 -> 640 bytes linux-0.11-lab/0/linux/mm/page.s | 40 + linux-0.11-lab/0/linux/tools/build | Bin 0 -> 15144 bytes linux-0.11-lab/0/linux/tools/build.c | 171 +++ linux-0.11-lab/0/linux/tools/system | Bin 0 -> 286057 bytes linux-0.11-lab/b/1.c | 0 linux-0.11-lab/b/test.tar | Bin 0 -> 71680 bytes linux-0.11-lab/bochsout.txt | 350 ++++++ linux-0.11-lab/conf/0.11-gdbstub.bxrc | 33 + linux-0.11-lab/conf/0.11.bxrc | 31 + linux-0.11-lab/cur/README | 6 + .../cur/Source-Insight/Linux-0.11.IAB | Bin 0 -> 102400 bytes .../cur/Source-Insight/Linux-0.11.IAD | Bin 0 -> 1328 bytes .../cur/Source-Insight/Linux-0.11.IMB | Bin 0 -> 81920 bytes .../cur/Source-Insight/Linux-0.11.IMD | Bin 0 -> 1128 bytes .../cur/Source-Insight/Linux-0.11.PFI | Bin 0 -> 412 bytes .../cur/Source-Insight/Linux-0.11.PO | Bin 0 -> 776 bytes .../cur/Source-Insight/Linux-0.11.PR | Bin 0 -> 32648 bytes .../cur/Source-Insight/Linux-0.11.PRI | Bin 0 -> 208984 bytes .../cur/Source-Insight/Linux-0.11.PS | Bin 0 -> 623496 bytes .../Source-Insight/Linux-0.11.SearchResults | 2 + .../cur/Source-Insight/Linux-0.11.WK3 | Bin 0 -> 8851 bytes linux-0.11-lab/cur/linux/Image | Bin 0 -> 131556 bytes linux-0.11-lab/cur/linux/Image.bkp | Bin 0 -> 131556 bytes linux-0.11-lab/cur/linux/Makefile | 125 ++ linux-0.11-lab/cur/linux/System.map | 576 +++++++++ linux-0.11-lab/cur/linux/System.map.2 | 1075 +++++++++++++++++ linux-0.11-lab/cur/linux/boot/bootsect | Bin 0 -> 544 bytes linux-0.11-lab/cur/linux/boot/bootsect.o | Bin 0 -> 923 bytes linux-0.11-lab/cur/linux/boot/bootsect.s | 260 ++++ linux-0.11-lab/cur/linux/boot/head.o | Bin 0 -> 27012 bytes linux-0.11-lab/cur/linux/boot/head.s | 240 ++++ linux-0.11-lab/cur/linux/boot/setup | Bin 0 -> 344 bytes linux-0.11-lab/cur/linux/boot/setup.o | Bin 0 -> 596 bytes linux-0.11-lab/cur/linux/boot/setup.s | 231 ++++ linux-0.11-lab/cur/linux/fs/Makefile | 101 ++ linux-0.11-lab/cur/linux/fs/bitmap.c | 168 +++ linux-0.11-lab/cur/linux/fs/bitmap.o | Bin 0 -> 10280 bytes linux-0.11-lab/cur/linux/fs/block_dev.c | 73 ++ linux-0.11-lab/cur/linux/fs/block_dev.o | Bin 0 -> 7296 bytes linux-0.11-lab/cur/linux/fs/buffer.c | 384 ++++++ linux-0.11-lab/cur/linux/fs/buffer.o | Bin 0 -> 13348 bytes linux-0.11-lab/cur/linux/fs/char_dev.c | 104 ++ linux-0.11-lab/cur/linux/fs/char_dev.o | Bin 0 -> 8288 bytes linux-0.11-lab/cur/linux/fs/exec.c | 359 ++++++ linux-0.11-lab/cur/linux/fs/exec.o | Bin 0 -> 14936 bytes linux-0.11-lab/cur/linux/fs/fcntl.c | 75 ++ linux-0.11-lab/cur/linux/fs/fcntl.o | Bin 0 -> 6748 bytes linux-0.11-lab/cur/linux/fs/file_dev.c | 90 ++ linux-0.11-lab/cur/linux/fs/file_dev.o | Bin 0 -> 7828 bytes linux-0.11-lab/cur/linux/fs/file_table.c | 9 + linux-0.11-lab/cur/linux/fs/file_table.o | Bin 0 -> 2644 bytes linux-0.11-lab/cur/linux/fs/fs.o | Bin 0 -> 142937 bytes linux-0.11-lab/cur/linux/fs/inode.c | 340 ++++++ linux-0.11-lab/cur/linux/fs/inode.o | Bin 0 -> 14072 bytes linux-0.11-lab/cur/linux/fs/ioctl.c | 46 + linux-0.11-lab/cur/linux/fs/ioctl.o | Bin 0 -> 5828 bytes linux-0.11-lab/cur/linux/fs/namei.c | 783 ++++++++++++ linux-0.11-lab/cur/linux/fs/namei.o | Bin 0 -> 20756 bytes linux-0.11-lab/cur/linux/fs/open.c | 208 ++++ linux-0.11-lab/cur/linux/fs/open.o | Bin 0 -> 11184 bytes linux-0.11-lab/cur/linux/fs/pipe.c | 111 ++ linux-0.11-lab/cur/linux/fs/pipe.o | Bin 0 -> 8104 bytes linux-0.11-lab/cur/linux/fs/read_write.c | 103 ++ linux-0.11-lab/cur/linux/fs/read_write.o | Bin 0 -> 7520 bytes linux-0.11-lab/cur/linux/fs/select.c | 10 + linux-0.11-lab/cur/linux/fs/select.o | Bin 0 -> 1776 bytes linux-0.11-lab/cur/linux/fs/stat.c | 66 + linux-0.11-lab/cur/linux/fs/stat.o | Bin 0 -> 7212 bytes linux-0.11-lab/cur/linux/fs/super.c | 282 +++++ linux-0.11-lab/cur/linux/fs/super.o | Bin 0 -> 12284 bytes linux-0.11-lab/cur/linux/fs/truncate.c | 65 + linux-0.11-lab/cur/linux/fs/truncate.o | Bin 0 -> 6848 bytes linux-0.11-lab/cur/linux/include/a.out.h | 220 ++++ linux-0.11-lab/cur/linux/include/asm/io.h | 24 + linux-0.11-lab/cur/linux/include/asm/memory.h | 15 + .../cur/linux/include/asm/segment.h | 65 + linux-0.11-lab/cur/linux/include/asm/system.h | 66 + linux-0.11-lab/cur/linux/include/const.h | 15 + linux-0.11-lab/cur/linux/include/ctype.h | 34 + linux-0.11-lab/cur/linux/include/errno.h | 60 + linux-0.11-lab/cur/linux/include/fcntl.h | 55 + .../cur/linux/include/linux/config.h | 48 + .../cur/linux/include/linux/fdreg.h | 71 ++ linux-0.11-lab/cur/linux/include/linux/fs.h | 202 ++++ .../cur/linux/include/linux/hdreg.h | 65 + linux-0.11-lab/cur/linux/include/linux/head.h | 20 + .../cur/linux/include/linux/kernel.h | 22 + linux-0.11-lab/cur/linux/include/linux/mm.h | 10 + .../cur/linux/include/linux/sched.h | 239 ++++ linux-0.11-lab/cur/linux/include/linux/sys.h | 115 ++ linux-0.11-lab/cur/linux/include/linux/tty.h | 77 ++ linux-0.11-lab/cur/linux/include/signal.h | 68 ++ linux-0.11-lab/cur/linux/include/stdarg.h | 28 + linux-0.11-lab/cur/linux/include/stddef.h | 19 + linux-0.11-lab/cur/linux/include/string.h | 405 +++++++ linux-0.11-lab/cur/linux/include/sys/stat.h | 60 + linux-0.11-lab/cur/linux/include/sys/times.h | 15 + linux-0.11-lab/cur/linux/include/sys/types.h | 46 + .../cur/linux/include/sys/utsname.h | 16 + linux-0.11-lab/cur/linux/include/sys/wait.h | 23 + linux-0.11-lab/cur/linux/include/termios.h | 228 ++++ linux-0.11-lab/cur/linux/include/time.h | 42 + linux-0.11-lab/cur/linux/include/unistd.h | 273 +++++ linux-0.11-lab/cur/linux/include/utime.h | 13 + linux-0.11-lab/cur/linux/init/main.c | 210 ++++ linux-0.11-lab/cur/linux/init/main.o | Bin 0 -> 9040 bytes linux-0.11-lab/cur/linux/kernel/Makefile | 83 ++ linux-0.11-lab/cur/linux/kernel/asm.o | Bin 0 -> 1740 bytes linux-0.11-lab/cur/linux/kernel/asm.s | 146 +++ .../cur/linux/kernel/blk_drv/Makefile | 58 + linux-0.11-lab/cur/linux/kernel/blk_drv/blk.h | 140 +++ .../cur/linux/kernel/blk_drv/blk_drv.a | Bin 0 -> 52212 bytes .../cur/linux/kernel/blk_drv/floppy.c | 463 +++++++ .../cur/linux/kernel/blk_drv/floppy.o | Bin 0 -> 16612 bytes linux-0.11-lab/cur/linux/kernel/blk_drv/hd.c | 351 ++++++ linux-0.11-lab/cur/linux/kernel/blk_drv/hd.o | Bin 0 -> 15520 bytes .../cur/linux/kernel/blk_drv/ll_rw_blk.c | 165 +++ .../cur/linux/kernel/blk_drv/ll_rw_blk.o | Bin 0 -> 8740 bytes .../cur/linux/kernel/blk_drv/ramdisk.c | 126 ++ .../cur/linux/kernel/blk_drv/ramdisk.o | Bin 0 -> 10664 bytes .../cur/linux/kernel/chr_drv/Makefile | 68 ++ .../cur/linux/kernel/chr_drv/chr_drv.a | Bin 0 -> 68902 bytes .../cur/linux/kernel/chr_drv/console.c | 710 +++++++++++ .../cur/linux/kernel/chr_drv/console.o | Bin 0 -> 20896 bytes .../cur/linux/kernel/chr_drv/keyboard.2.o | Bin 0 -> 6024 bytes .../cur/linux/kernel/chr_drv/keyboard.2.s | 466 +++++++ .../cur/linux/kernel/chr_drv/keyboard.S | 588 +++++++++ .../cur/linux/kernel/chr_drv/rs_io.o | Bin 0 -> 1320 bytes .../cur/linux/kernel/chr_drv/rs_io.s | 147 +++ .../cur/linux/kernel/chr_drv/serial.c | 59 + .../cur/linux/kernel/chr_drv/serial.o | Bin 0 -> 6752 bytes .../cur/linux/kernel/chr_drv/tty_io.c | 349 ++++++ .../cur/linux/kernel/chr_drv/tty_io.o | Bin 0 -> 22504 bytes .../cur/linux/kernel/chr_drv/tty_ioctl.c | 204 ++++ .../cur/linux/kernel/chr_drv/tty_ioctl.o | Bin 0 -> 10648 bytes linux-0.11-lab/cur/linux/kernel/exit.c | 197 +++ linux-0.11-lab/cur/linux/kernel/exit.o | Bin 0 -> 11164 bytes linux-0.11-lab/cur/linux/kernel/fork.c | 148 +++ linux-0.11-lab/cur/linux/kernel/fork.o | Bin 0 -> 9640 bytes linux-0.11-lab/cur/linux/kernel/kernel.o | Bin 0 -> 84086 bytes linux-0.11-lab/cur/linux/kernel/math/Makefile | 43 + linux-0.11-lab/cur/linux/kernel/math/math.a | Bin 0 -> 6628 bytes .../cur/linux/kernel/math/math_emulate.c | 42 + .../cur/linux/kernel/math/math_emulate.o | Bin 0 -> 6464 bytes linux-0.11-lab/cur/linux/kernel/mktime.c | 58 + linux-0.11-lab/cur/linux/kernel/mktime.o | Bin 0 -> 2872 bytes linux-0.11-lab/cur/linux/kernel/panic.c | 24 + linux-0.11-lab/cur/linux/kernel/panic.o | Bin 0 -> 5424 bytes linux-0.11-lab/cur/linux/kernel/printk.c | 41 + linux-0.11-lab/cur/linux/kernel/printk.o | Bin 0 -> 2424 bytes linux-0.11-lab/cur/linux/kernel/sched.c | 412 +++++++ linux-0.11-lab/cur/linux/kernel/sched.o | Bin 0 -> 22732 bytes linux-0.11-lab/cur/linux/kernel/signal.c | 129 ++ linux-0.11-lab/cur/linux/kernel/signal.o | Bin 0 -> 8960 bytes linux-0.11-lab/cur/linux/kernel/sys.c | 292 +++++ linux-0.11-lab/cur/linux/kernel/sys.o | Bin 0 -> 13088 bytes linux-0.11-lab/cur/linux/kernel/system_call.o | Bin 0 -> 2520 bytes linux-0.11-lab/cur/linux/kernel/system_call.s | 285 +++++ linux-0.11-lab/cur/linux/kernel/traps.c | 208 ++++ linux-0.11-lab/cur/linux/kernel/traps.o | Bin 0 -> 12972 bytes linux-0.11-lab/cur/linux/kernel/vsprintf.c | 233 ++++ linux-0.11-lab/cur/linux/kernel/vsprintf.o | Bin 0 -> 6156 bytes linux-0.11-lab/cur/linux/lib/Makefile | 73 ++ linux-0.11-lab/cur/linux/lib/_exit.c | 13 + linux-0.11-lab/cur/linux/lib/_exit.o | Bin 0 -> 1992 bytes linux-0.11-lab/cur/linux/lib/close.c | 10 + linux-0.11-lab/cur/linux/lib/close.o | Bin 0 -> 2224 bytes linux-0.11-lab/cur/linux/lib/ctype.c | 35 + linux-0.11-lab/cur/linux/lib/ctype.o | Bin 0 -> 1908 bytes linux-0.11-lab/cur/linux/lib/dup.c | 10 + linux-0.11-lab/cur/linux/lib/dup.o | Bin 0 -> 2200 bytes linux-0.11-lab/cur/linux/lib/errno.c | 7 + linux-0.11-lab/cur/linux/lib/errno.o | Bin 0 -> 1472 bytes linux-0.11-lab/cur/linux/lib/execve.c | 10 + linux-0.11-lab/cur/linux/lib/execve.o | Bin 0 -> 2340 bytes linux-0.11-lab/cur/linux/lib/lib.a | Bin 0 -> 34170 bytes linux-0.11-lab/cur/linux/lib/malloc.c | 232 ++++ linux-0.11-lab/cur/linux/lib/malloc.o | Bin 0 -> 4880 bytes linux-0.11-lab/cur/linux/lib/open.c | 25 + linux-0.11-lab/cur/linux/lib/open.o | Bin 0 -> 2368 bytes linux-0.11-lab/cur/linux/lib/setsid.c | 10 + linux-0.11-lab/cur/linux/lib/setsid.o | Bin 0 -> 2244 bytes linux-0.11-lab/cur/linux/lib/string.c | 14 + linux-0.11-lab/cur/linux/lib/string.o | Bin 0 -> 6380 bytes linux-0.11-lab/cur/linux/lib/wait.c | 16 + linux-0.11-lab/cur/linux/lib/wait.o | Bin 0 -> 2584 bytes linux-0.11-lab/cur/linux/lib/write.c | 10 + linux-0.11-lab/cur/linux/lib/write.o | Bin 0 -> 2376 bytes linux-0.11-lab/cur/linux/mm/Makefile | 38 + linux-0.11-lab/cur/linux/mm/memory.c | 431 +++++++ linux-0.11-lab/cur/linux/mm/memory.o | Bin 0 -> 12924 bytes linux-0.11-lab/cur/linux/mm/mm.o | Bin 0 -> 13048 bytes linux-0.11-lab/cur/linux/mm/page.o | Bin 0 -> 640 bytes linux-0.11-lab/cur/linux/mm/page.s | 40 + linux-0.11-lab/cur/linux/tools/build | Bin 0 -> 15144 bytes linux-0.11-lab/cur/linux/tools/build.c | 171 +++ linux-0.11-lab/cur/linux/tools/system | Bin 0 -> 286057 bytes linux-0.11-lab/images/rootimage-0.11 | Bin 0 -> 10485760 bytes linux-0.11-lab/mygdb | 3 + linux-0.11-lab/run | 3 + linux-0.11-lab/rundbg | 2 + linux-0.11-lab/rungdb | 3 + linux-0.11-lab/runtest | 3 + 388 files changed, 32715 insertions(+) create mode 100644 linux-0.11-lab/0.gdb create mode 100644 linux-0.11-lab/0/README create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.IAB create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.IAD create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.IMB create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.IMD create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.PFI create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.PO create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.PR create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.PRI create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.PS create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.SearchResults create mode 100644 linux-0.11-lab/0/Source-Insight/Linux-0.11.WK3 create mode 100644 linux-0.11-lab/0/linux/Image create mode 100644 linux-0.11-lab/0/linux/Image.bkp create mode 100644 linux-0.11-lab/0/linux/Makefile create mode 100644 linux-0.11-lab/0/linux/System.map create mode 100644 linux-0.11-lab/0/linux/System.map.2 create mode 100644 linux-0.11-lab/0/linux/boot/bootsect create mode 100644 linux-0.11-lab/0/linux/boot/bootsect.o create mode 100644 linux-0.11-lab/0/linux/boot/bootsect.s create mode 100644 linux-0.11-lab/0/linux/boot/head.o create mode 100644 linux-0.11-lab/0/linux/boot/head.s create mode 100644 linux-0.11-lab/0/linux/boot/setup create mode 100644 linux-0.11-lab/0/linux/boot/setup.o create mode 100644 linux-0.11-lab/0/linux/boot/setup.s create mode 100644 linux-0.11-lab/0/linux/fs/Makefile create mode 100644 linux-0.11-lab/0/linux/fs/bitmap.c create mode 100644 linux-0.11-lab/0/linux/fs/bitmap.o create mode 100644 linux-0.11-lab/0/linux/fs/block_dev.c create mode 100644 linux-0.11-lab/0/linux/fs/block_dev.o create mode 100644 linux-0.11-lab/0/linux/fs/buffer.c create mode 100644 linux-0.11-lab/0/linux/fs/buffer.o create mode 100644 linux-0.11-lab/0/linux/fs/char_dev.c create mode 100644 linux-0.11-lab/0/linux/fs/char_dev.o create mode 100644 linux-0.11-lab/0/linux/fs/exec.c create mode 100644 linux-0.11-lab/0/linux/fs/exec.o create mode 100644 linux-0.11-lab/0/linux/fs/fcntl.c create mode 100644 linux-0.11-lab/0/linux/fs/fcntl.o create mode 100644 linux-0.11-lab/0/linux/fs/file_dev.c create mode 100644 linux-0.11-lab/0/linux/fs/file_dev.o create mode 100644 linux-0.11-lab/0/linux/fs/file_table.c create mode 100644 linux-0.11-lab/0/linux/fs/file_table.o create mode 100644 linux-0.11-lab/0/linux/fs/fs.o create mode 100644 linux-0.11-lab/0/linux/fs/inode.c create mode 100644 linux-0.11-lab/0/linux/fs/inode.o create mode 100644 linux-0.11-lab/0/linux/fs/ioctl.c create mode 100644 linux-0.11-lab/0/linux/fs/ioctl.o create mode 100644 linux-0.11-lab/0/linux/fs/namei.c create mode 100644 linux-0.11-lab/0/linux/fs/namei.o create mode 100644 linux-0.11-lab/0/linux/fs/open.c create mode 100644 linux-0.11-lab/0/linux/fs/open.o create mode 100644 linux-0.11-lab/0/linux/fs/pipe.c create mode 100644 linux-0.11-lab/0/linux/fs/pipe.o create mode 100644 linux-0.11-lab/0/linux/fs/read_write.c create mode 100644 linux-0.11-lab/0/linux/fs/read_write.o create mode 100644 linux-0.11-lab/0/linux/fs/select.c create mode 100644 linux-0.11-lab/0/linux/fs/select.o create mode 100644 linux-0.11-lab/0/linux/fs/stat.c create mode 100644 linux-0.11-lab/0/linux/fs/stat.o create mode 100644 linux-0.11-lab/0/linux/fs/super.c create mode 100644 linux-0.11-lab/0/linux/fs/super.o create mode 100644 linux-0.11-lab/0/linux/fs/truncate.c create mode 100644 linux-0.11-lab/0/linux/fs/truncate.o create mode 100644 linux-0.11-lab/0/linux/include/a.out.h create mode 100644 linux-0.11-lab/0/linux/include/asm/io.h create mode 100644 linux-0.11-lab/0/linux/include/asm/memory.h create mode 100644 linux-0.11-lab/0/linux/include/asm/segment.h create mode 100644 linux-0.11-lab/0/linux/include/asm/system.h create mode 100644 linux-0.11-lab/0/linux/include/const.h create mode 100644 linux-0.11-lab/0/linux/include/ctype.h create mode 100644 linux-0.11-lab/0/linux/include/errno.h create mode 100644 linux-0.11-lab/0/linux/include/fcntl.h create mode 100644 linux-0.11-lab/0/linux/include/linux/config.h create mode 100644 linux-0.11-lab/0/linux/include/linux/fdreg.h create mode 100644 linux-0.11-lab/0/linux/include/linux/fs.h create mode 100644 linux-0.11-lab/0/linux/include/linux/hdreg.h create mode 100644 linux-0.11-lab/0/linux/include/linux/head.h create mode 100644 linux-0.11-lab/0/linux/include/linux/kernel.h create mode 100644 linux-0.11-lab/0/linux/include/linux/mm.h create mode 100644 linux-0.11-lab/0/linux/include/linux/sched.h create mode 100644 linux-0.11-lab/0/linux/include/linux/sys.h create mode 100644 linux-0.11-lab/0/linux/include/linux/tty.h create mode 100644 linux-0.11-lab/0/linux/include/signal.h create mode 100644 linux-0.11-lab/0/linux/include/stdarg.h create mode 100644 linux-0.11-lab/0/linux/include/stddef.h create mode 100644 linux-0.11-lab/0/linux/include/string.h create mode 100644 linux-0.11-lab/0/linux/include/sys/stat.h create mode 100644 linux-0.11-lab/0/linux/include/sys/times.h create mode 100644 linux-0.11-lab/0/linux/include/sys/types.h create mode 100644 linux-0.11-lab/0/linux/include/sys/utsname.h create mode 100644 linux-0.11-lab/0/linux/include/sys/wait.h create mode 100644 linux-0.11-lab/0/linux/include/termios.h create mode 100644 linux-0.11-lab/0/linux/include/time.h create mode 100644 linux-0.11-lab/0/linux/include/unistd.h create mode 100644 linux-0.11-lab/0/linux/include/utime.h create mode 100644 linux-0.11-lab/0/linux/init/main.c create mode 100644 linux-0.11-lab/0/linux/init/main.o create mode 100644 linux-0.11-lab/0/linux/kernel/Makefile create mode 100644 linux-0.11-lab/0/linux/kernel/asm.o create mode 100644 linux-0.11-lab/0/linux/kernel/asm.s create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/Makefile create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/blk.h create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/blk_drv.a create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/floppy.c create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/floppy.o create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/hd.c create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/hd.o create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/ll_rw_blk.c create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/ll_rw_blk.o create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/ramdisk.c create mode 100644 linux-0.11-lab/0/linux/kernel/blk_drv/ramdisk.o create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/Makefile create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/chr_drv.a create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/console.c create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/console.o create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/keyboard.2.o create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/keyboard.2.s create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/keyboard.S create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/rs_io.o create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/rs_io.s create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/serial.c create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/serial.o create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/tty_io.c create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/tty_io.o create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/tty_ioctl.c create mode 100644 linux-0.11-lab/0/linux/kernel/chr_drv/tty_ioctl.o create mode 100644 linux-0.11-lab/0/linux/kernel/exit.c create mode 100644 linux-0.11-lab/0/linux/kernel/exit.o create mode 100644 linux-0.11-lab/0/linux/kernel/fork.c create mode 100644 linux-0.11-lab/0/linux/kernel/fork.o create mode 100644 linux-0.11-lab/0/linux/kernel/kernel.o create mode 100644 linux-0.11-lab/0/linux/kernel/math/Makefile create mode 100644 linux-0.11-lab/0/linux/kernel/math/math.a create mode 100644 linux-0.11-lab/0/linux/kernel/math/math_emulate.c create mode 100644 linux-0.11-lab/0/linux/kernel/math/math_emulate.o create mode 100644 linux-0.11-lab/0/linux/kernel/mktime.c create mode 100644 linux-0.11-lab/0/linux/kernel/mktime.o create mode 100644 linux-0.11-lab/0/linux/kernel/panic.c create mode 100644 linux-0.11-lab/0/linux/kernel/panic.o create mode 100644 linux-0.11-lab/0/linux/kernel/printk.c create mode 100644 linux-0.11-lab/0/linux/kernel/printk.o create mode 100644 linux-0.11-lab/0/linux/kernel/sched.c create mode 100644 linux-0.11-lab/0/linux/kernel/sched.o create mode 100644 linux-0.11-lab/0/linux/kernel/signal.c create mode 100644 linux-0.11-lab/0/linux/kernel/signal.o create mode 100644 linux-0.11-lab/0/linux/kernel/sys.c create mode 100644 linux-0.11-lab/0/linux/kernel/sys.o create mode 100644 linux-0.11-lab/0/linux/kernel/system_call.o create mode 100644 linux-0.11-lab/0/linux/kernel/system_call.s create mode 100644 linux-0.11-lab/0/linux/kernel/traps.c create mode 100644 linux-0.11-lab/0/linux/kernel/traps.o create mode 100644 linux-0.11-lab/0/linux/kernel/vsprintf.c create mode 100644 linux-0.11-lab/0/linux/kernel/vsprintf.o create mode 100644 linux-0.11-lab/0/linux/lib/Makefile create mode 100644 linux-0.11-lab/0/linux/lib/_exit.c create mode 100644 linux-0.11-lab/0/linux/lib/_exit.o create mode 100644 linux-0.11-lab/0/linux/lib/close.c create mode 100644 linux-0.11-lab/0/linux/lib/close.o create mode 100644 linux-0.11-lab/0/linux/lib/ctype.c create mode 100644 linux-0.11-lab/0/linux/lib/ctype.o create mode 100644 linux-0.11-lab/0/linux/lib/dup.c create mode 100644 linux-0.11-lab/0/linux/lib/dup.o create mode 100644 linux-0.11-lab/0/linux/lib/errno.c create mode 100644 linux-0.11-lab/0/linux/lib/errno.o create mode 100644 linux-0.11-lab/0/linux/lib/execve.c create mode 100644 linux-0.11-lab/0/linux/lib/execve.o create mode 100644 linux-0.11-lab/0/linux/lib/lib.a create mode 100644 linux-0.11-lab/0/linux/lib/malloc.c create mode 100644 linux-0.11-lab/0/linux/lib/malloc.o create mode 100644 linux-0.11-lab/0/linux/lib/open.c create mode 100644 linux-0.11-lab/0/linux/lib/open.o create mode 100644 linux-0.11-lab/0/linux/lib/setsid.c create mode 100644 linux-0.11-lab/0/linux/lib/setsid.o create mode 100644 linux-0.11-lab/0/linux/lib/string.c create mode 100644 linux-0.11-lab/0/linux/lib/string.o create mode 100644 linux-0.11-lab/0/linux/lib/wait.c create mode 100644 linux-0.11-lab/0/linux/lib/wait.o create mode 100644 linux-0.11-lab/0/linux/lib/write.c create mode 100644 linux-0.11-lab/0/linux/lib/write.o create mode 100644 linux-0.11-lab/0/linux/mm/Makefile create mode 100644 linux-0.11-lab/0/linux/mm/memory.c create mode 100644 linux-0.11-lab/0/linux/mm/memory.o create mode 100644 linux-0.11-lab/0/linux/mm/mm.o create mode 100644 linux-0.11-lab/0/linux/mm/page.o create mode 100644 linux-0.11-lab/0/linux/mm/page.s create mode 100644 linux-0.11-lab/0/linux/tools/build create mode 100644 linux-0.11-lab/0/linux/tools/build.c create mode 100644 linux-0.11-lab/0/linux/tools/system create mode 100644 linux-0.11-lab/b/1.c create mode 100644 linux-0.11-lab/b/test.tar create mode 100644 linux-0.11-lab/bochsout.txt create mode 100644 linux-0.11-lab/conf/0.11-gdbstub.bxrc create mode 100644 linux-0.11-lab/conf/0.11.bxrc create mode 100644 linux-0.11-lab/cur/README create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.IAB create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.IAD create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.IMB create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.IMD create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.PFI create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.PO create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.PR create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.PRI create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.PS create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.SearchResults create mode 100644 linux-0.11-lab/cur/Source-Insight/Linux-0.11.WK3 create mode 100644 linux-0.11-lab/cur/linux/Image create mode 100644 linux-0.11-lab/cur/linux/Image.bkp create mode 100644 linux-0.11-lab/cur/linux/Makefile create mode 100644 linux-0.11-lab/cur/linux/System.map create mode 100644 linux-0.11-lab/cur/linux/System.map.2 create mode 100644 linux-0.11-lab/cur/linux/boot/bootsect create mode 100644 linux-0.11-lab/cur/linux/boot/bootsect.o create mode 100644 linux-0.11-lab/cur/linux/boot/bootsect.s create mode 100644 linux-0.11-lab/cur/linux/boot/head.o create mode 100644 linux-0.11-lab/cur/linux/boot/head.s create mode 100644 linux-0.11-lab/cur/linux/boot/setup create mode 100644 linux-0.11-lab/cur/linux/boot/setup.o create mode 100644 linux-0.11-lab/cur/linux/boot/setup.s create mode 100644 linux-0.11-lab/cur/linux/fs/Makefile create mode 100644 linux-0.11-lab/cur/linux/fs/bitmap.c create mode 100644 linux-0.11-lab/cur/linux/fs/bitmap.o create mode 100644 linux-0.11-lab/cur/linux/fs/block_dev.c create mode 100644 linux-0.11-lab/cur/linux/fs/block_dev.o create mode 100644 linux-0.11-lab/cur/linux/fs/buffer.c create mode 100644 linux-0.11-lab/cur/linux/fs/buffer.o create mode 100644 linux-0.11-lab/cur/linux/fs/char_dev.c create mode 100644 linux-0.11-lab/cur/linux/fs/char_dev.o create mode 100644 linux-0.11-lab/cur/linux/fs/exec.c create mode 100644 linux-0.11-lab/cur/linux/fs/exec.o create mode 100644 linux-0.11-lab/cur/linux/fs/fcntl.c create mode 100644 linux-0.11-lab/cur/linux/fs/fcntl.o create mode 100644 linux-0.11-lab/cur/linux/fs/file_dev.c create mode 100644 linux-0.11-lab/cur/linux/fs/file_dev.o create mode 100644 linux-0.11-lab/cur/linux/fs/file_table.c create mode 100644 linux-0.11-lab/cur/linux/fs/file_table.o create mode 100644 linux-0.11-lab/cur/linux/fs/fs.o create mode 100644 linux-0.11-lab/cur/linux/fs/inode.c create mode 100644 linux-0.11-lab/cur/linux/fs/inode.o create mode 100644 linux-0.11-lab/cur/linux/fs/ioctl.c create mode 100644 linux-0.11-lab/cur/linux/fs/ioctl.o create mode 100644 linux-0.11-lab/cur/linux/fs/namei.c create mode 100644 linux-0.11-lab/cur/linux/fs/namei.o create mode 100644 linux-0.11-lab/cur/linux/fs/open.c create mode 100644 linux-0.11-lab/cur/linux/fs/open.o create mode 100644 linux-0.11-lab/cur/linux/fs/pipe.c create mode 100644 linux-0.11-lab/cur/linux/fs/pipe.o create mode 100644 linux-0.11-lab/cur/linux/fs/read_write.c create mode 100644 linux-0.11-lab/cur/linux/fs/read_write.o create mode 100644 linux-0.11-lab/cur/linux/fs/select.c create mode 100644 linux-0.11-lab/cur/linux/fs/select.o create mode 100644 linux-0.11-lab/cur/linux/fs/stat.c create mode 100644 linux-0.11-lab/cur/linux/fs/stat.o create mode 100644 linux-0.11-lab/cur/linux/fs/super.c create mode 100644 linux-0.11-lab/cur/linux/fs/super.o create mode 100644 linux-0.11-lab/cur/linux/fs/truncate.c create mode 100644 linux-0.11-lab/cur/linux/fs/truncate.o create mode 100644 linux-0.11-lab/cur/linux/include/a.out.h create mode 100644 linux-0.11-lab/cur/linux/include/asm/io.h create mode 100644 linux-0.11-lab/cur/linux/include/asm/memory.h create mode 100644 linux-0.11-lab/cur/linux/include/asm/segment.h create mode 100644 linux-0.11-lab/cur/linux/include/asm/system.h create mode 100644 linux-0.11-lab/cur/linux/include/const.h create mode 100644 linux-0.11-lab/cur/linux/include/ctype.h create mode 100644 linux-0.11-lab/cur/linux/include/errno.h create mode 100644 linux-0.11-lab/cur/linux/include/fcntl.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/config.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/fdreg.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/fs.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/hdreg.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/head.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/kernel.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/mm.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/sched.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/sys.h create mode 100644 linux-0.11-lab/cur/linux/include/linux/tty.h create mode 100644 linux-0.11-lab/cur/linux/include/signal.h create mode 100644 linux-0.11-lab/cur/linux/include/stdarg.h create mode 100644 linux-0.11-lab/cur/linux/include/stddef.h create mode 100644 linux-0.11-lab/cur/linux/include/string.h create mode 100644 linux-0.11-lab/cur/linux/include/sys/stat.h create mode 100644 linux-0.11-lab/cur/linux/include/sys/times.h create mode 100644 linux-0.11-lab/cur/linux/include/sys/types.h create mode 100644 linux-0.11-lab/cur/linux/include/sys/utsname.h create mode 100644 linux-0.11-lab/cur/linux/include/sys/wait.h create mode 100644 linux-0.11-lab/cur/linux/include/termios.h create mode 100644 linux-0.11-lab/cur/linux/include/time.h create mode 100644 linux-0.11-lab/cur/linux/include/unistd.h create mode 100644 linux-0.11-lab/cur/linux/include/utime.h create mode 100644 linux-0.11-lab/cur/linux/init/main.c create mode 100644 linux-0.11-lab/cur/linux/init/main.o create mode 100644 linux-0.11-lab/cur/linux/kernel/Makefile create mode 100644 linux-0.11-lab/cur/linux/kernel/asm.o create mode 100644 linux-0.11-lab/cur/linux/kernel/asm.s create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/Makefile create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/blk.h create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/blk_drv.a create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/floppy.c create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/floppy.o create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/hd.c create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/hd.o create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/ll_rw_blk.c create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/ll_rw_blk.o create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/ramdisk.c create mode 100644 linux-0.11-lab/cur/linux/kernel/blk_drv/ramdisk.o create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/Makefile create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/chr_drv.a create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/console.c create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/console.o create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/keyboard.2.o create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/keyboard.2.s create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/keyboard.S create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/rs_io.o create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/rs_io.s create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/serial.c create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/serial.o create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/tty_io.c create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/tty_io.o create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/tty_ioctl.c create mode 100644 linux-0.11-lab/cur/linux/kernel/chr_drv/tty_ioctl.o create mode 100644 linux-0.11-lab/cur/linux/kernel/exit.c create mode 100644 linux-0.11-lab/cur/linux/kernel/exit.o create mode 100644 linux-0.11-lab/cur/linux/kernel/fork.c create mode 100644 linux-0.11-lab/cur/linux/kernel/fork.o create mode 100644 linux-0.11-lab/cur/linux/kernel/kernel.o create mode 100644 linux-0.11-lab/cur/linux/kernel/math/Makefile create mode 100644 linux-0.11-lab/cur/linux/kernel/math/math.a create mode 100644 linux-0.11-lab/cur/linux/kernel/math/math_emulate.c create mode 100644 linux-0.11-lab/cur/linux/kernel/math/math_emulate.o create mode 100644 linux-0.11-lab/cur/linux/kernel/mktime.c create mode 100644 linux-0.11-lab/cur/linux/kernel/mktime.o create mode 100644 linux-0.11-lab/cur/linux/kernel/panic.c create mode 100644 linux-0.11-lab/cur/linux/kernel/panic.o create mode 100644 linux-0.11-lab/cur/linux/kernel/printk.c create mode 100644 linux-0.11-lab/cur/linux/kernel/printk.o create mode 100644 linux-0.11-lab/cur/linux/kernel/sched.c create mode 100644 linux-0.11-lab/cur/linux/kernel/sched.o create mode 100644 linux-0.11-lab/cur/linux/kernel/signal.c create mode 100644 linux-0.11-lab/cur/linux/kernel/signal.o create mode 100644 linux-0.11-lab/cur/linux/kernel/sys.c create mode 100644 linux-0.11-lab/cur/linux/kernel/sys.o create mode 100644 linux-0.11-lab/cur/linux/kernel/system_call.o create mode 100644 linux-0.11-lab/cur/linux/kernel/system_call.s create mode 100644 linux-0.11-lab/cur/linux/kernel/traps.c create mode 100644 linux-0.11-lab/cur/linux/kernel/traps.o create mode 100644 linux-0.11-lab/cur/linux/kernel/vsprintf.c create mode 100644 linux-0.11-lab/cur/linux/kernel/vsprintf.o create mode 100644 linux-0.11-lab/cur/linux/lib/Makefile create mode 100644 linux-0.11-lab/cur/linux/lib/_exit.c create mode 100644 linux-0.11-lab/cur/linux/lib/_exit.o create mode 100644 linux-0.11-lab/cur/linux/lib/close.c create mode 100644 linux-0.11-lab/cur/linux/lib/close.o create mode 100644 linux-0.11-lab/cur/linux/lib/ctype.c create mode 100644 linux-0.11-lab/cur/linux/lib/ctype.o create mode 100644 linux-0.11-lab/cur/linux/lib/dup.c create mode 100644 linux-0.11-lab/cur/linux/lib/dup.o create mode 100644 linux-0.11-lab/cur/linux/lib/errno.c create mode 100644 linux-0.11-lab/cur/linux/lib/errno.o create mode 100644 linux-0.11-lab/cur/linux/lib/execve.c create mode 100644 linux-0.11-lab/cur/linux/lib/execve.o create mode 100644 linux-0.11-lab/cur/linux/lib/lib.a create mode 100644 linux-0.11-lab/cur/linux/lib/malloc.c create mode 100644 linux-0.11-lab/cur/linux/lib/malloc.o create mode 100644 linux-0.11-lab/cur/linux/lib/open.c create mode 100644 linux-0.11-lab/cur/linux/lib/open.o create mode 100644 linux-0.11-lab/cur/linux/lib/setsid.c create mode 100644 linux-0.11-lab/cur/linux/lib/setsid.o create mode 100644 linux-0.11-lab/cur/linux/lib/string.c create mode 100644 linux-0.11-lab/cur/linux/lib/string.o create mode 100644 linux-0.11-lab/cur/linux/lib/wait.c create mode 100644 linux-0.11-lab/cur/linux/lib/wait.o create mode 100644 linux-0.11-lab/cur/linux/lib/write.c create mode 100644 linux-0.11-lab/cur/linux/lib/write.o create mode 100644 linux-0.11-lab/cur/linux/mm/Makefile create mode 100644 linux-0.11-lab/cur/linux/mm/memory.c create mode 100644 linux-0.11-lab/cur/linux/mm/memory.o create mode 100644 linux-0.11-lab/cur/linux/mm/mm.o create mode 100644 linux-0.11-lab/cur/linux/mm/page.o create mode 100644 linux-0.11-lab/cur/linux/mm/page.s create mode 100644 linux-0.11-lab/cur/linux/tools/build create mode 100644 linux-0.11-lab/cur/linux/tools/build.c create mode 100644 linux-0.11-lab/cur/linux/tools/system create mode 100644 linux-0.11-lab/images/rootimage-0.11 create mode 100644 linux-0.11-lab/mygdb create mode 100644 linux-0.11-lab/run create mode 100644 linux-0.11-lab/rundbg create mode 100644 linux-0.11-lab/rungdb create mode 100644 linux-0.11-lab/runtest diff --git a/linux-0.11-lab/0.gdb b/linux-0.11-lab/0.gdb new file mode 100644 index 0000000..6c2dbf1 --- /dev/null +++ b/linux-0.11-lab/0.gdb @@ -0,0 +1,5 @@ +target remote localhost:1234 +handle SIGSEGV nostop noprint ignore +b main +display current->pid +c diff --git a/linux-0.11-lab/0/README b/linux-0.11-lab/0/README new file mode 100644 index 0000000..2e56a37 --- /dev/null +++ b/linux-0.11-lab/0/README @@ -0,0 +1,6 @@ +revision history: + +版本0: 这是oldlinux.org网站上的linux-0.11-lab.rar中的版本。可能是赵博士在原始0.11版本的基础上修改而成。我做了如下改动: + a) 对一些Makefile做了修改,生成调试信息; + b) 将其移植到ubuntu和debian下,主要修改的地方用 "by wyj"标注。 + diff --git a/linux-0.11-lab/0/Source-Insight/Linux-0.11.IAB b/linux-0.11-lab/0/Source-Insight/Linux-0.11.IAB new file mode 100644 index 0000000000000000000000000000000000000000..27c23b6e1f3379c54bfea8c6c805c76fa235fa7c GIT binary patch literal 102400 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 X+E}E5VH>Ng(M~HVI#}YIPA>QZN3SCK literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/Source-Insight/Linux-0.11.PO b/linux-0.11-lab/0/Source-Insight/Linux-0.11.PO new file mode 100644 index 0000000000000000000000000000000000000000..de8db453c6bceca6363a1974df88a64caed7c9e8 GIT binary patch literal 776 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 >LdwT?$NcJnp;7Il?Z10x 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 ZnP<(9Ox^sRyj^ZyQ^(&fr!Q^I{{xPUk!%0} literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/Source-Insight/Linux-0.11.PS b/linux-0.11-lab/0/Source-Insight/Linux-0.11.PS new file mode 100644 index 0000000000000000000000000000000000000000..2c515c4dd3f2da9176ef09bd338843664bd433cf GIT binary patch literal 623496 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

gTMo^M<*{ia#Sx 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"s":""); diff --git a/linux-0.11-lab/0/Source-Insight/Linux-0.11.WK3 b/linux-0.11-lab/0/Source-Insight/Linux-0.11.WK3 new file mode 100644 index 0000000000000000000000000000000000000000..83b8a91bcf60093c431c8bf17f52b9cdc811bb72 GIT binary patch literal 8851 zcmeHNU1%It6u!xtnA*~$Xr-XiX~mKsXS%y>wTU7LiNV&UjmC=9Tf^+^Bs*kwCd^Nh zNHH%WJ_tr%)Hh!O;vWHv7Hr6aFTp&hPb#}85ivdp6{-&+7{4=fr9)zRgG?RtEm05vc5+GbvNT<&w* z<)&fz<8oTbWMos#@iZT>eMi&fW0q?S7d(FA>iI1m%3F5%YvsY`|HEoNyN$6Q?_z8j zAd%4K;Pc=~;B{aMXuCT&9q`+s8XUhs|4A%n*B-{cM$aO64&&dwkFhJ@jbwRl^3?Km zayiyBIT>pRb>;k8ag5E`*snUC;Tg6id1}to+5Q)J^Yg0wVwZg8tkTL`n$b+l?Pr4n z+AT_J%zQ#ZlkJAniukVJ1g#6y4t$bcjC zR@lD;z7DSPI9l z-cPH|97$!<=~O12KG5C4PrI~*ecZQn-eYTiQMWu->|IM@@469JO4uQ;cxHB*jel7R zGKNXmd_?5F!nrOm=@hwPAP4;ea4$FuyaS!yq{$Cq9_UB^ESTPoX$*}&4Yq)fp*Mk_ z1;~Fl_%(q1Q?y@!PUHUsXkOAg!EXZO^E~(xPy;*;(D=*frym7SgEcjRqc`?f|0pqO z>HFYZ9|p|=^H^)=juQI^CF24x473B^!a)Og8vGD^JPM}Lu>iaU&|AJolR&Z|G5Ji# z^`8k`M+-Z7&bGba;Od&ExQei9scdCfhR4IlrcGEJsBF=vj_5;%si(#8wl#(;S-x^% zu_>yy2^NFLIIp7qmTvOcgRi)Uh4H~EjibfUuQ-zCjqDxRenDuPpV^!!WcB6ZRv#w1$ zi!SR);i-4io;=$&DeQ)sS2W~YkieA0QR2>wm)JZ&`F2F$==&vh@tHE)hc+cS$@Y*~ z{itJD-pEeT+~#=`gJX{2=}n?1UVNj8XtHR+emL)32q%0B{eQ9m=Svid9Z=Bb7QMLj7RH!n^7ZcDFEkY#pO2pW3A8 L(|=0vYl{BA4o;%1 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/Image b/linux-0.11-lab/0/linux/Image new file mode 100644 index 0000000000000000000000000000000000000000..9869a43badb77318312737429c1972e920db1e68 GIT binary patch literal 131556 zcmeFae|(h1wLkuB*d+@t?kbCJb(O^~8tRHs(>7?3)uwHvX&V)lDk`>=qNUbq7PJ>b zaG~a54bAo1-d1f3(t52wTB}wAT1@~6{;E;iO8rqIwRG2|)ay@FG@tkToOzyoHUzNu z`}yPhdEJe&&oeV;&YU@O=FFLyGxK!!RIk|FZFQ~aS!4Moy*+90jbFSPv#hRbHm%sa zqGv__1J>YL%UV-q-EUQO`>UQ9d)a7&yDjU9vBj--;U)OQ*xy={?R}^E1j{`mY6qW) ztch9oS6jcE=Ii#2eIn9rMOO6WkG1j-Ta#Dq^i8#_%z=}0hayL?D*Jx8b#!+e&;47g ziXTp1z0>!qWhJ@-7XPm4`Q>0Z^WibiU(++yN?+<*KY7(u-;pDKWZAvFFOTy5`La>1 z)yMQq+T5ETm9InO2qaBDVdPX_X8&%Vb>ztFt&D$g#bvYR{zLirpGS3>zbYb zNjm2F;(xWAe(Gtt18%f(`~Ju}spF5i1Fp9^{&bhMWQ*my2erL4aQ0WunYkYIMXjG0 z%Ruq*)7HK|;!bP(+3PK9%;@HCUohvwi@%Y$?25};zy7Vn@{&xkW_ zWutA@MzasFtb0117`M90x+nZZ#6Hw-tsZIJv;WhFW zob>h@tNo2%6bs!6&=vL_n(~Ex2OR6mpKsmy)Yduqnbw^zZJnJz)w*-Pt%;&lw6?C~ z@12RQ6XaR5b(K8*CR}C0J`J1Dpc8_Sgnh3;;DSI>v|gEWOI7A=G^_p%R^xenk0sA* zdrYhqjE)%PyjPwT4pcZ$;Xs806%PDA$${<&$QDy?U`0NB*F@|0J}ZAV;_}PzGhFI1 zJ?Yh~>J*r05v%p}aH418ewNjq-BcAmtS3*yt#I?{mi7E!Z+K~-!D<}?fb44{k+!~b zf%W_=>pREQ%n%bYXw9|z=dQI@bWZI-3=B}qva9X0{Mo+XDVevzzC(V6==EXWxO@3z zp_RW12Pzz>aG=703I{42sBoadfeHsI9H?-h!hs40DjcYApu&L)2Pzz>aG=703I{42 zsBoadfeHsI9H?-h!hs40DjcYApu&L)2Pzz>aG=703I{42sBoadfeHsI9H?-h!hs40 zDjcYApu&L)2Pzz>aG=703I{42sBoadfeHsI9H?-h!hs40DjcYApu&L)2Pzz>aG=70 z3I{42sBoadfeHsI9H?-h!hs40DjcYApu&L)2mYVpz(p4So3}qM*qry{Z&+6G#Nvl% zT>Q<8zrFC{#Dy2Pe*Mx*GncfE9%HqfdfK5Q!z(=(g3gN~Pkuz5Wz7t)svdv#S7ttm z`#slKQ44piA2Yb~jobR<68CD{FxnUJgDceuz6JSK%eN5U(w6nm&M)IW(CXI)tq*QH z3U`WHSME5bCw$muTpT(EAnmw1bSLi)wQv(RFAA0CEX(R_J)D8cUxfn|4pcZ$;Xs80 z6%PC_<-lMV73a4)_`J5~e<>F#)vj=$!hs40DjcYA;C}}PvfCovRjBF{?RH}_lwFhz zS(lH@;k6jy?>n1U2T!Q7x(D%>-4Iz%@IyX2`00Sp%}B=Zp)!1$?;AcBOMArQsyxHrv@x7xlIc+)qh41Y_6{Fo(?FsTkK%S_OvF@dNf}9G- zsR|kIzIsoP4S;M=$V7L?o*+*EgaZmW^fy!geoTdUyEkb#{O6K$WlG*W=qnCLuoN0K|p?hyft(0K|s@hyx(u03?P1 zNB|(|03?S2NCKe70jL=UpoSQlKy9)U6x;q}er$tftzP<`&&qCSUVn!Dx3kVXJ^RXQ z*=>oP-8+4wthqTWd|%J%P^`+@34V>T)+P?Bvh4NUTv4;1wf|!GzVQom1_!ctV6=Rq zXZ38LT*aS>)@y@Pgq6dRG5gh ziZ83@;U_mvisP$2Bk56pX7YUE)) zJcE5mV*=92!hHL_-~fehLux&gM?KPO*h;`v<5eO_l%KS&*axslQ$9f1kQPx=qXFfC zSE9%}#t3>Q<cwc2f7|_o4I(hR@n`G7_q4hlNF$vwoROS>Whmc%iV*(^4 zl#K~tW5UZuBdSx;*SVd2YWgbCYpzdZeEKK;qp z76JC3T0z!1e<$Fin6|N9PPaG(6+HpPXSSD!-E*6}#9k3bA#+Jk0&1hH_@LkpFI%Fd zlH&XiNtz*ZxxNc2ZFtWoht$#AFi`~-BoBMu*YF*6on`7e!&BE0z-L3wH|^uIocdje zIH_M<7sMe-vBEQDT51ug|0+64w>zS!@LpbB*oI0Ky8-OTaN#*t6LO65V~yxoNUO_n zB&^G|r$9U;BxDMxH3h6>0S$2xJp7`g_y@HI#6eZ;$^(!)-r4oQ2*u{>Uv4e!X?=mE z8ccD6shgNyKiGo)N?{Bn5sGj!QRMu~tS3Y&4)z3@l|dU!Y2+x4cQjIbTH9m9k{j0n zMY3w(ai2A1U8btoe8Vb6K(zLemlyAB0bP>5+J(%u&p}n^0%(k+yttA;#mMu2mEhby zN%vWxF##GQJ3&_AN2oaniR6GhymXlx%C$EG8E_r1skttOSG9wRDeJDBXd-7IOmn=#~ z$h+{>XM;l^IZ95kjR`_Fr}Y`(=i7=WNhU=J^;cD_b%EmhNKz26D;HsiS=y5s(>^CTekYMhER*Yz+&UAs*?4>q8J4T$ITk^fY7<{Wi6Cr0 z<^bXwf%sTN6~{9Ijm`*2`{J+%fXzU3Hxc{$UO-VO@%M_9&;(4qz%|HjLudFP1dQW* z7{Ub!f8qV?hWL6!V$_xjrNDe}BD%3L8IDklQH)i%6F)-nVTeWr1BD+V2H7HpI#7S2 zC)nA-f+BWQNcSY5$nzQWk~NE(`4j_0rUGaJsuq5yzhj-0I-y@`Deua@qG|!9xl|f+ zLn}u5=On{uxX6g`iqE2=*$q)6_jML%-w$ii@zsCtH;^@tF=*E(H20Kh{9J4TNw{Vz>uV%P- zsX%a`K_S7MHEErIm*(b)eOjZ^vvXZ7ki(O0c@+0IaWgcI zk5#NO(0xH(a*^qFq z3N5?EKb_oS+qG2{50XfOUFb%G2J*+eOOc49x~frh*djH630bX48L`0Y5Ujwby2mdo zp88Iq_q~9F<{yGV(|CN%NpA?+5%kC)`_t|dp#!8Xr?uUFWuO7D&gY~kfGl8|YH~6friNU8G*PPwwO&rs6b>MR5!x-2-Sc}o7-_1p$ zXFe&*V6fG)Jyp;kvCgyoP!6$dZ}swHmXGb-5}BKe$jp+KE7ia`>)8pZ@f)FmxX{sr zUXNEwcp6X6r;{9KHlU`6tI76+a#Z|yiR3uD#!E0q@EV!EAPDouZiPykg)z7pvzXG% zyq1{03rusb8L-#eo3$*KaVAq{BSlyh9?`?Xlet;Rq{vfXGi1hw|%o4wnvawf^_T=Sv#V=Y_R)22fHxWD3XYwDIJZ-q-%}joQ$)77v zmXUPL0Fz%~@)w6o&NF!%lV=Q<{2G(rWb!%X$x8VSChuhO{^dr1CR?--{In644VOE} zPLv}_39ySIv;M4u1!4vgsRpn#Y_fbX3%{lj8*Ot_=lHms>R zlQqE4+DnF^VTb{?4-BwZv&56X{80a~fNR(Hy@^=3r?E`zLBS3>eGdI#>=qfEVLS<|pguyv)otY>Hc9lP|$L z<1otCS&LuHVm>OCQ8#c~#vGBs9R<{s+bF7-66JQv;j~kLvz&&A#>%Dy7WLw?>^`1q z>=Pq}o&;iRF5~2WDr2J>o9-Pr2*|jk!bN8eVU4g8qIMUIK~|$t?4!=6s?z&RE(MtQ zORDi6wbz|C*WR!9(MZSGj!&H}spO55OWsW`d6!&~U2@TY;1C|clV!wgurPupZ%nkg zUMvQNq$B>_!yw9UqSj^(suqb({Zc#gMxm`=9JeW)lr?u|5m6z;4zCUG9k4U0grc9P&yayNk11zU5>!B&N$6vA#40eN8A^ z1&;N#HxR9x#`OdzlpuMvZ{v z`?EbY(!0T!CXGeoG~*3_?d97JG%;i0k-FC)1geatZOCE@#t>wb8v*I^dA^A7OXDG` zB7jw3I>wGT3y?K*GCRIx-AaUW{w@e?6lwx%?d*tAEcZ}UqjT+(Wjh8*@v&`>sQk5G z0$eC`tPw{Bb0^oP0bFY!TFW6A90GB9IRt|a1nU@}7=b8OKJDv)k*h=9EP#1pFeU8# zQO_=s{?0phjSO^l?;1I>^OjvBs{@Ra_6g1H^KqSK1lMUsZmhO9eilpFhan_X_79;l zunU!p*@a4t973f=4xv&bhft}Jd!X{FGAjGn=GH2z5)1*dG{SW{hSRJ0E3eCXuE35u zgFZk*R78gqk48O1W|stQ&cVqE=2Ry!i|mfw;TRax+8$+o;*nKlCj+MV#yO@0IUwQ* zOTZZGqG>TyG;^qc0*02MvJ|;ODf=R6Hj_pXc_2SJjmL)=Zfh`J?{4pW02Jom(x!@G z`W*|eJT$!O^m&ZG$jaZpiBqKDIpI}o)9i+tbGUiVrFvyS3Oym@x_H=J+mGci#P|>& zvqvwtFqidh&gN^4ydrVA)o^s1bX<9#()IxPCiV_cr-8b@9koE@tn5GLsUCU;hLBqegfo@gnW$>r;+LhvID~XI!zuwceUC2RUr>R) ztXdtaws{Dup*1I|*$rvBgU!PGZ1AtKaF&`Ob0D7+TWPU1D(7f<&0!gZ6d=&74bo0n z<47al8~`E<#2jlv*&UIEDJX<~2a8nAL73}_ znf;PrwU};XLIUvaBgIeXqe|N}p zQqfrRvakAcXs*SLg~REN=Hp7IE^+c+WDSHR%79GqJanvX2t-no^T?d zA00JqRxj#f9n?DvuJr#L*H&zx0e55Jc7vB2TKohjuzV75Gp$WE5 zlt_1j5U7K@qE5P~gFwx_#IlI#p0ac+bN%T~Sq^o_=ME8H5v5UlQpl&d_7divo70Cu zE=A0>vr>sh2bGs>-M9oxm>atkq}#&*hfIe9O4T`g;W^hW#&90E%ckxs`jX1x1zoCY zt=1a!J3odO3zev~(Kmzt6hYxOe=Yj2U*goGBF@DMTB*W-_OwzAIpZcI_J^lC6*POe zs7q94>LGdCLqlUua~07!)w~=CV^-UI5XHQ)*28y29otj$#(8eAzv{EtZ&dS0o z=)lsAEimk)xo#DNblB8@cN89z`WsgYkDQz)@w(i^X`prlWtQqOo9kJ22XW@w`DCt=qrGnFR==69>To^jRh%EF&K0 zmw5jdwzL85j)iXRtEA#_a=7?uKsa8mkd|7Ry2Q)ZgoHJZjloW8`yauz16gN?EZkk! zVP5?sn56jySYxK{Jst6I+}Rfo41=711`}=7-C*lraW+B`D|3`-{4UXcsF@=N5Vu_v z@DZ$fE*;`{J{>L=SVej2nZMf4jbf98;I*nU2p0hS$r%>uA84r}U0<=Q4RKTHwQ{@4 zcZPNffPg+EuCUoheL#vSYl!}?hx5OG7{FyxaW z+rB0aI$GpsOp&5B(0~bVNu<(S(s>`Hq@NeaQVZZa-l>R+YdJmMyUU{;zj78zAXF>*0P&6ys`1DeM`S3Nc zT>JBBNOMFTMqE{KswcwLm$lf0O?nfk1foA+BfwR9$)oTnvmheHWT_YY7ka@1>;<>| z!{{Cx&Dx2vPP@dm8t>MLEG3C>xSkwI4vVwYl6e|-xpz|~ie(S=@e2$oTqYYm>3!|Bz)sQhMAC(1MCOoHepDWXxRQ(dax*c%FX%3@ z;VPF7wS}lY-IZdHL&H68gZ>oC^=%lX~_`W#h}dtS^d2O0efBVmVmE6;O|H61xNV` zJJvnv<-IHNK)#hG0&UPfi;MGG7|qqLC`vG8li{rJsgU*j;r$pnsl;R8)DpdwV>va7p^5^9Z@H<%h(&9l@I|Cc z?`fl#Dm9v;UTRyvR5;p6g%6vidi5Q9I5hbY1xgE%42pp*NSFqxsAca*F8%2u8AET5@G#h}%%rCA8a z{w~Iq0nw@hJpwet07;yu(kPY#ywK0aqi)l%4d&mnLsbs2a81F_xDJhr7hBmOK$z7v zL{WVeDif@M(>_NG)RYUd)jE_-6AH~~fynP2W5)Q6hL&s@9Q<&Q$2HO+VGn)DyV(!1 zt%zM|RXM;K#6+APQydii4DWHCY(z4G3VP;G45Gfq2*%P$`_>QbF2(|(SR_NNE6S#^ z&qX%ReYqr?MXnCiiUH;2)_D|qB;a2ibqRoAOobObZFFZ8IEm7NR-Tnibbf}5!W6u? zu0e`M*#|f}Mj$)QqX@HO+dX>DdiAT_30^0xHX0>~#9|sHiBTD2*>dwYY5S9;oTcE& zHJ%*d>a75KJ35%o=R4o5>Bn{0nNp4c-cX23BX4TEf+EY&IecA7OG`r59I|y8;o&F%D9G2Nu`}I-J zb$;2$87<(q?`_6Eq|z;E(x!7Zb=cB(b>8UKU=V;gHENZyQ@Jm`ixomquk9$UE;l4 zs@{1{)*m>xkC&Vz=ezy;FVg4dgXR=KQkY>PiK}EuSO{dj9ZlwciauGMns$=1nnYR+ zIhl`pL6y(fn%*baT6V$K=wSQgE=kQ!(m}fq%6Pk%%y>y=%S*b^k_5ocU8 zvY<55Q4>}7kAjXR(dszJu81AsXm-bE7juJy@0~4k_-40IN+mJ>IpF4QMUY!%qd4&5 zNHlgo(F7QO{q*wh9jHbJdkR^Ckk>1)F*>4mM-`$JSchxm8j_)3j#bm@KuHlylV`(t zhue!2gM&P6Tz(H?qZR(m=m|l%!-U#Tl^r(Z32~8nZ)G_6T2KK}Vg#m)8aeCjmJD$z zhh&u8<+*!Fl^B`=t+F|5fJD zji2|S4~CZX(q+Pabd3c)(z$jg;NG~+?%#P1`(hk(i^L!th89*8XRR9WRdE3$v5*co zd6u{uBMtbGAc|f*$+kqms;a^y7>vOVT>|(K?AQ+rzExPZa?-Ja3nam-faE+NA*ses z37+HAI8kCDNv5C3bZSO9_cnu3MH>uA%^v{ys6)86Hy@qI8Xz1iT#e3)NQ}xd zc*2;!OoMV-93Y&n$tYvmp$0t$tSz6IsTDAg5M_>R+YAqv(+2VuD_FuS%c z{KEA?BsE{!R6jEYfkrPc7O~>TVz4BXr=rw} zjh=7<;U*7bnhJx;h=fx?a`tv&du2edL8B^%0tHN6$TP$^OiGErGPqTPHmI?j@#rxH ztjTUdzeA1$PI^H7S{O4|B8mP>kS8*^coC9QqO{rkF{d$3!6tO<1H^C*C1yut8VfmE zz^OPjCF3x^HL?|>Y{gvJ^0}c7?y;r(_^BbEG30X}GY-S&YQ!a(kYECKKAF&jQ?TFP zjwTw?0Q6%{fd*{Hg{=kqIKp1LkXoOHB`4k7ho^!0IJx)oOTxWcEDk~X^P%PKl=KFl zcrpylv5h%?tvTvEtwrpvl1J7}&No0kqfq1WW$ZsrN@EV^<8qQLMph#lxI+^u zmZd={4vPc>aQ4w^fvnA94d$#facmIakO`-ud29{`=TZ4%kPsSLtBg3SK~gqBt1_n< zw;{sCujPLLrB5C~27)-XC&xfsd_4YF!q-JEP4AEg5`s=WJO~L-buT)}-e^C&^Nn9* zH$=reU?r2i`O(_XNeM#Q>rGvtR?%w@LLbYPv`PuaFe>iI;c<@tBTzwsC}QYZw`E3P z5RkLWapGME(di-!Aujo!>OP&!QZ3o_76}0+fxQ(oGRUDcEA!q4@cb9>qxl;E=k3Wg z2y+;f9-V8CVVHEt20g~092(6`#w5a9LThEbIgWt+gW4tN-Kk}H*p>jFv@Fdo_00~P zgxa>6{C`JJcDUnoi1>ohXxO+63I?nPU?g4ocnWVRr6QSc)BQp@3}Ur%j>*oR5>bSU zO&ZC-pBk3Fl+Y(U@hYxJ79Hux7mVVfQL%q^%LgLa#EoD{FrhxMtRq8Hoa!T9ram;( z5$UFtsP;%oZBAJbK*O2(U59i}LN1MST049TO=rBK4~RLTF3x5VT;#)0^JRH==hIbk zoCb-xE-p5BuwfotRh*zX(H_)PwKinsMUfrM_()xmD}8aU^u=YR?}y$|0~~C0{dZMt zz=%d#ML<|yC9`^(Yfpd*jOD3?6wXE#m_mUC+}^;ZOfljgkaUd0fx_FMAb zW)EMAFd@-nXtZ(%E(tgbCq{K+jr9Z_HI7M~9xGuSthtUG^)>h>mxYXI`@J_u8s~v} zWM)HqPZ^RRIsU_3zL9v!5vv$L`*NINr-A9AfmCrHI5~(Ya;q4rs{E7iZrO^U7{<(C z6EQj@>RBZ&HWD)eb<3~DOu1yG##Yn%>4RdDO44u*i8O7r=Ab63JaL|=jp(DQJa^F0 zr`$y+L0|V`nKmR|5U?5P$rRcs0|v>9DS0uF_Y$Urv;|O9f<@t(k|Mdxk}?8}Q{A*d z68Oh4D>cZHUjk^5b{+r|ugBF9f$|L)P{AOog(Ubjf%mAXm9(`V&O=3E(xRM?Up1Y zmC<-5Gol;Q$I*C++Q57%#MRT4Q!t6@=zJ~|zjV49vLFz9e51SHAjQ81#Q=a&i*6$O zKZe*io*dC*#Cs6%YNzT-v#%g}ZZ2Il7b|Qd@ty=GZct+ZvSA#S5OUw}||V;gs{c!Vkb5){vrW00az;J4kyXfHpVGOs&L zSoyD%`7F9rd6})I%-E@%nHk9lwx5h#pe}Bj1;^N_HJxoPuux_ptm2nQ z2;06`j|_FC;~S2pIEv<7e6C$Zd`7zB%o$})w%U*u_};0*aO2F~67a+rhk#>AfEIQ# zORMjo{T1(!`(Mh6{xS17Me}5cW4)Mt%y;@lb|(M_)QnET^zaAJM?E_N7)tknx{z)= zw(Ujqh3Hr~t8%lja1wZ^4WX+c*DoSdk>9h_^v=^0p0m4{fO6vP$BGV*k+LEcDsPUU z7*`cJCdDvUh;tqjo7T2PAEu~3K?P}1K;OB1CGwLGcC^DoZ?r3SvY)={x~`_WpX+Sw z_p&yPr}Tk?v<1|vzhaV$Su5V>?;?RDZ*CuNTfkdPyv*=|GrR2h+Dj79pUeKJusE!o z-gjNWdYybg!PL} z-1zA2eL3LUBpV;__L@P;JOl(Xj?;*ib_HkH5gS6e7{_h*R$p22EPj1xZD(T?V7G8+ zCAwoFI||44&`#hLQQ;sKYv{`deww>IO2=5R5tuAL^b0xh8>N|G2`6II$zmcQQVgM} z9lO8?#oaDX%jK_jSow1*UF%9WH8&8(Icb*N@2?Mm@d$#EQ%>FIaTuNSl$c+X-zKg3 z$uu2}JUa@Q0|KIgtj9=h8iHbI1Ff;Rl#E^YWv9?mw*z5xhQcO2dpx!g=+AAo*@L-s zN~8=?M9)+w3L7-w4UDHjxrD}~E>G8C@n>{5R;LD?+o-U7?`utFcT}~05xq|xrLHhs zxLopa{*NuxIT8>B6Z7?BWzPVe?v1Aw;zob*QxXe;YUXga%`>=%M?d90b~#Fx;$GbQ4NvqcqxJ|AI|w zFS9jZC?UE=8AGj(JyRqA*I-6+3I{0?M)vQ}u z?*g6pm=490#!yZliZbNwK+d*J<%HNKG!*-2yJT)@UQ9&@g5y(bOW zz>rU*jeH`%#L{G58~pkjDkk2-S};IlZ;-v`aO{~$+o^%y@Gm#H+5K#yT?W=!1>8zO z27=l>G%t@&?6!HYJ+aih+kukR`2W_tAj!%oH$84L*LmRHb}c`mXZd8i&L%IT$)gz z$0=yflQl10n$_vc*V2qsgnGadsHIS|dH)t>SI{PAP1Y!Yb2SruD3G;|yF7ZWEdV*l zgV!hFfw7)GXAVNtV%s?$V_fdeE1@8X#-@pFOz$IW-Zt_a2?Cf@$b(N<;KO#svpbSc1j&FlZtGl?;dV5mxGLkvGhu^VI(%hiy<0%Q*S!@gPVh-Y~jaJk(Y7dm8z5U(5>IZ5WlRkBj_bCth~Ss2Q);A2T+TK1DEuh=*bB!FM-!%f2{ z!s?=$#VJ7w8AKtr6r!+w1BNM}WkKWHZb9_N8GR$7NtX@IeHu;{vd=4_E1}z+lta}0 z!chMrqqTP7WiMb62;>IqK`x%)Ybo1@Ft7+qp^;s8rzhlBBNwRCsfx2ebyj{9_ef#v zVjhlsFzk6SmCM{XaZR}sgH2B#GXi&5YmzEez|&mDv5J#9)`cLM)Vr7*NK2yTW+QqE zYkt#utP~%tbkGYa&W0dI z;_sE%iC`_0Zik};-^~z@nA5R#MWiSS!!_05Jo4baUZ-_fiO!ZPB1DUhM99ouIHIzF zn|kvBnR~`cn1wB7Xt@XUpaioP%@S;ua0W^sT~V; zF4^x%xz&COP%P>dbz}_rU9r=I!yJS@zMO+#mx@z-DUY{`m#4}=h$+Od<@cXIZ23RS z&jBm`rGg(rKl~R8K5I7x@44c&7meQh{7PDKZ zdyodn>DM>^G5u?fgDA>H3Ge*3-H$E6^e5D%E5ljSUZAB=UNOW>3Jx!uR`MD-6JQuM z*%QM&47-@6k_=X&~05>6UxfU`4 zLCvO^OR3bX3elIA?F0h%rDgczD;Pm7S5>^wgp@6a-<2(H4S|weWad49v*=P5Z64(0 zE!Gj_W@|-v!+Pk4kX)GqtHX5hs5x(>E11}h8wngC*{lE%HHxu!9x?rgyTvl-QP}`i z#AgX~1H$g|GUOXZCsJV^aQm5WX4}Sw%wm80_6sS$w%46NJ!nYxP(wHR8pn|HbD$b+5VYN=tI9>?n>yh<96gCDS9sH=- zN=XPY$=5%n_ew4tlGcGUq*Ko$SnyP6+qQ8400s9) zgIg5gc=2TZ0+u5p*v98a1Lw6*HIYJhn7;GebRXs+GTZ9lDw2Jor&&5>j?{pOT`R; zI+slWTw+gu28TS^#BwlmNK;fO{d>lLhNUW(xF#dX@S|GS&2v^b%#gNw?LXNs!2!-m zwUPM~;5tiO(wI!s&l1gx%XY8JZm3lsdimTBy%)f7TJ-q^+(!ixWxNr!T`+rP$Pzl~a^a<(t?3!Ri$3A7B72NT$y;-=ID?31WkwQ|<&& zlw#aKbH$JGlwLGjr$p#Aj#$LRO-B-wXh2sicvRNdW^~5E7=Ux6W6%z;i$`09l^}s- zqL5(WKQzGkpjyqC<%#KlXNX{UjxkT^b)mjAW`}|Sud&jrGt}so64gB__W~a}8X=U_ zPy$sAsU4DD&G`(7MByNkm%#{;Sjh{rHJKsXlZ0*xhO;x!(pViuR@P1iNF5J3!^Mc_ z43r2YfC$;qP}I}tW-?MU02!gT5gn25pZ5S1X*J_GP4%X4uZ+ESxP$_)W#E-70Oj15P%uZ(1T6@ zMFEJ5Ryb>J3?gi@acUBElRTA1%GY#9{)jR~adA)})qKQqi6mRvtrGQt4lp_j%kKSA3u zB$Q0OzmRS=h!-~Gz|JU#bxLbPY2tBe=5oqKvwoS>1s18x;btn!a#wiuvJAiR!VdI9 zhjA{)44xNs`I@Yzo%GEvl+N*m%L+5_9`8#-=Lv7{I;-?L+j-rXzL1=Q8^}fSBo#kI z4@HT7h#ljE%KI?#faBbKhVZ9~vJf)A@J-X!%2OgDf~%Y^Ucko=t(}O5{{zXwlrI3J zo>_2&@cZeohH6CSPF*}!J|x4HBQ%qP@@N+&SI8L1fEt zaJUs{I5?gFEaBy-N38>iF!kq1hZ^Wj^H9;tnM6C8MN<|ac$~TL(u7zMo+*+nOD8av zV~c;~(y|NgbINds%5jUF4Z-a!OK}lHkl#@%Z0HgP(xa^zw{S|kmuegAzm|LdF4HLO z%3KeuEA4a3VTrB0p}q$zN4m3G4w&X>(_`k7+kg4~IEF75m!YleoP@fv1X6SokPvm& znd?)zh#a=Ven7hz6WKTfPT{CaO3Y$1D!`z3A9gmjvpL-q`TR{DG-BE|=p3?;*c%Y* zD4!U1mEe9oSojO10@*}?yoR2RvdyR|j&q`L0LziRaF@d3e9&EmaNeo|YaOu^*3zwp$o{f~5 zOzC%1obE3bpyNC8%X=g4+L3n3mOJ{5KXMobJ4>SiFLM z3GcFzVc-^*f#R#3;Zkmtt8?4~5bGw&ysvKsc4?j8I2k-!3u)8R0@_DVA>?}sDs{h5 z8`3B<4!Z(;y@R(n3sDhiTk+_V)J1OUiOe7^TuMF9DX5r`yqG=OEkuJgtxs}FAReS% zhNGM5pdw<4D_{d03(=XN#Lyc>!l$+URU}fEJY+z;j`9?TziWQ;d{J0Y8I2EP5pGXJ zVe>>%`qFbyZyslga=4AkaQg?rX@irqRjYfJH18w&t8O8o*9Fc0O(;0q$?n8|-<9iF&N zx@U~6BB&^i^xjGqt^ZL<7IeVoE%$wvdj`s7_d6Yh?)_9ZUD+A|IU{HF?idYx4H}Sx zLkQ9*6B{LP9AT%ElUzsYiD9yj{=l>362Do1t%ESs(Q1{=vj)U)IBT)d&Rd}v5Kalx z8+15nNCS6-{RsQ47@(voWw}noawKzs@eQ2USeXOG;*nWot>XZ-Oc|V#rSkgDx+^C|uV^5l?j`*VJc&?{o1Yy({pBG_1i(m>< z1Hz_k)aWkg3J^03E(%)#k7%5xYJ~qF7}|so8JgcCLth1ndtoT>d}Lpa`HeE;x+Posh4u(; zUPT87F^A&>8AVP~5dD-;R5n9uMBw4p8sqvSsEPT*S3jg317D}C3Piq#T~xgwlnw;Y zdU9HX9E=I5V6qdAmbc04#V>sEAbawtmtQMkaTTD~)hF~@|9V4Bl zPTT$@AXEG*M8ijxRQ9cAuuh9yY-UtBsLsNt)o5wNb~69` zRmqXC8p)wfq9QYmyek9(1#w~>l2$9XosyzPae5S0OBCt;>s%fTYze(~HBqJw{*0C) z9@U^V(4dbJkBwShUPLRUWZLUsp|Ckifj`?N=bu1G3f}DxGG*_cTxlM(K{H@%O396* zDG=FA$5DvRPo(prLG{Dc35RQDAfL$L3lpOV5P zMtIinwi(4o9{_J#-V3K;pfn3`fx-*ghN)p1kS(QtO*PUCtfF{=ISoslN1%jLThzbi zN>;>;F%UHv0?CsU(pX7&*^YIB`f-P}@y;V;0>rwwSmN!U-JAREMlJfbHWS|C8lPD<|v^%tR{qFC#$!=># zH}X>=P}U3^wR_@vsXz<&#lbs{FfB53K!Af$OAc4=k-vDw76jBfEoOpLF`mpqdN0qqMcE^32$}Si@jCIuU zy&=0}{DR+SH#D0ap;{Z&`SBs%S(rI)H4!MCW!yNS-qijl?=SwjY(7T@kW@dO3BvwN znCg1Nj9qxNV|x#Cw4s&$R+y8rhDPG6<%EFTM()rcl5+`YaHlnTeh(d%vivVxW;oQk zVD_PB13$`TM<^H{-DAVyR1AJ}oBz)GBz+Uerq>vz2Ti{L=UO&TJ zGQ``sdnSy;E|d{h(?eRG>zY{nEhurc&=b(%4&Y9E$fF zCA=kTM({?!3wID$1Td5ZS1Z~s?xjwMDs6kV9wJ|HC;zav&RT_RFlQ{XVz%}-L`Smt zqNG>TLnYu70%lac9%?y%9H3EfJb!?`P%vAnO6T;CKy=}AfGnJZA0~P(02qx#6q7C; zgl&Xw1`XebEex#2@ZhvI2~#V-7^6=Kg-CiIAkoET^hV!J0$oa*Aw@*>NJcaKO)go4 zUtcrNGUHzo{}Mozu)_9I)mY7X91y~!RiMyG5p#e8@6EUlqC}|djDbXINnGVoyDLCv zyej|58q{M%ZbS*ttk_>rDnrD@Vj1)b07hiQL&(2Eh6lhVF?>&jm?0spCPA8)Z`=+B zmM{sm_aY045nU}Gl470!E~BtOMG`06lRV+xhkByke$hAX&4|xpi4RcJQ^_FBT<`iXBE-k-%kYav-9P^8S5{p8yRaoqy2t8t7ZPw9a4})R^o80yVzvMS#=* z-iGiO4#0CM57%2r=YxG0B7+rFxXl0(hu{U0-&q8tA3?;{n%MOk`x=TuEc1I8Z`-k? z7Xft^;<3&!SV${Q7Y+zXIkNIG5ug86%TQ4n`=qGXFq_l5Tv}S1+@=L;F1*8@3>yMq z4Pfd~+*hQ^_=Rk0&6duGL-Kz{5Su{6BcQsL96iAU0ENH++7^3AES*Fgw zX#>fr?4dX3x}3nS!C>K2sH(|>YGTyucQBM4e%SGnaQzjKj`rch%9L?*JKXq?lPUO= z&2`Cp@G{gv&q>Dj0X`mHwt{z>8dDiwQ z3eNGk?Al;quo`qC$cAMwi1U&gmnM%Sy~yn!ji;0IIpjoZyoodv$%oZikGy=_Xuvd7 ztcK_^+N6TkMC-OvU{vc%E`~8~G<3PcA>s7%^g~oUD7IG7@qy3)9*|FdD}{f>kGohJ zj?Pe^SbExI8%hjZEeppJ>!twgFcaXYbDdLB69?oh9wBmHA@~N}y^O0# zV4rS=t3E&*ggTcd>i~h*AhJnU1ds8`Zb!=OuU#AgA(nn9LPOd>kQ|TNmTC zUthnLyDr(S*dD+G)0L&k9=`NX1r;L}egcbW~jIvuMp0$o*>)ggvYU~BDd^ZrwUFk74iU*ul#=c1;~*q=Eq{IQ;Y*SX$z4po*X$*wuRbU>OSaJH#Wy7h zrB@87onb!H;l|O9K%7_y<=wC!dMZ|{6zlw4UfJ`XRx1U5^H<5ld z^{}d}FFags6mFHwUW?NaX4huJta_x}_&Wq?EG(zSA3<*B4LceO`Dfzzwm$=mCfSk= zG&F}PfC)U%v;*eFKzL#Am>?9^w=r0zcf{i@v!2RGVafpc)4h9%w4bX}O z3gnnS0v~~S$7MukqNR%%t*aFqQ`gb}H%HWE5`v|#df6YVN7r{^ViLoNti((L3{b>< zx`GeFhzhAOLEOR#uDQ4myPymaM2LU|&m)|XBA3Uo^CDlxLu5>sWMjAml?QfD!|l6e ztFxS$6RS?e;Oe;eAxy*Sv6uCfrZ{}KT={@K1b(bx8?W|Kwtj(Z<)Hxb|u#hNc{J6{>7|*L>yhky^OaBchNQAc2{~i7tTuuYb z&9%^Fpwt2kNrB!b*td8TqH%c_n;<6p$Y>=$mIKx!-f0>e@^=)b%CcnY;r<50{aeeq z|6Z%q4&2ArB4sWN{@1XZ;we6_#Wb*|oPB;2NRKV9FJe8Gl+>X8Q@9s*$vSS*+cTD8 z`5*tx-85Km;1WfRPj0zRO>4VLLYdJ(Ah)H!3YKJZ^K=GnwF?DJs^U{e2W1ZKNh(13J0L!Jn^M{PJ{r|rE z0*dpUG}JF?H{s%wpt@fRMb51Ftm1HUK)ZqaxS!jhX36HUw^_p)BADy`+AR*-L9blo6MPnrB ztP;tkDJ8D}3vn}?hZjN&{3Ud;ZJOT0C_vE54=8en(Zb!rmdd?d+hp+1~_k;sY)4px= zo^8SrX|gvBKd`jFH_t`(1j5Z~^AONo0DK$b%!sP+vXz>v(MAXT0XkvB{J5V1QOP+B&)Laz@yo@OMvQOvgJ*L>z8>94V>}r8+V@2PYS)I)ym7 zDQH-d9snkQ8Ir~jS+*yQm{jpIEKT;%lX&BPgKP-l$VqBbTS8miYISK=O7plxHG#G@8G`LiqR7RD!eJbnYT?LH36u}Zvaf~hQXf|ct zrKcbjE@6g{w418?hI*^V-nZw>B_Pm3R0`o`ONj3yWn&*#54U5;3AAzjm9m+EP@OKm z{}HoRd}^4gLQ;H>cAQ)Vp^$C$F>RYzzm4k2(?A6y!V@d*OMf;BPrUGLboQ)xFgED; zBR$Fi%U&rSnK#E{o9y|LYxMA#mV!ncSUfZT88(x`CZNf3vy*_mRSOZ1!f zJ8iy9v9fFGFjGSqm)#Vplnr*@h3TD>`(EV6JNK)pqLWO2{y{Iztw*6Z#&+{1N9P-! zClNWird*1O<7(KfCsz>JI1xq@mp>v5$k!J#0eo1u(P#SSE_X>bEosI`-!8&OUXrKc zo(TlP(=pn{jyRZoh3D9@0STV+KBmTrpOJDiR3rp#HaAKaexraQZTGDO^WfAnSh#_) zYRkmY0+AstAkbgrN}tmL;bmXa(F2uAqfoaKevLRm;$Y$PrX+S*yjnJxYvC-E7y6Tg zmQ9S08EDgBfL+C16nCU`3#ek2S6IMSP+-i%cDaibhB^#sZsPG~6uk4bM%smqs1g?K zoQ3+$f`sv65M#&QQYKx;F&oTKmHL{F77p_=5HG{NBHo1`SKwUGp#1gg-G1h=(Ll#xVHb@_ zD_O$xKo9=MAok^tFecWhx0BmLsAUDsKk(T!ynET>b}4Uj(<(RfyAXs2{X|SIJgJLF zW!eUnFTN*L7t0mYI{iiYoiM@}C*&>nfqoI)2Q-zp5V@lJS@6sY{ar${wuKdh);;7T zI!|m!=Mmfy@XGBx*t#&yIq_j>LIIgXgwldjP4T6^@Pn~K`+{V7`(9*`zA##|(9_7s zJsA5MZy}z|?Lw62gcBG_$!pU^a6`=A?HAKlxXzFQfl!bS)3FjLlhJW>tk}?w#pQap z-WfXJ3E@*gxT26Viqh_roXTKrKvmH&ok?;J{#J9_XtX!2RTT*kpLNcE=SQSFH<#@7izfjG7jszUg+tB7I_I1dN0G> z09S_{Wm}S$w{)f@#lL$G5Q@A!sJhb`?7)?;a~B0o1j__Y67FcZky%7ua+;+E3lI

nP+vP2QN6RTNZf3`eJ=G3b*vTJ1ngK@o>f=AcY_oySCYr+-3!`{V2v zLq;`v#U_v^hRzoq+WDUL3Q?wsU@WHRuDx*PR_rVTm^8|hnR3V^qEkE_MMjxis+}{` z;o6chC+l$OnnTR|B~v2bPu6$ou!qC6Ep=G)^`O%72kmNK8_)Zv*@{&7DJP(pS)|KF zVZ55kM(nAS8~}7oY8HJ1{a#C_=Q=#@O4luQ(EHNCPlw@xnn4hj)f zx&1+DL0QHCEr?FrVC||qr6;Hxw%o1eu1%ar7-bfk&-KYBqLQ946NXb+jF%^}0Ok(! z-$5Q}v|*PmnxNvCpY(j5kl?W_TgWo-ZuIf7s*i^qzYoE<3lif%O6_aLZ%Z|9+4!CR zHH!O?Bk~s2Ze`>5G8no>AIl)Jme8V)?;-SF#_tw&UiVBt1WCp%^4nS@mkU)i&7nre z!dwcmFL9a%fFP&?0=!Fah;iO16dh*hH!!*rE<%P69s0GTFiY zr(cyC<57K=l70nqP)lO-5KXRyJ&QC`?#15K4H4f07h8u1+aeFP*)Fz=6kB`>FlLxf z#GplCrM``xd^K)9p6M4V$}Lf;h@cqbLE-bD_#3BxXqv&oKTUtJA$NCU`58^^67VFp z>sULct=D&9!+$aNpPAbno#dF*P$jn`@)aIWrmOd}GvCuHXmCBQmgQ(Y!F7(AN;*2z z%m(Aoh|{SNXMwr!e9nEc9pBRJ9>1)3>O0$e-wW8U_3juyX`MTh4CYP>+MlT*wGIYS zJw~Y(Uik2ClxCe=``)lS(|5~1hwD1?RJh8z&K+iPfoPs_wOxJn$wo=!5k#jMjf4LFCvaa);p?YVw ziEzGQ!Lf|n3ay_XlHh*a!tDiDX|d823p^y8O%jAD)x%43Ngk(ZHj&5UJSYxyQEV{M z3?al`$TWz9%Ht-!adc80<5)tT^%9IrZ&FyRFV(IOdF0W*;f3~Q5NvRl&vie#El5!n zUR-pm;F3z6hj$~Q4aTqBEQrWB^~gWG5@9qtF0rHz&}-y9vr!ta(!)j(sW3PIP{{ny z<&j1kJ!Lzz0fZ%iT#kfG?#F(K+!#s*3w=i1AkpqT><*+d2QjQ7q?Gd$g-ob&OsR4d zV_X0)*Gz(bJ~M46`gtakw*!s(n{*%+Cpk~_6 z>1JVV2o*2}5Z%`kSEDcVT&$w$UJX_!Uuu=UjinE)#n&w+a5I7bLxG)R9fJ2f%m#qh z>CJ7=%&9v%LV9+(Tf14{96&V((7rXiI5 zl#~s83p+Ia?gJ_5OX7(-Vq$t#;a+K0-WRp=j(7UQ5A?VCeNPql$@V6eyh}uj3ic-C zi36CuKZ(PnNit)xequ)q|LV5uIqj`pydNGZtCc5C1qk2Vq0khb!;h2}lrV)jeA|9< zR$g4dtqzcX&3x@eW`0)FJD`W`6WT;zCmM%#eS$-WN>S4Jt^;>lo%J{2(a(M(JThY- zd2}!fIl>g8!o=uLGdg0TVT0@D@mk)b#joD(eB(A!4$+Y=WQdba@tn@9@HuYh0xeV@ zR}}>cGpJV}k$b2gZBgbOUUPAuR7FyyR74Z(0qbPGwm z<(ncmt$e=#?}U=UN;ufg=;YM<14e1o(;|CgV8dw`KLeo+M#k>=lk?pjFAbX$T0$=HRiCr`+Avq2{^p9tb@?f{Fp-&6Vt zB8rEK5ecFqo-C~+u@4!+T}a|dGIqi9ny8%0-uB zbdR{cNuI(>pY%e#Bc2aMp+Sp3kQQ=ul{E4Q(36#G2e@bLXowKoUvG2`ic1#;YcNGlz!qWg$o~SD? z(p*2@!fzEzN_~1iF&yub9^Q>IpHD096|(fHHPH=nSD?5YL3PL#P7-K;oYM_&yt($VUEc{lU#7>?&4A^ z#0DGpHmCwTmdD~%P+KuBlD72`nGMl={x*^1vU0b)<+wwT-@7HRfUK^}w*C*vdzZ7% z-ILca40)d^k;h7!8LMpCw4+tYhqA~tA_HWBwr91Ea=TO-@XyEuNIA?F*-aN zUm9mA>ajO<3>Bz8d^4wX#nQ;OUkS!^eAt{(RFdhCs6&SZxYhyaOCPF+1wl~|y?r^v z)QZQWCVj+7rt{$))z}CHDRR!oQA@WrMr??|ic^F_Tmi|6^H!9I@nVd71ti0o#L@mb z4pM*ls^%~YHwiA`1JS3aJ6e!rC;QR~$f?CEB$K$e8CD8+N%;yZff@~VA&2S^1TAD` zJ|;1A@M`hDFYnf1f8jz%Y~cj_ASR^u5(5LSF$iB{G+J3~=2HR}!7p|n2=#rCP#%}z z*>vRM)C0Ie@O1i?#<1hywq?@AtZSUC;;HE-$l5|kR=p)ois^J8E zJ5#hOF3v?42{A(oIzb}67#E$qOOzCn)asN9VNYO){57w1zPeY14KyW)NU!G(LD=}} zxv#UXO1wAgMnJWJ`8<$=U+#~Y2_0P->(zP<$o!q!qDtH&>j+uoKq%jO5H->|mJgqP zKZ_zXd$x#By$!j!=mW?NlQR?$VBH69q5Dg|3?&IMyatxuYXbibz{{uW6of9BaSInk z77yTC>lD1P&alNWEvqVqaeO{bn=an|sVeKTzqxORBR{U6cJYRZmtzOyJb^nz^R1tQ zQoo+X$_%ETNX4Ir#%7(m!QooWAS*mih+qYnZ81P zA9+5iLS`!IJk$aW_Wx6H9hg!s zrQOXawiX*)mL(#lPEjh0_s~5;gE)H8Hd#cW#j;l3h{78l&K%;xt-Iesyj)i8UQ~VO z$gQJ`R?$Fj&G_&996U3pZw)bW>puJi38AfizV)IIF8S;dT*A~l2e$^~Il?@v6g3nS zjPdiGdrshZ7h2T;+Ay?K6=#VWK)s5`cE70{Ar1f?46YoU9q7U9L2%SNs67)xOla*} zfZAS6LTcmG3E?AP9Bt?e5F>RS8ssWA;%nzPoudIoh=Zh4s_~_{fzX&<;b9f$4=Mc! zlywAzV`4v2!QlkTO0?r$uJ}(CFJPEynaPmd)X26fT(W_46nc$Vs+&}zbxmEQg*%pX zfkx0RA6^%_mzUA~GtylTy2X%I59qkIUQ6&~m;{b4cCzKDtmKe*hFfo~KlcXR6R{ z&7>Tmol2ozaL8Ipt`o<#A~dxt!(Q}BMNdh{e*@_At-$LFU_9T;^uXn)#loX}D)n^s z0uRpx4_E$JtB0%CI@Sr=QT-;FUlv|@J(CrjELU(1AIk8LO6mI|jCw+cSotcvuiEq^ zCV{vZSi%3vR$|ohbksz>prlh*=lhv#I!PdZCxnUZg?sjZk^@)%*8s>TfENekG84)g zF1sU<2`?YVrdxRfe(Kk?hVpj-G(Qh`ieYKAn;u8m`B&NUir5fyK=|JNRXs?<7EygE zu4gslP&hDH`C~~PBMjw-DdjjRZ{-hQnpSKaacxjs<4bWps~IN=YpDdcvy(WL9i3kf zmdSX&>KYKw6^Q(2KxP5w{w-~}BaTMPv1TwYrh+CMIJ5FUMPu)w`4%&oc?`+lrsy4s z%+<_%!JadpjAVzvK%RTnLt0}30P@%3hpn-{+ZqGFo!v1TYjnGGL8Msu%@ETen4X0b zU%u&I!9-DakVx+)>Wu-mFCOf9K4sf)@kKVL!k3_!J#gz(B$q0D%&uhClFU{3aYSM~ zb9h7|tZ5<=BM7|BB{QYmAensuW}(FQ1t=8y=BOy(eugS!;+cbk?`a)w1}&w*^!>H3 zJM!ZWBY`fC4A9B(ueH4?pbCUhh|~AD4(vWhXDlD5R>0HQEhDD%x27cr?u5FD(VA%V zfW&wZqC|f?BoS0fCx7ciQD(n^{Ifae1(NIwP=@*EaC3D2eG2mnVCgE>6KZpG{v<{{ z!YG<25cxpieka6BO69{xG&Q!79na4It4pTU!OnYWy0;ImGtA%Pf>EXS?x?c4&w@{| zz%~q6VD@VEQp1OSMMCQh9UsF4=>`c#=Q92#ijpadw_=G|ihE+EV{_KFfZt4u4GSu4)jz?^mJP3P)6b=%FL*Z0h&x(i-(z7`g#4diG5g1y(AfX>ko zo)PWP6Cl12hIw%A;6SpiffB&awnGFWeSsDreFkZ3UOU6G?tc?MYx4_fhvB}Oxpx2D zwbu7-pFOsF0$5iv8Nx6?!f3ecz(Z@9vYmq%1sJUH80U?o$PbDbJ!EEo?(rqnMf;KCe;ujJ3EvKOwog6U5<<)D7FDBGg4wNy)w@eY$Ag1`A@GjYm zDXz#8tNF~Lr*Ol3RX-Yux?cCA{}bK1FTgndfw^L&6`nu<^@P`&xE|p$BzqGidJ`r3 z|Frim@KsgU{_on4V2B}!8WaU}p zOM9%xb81^s(E7K&+T*p++7^TY$Ac9sww!7$ZLLij+xn_fi|qUT&AHazJDct6+0Qd52jshPG-;?H|=cnK?%+pqmw$c&FfDoy%_FvtT zezVG@Ud{6{c(J=>(~n+dYAo~2<+J2cVs1*Y$d%g~epwa#G12)%`<0}gohrb0ucYT*!Y0|y3GK=G zr`d^MRvb36|AtqR*`>hvfQ}DTu;irYNX&sXp{4qGY(Cx#=T($J;yXF=lw;2w`Znrl zIZ)<5`=zD%Tzl{1xQ@3icMR+ZI3J;@53y#RY`Lq~cLPgw+o`0`+(~uTsSsCC2o^cD zvrC=mK!NuF!kka~s(G*|k!mn%#0=D*e%~KkJpC3q<4oM1-iAd;^{QK2_eAMhcbOJp z!tfo^<7!xstBARRNS`$9nHuuwB9;{`Bt4?!Qxm|V6Jv8zQ+)&eJ|>w zbz7Rw3ZrMUmU6cATs;-LN!6U0)Z6UL7%gBvy=fk$qh`vK;yhBcFjg}IsLo~Zqk1B# z>M{O|rm-Un>`dlm4q2$fd_N#7tmdZAlMOiaB1UrDVfhNhZH*uP+|)NU)iRyBorE8mcUqXR7N{0-wqc}VT;O>_<; zvU{2BY-bjC$N--*bKYmQHKJ;f?N99*rlsm{y47jCg+YA>3zilx%V*&r-wPLA*2=p| zqD9sd%kn?sxzuir+ayfqOFa12`G^s#_=Y*A28uf`@dY!}bS=zx+w9xQ()dj|JiEgr z+L@y)@8O{zOPo=#*C<$BN|;L|jOz(=6BeJ}`9tPK$ez>Lh8ydYWwvb3H)75(9L>nN zlj2+ccH|r~#<)TC)y_Q=8)X(H2m0aE$oYFByERGX3{8*;Zl=^D)xbB})?YoM*Q>B} zSh`qS_ju|y$f>j~{8KsQ^zra*?=v30UY2a*<n$)DfF)$; zw5wx&RaMmoT`zvvy31_adcBOzzgH0Bw}l#>u(l+IcBq6X#7wEHihL&c+?H(`kqyFz)0;*__SAOvLTou!wS*=I3Hd zGSHGm`9h>_$;$ngiR?_s+WPBOmq(Dlb$?&;hWJ4qPy~Qs4e;`jr7`o=Js)j=7^DxX z+Vo{|9DGAHHPwDhO9zb7e5IH<>nTbFL$eE_t-q0;?{Mjf&7EvGe0OvA`CiVN_YU^L zx{;t(qxpmR;F(XXlH9D4lyj5A?<>w##xL`)W&04bxX(;?GAdj*!EAgg-lPJ;9r?zTm7Sn+0uV-A7jNAN7(ikbIa zYud|L^AWt9uKz<)b~y~u)_0xHlA1~Cs4PQA-lqJNp28~C zsodA|bi~Vxr1}hk8(NbDNhJ>Qa`WUXk$k5~{JRl`ILQaod+n7u-EH-I^ivK40?%Zj zl+q=}!)s8kwHS}-G%Tf853>z=dA zIz}r>+V}-bz`UbUpFS~LE!Zg-76pS@Rs>)2b{Uw}r#ACcG%;aq-JWbdM1_RG?y)_& zUe=TAiH2R4v@Hi#F5cy5fSMz$i+9eX^~oLc5}>Xs8V-rs-J_jZk+r44C{ve{Jt%4f zu&=;rEgQqV!jtC-IiDH0ZwQ$bq0D;mtKXa1bL>+M78XX5|JZv zJsW0Nplh&m=>t#xb{IdlQUAD)5Y37HjYVQDui80ko{4GM!sl{KC?#aRxkFaCN^jdN z{P7GcyKenFxrIF|tF>>i>wbi?MS?n)9B-3kC$H3-10!wCrI@KozhhOfjNr-?+Cu>w z4BdY%MYKd2v}&`PxKyZlCKxtyarQK8R~5~LK)NuRjvtq%0B#W( z1%#>Xu9Zx<)8dZt;({pWW3tp%8&s1i=3!a#9jBzuZI&#t7m=MwAN?P$@2;wzR&#<; zOq2WuyUa9Ibh`8wl(a$~-;)Fir^|&TS>6ElH8U;2Q8vNxxSud|hOiaSaH9sdZ;(YA z?a^tpSYncPlxX!xhpp!Z=TUpzGH~>jqsU#lq|hS22R{8fCSm&oF(x{LpI< zpV9PfQ#MWL@D%2G71PuTzx+k7IQm4B=Ft*olaFOKK|N~x8RS@t>9sr?U1Q$#xn`Yd zy`Pk_TMx8&e2u%CI^^Wfkjx~?+Je)Vs3ltNYBN1`k!;#!qb;v7H0sk#aD$q7DqXtU zFI+v3shQ$(W<%79&HQ1oT(|DFsnaT@+bzMYhM-1mj*bS+3f*L9nYY+~vD%?tSLH2P z=d?b%^>;aeJvsYX|0l6)d#2{8)CZTQ3tAi1jcRWS&h9P7i)6)pk>jvUuC%hwCb4Td z@mh$h$lf#)E(bZhe6hctO(nsAz#ayigKp2yukm`5Y^ZIv8AD(WT z?_S-uboWZ1YkQKo9*HJSjfW0f&+C)Mt0i#NWvZ514iuXu3O7getyIy6EUt9j;b&&D zpn&e$RYA{JtEGB*r&)>HYVwdTFa&F()|;9aiyfEO14y-FU?V8 zUIJ1onY%_4&b<&ZyGtxXa~6uQ$kH1RFM^pu$ypWJdn9pV{PUBQ&1z24ULG z#ehq@-E5pooE>r5n3?S}?6gipU`xV0H9mf4j&QP9{>8}=QL#57Qe*VcG?OiEH6tSb z*{$@+<2jLdaeSD1R3IOE#AClO5IoX%&DH^!~ELTif*)hjPJS`4iJ)e?f6-LF!=?QDbmXHPd#|Iv2-}zPPqJ<8?2DI%>Wct|z)!&&b+V>-u`?sVKeRNkv6A#-2gm!_ zfLpk_7UO8Y4^*1_P<7LPBUiRijI;k}AR~;5fW!*7^_SeHP+l3@`makv6!wti1Xu=$cmC{41oNuqc<)DiC(YyDz>dYr4mJvdAFQ;&lmOE_>oli!%+o@Udr2Vn1?&S4&z5naz%I^E7eQ zcUk!0o|bO5B?THMfhrLwr)vY{YwNF)T4(qy{%@t1iBJjAQ^d;;QyvM|7WR1BKlu_<^Hr zpuRiTqtOOAjUMvbAA}9|Vb+9_UR!Th_Pn++hfnv~+JBiXMHa7Zzxyy~A2NSvo`qvg zXEd@5TARoJ$eO9aC`A;Q)`jyVlPe$WD_z)YfA*&uMaB%JP2c*s zvF#gF*gWJHX3LH~2pJ?R!o*{uI-75S=COq$tUGx5cHEiId&w3U1vPB5i)KZpYf%=a zH4?}*Eo+n7nK8vpYNef5GY=LYgA>R#u+KwERnkmr8<#9Vx7O|TFrx&`MMfmc)%%fc zt$9Mdk~DKeV)s{kMhSny9qH^6CWiuxk2FCf4R`DP0%6BICZx4tr~3$8Mynl|gzXn9 zu*s%3xA~)oFsbWpIX@=#quElMl9A!3=KVyr)XGqUm`}}HpTwl}JtbEo-xNN9ij>FQ zluL*SY;L;(Sb}1>17KFRpJ!a$vOQNzldy@jr7gK>Bqvv4mn5;*t|@GRHB`-Jl!uWs z$h#ux{288XKk)!1R9|Z3s7U9+VO+#mhJn-Zdah+Di7xgrv;c1tW!j9ci zqZ@>nQ#U&5IZ4 zbflRF4$SAKXek+Vy#tN#egNMR@LK>)=S;!ZM(qk8k((5`-J{NJI>YN|3Rh`yJ+puD z`<<@8phdCo+jN_u;ll@Oo_##`^gU9o$;QA8q*S?uKL*uB zdH1!7zM|=f&U4A6d$O)dxq62wd-nypy1uDEhSQ4wdziHsJ~*gCv>Z4Os?p3NyNf+w z3}Wf~q+Q!tV(Iz`|90lc=j+!!(76Adwlfi8uA`eoV1j%oa`7vv1hxS1FeSQ}PdhLs z-{h#p=%49DXA><6FKjx&V^OfAD2;E|g&x7k6{aNTuROc0e=@^1?mdt>TMpRV$i~jr zt+vi~wRBS0uPLtUL!`HopyV_y8_Jf>Xv=|f3cvI+L^PQ9OoM4xI;1<&1SW6Nr8hn@ zxp|HHz&q&aJ`#HLO_n~INzbrd+V*|HRwavlY%=9ws@a<*`N`HQ*@%xxW)igZvw|u! z)}1htR-PrCrgZu$Mm8zEbV||IU#T_X_frl~O149gk`Qi&4Bds@{W|B7d3T@AdQKZ?_Ni|Y6|UY4);ZDi zM&|YOdM$79?l1G&y*^G~?jbwggQlC*v6}8Yuw|2`Iy-aJSsqV`*xzR;za0mt;_)y} z?h$@^?mW}T^=w#-=P!tIoFhfmOz?>i0nOn5uTV#xW#W?;#Ru-lsT8N3Im?x*`ADj@C6Rb)m!1vSt!D#rs;Ixu_H4k=kH{o# z(@r^;8Jl+2Y+JLhWmhw`__SipFx`aK?E6a#@91CS^qyVX)J7S$IupUeWkFew(0Ay702x_`t%4_vOZOwsz-s|DpA= zaNA}1tN%UTXD1mt&h@jlJs#%4*rMifMg+E-Y{|_DBF*9W`+Hm))7(!4fo;u0bw0Gs zUI)GFkG8#U$eIgRuP2A*b3zb>o6iw#)RH!LK7_s=|MMGjJKG6t6vZ2Jz4R-$*(8DP z|FnT%_nwkV8%oFKFNroCYkB9#``JLGaPSm^_C_x&943dWDK(V?b-QLn6R{_gyM z)Ab6Y<85o3I|z?Ge@XC(6Z%8sf{Es_W`+ zxUrv8-dI^Rf5FWQYcBl4Txa&JODh)7t6fwwVx)71y`M9Fdg&#XPQL8&sTZ8G!dZU(%!$`dxbljz z7hU{m8C;Z>0r%V-hI+T%aO3T>d%(^Lt$qI2e#=wI)}Pq9AmG?ab({LHKk-Y+%TQCF z^(UUj<=Sv4mkpqnXlgufYo4(A>sgNz_6`@nC+l*$X@BmCmQN z!sJ;}(_I}S$(BFV>1$e-aLQtInsQe^1R{EKj@v`=loL)`Li4sLw7F6 zxl*k zbF|`j0*<#96Pm1b3om{l^ zJ({Nir?T1z9@xdEL*66dEnVbbjQ;v~%YjoD|ID-?-2s;Q!$?DFr~6coQPKKAT3D7E zT>Cw~jf}?DguIzfkyz|iHm!*AJW(DyW6OG(O898lK~O4!%aN6E)Gn>-1y)gZ0!Vcd znlP)=r9(8qBAlwGf#IO zv0`5`h4f-}Q<$eEOGKZcmp`-grIcdZa^R?>UdBo+m{YGI(aG6mS>CBOb8&ji*33T8Jdz-R6QPXyt)`7zoLTa8N!wWIZZ?CMvZ2@ z^Bx^XNE&gL9m~RE=a<<{`<-GI5psFJFQNyU$S3(gT~5YsD`RTI12dSG9XO%zOXl-A z;nfFWlGsmvdbCC*HpU@=x@yT$K+Bd$E4iHj=Et9G!#&beE6oKqO^=9;iWuCJ+4Br4 zeP%zm;T~y5W1U@p#=B5lJ_oAZ4@R&D($amMu+duAb_hHEgiV-DiZ+Q}u;hzA2g>d% zga^#-ltDT2ysZ>!l48zQOwhb7+)pvw%O^=VNQ8MdlWUZnEUfGDWX9u@q4ScV;e?Q4 z42BUVKa=6#j-=qcVocJpHQaCMXLD!CvOJ(_RCOTTUs(h;`*V3u*$^A;y|uOn&vx-7 z348~&tu>vILSHraELbVL<9BlDs^3;t8h63e^3v>7>C)x9rUx(WHZxqmsvT%rb?nJ& zxzDS+)TpL=oIRauPb2MVm^}@)rxWby7<oAI??i0G`|>Q!i`;=0nf4UMTJjJ9m2mE9>L5*HV=JvP%mTC&1sw0 zX7RrW{%*bo20|O}U78VAPiGzQz=n2S3>7 z%WBAsta|=TvRdlDWm5C(o#{{4gomi;Yr{jJU$gz;G5h0v;r@YMo#3>-HMwPbm={;4 zh|R;XWMESK%%*4xwZ3y1iQdz0IFTDQJS{aqncK>4rh{$R@jH)x@Zyx#=N{&5QhB;= zees<~<8NQt`j+vjxw^IS`4Tt%7ZUgLb0%?jaMb&)Z;|KpG>KdoF2SnsA!l9K{FM+2lf1=BE;yEihi9)|XoMnP&roi+Hbk>$_6iu|ACWg8S^~3UMyhG}S=k@Ko+M>Z~SCSP^Mq;Vsi;XSXL8XHD7)YZkE zk(IHd=2m*?d5t5{H7Q>g@%)x<2RjxTU4>MCRI(8%be zBsY0q;MP}HjvHE8;x@+1<1rI5G7YP%BI)UF#e#Aqt5W{(UKnerjn#;@Vj(Qz<&6t( zh}`JL8R_|2R)YaE7n^RYNfm_>f(b>+Gb?&0NhL{_#UKDd1Vz)HK z8snBJc{NffPohav$}Z@uiwlO<=S{j~>iA2ib4_r18tzp2DV%xbjWJT!m$)_6i>l)a z<~h?P+y$;PwBB{{oU-alDXqkXz?H8vuUt`UA{{-RiI+!dpSrrIQf8PlgbewozVaucu_LOwk=~iq*KRwgPj6AdKc}Do#JO41dWWHGUE-A zi9n~in4^n1ahYPHTTxykPiFkpl7>3`3idm{RyL_Rn341~hD}p_(gdtH)@M30#ATm{ zZzlZ(WZMucuUzJuvZUo(Pw6Ev-o`DD8=r$*Y{8z>_53hOE}K8Rvby1hp_MnfO^rnRbiBrCVojYKVHI5fF20E> ztZsB8&ai37e|mK-PJj4C)pHhc9yc^{ZXL{qUDr?@k7bW@X!7bO@b_fo*45&&7vT-m zku=Kf&zVO-FL3A8)Kx4T8|iU*(Y)&Uq(?=RuV+n}>N1>hy|{RH=(&}B)itCd8kHxC zbgJja;#PmSt8wEZ&J`*Z5?IL=lsC$4%*P8g&ZGRPoK#~Tkqk(N3J0gDR<@-M$`TAW z1vCYaO{LN=ky;LCfXB3but`F1(-=q5xW{^gN;3^p6!Xva>CQamcY#ZB=G81D^LP^- zXr+7QHB+Y|w?+d-sj)b@($&_^k3o%R#ShXW;f>217GVsP_(>G+YeDtklhZ)sjg1RS z%>Oi+q^4ZeJlY!<%~(woNJQWG6@ZB8fa8#(pMWj zVzDDJMq6yzgnV-vW+XBGdhl-@=Q56Zj(a#B;wW#JUm5oI7FaRTD3tGkwbSlSa7H8L5gMAXtlJbUH4PJ)3^VH!~H_+?j)nxWqjvbotapVzV7F$#wUzSFL z9lEtO)wK%;k2}j9#&8LmQaoy04AZ@!X_>?9$fol2656h*i;CT~;i z!rHne#w6v7lCeG0OR;}+1CBE|;GD?O!m)v4N7_+SGpE6;l@Sc2te>I`aaT<@rtaMg zy^N@)2~^ZAT7-)zaThh=_U6UhX(O*2Ic@yN>&DC8W+c75@eAoiH!Ox*TM%1sUO-2s z>4cZ_yqFqGQ>~Y~N8?Tzd6gX{lF)C5C7!ua&Hem2MkS-m8k+0{Ze>F?enSPZh$%|S zl`&SelPmQCmy}L~#ig;hW<5=fW@6Il;xs@@4IdnuaZ2hAyt#m3IF0<`!#&4oofK)( z%H~aPY#)Ji@rJr(G##4)eXE>l>Sp#ar>b&}m+Ar(VJq5Gy5lfbsFc6|WUcvBpRTu* zMofLt(Zs7Y&0*B1E|OuLRisfe<U{6hm9!Y~O@Zo8AW4yYi21{wwD3fr)?ZIY+y@?&brS7VlX@+)RRB?6iTLH}L8=+mplBl`53N#pl1;wAGt%!+*J zJc^Wv&b0DHW{81?yu}4G*QeGsvW~lvr9+phGb+`X!pzv*B`h4oa0hh@MWa!O$96D; zK0i4&#=!BqI=YJagI)E1*18+jzuC#<>3Po7y7Ee~@pD(5&?S3PjTkY)jqqFOBpbXs zKwCad+so%MF;w~*_~bdc`VAdjxzL6f7RB5=XTq$2b2&$?cg#o&-N(tO=NL0L;5;}l;H=}kjpIX(v&sWb4ac`RW^)h*=kLoGXZPZJfMZZ7fz9(*V$0%W{&`#)J57#BqvM2!4TEr#XS;xq*TC;qV%| zR^hsX|N2XZ5+g-0v7mTiLD=AwbACaTRCMMuL|YgvE0o$2Rb#;_1l}C8#v-ak#%alvvH#q`AY&mrow+!7uUg2?b$o zJ{SW2L-3n~^ArCuU^#3y)oTafF(mY8z{o868DL+3^-$ti!ulysb}l;K0GlH~a^7I` zYzBWF{GWXM%Qnw@!RP$?P-2*He&X>kSR>ef2oR5*mWS>PpY~c(udeDzahiljo(p_KYk|$ z`_rWTx!hEq^!lO1S>oy2bd9xX)lHQ6>xloI$Nx_8ZwXB-h=zU@fZH}mcfd`0tbw-Q z8;267ir2&fcaDdz0w0hCzYqM>Ecg@PBfxiAKGEQITOYf@U&})OI(SzW{2=&yS@2>S zUm^=$0-pEB!{sjp@1F&q4en;a^--HMv*7E%&&`5w1|OdVe+GOi_-Id`^`1WWf-lIR zccFO`yb=6$Y$92gq1S@8Hm$!Y;=XcjclP>L9Y%;hfq0gGY#Xd72+Iy8gI9xJf4Ch? zOSc2rWE|Rme)CY`5#;$8n~a9q!&z-oGCV>0@Y{zHcN4~rih~<$yW0)k41S@-U6=EI zuTeQr5TvMvU76=HU?}q*i)V?ru<+5J}~;v!i=ti zU!&`@{*Soj#F3@>N%rMnwHeq3u(=u7X0T})SO-{X8YUg@20IsQwsKJaFw^>l*THWE z|DDB)gRfbie^5L=Je2sFa4YXWNnV%B0lALzBjR`wZ_+06gJnsZP<~^f`71OVMT0*J z-sky$@FjdGW`b~jrvAb12h-LbXp4g{TiRyus)IfIio3yX0y8%wAeXKl1ltaluD@r% zo=n4(&mOP`!Kw)x9mH%to#1~@qZQACVBHy5QD4XTbp|#B?1c<$4A|BTY%18lrD2k1 zF4+BGXIpuS>(H;pN=w1FfM@GhB-_2j|D1T={>AHIu;;)kEw4y$uC2%I;KzRC^~1Iv zZ&y7k&3@vR5oc}yN$=O%GzY+c2>!VI6?GSSIMv@5Gyl0NaVW9Y&*#p9uuHfEd@HzK z-|72_NN7aT2PnTXXkH8?62}u3-)oRVZDRrW&%sYqT8%GGv12^Nts?H#P$E%4*z%n! z@s0c&iTfFGnf`%?_6+XpM>^XLwgXxpGvx>SF<6OsQ~m`o7VQD>pM$5{Q~r_ISQ@7E zF4&V`({1`l@T!8a>TeAA+u%{*o?jhwt8E?;pqa!U#p6V)y!bC^TyUqx9W7xsm0KBY zY-4<|gCq>&9Hm)DnsU>a_K!xL1ig;)q0I zl8q}4jZf9_0pcRLiNwj!sh${)IxfK?ly@Gu`l+N0Eup0v$4E};WHdBaK~pCh6@~$) z@TuSrfNPVc>NxlhYipI@>-+M?T3^Q7Q*tyD_f8)2`)N9De|j(Y4z}ra2v6xkxjmky zHY3k=Xs7Z0NYj>}sP*K06}$#~md_hwl$`H@KLQ^0@a51;U->M)ybS(TU(UNyat#&n0ZDN{Ey&FBUR>T=%!Sf*~AU!Ma*%VrZ~s|Mfu0UTfzTk@o4aEi?0L! z2HWV&yus@uWviRPzYgx(s(9#`f%RaISRRq!|FJywfS+=7BJrw^@3VL(_#5D!ED>K8 zhekKyn8Wb_;NJxQSD(*4mQMuSWjpR|KEA{o|A4oEZ}NOYavU59eLa{l4vs_n;jxJx zi+U5BKnD4<8HOcTgh1C$tUy^&UP0 zyb!$3;t{`n)PPrkU+3e~tqrXLzaRWf#^Y)?q0SJTJpV^rliO2QrvAa3GjNrC4|p3m z&q5fPLJL!6f0MY^c)R5_HZBsnI#u>u4DGm66Nx60sqDd9tZXiL9Q>z#nyogC{MA_E zP8^y@{6%R}ZPfE|k>Kk+-Ieii^`!YFX-*Zt!_$P0&+u_7>t@pIIPLIyc?SF?@CxNG zf5U`I^n1Zi;_c0U_wm13{7vu#INMt+J&r>3;iDX9*04n4As>Ih;)B4u!9TFL8+_M} zB}RikcRD%|&QClhgWYyUBC$Y#`q@g$V=nlAfPc~Ak>Coe*QMa+oS8^`)7R_2rt0Eu z;(kz)NKCP5+~6e3>tXOt@YO!AI|{-P!rQ^G;ky8*WYuXjG$4yk50GZ!h@=mS$Op-O zijJmz^L)@qD_3#o%#>Uu#GTED@iN;%Dfnb?*UIJ2_S(U0@G|hs_7n%d5xmaQC)>w5 z@F&1u^6?jJ`8I>sjY=dYs(oa!ne#(E4Nc|PN17F*6A6|DOwB=CTd&F%!Cy}_t zk6V{a;?|FL%&a%0ic=&kJ2> z*Fk&A1&PF&9@kns0weMmQwSfEm4b8?G2G*2;jRl*ZhAFQy{>=jO`i((Buisbz{tEanY+l8| zpIaH4!T)7!B5||Dqroa`hxdYagX6AEowo#2W5Oqh`!#Xti+`Z0g4>jQDg5T)V&$9Yn1%4a2uWyYn?*&@~c9v+dd9#-4tvji#9mKCBKAV2_ z5_b!6>Ej5M<4y27@N~VYZo?1?XINx@q8$J>A53BSvofy?5%7u(Ts$U&&jDvjX@0_H zgG~eT%cXql!AimOPzihog)U9`mvzK7^0|bI#eua+mJ=P9;AZfD1=ssud|gCCPbTY5 z?Q9n`XO*()-=j&kvuNnH^maBH+V`MsorF(j4v^_jE-BcU7i!Au=};h(>?Oz1-&~bl z=aY&1DRG&)o$KMgZWSK~`w_I)S{+0}tPrWccR4l?_d!`Au`;c!kTo$5IFje>9q!D13_0yljbwwFE+3C>HOwOGBB zLa)!do@ae#G<0^#XU-+={cGv(eSdm#DsDM(AI(f8{%rLS4Rxh#;a=i?c0GEqvPHDE z>=J$){G1!G?KJ&FLq$pbh-NP|Uzp9D&Fe4JcA}vxLcSjr%>ihxos&rDrPnE&IwLuk z70n`a8JK8KcYEtdU1?vEt0d{>4`DY~M7tdFrSzF6^$I2E7)mqsi#2p}R ze_bN6+0$cs9ZOpbM|w<9#joT9{QE751kaDlULv82l-*7y?&}SS#IHPlcN(4VRlV$x zLR^y6Ky!5*8p6`Kr;p$-G`WOIzGee7M>Hi8Ul0xB&jzLEtq@dg9WuAt z;$FPft2fobMjNMmb`v*i`Qh{3*TMf4{7Rcoaqu!*zJuU=pJFFvZNT`?2d(4C3IH1R-pX6(V>(7$J(@{NIJ6f~K(QwDw|xYw54AZ^KoegXK);Q!Xc zmp+p8rQ*2`n##3_#JPmkA5rzjCN_hA5&R|(4>Hjf{WIXZ!2fJb&15iqEGoHd58^ZZraEaf%X|_89E#P#B!j)Cxib0{2~v( z6gWMDvP4I5;?cfi4wwm5IT~e?m z5c*ayqxITx$Zpb&`C9g|PA73^5GNl>Udg$UGuYxxhm9Vu@al5__^HsxEuLJvi-4~L zA7gPh?$J*M{}y<;hX-%8Ha8c%6Fl8sB*Rkh--G`!hYM-v2RSkW>;H-S;@1<2TGgRC z{{5=TonN>^aV3DW0o;-1@>uzLom6P6&%TKDVVzXA_Hqo4Yz17JJB zOrPLk`KK_SY4_R@gWSl` z4E?X5H*KEulI?D=gBjR^U?*)(BoN#DME4BXnP6s)#I@{i57-p2uZYUeU+ryBur;&2 z9fbB#Xup3r?L+Cb((SNQ>G$tv>?2y)DgzVA5Cv}mH@=2z(ar#S8EhtD)lra}n!;~dL2 zocpLZKk)nvon>;YD!yx=Is5TM;&j5&FSqSXejC9{!83Kx0bbLQT(2zFdZkO!J>dTi z-XcC;UW0BMB)n3s4l12{ycvudpVxY?mvbRH-)%ky)?KgBVQE!QgF3R zcqQ*&&-8GA-e>9`>|$tFcs#fXWNc^^`2FC<2N9=wyBF-+VCil4VX!Z!VdA+3Y&qC$ z%hTNRbqVhS-vVAHJgJAvdg$RGG;cz)OEmZy?IUps7N6!g_x&)D*e={lTN3$T&TW3w0=l&Gl)CsCx`1%?X#Y^BI15eSiF;cTv_my^gd2HxDVQ$(7K}K zC*F^Py#%IsE8CUZWN0pzyFGfdZtBTBfO&{NZed91yammhq&H(&pT^sxruZTz9-%FX z#5lr!*#|7KEEFFh-X%U;deui6@#hggQt7cR?Zr~M1>jeH0^c>nFZ`Hz@qLi^HN?|& z#kWX%hg^bN!2bzcc}QNbubk=kv!Zz&nl@;t?sS@RpGNhP%fEHdoY|Ac`0ZGl+ZOF; z{)wL%6QuGqv~_8;F0^x@y&GCYNYA^%&s#LBp!sKLM)ah)*{4z29)zYHn&BRe=9l^N zsTbyrir+>2qr@A%Ba?}*w(+u?PU3$=ykD<(25&R-QpJUFIG#dDc&njp}K;!!?uT2D3dW;a= zc@UcQ(1<>*o{i40Pt&>j;Jwh^0qu+|v_YCnY7}Ps%shzZzl@59cP z(DphQ&pnNO{u^rzPja6Td<5s+EEo+fW)CtncYV)so@Ibg&^O>Lrt>d?HnM@Ws5fZa zKj7YWoc$~R$$G;+viK*~LAm}K=X0Ui)5u!PA06khTJBXojtziK;P^h_`=L97@Kw8* zo88NrDB+8a3^>mh1)LQw&!>FI`~yB$g16nxUO;5HlQgGqbezSU@8Q@C_7KP89Qy_b zoPQzRlZ2m#{u$0=?qQvgBZ%CI$LOz!zkzfQd<_{m9)Z_12IV(#ob*+EF?nquyq2S# zbdPX+hvVNkp5pikM+wJS9D{};BYL`&^8JLPwiEuImJ2!S=>7F-;L|ja;P+`X+2WP% z=xh=HA7L~J9K;sKoZs1Ea?wZZicILg{_i-FW;^7^`8AvWz5jYO(5r!74fJZDR|CBo z=+!{426{EntASn({14Q?{%1aU4d&D0{|6T7|5cHqX9Ufh(O>J&WX@YynwGjFB97k8 zQ(L|$=J@X;b9nh&qn_91*>2ur$W#8AY5nWw*O)z?aFx@1V2RVbni*^5E*?PntJD0# zfPnMp_<(a^b)fn9uLhbQc&J2y_VQd|r_S-|2 zeIZiL-rUzYBlsKhOqAA=gqLyXH_-WwlS!`}M87d7#mA=?o{j$0Kz4fJQJ#6x`a;iq zUvRYUpr7*s&)*Y&Sjhko!TgTQ;}jaSvVRz|qmDVjIlAz;W4$a^J2V6O&x zHPEYpUJdkWpjQLE8tBzPuLgQG(5nHffeU>_e8T+V)mq*Y7V-&u&%GMx)xiID4fOhh z|LqpgTmD`R^lG421HBsP)xgJV;4{xJbc3Y#*QLDV?+-Y8Is?vrUPydIimtEI=eY2!kQ0gqn*&>%xlWX~ zfevu;ojwjXGtB31^lzAc$*W{wV^PmvIQjGN@#YuE^0NdJ%rBVbr}*5Iod5rXE}b~> z0(aOo^Z2-1lRJ9Em=U9gpVefpMy(h%dPHRO=@#Wt*2V>VYKw1JIV0k+rEzCOL!G{g z=ZuIgm{Y~qhGNbLdp)nQ(HWsHIC_*MIe%#T5@V&yNAk_@c>eoz&uj=dW52?8g3N=)Hr}T@)uYp`t>_Q=mJUZCIbn4i z*OEIt+H7PH-Q4#B&Q^}cOT9==t{2p^{h#9eL%jUopP)O>zu+ty{r+#; Cri=yv literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/Image.bkp b/linux-0.11-lab/0/linux/Image.bkp new file mode 100644 index 0000000000000000000000000000000000000000..9869a43badb77318312737429c1972e920db1e68 GIT binary patch literal 131556 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

6)D{%45iSNSq&64CS|7De&pK!a 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 GefK}=>%zGJ literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/b/1.c b/linux-0.11-lab/b/1.c new file mode 100644 index 0000000..e69de29 diff --git a/linux-0.11-lab/b/test.tar b/linux-0.11-lab/b/test.tar new file mode 100644 index 0000000000000000000000000000000000000000..f3351da3d88280ff09486248387022c0696b37ac GIT binary patch literal 71680 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 V!hs0~CLEY>V8Ve32c9Jd{y$&5pYQ+x literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/bochsout.txt b/linux-0.11-lab/bochsout.txt new file mode 100644 index 0000000..f600c43 --- /dev/null +++ b/linux-0.11-lab/bochsout.txt @@ -0,0 +1,350 @@ +00000000000i[ ] Bochs x86 Emulator 2.6.9 +00000000000i[ ] Built from SVN snapshot on April 9, 2017 +00000000000i[ ] Compiled on Apr 24 2020 at 16:28:27 +00000000000i[ ] System configuration +00000000000i[ ] processors: 1 (cores=1, HT threads=1) +00000000000i[ ] A20 line support: yes +00000000000i[ ] IPS is set to 15000000 +00000000000i[ ] CPU configuration +00000000000i[ ] SMP support: no +00000000000i[ ] level: 6 +00000000000i[ ] APIC support: xapic +00000000000i[ ] FPU support: yes +00000000000i[ ] MMX support: yes +00000000000i[ ] 3dnow! support: no +00000000000i[ ] SEP support: yes +00000000000i[ ] SIMD support: sse2 +00000000000i[ ] XSAVE support: no +00000000000i[ ] AES support: no +00000000000i[ ] SHA support: no +00000000000i[ ] MOVBE support: no +00000000000i[ ] ADX support: no +00000000000i[ ] x86-64 support: no +00000000000i[ ] MWAIT support: yes +00000000000i[ ] Optimization configuration +00000000000i[ ] RepeatSpeedups support: no +00000000000i[ ] Fast function calls: no +00000000000i[ ] Handlers Chaining speedups: no +00000000000i[ ] Devices configuration +00000000000i[ ] PCI support: i440FX i430FX +00000000000i[ ] Networking: no +00000000000i[ ] Sound support: no +00000000000i[ ] USB support: no +00000000000i[ ] VGA extension support: vbe +00000000000i[MEM0 ] allocated memory at 0xb593b008. after alignment, vector=0xb593c000 +00000000000i[MEM0 ] 16.00MB +00000000000i[MEM0 ] mem block size = 0x00020000, blocks=128 +00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('/usr/local/share/bochs/BIOS-bochs-latest') +00000000000i[STIMER] using 'slowdown' timer synchronization method +00000000000i[PLUGIN] init_dev of 'pci' plugin device by virtual method +00000000000i[DEV ] i440FX PMC present at device 0, function 0 +00000000000i[PLUGIN] init_dev of 'pci2isa' plugin device by virtual method +00000000000i[DEV ] PIIX3 PCI-to-ISA bridge present at device 1, function 0 +00000000000i[PLUGIN] init_dev of 'cmos' plugin device by virtual method +00000000000i[CMOS ] Using local time for initial clock +00000000000i[CMOS ] Setting initial clock to: Mon Jun 20 04:41:50 2022 (time0=1655696510) +00000000000i[PLUGIN] init_dev of 'dma' plugin device by virtual method +00000000000i[DMA ] channel 4 used by cascade +00000000000i[PLUGIN] init_dev of 'pic' plugin device by virtual method +00000000000i[PLUGIN] init_dev of 'pit' plugin device by virtual method +00000000000i[PLUGIN] init_dev of 'vga' plugin device by virtual method +00000000000i[MEM0 ] Register memory access handlers: 0x0000000a0000 - 0x0000000bffff +00000000000i[VGA ] interval=66666, mode=realtime +00000000000i[MEM0 ] Register memory access handlers: 0x0000e0000000 - 0x0000e0ffffff +00000000000i[BXVGA ] VBE Bochs Display Extension Enabled +00000000000i[XGUI ] test_alloc_colors: 16 colors available out of 16 colors tried +00000000000i[XGUI ] font 8 wide x 16 high, display depth = 24 +00000000000i[MEM0 ] rom at 0xc0000/41472 ('/usr/local/share/bochs/VGABIOS-lgpl-latest') +00000000000i[PLUGIN] init_dev of 'floppy' plugin device by virtual method +00000000000i[DMA ] channel 2 used by Floppy Drive +00000000000i[FLOPPY] fd0: 'cur/linux/Image' ro=0, h=2,t=80,spt=18 +00000000000i[IMG ] redolog : Standard Header : magic='Bochs Virtual HD Image', type='Redolog', subtype='Volatile', version = 2.0 +00000000000i[IMG ] redolog : Specific Header : #entries=512, bitmap size=1, exent size = 4096 disk size = 1474560 +00000000000i[IMG ] 'vvfat' disk opened: directory is 'b/', redolog is 'b//vvfat.dir.v1sKuG' +00000000000i[FLOPPY] fd1: 'vvfat:b/' ro=0, h=2,t=80,spt=18 +00000000000i[FLOPPY] Using boot sequence floppy, none, none +00000000000i[FLOPPY] Floppy boot signature check is enabled +00000000000i[PLUGIN] init_dev of 'acpi' plugin device by virtual method +00000000000i[DEV ] ACPI Controller present at device 1, function 3 +00000000000i[PLUGIN] init_dev of 'ioapic' plugin device by virtual method +00000000000i[IOAPIC] initializing I/O APIC +00000000000i[MEM0 ] Register memory access handlers: 0x0000fec00000 - 0x0000fec00fff +00000000000i[IOAPIC] IOAPIC enabled (base address = 0xfec00000) +00000000000i[PLUGIN] init_dev of 'keyboard' plugin device by virtual method +00000000000i[KBD ] will paste characters every 400 keyboard ticks +00000000000i[PLUGIN] init_dev of 'harddrv' plugin device by virtual method +00000000000i[HD ] HD on ata0-0: 'images/rootimage-0.11', 'flat' mode +00000000000i[IMG ] hd_size: 10485760 +00000000000i[HD ] ata0-0: using specified geometry: CHS=512/2/20 +00000000000i[HD ] translation on ata0-0 set to 'none' +00000000000i[PLUGIN] init_dev of 'pci_ide' plugin device by virtual method +00000000000i[DEV ] PIIX3 PCI IDE controller present at device 1, function 1 +00000000000i[PLUGIN] init_dev of 'unmapped' plugin device by virtual method +00000000000i[PLUGIN] init_dev of 'biosdev' plugin device by virtual method +00000000000i[PLUGIN] init_dev of 'speaker' plugin device by virtual method +00000000000e[PCSPK ] Failed to open /dev/console: 权限不够 +00000000000e[PCSPK ] Deactivating beep on console +00000000000i[PLUGIN] init_dev of 'extfpuirq' plugin device by virtual method +00000000000i[PLUGIN] init_dev of 'parallel' plugin device by virtual method +00000000000i[PAR ] parallel port 1 at 0x0378 irq 7 +00000000000i[PLUGIN] init_dev of 'serial' plugin device by virtual method +00000000000i[SER ] com1 at 0x03f8 irq 4 (mode: null) +00000000000i[PLUGIN] register state of 'pci' plugin device by virtual method +00000000000i[PLUGIN] register state of 'pci2isa' plugin device by virtual method +00000000000i[PLUGIN] register state of 'cmos' plugin device by virtual method +00000000000i[PLUGIN] register state of 'dma' plugin device by virtual method +00000000000i[PLUGIN] register state of 'pic' plugin device by virtual method +00000000000i[PLUGIN] register state of 'pit' plugin device by virtual method +00000000000i[PLUGIN] register state of 'vga' plugin device by virtual method +00000000000i[PLUGIN] register state of 'floppy' plugin device by virtual method +00000000000i[PLUGIN] register state of 'unmapped' plugin device by virtual method +00000000000i[PLUGIN] register state of 'biosdev' plugin device by virtual method +00000000000i[PLUGIN] register state of 'speaker' plugin device by virtual method +00000000000i[PLUGIN] register state of 'extfpuirq' plugin device by virtual method +00000000000i[PLUGIN] register state of 'parallel' plugin device by virtual method +00000000000i[PLUGIN] register state of 'serial' plugin device by virtual method +00000000000i[PLUGIN] register state of 'acpi' plugin device by virtual method +00000000000i[PLUGIN] register state of 'ioapic' plugin device by virtual method +00000000000i[PLUGIN] register state of 'keyboard' plugin device by virtual method +00000000000i[PLUGIN] register state of 'harddrv' plugin device by virtual method +00000000000i[PLUGIN] register state of 'pci_ide' plugin device by virtual method +00000000000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called +00000000000i[CPU0 ] cpu hardware reset +00000000000i[APIC0 ] allocate APIC id=0 (MMIO enabled) to 0x0000fee00000 +00000000000i[CPU0 ] CPUID[0x00000000]: 00000005 756e6547 6c65746e 49656e69 +00000000000i[CPU0 ] CPUID[0x00000001]: 00000633 00010800 00000008 1fcbfbff +00000000000i[CPU0 ] CPUID[0x00000002]: 00410601 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x00000003]: 00000000 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x00000004]: 00000000 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x00000005]: 00000040 00000040 00000003 00000020 +00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x80000002]: 20202020 20202020 20202020 6e492020 +00000000000i[CPU0 ] CPUID[0x80000003]: 286c6574 50202952 69746e65 52286d75 +00000000000i[CPU0 ] CPUID[0x80000004]: 20342029 20555043 20202020 00202020 +00000000000i[CPU0 ] CPUID[0x80000005]: 01ff01ff 01ff01ff 40020140 40020140 +00000000000i[CPU0 ] CPUID[0x80000006]: 00000000 42004200 02008140 00000000 +00000000000i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x80000008]: 00002028 00000000 00000000 00000000 +00000000000i[PLUGIN] reset of 'pci' plugin device by virtual method +00000000000i[PLUGIN] reset of 'pci2isa' plugin device by virtual method +00000000000i[PLUGIN] reset of 'cmos' plugin device by virtual method +00000000000i[PLUGIN] reset of 'dma' plugin device by virtual method +00000000000i[PLUGIN] reset of 'pic' plugin device by virtual method +00000000000i[PLUGIN] reset of 'pit' plugin device by virtual method +00000000000i[PLUGIN] reset of 'vga' plugin device by virtual method +00000000000i[PLUGIN] reset of 'floppy' plugin device by virtual method +00000000000i[PLUGIN] reset of 'acpi' plugin device by virtual method +00000000000i[PLUGIN] reset of 'ioapic' plugin device by virtual method +00000000000i[PLUGIN] reset of 'keyboard' plugin device by virtual method +00000000000i[PLUGIN] reset of 'harddrv' plugin device by virtual method +00000000000i[PLUGIN] reset of 'pci_ide' plugin device by virtual method +00000000000i[PLUGIN] reset of 'unmapped' plugin device by virtual method +00000000000i[PLUGIN] reset of 'biosdev' plugin device by virtual method +00000000000i[PLUGIN] reset of 'speaker' plugin device by virtual method +00000000000i[PLUGIN] reset of 'extfpuirq' plugin device by virtual method +00000000000i[PLUGIN] reset of 'parallel' plugin device by virtual method +00000000000i[PLUGIN] reset of 'serial' plugin device by virtual method +00000004661i[BIOS ] $Revision: 11761 $ $Date: 2013-08-02 17:59:49 +0200 (Fr, 02. Aug 2013) $ +00000322571i[KBD ] reset-disable command received +00000330815i[BIOS ] Starting rombios32 +00000331249i[BIOS ] Shutdown flag 0 +00000331845i[BIOS ] ram_size=0x01000000 +00000332266i[BIOS ] ram_end=16MB +00000481479i[BIOS ] Found 1 cpu(s) +00000495676i[BIOS ] bios_table_addr: 0x000fa468 end=0x000fcc00 +00000823473i[PCI ] i440FX PMC write to PAM register 59 (TLB Flush) +00000999990i[XGUI ] charmap update. Font is 9 x 16 +00001151400i[P2ISA ] PCI IRQ routing: PIRQA# set to 0x0b +00001151419i[P2ISA ] PCI IRQ routing: PIRQB# set to 0x09 +00001151438i[P2ISA ] PCI IRQ routing: PIRQC# set to 0x0b +00001151457i[P2ISA ] PCI IRQ routing: PIRQD# set to 0x09 +00001151467i[P2ISA ] write: ELCR2 = 0x0a +00001152233i[BIOS ] PIIX3/PIIX4 init: elcr=00 0a +00001159906i[BIOS ] PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237 class=0x0600 +00001162176i[BIOS ] PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000 class=0x0601 +00001164285i[BIOS ] PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010 class=0x0101 +00001164514i[PIDE ] new BM-DMA address: 0xc000 +00001165131i[BIOS ] region 4: 0x0000c000 +00001167156i[BIOS ] PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113 class=0x0680 +00001167389i[ACPI ] new irq line = 11 +00001167401i[ACPI ] new irq line = 9 +00001167430i[ACPI ] new PM base address: 0xb000 +00001167444i[ACPI ] new SM base address: 0xb100 +00001167472i[PCI ] setting SMRAM control register to 0x4a +00001331563i[CPU0 ] Enter to System Management Mode +00001331574i[CPU0 ] RSM: Resuming from System Management Mode +00001495592i[PCI ] setting SMRAM control register to 0x0a +00001510485i[BIOS ] MP table addr=0x000fa540 MPC table addr=0x000fa470 size=0xc8 +00001512241i[BIOS ] SMBIOS table addr=0x000fa550 +00001514423i[BIOS ] ACPI tables: RSDP addr=0x000fa670 ACPI DATA addr=0x00ff0000 size=0xf72 +00001517597i[BIOS ] Firmware waking vector 0xff00cc +00001519395i[PCI ] i440FX PMC write to PAM register 59 (TLB Flush) +00001520123i[BIOS ] bios_table_cur_addr: 0x000fa694 +00001647740i[VBIOS ] VGABios $Id: vgabios.c,v 1.76 2013/02/10 08:07:03 vruppert Exp $ +00001647811i[BXVGA ] VBE known Display Interface b0c0 +00001647843i[BXVGA ] VBE known Display Interface b0c5 +00001650768i[VBIOS ] VBE Bios $Id: vbe.c,v 1.64 2011/07/19 18:25:05 vruppert Exp $ +00001995333i[BIOS ] ata0-0: PCHS=512/2/20 translation=none LCHS=512/2/20 +00003430065i[XGUI ] charmap update. Font is 9 x 16 +00005872240i[BIOS ] IDE time out +00051753879i[BIOS ] Booting from 0000:7c00 +00094288168i[FLOPPY] partial read() on floppy image returns 484/512 +00094454833i[FLOPPY] read() on floppy image returns 0 +00094621498i[FLOPPY] read() on floppy image returns 0 +00094788163i[FLOPPY] read() on floppy image returns 0 +00094954828i[FLOPPY] read() on floppy image returns 0 +00095122539i[FLOPPY] read() on floppy image returns 0 +00095289204i[FLOPPY] read() on floppy image returns 0 +00095455869i[FLOPPY] read() on floppy image returns 0 +00095622534i[FLOPPY] read() on floppy image returns 0 +00095789199i[FLOPPY] read() on floppy image returns 0 +00095955864i[FLOPPY] read() on floppy image returns 0 +00096122529i[FLOPPY] read() on floppy image returns 0 +00096289194i[FLOPPY] read() on floppy image returns 0 +00096455859i[FLOPPY] read() on floppy image returns 0 +00096623570i[FLOPPY] read() on floppy image returns 0 +00096790235i[FLOPPY] read() on floppy image returns 0 +00096956900i[FLOPPY] read() on floppy image returns 0 +00097123565i[FLOPPY] read() on floppy image returns 0 +00097290230i[FLOPPY] read() on floppy image returns 0 +00097456895i[FLOPPY] read() on floppy image returns 0 +00097623560i[FLOPPY] read() on floppy image returns 0 +00097790225i[FLOPPY] read() on floppy image returns 0 +00097956890i[FLOPPY] read() on floppy image returns 0 +00098123555i[FLOPPY] read() on floppy image returns 0 +00098290220i[FLOPPY] read() on floppy image returns 0 +00098456885i[FLOPPY] read() on floppy image returns 0 +00098623550i[FLOPPY] read() on floppy image returns 0 +00098790215i[FLOPPY] read() on floppy image returns 0 +00098956880i[FLOPPY] read() on floppy image returns 0 +00099123545i[FLOPPY] read() on floppy image returns 0 +00099290210i[FLOPPY] read() on floppy image returns 0 +00099456875i[FLOPPY] read() on floppy image returns 0 +00099624588i[FLOPPY] read() on floppy image returns 0 +00099791253i[FLOPPY] read() on floppy image returns 0 +00099957918i[FLOPPY] read() on floppy image returns 0 +00100124583i[FLOPPY] read() on floppy image returns 0 +00100291248i[FLOPPY] read() on floppy image returns 0 +00100457913i[FLOPPY] read() on floppy image returns 0 +00100624578i[FLOPPY] read() on floppy image returns 0 +00100791243i[FLOPPY] read() on floppy image returns 0 +00100957908i[FLOPPY] read() on floppy image returns 0 +00101124573i[FLOPPY] read() on floppy image returns 0 +00101291238i[FLOPPY] read() on floppy image returns 0 +00101457903i[FLOPPY] read() on floppy image returns 0 +00101624568i[FLOPPY] read() on floppy image returns 0 +00101791233i[FLOPPY] read() on floppy image returns 0 +00101957898i[FLOPPY] read() on floppy image returns 0 +00102124563i[FLOPPY] read() on floppy image returns 0 +00102291228i[FLOPPY] read() on floppy image returns 0 +00102457893i[FLOPPY] read() on floppy image returns 0 +00102625609i[FLOPPY] read() on floppy image returns 0 +00102792274i[FLOPPY] read() on floppy image returns 0 +00102958939i[FLOPPY] read() on floppy image returns 0 +00103125604i[FLOPPY] read() on floppy image returns 0 +00103292269i[FLOPPY] read() on floppy image returns 0 +00103458934i[FLOPPY] read() on floppy image returns 0 +00103625599i[FLOPPY] read() on floppy image returns 0 +00103792264i[FLOPPY] read() on floppy image returns 0 +00103958929i[FLOPPY] read() on floppy image returns 0 +00104125594i[FLOPPY] read() on floppy image returns 0 +00104292259i[FLOPPY] read() on floppy image returns 0 +00104458924i[FLOPPY] read() on floppy image returns 0 +00104625589i[FLOPPY] read() on floppy image returns 0 +00104792254i[FLOPPY] read() on floppy image returns 0 +00104958919i[FLOPPY] read() on floppy image returns 0 +00105125584i[FLOPPY] read() on floppy image returns 0 +00105292249i[FLOPPY] read() on floppy image returns 0 +00105458914i[FLOPPY] read() on floppy image returns 0 +00105626631i[FLOPPY] read() on floppy image returns 0 +00105793296i[FLOPPY] read() on floppy image returns 0 +00105959961i[FLOPPY] read() on floppy image returns 0 +00106126626i[FLOPPY] read() on floppy image returns 0 +00106293291i[FLOPPY] read() on floppy image returns 0 +00106459956i[FLOPPY] read() on floppy image returns 0 +00106626621i[FLOPPY] read() on floppy image returns 0 +00106793286i[FLOPPY] read() on floppy image returns 0 +00106959951i[FLOPPY] read() on floppy image returns 0 +00107126616i[FLOPPY] read() on floppy image returns 0 +00107293281i[FLOPPY] read() on floppy image returns 0 +00107459946i[FLOPPY] read() on floppy image returns 0 +00107626611i[FLOPPY] read() on floppy image returns 0 +00107793276i[FLOPPY] read() on floppy image returns 0 +00107959941i[FLOPPY] read() on floppy image returns 0 +00108126606i[FLOPPY] read() on floppy image returns 0 +00108293271i[FLOPPY] read() on floppy image returns 0 +00108459936i[FLOPPY] read() on floppy image returns 0 +00108627648i[FLOPPY] read() on floppy image returns 0 +00108794313i[FLOPPY] read() on floppy image returns 0 +00108960978i[FLOPPY] read() on floppy image returns 0 +00109127643i[FLOPPY] read() on floppy image returns 0 +00109294308i[FLOPPY] read() on floppy image returns 0 +00109460973i[FLOPPY] read() on floppy image returns 0 +00109627638i[FLOPPY] read() on floppy image returns 0 +00109794303i[FLOPPY] read() on floppy image returns 0 +00109960968i[FLOPPY] read() on floppy image returns 0 +00110127633i[FLOPPY] read() on floppy image returns 0 +00110294298i[FLOPPY] read() on floppy image returns 0 +00110460963i[FLOPPY] read() on floppy image returns 0 +00110627628i[FLOPPY] read() on floppy image returns 0 +00110794293i[FLOPPY] read() on floppy image returns 0 +00110960958i[FLOPPY] read() on floppy image returns 0 +00111127623i[FLOPPY] read() on floppy image returns 0 +00111294288i[FLOPPY] read() on floppy image returns 0 +00111460953i[FLOPPY] read() on floppy image returns 0 +00111628670i[FLOPPY] read() on floppy image returns 0 +00111795335i[FLOPPY] read() on floppy image returns 0 +00111962000i[FLOPPY] read() on floppy image returns 0 +00112128665i[FLOPPY] read() on floppy image returns 0 +00112295330i[FLOPPY] read() on floppy image returns 0 +00112461995i[FLOPPY] read() on floppy image returns 0 +00112628660i[FLOPPY] read() on floppy image returns 0 +00112795325i[FLOPPY] read() on floppy image returns 0 +00112961990i[FLOPPY] read() on floppy image returns 0 +00113128655i[FLOPPY] read() on floppy image returns 0 +00113295320i[FLOPPY] read() on floppy image returns 0 +00113461985i[FLOPPY] read() on floppy image returns 0 +00113628650i[FLOPPY] read() on floppy image returns 0 +00113795315i[FLOPPY] read() on floppy image returns 0 +00113961980i[FLOPPY] read() on floppy image returns 0 +00114128645i[FLOPPY] read() on floppy image returns 0 +00114295310i[FLOPPY] read() on floppy image returns 0 +00114461975i[FLOPPY] read() on floppy image returns 0 +00114629695i[FLOPPY] read() on floppy image returns 0 +00114796360i[FLOPPY] read() on floppy image returns 0 +00114963025i[FLOPPY] read() on floppy image returns 0 +00115129690i[FLOPPY] read() on floppy image returns 0 +00115296355i[FLOPPY] read() on floppy image returns 0 +00115463020i[FLOPPY] read() on floppy image returns 0 +00115629685i[FLOPPY] read() on floppy image returns 0 +00115796350i[FLOPPY] read() on floppy image returns 0 +00115963015i[FLOPPY] read() on floppy image returns 0 +00116129680i[FLOPPY] read() on floppy image returns 0 +00116296345i[FLOPPY] read() on floppy image returns 0 +00116467319i[BIOS ] int13_harddisk: function 15, unmapped device for ELDL=81 +00466820786i[FLOPPY] controller reset in software +00474779271i[FLOPPY] io_write: config control register: 0x00 +143594175000p[XGUI ] >>PANIC<< POWER button turned off. +143594175000i[CPU0 ] CPU is in protected mode (active) +143594175000i[CPU0 ] CS.mode = 32 bit +143594175000i[CPU0 ] SS.mode = 32 bit +143594175000i[CPU0 ] EFER = 0x00000000 +143594175000i[CPU0 ] | EAX=00000000 EBX=00090080 ECX=000055f0 EDX=00000017 +143594175000i[CPU0 ] | ESP=0001cc8c EBP=00022a2c ESI=000900a0 EDI=00021a40 +143594175000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df IF tf sf zf af pf cf +143594175000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D +143594175000i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 00ffffff 1 1 +143594175000i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 00ffffff 1 1 +143594175000i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 00ffffff 1 1 +143594175000i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 00ffffff 1 1 +143594175000i[CPU0 ] | FS:0017( 0002| 1| 3) 00000000 0009ffff 1 1 +143594175000i[CPU0 ] | GS:0017( 0002| 1| 3) 00000000 0009ffff 1 1 +143594175000i[CPU0 ] | EIP=00006dad (00006dad) +143594175000i[CPU0 ] | CR0=0x8000001b CR2=0x08038000 +143594175000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000 +143594175000i[CPU0 ] 0x00006dad>> jnbe .-166 (0x00006d0d) : 0F875AFFFFFF +143594175000i[CMOS ] Last time is 1655706082 (Mon Jun 20 07:21:22 2022) +143594175000i[XGUI ] Exit +143594175000i[ ] restoring default signal behavior +143594175000i[SIM ] quit_sim called with exit code 1 diff --git a/linux-0.11-lab/conf/0.11-gdbstub.bxrc b/linux-0.11-lab/conf/0.11-gdbstub.bxrc new file mode 100644 index 0000000..e923c0e --- /dev/null +++ b/linux-0.11-lab/conf/0.11-gdbstub.bxrc @@ -0,0 +1,33 @@ +gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0 + +megs: 16 + +romimage: file=$BXSHARE/BIOS-bochs-latest + +# with the LGPL BIOS, X windows can be used +vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest + +boot: floppy + +floppya: type=1_44 +floppya: 1_44="cur/linux/Image", status=inserted + +floppyb: type=1_44 +floppyb: 1_44=vvfat:"b/", status=inserted + +ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 +ata0-master: type=disk, path="images/rootimage-0.11", mode=flat, cylinders=512, heads=2, spt=20 + +log: bochsout.txt +panic: action=ask +error: action=report +info: action=report +debug: action=ignore + +pci: enabled=1, chipset=i440fx +vga: extension=vbe, update_freq=15 +keyboard: serial_delay=250, paste_delay=100000 +cpu: ips=15000000 +clock: sync=slowdown +mouse: enabled=0 + diff --git a/linux-0.11-lab/conf/0.11.bxrc b/linux-0.11-lab/conf/0.11.bxrc new file mode 100644 index 0000000..b18d62d --- /dev/null +++ b/linux-0.11-lab/conf/0.11.bxrc @@ -0,0 +1,31 @@ +megs: 16 + +romimage: file=$BXSHARE/BIOS-bochs-latest + +# with the LGPL BIOS, X windows can be used +vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest + +boot: floppy + +floppya: type=1_44 +floppya: 1_44="cur/linux/Image", status=inserted + +floppyb: type=1_44 +floppyb: 1_44=vvfat:"b/", status=inserted + +ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 +ata0-master: type=disk, path="images/rootimage-0.11", mode=flat, cylinders=512, heads=2, spt=20 + +log: bochsout.txt +panic: action=ask +error: action=report +info: action=report +debug: action=ignore + +pci: enabled=1, chipset=i440fx +vga: extension=vbe, update_freq=15 +keyboard: serial_delay=250, paste_delay=100000 +cpu: ips=15000000 +clock: sync=slowdown +mouse: enabled=0 + diff --git a/linux-0.11-lab/cur/README b/linux-0.11-lab/cur/README new file mode 100644 index 0000000..2e56a37 --- /dev/null +++ b/linux-0.11-lab/cur/README @@ -0,0 +1,6 @@ +revision history: + +版本0: 这是oldlinux.org网站上的linux-0.11-lab.rar中的版本。可能是赵博士在原始0.11版本的基础上修改而成。我做了如下改动: + a) 对一些Makefile做了修改,生成调试信息; + b) 将其移植到ubuntu和debian下,主要修改的地方用 "by wyj"标注。 + diff --git a/linux-0.11-lab/cur/Source-Insight/Linux-0.11.IAB b/linux-0.11-lab/cur/Source-Insight/Linux-0.11.IAB new file mode 100644 index 0000000000000000000000000000000000000000..27c23b6e1f3379c54bfea8c6c805c76fa235fa7c GIT binary patch literal 102400 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 X+E}E5VH>Ng(M~HVI#}YIPA>QZN3SCK literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/Source-Insight/Linux-0.11.PO b/linux-0.11-lab/cur/Source-Insight/Linux-0.11.PO new file mode 100644 index 0000000000000000000000000000000000000000..de8db453c6bceca6363a1974df88a64caed7c9e8 GIT binary patch literal 776 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 >LdwT?$NcJnp;7Il?Z10x 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 ZnP<(9Ox^sRyj^ZyQ^(&fr!Q^I{{xPUk!%0} literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/Source-Insight/Linux-0.11.PS b/linux-0.11-lab/cur/Source-Insight/Linux-0.11.PS new file mode 100644 index 0000000000000000000000000000000000000000..2c515c4dd3f2da9176ef09bd338843664bd433cf GIT binary patch literal 623496 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

gTMo^M<*{ia#Sx zaxARl+9+Enbr)8}uQ|txKPyh3^;WULii*)#71klmZ%t?FaQ$Y$N({h?a*b`QsF1UA zj=%m^zMw*%IlmKBZ3S?liAj+yLt0#@IzF>@PZ$D6aujdTsIq0X%E zO1b)in8^dI#UM^mKWFtyJL`AF>2el~#4CD*Hms;nwsN+!J}*w6^%Akcibj>KjP0!7 z3s`->(x<_SDt^t_&ief>tYS1KEk75RvF-8)0jnPaF>RM&^1yPkX>RMSw)|li)|mX7 zyT9f7hc^oURBes@#E6Vr_R;8WQKQo`HXQ=BtiqmJspRl5gabrb=Jdm@U z_2qySK3LJ1x?tqKmWkLI?VsA5PybxZ!~kU2Kj4`6J?Sb6!`X}O~e1)u!Go;mG zAZO0{Q*o}w8nfmpXW9C*F03)*SsSMp>&@wUv+;~$jaGt;&_Cizc>A~K_x~#~Z`W^5 zu42v*b!AI`wu9LGvHF9VGn$;9Zm#~8lX?ZtzYr%1t3SsX(=W(*U$egyr_cHj@sbBn z=hrHAf$qO`>)wg_o(b)r+8n3ztKS|Nu?N%FDIEjD3f9?$*#wc=KKQy$=B(BJ+W!7u zlWy0`*JvZ3qRy}SvsQMkL*LXAZ_i@*^KUFKtk-KJ2GE#z%~{8OMVvk>_hW_?b$+c9 zuS2>b)#2qM+B>~{HDKkphZQ}?9wbTi2WSi8SJbt&O)T)_8b)0}9++E9Hw^Dz+vD%#S2+Jgx?L=6v|&&eullq71 zm8mM|lq;79&JY`ZMLoZk&RJt71k^7`mtsZIHW=ByEil?woVx`p>i1*I-Y+g^-w@7! z6DJz7(k8%)3U%yY#f?xZW7PI6lIKI_|)y*(h zVO`%YTW02n&rfOY_y2D(6R)%bDO+eSmaTsmrz=}N>$T#=iV881vuyo`I9FqRq9Luu znzL;EXBXC}@vMwx>%Y3NUKHWiQLdGcr`qcL{_E7irfgBS>e5+8d$DZ&k5{(*{+63B zD0-x9{jWGzV~y#@<~&FGI{_;(Kz>CZuMI1z_%-8vECWHlUwzgK3~4piF;lj(R9hX+ zAzQZSyHd8$UMyRE;&k;EAKdRhCT8j_))3-X)Gu3Q=M8iBw}!>(%9hXCYi+_2ajwQ1(n(y55UdpOrO5SWzJl((7Gvu7jt(I!&Ce-hz?zgvRu_>BBU%Zw@NmiEhL;R81c?Gbg}vfF_Q;a;{YcblLvCQ2hJ9!%L6dtS2QMGbG8Q_ zBF@!VFB30TR47|H^Xo&qu*S?6A~A zbLN3ZcVX?dc2*Iv9*{4I0kqfhz&QcyLCcDst_`b_2U4FG*CuE`x>&tH%;W)oO{qUV z&@1Cv=Ze$i0iX3c`=yE=$phz!b2ZkRV^}lJZJghQ^}-0&QLQbnbFHVQ-T5SCsOCl~ z+P^)&|0QCkUOh!gps=bk)v?m+if8ilUjTvgLUE#wm7E20O#5~C-r1R%**qt7UnI`e zSkJUxEh?0)b=i7by4FCzdYb%+Us2jHSf%`0-@I$@mfJRM-nFg0bHYdGQx^k_3&D!I zwU3$xZ9j>2F|$^8>R7Yc$a5us|7MO_S-GRBi@7_93pYklipnrcbyvViro z`gE{R#*MKmtf%PQote4CrKJ;TGS{G~N!uKkTh=S3R%!Y3j^`&^iH0*p@IZU4IDOV{>t$Hcm^R^vVjy9)rSk3WOt8Xvt&M>z z1zLy`b$-=sX^16PYt|7xf^?^x}v(lO9KwKT_f%VAfG(`Ut> zu%fKdz={g2+>;g8ww4!@*I?HKtk+mpl(sikrEHDagrys@U{r z4edq0-XJ*F9)J?R>p^6MPvGg zr{hS@iqb{2nz{nPVzY5l)cu`Sbggzvz{)vhDof^EGe2jUFR;c@O+S`%dG+hB@z$u9 zHwCPZ)u-TB)U{ttdy6O6Fj&Xt)xt{JGgvw3=79AxdI>DljlUZImSi2BUtGw9TH6w^ z{)S~monNc4jx99qR~|?=P$&*(TLadO@*gfl-E~T3w=dNL}uFG+;YI|JjtDWL>_13JO2MhJeR_Q)>&M~5KajwSd{361 zc45^^#;UO9Y-`^Zu-+>=VgO~l7^}iMX3AE&OT6@T?gF;*`|lMqdEog1rB8^u7=YJ& z0rSV|52kDp=$VW%wOgF7Y`sv7_!V`mRs5PW2KI>4XMK@nMX3+4Dy*ZeBa6pPo3Op_ z$v*aZV;PR~b{hlCX;ELH&adWpIC~BI{}BWGycoDZJYb=YwYp!^jb*Is)bzEQG-;SkajAto0hkm^zy05-*PP$u>#jni8Eo+!)YI1HamT9&9o??CKSg+O_VMSd(w#pch zS*traH`$zD?TFQ$UuR~8+WS1!vOZl(&bnQoqgIIpXJvC%|Ki-V+b6Z+&!>6ux?imL z74>4Ebl-5e)tFjbm~N%!yXu$x?ps6VXE1f&$6PB@_*R!I#%HtW;YvNRA|4NI(BI?;jEFX zku)Y8#K7ysiC+_wI0u4p>CeL3hU|1vr|V~_2teg*prNf!On>F3gp;de zrNqF37XzOYBQbz7PJk(Ely1M~93xs3r_YK%VMWi=h7}c9M_P@!#?*3S+U%M3VJTq! z9eq5ksQRzQ6uYJUdWxAg*4&0&rDZ=Ni8!CS_ABe0U`1p4hGT8kx!Dvqg$TZ3)5hw3 zQgYU)K&jPGw>F1sf0-|Ub}{m6U*_{+T9y~q^+R?b*#e{3w7~oVxc7Km|Ct)hBT*+uJzR_zkYwfx>=t97V28LM$57upVV62`9&=v ztIV?24krTEPiqITP`9qQ3hVIk$)k<>v8A<+TlRH-z4kLL>$9cgtWRpwpGKWu`P{N? zm)!FO&$7IZ6~Ds#7$9Xug*rCpxVGbbp7rZivC$Spohcub9@kzs>Gn#ml>g^=e%+=+ z;8)b;fhzfR-J$f1?h~IYPM>wVUVs(VOUA0OraqU~A{fE1Y%dhpWqO9bHms;y^R!Wa z_sY4v&$lrUvc}AD=4`vXK%A?wGB1x674pETQ;Rw+a%u8#Lnm+OY>1SD@s9JQHU`N5 z!~p8IwaZ?AU|^=XIIn$k7_s^yF9v+pOY8xQ3VzLbKlvAnb2Zi-5v+a7i#c3sKJz7A zSYxi0Fr4umY3Ea7fjsaEZNw|;$`)fV=1H`R(SF^q<>17`wmk>xv}3!xH|C|6*;sX~ zuhECVin@BMO8fPc?c)>s57c*UJx~|%#N9DWtL^jhfb|`EBdll)>sXuhz^47Tt#-)h z=U)-9;zL-`7*^}o1N--<_v3I<5dCc`Fak&qHZjMHlleF z?P8RzQ)ikD-A+DBz4dC#`Z_6jfb&dYMg4lKY}+Mwz4aQ)8?yFVz4cmguErWu7mR2= zzJ6#j%ZWyg^9?ozzG`Ctb!Cf~DBCyepPSCL4Bo6Cdc8PZUEs5t{(v|OZDq^WC<`5u zI(7p`H|99sEMDUEOWNoMpl*CXf0p*^K<0bhzR~k5jQr;4<=U{KLYr`?p46%4`0n9N z;`CX+tQTNKW6m!aB?RVX=hNLm){(AozSYLS*Ypy(AB`znT1Rv^&n$PlOufa60T}Ts z>dkYvpVV{R%#6YByrGA+Rg%x#vtHBRA zTqs7?!J~T0n8t`o`?Y`S_;h=(^pE)S?SgWCy~tvr#-GwE<1YO(Qz^UI5BS3G5U0;d zjwJ@rIM&%@W3LYY)qma@urk&HD;meTn5`rGu7H*N4=WnUnk@$29k5r==2P#pv;G=_C- z-=-bg>YH|r@7R+Z_XjQO58HVCY0HW_R@i$bzy6RHuRiM;)-wfKG6n{hCUw?^-7&E^ z&L6dYWjzj9s4H7l+JyZYa!HKX`8eYAM?Am!tnS)LMTItD>TCRTK=p^?bY)9i#;>UF z*RnA%Qs2L2=eDi&o!URO{h0NsV>RVS2SHugs*wEXN`%0!Aw5or~Nr`uEy%l-6?ou$(%J-&ld!a^OtN4 zd|FtvtI(Jj$US%b3tkMshzrrE_G`u%_(gH9#_F!GU5LAE45Yrs4~KTZJ zp7P#SzhQmqSgEV*m9`bEXbkImb6tl#Yjb|nvVKE)nfP{Vdz4i@Wvt5DoWX?G&a#K^2yyybmKWA1 zYs0UoiBoBnwK>Cw<`$=pW;sp1_S@q0S(!(J6^&u-Kh!*`U9;Hl1gv-JD6pdV8LQ&g zjZ<@rt%mNhQg7VfNIVYvxqy|0V6dX6Xv3N{U7uQ<&JhKF5U~1rz}-*2GVAo@@}&KqDdi8lu$~*?*MUa5E0TrZ^9up% z-FgEtfX2kY7-{vGIfXMk)JgyUivcU?8&))?Y>hVV*YyYT1nidr);laKI;ah+60buu zy6;Y&s-X5q0qb32!>{O=HmnNkz|8DiuHlR?2dv~8Skag|wm;nkA4Tv$`{RJs&#$N2 zw^s3M&avV@30Mz{55J-@d0=R+F*%(nUjH;;_2ZTP0anGY151aSx#IQDy099?imd&~ zuA^z(^niyy@4_0>CLCF6&Mr1*mrp$4C~5xl7Xj<-`dH!>jbZIy%C`pkF9X&|%ZkR- zTLaC-#bxcA!~QB@J*0!+S2TuI=R~zyIWGDrp1%%Q{XD>U239E#wDMI3e-p6!bwNxY zX0$bXcyekvi)X(QuD`Oz(6ZsKlUF2R=*z`lVAInTdnptO#k?g0qd*|K@6bG zZ(vpY+P|EoiDfwcDPXPZSy<7Ser$if5UBlg!0N|9On+1R3J9E_Xeq@Rsn(WtpN z!+Ou&-J8d^=_8WbH|1A29V_cdVMSwDN0*zEOX+SK`GD{Gt$_6$%Zj>s%bdf*7g)p0 zIZ<_8HffFb#lHM)%laQu=Cj_Z4J_38mH+q38j^pvydkUcr#K63<_n-*48M-4j?Hvg zhnnMju$&0%)!H6rRbRnamAT{5L)DPc_*!i~W~4 zeb&e6D6pb2tbO?|K~ekffOU&yMWa~r+#*Uewc7s#tR!&!ipH?^Hzx1bu37AV1J)<% zD6pb&tcRAefa*iP6R&%ugDvS#xu3EwYUzF%X;UHThS*;vTgWb{mEi| z0qZ6mg&08NVqiL(U;6`AKL%I>iB;(v4mD=xCJ(pTJ0^Y{2w0z>&&RK5oL}=@<7Y5n zeY|BwV_5r=UZGeJo(%=8oAnxgMPpd|8?9_*YdB!N#j>K2tl8>vlZ{D;mX`sU8qcZDYW?L(jpA#;^`>%|Gp%!yXi{-l~JZiZb?sRjFfhuFE(jVBIM; zSkV~2_T?MauALgNvUVL-G={am)ykD#Yo`UQoc91L8p)a~z1B_-SSc5R&^X~#qkd?1d44i=!{E$-b=BfqE)=Ta2iVEi&4w`lF89?=sXNz++RyT-N ziFJNm~MmMTK}B;+oY-#|j56#mXGaBgIRF!Uos(n#XxMq~WCo_L*U z)eoIWRdcQQ)p0(?`c;UX>uURcEt>~&Un`;T{0gfpMwBnCs1UC?%hoyK^jVq9f)#y; zHmpk7axpNsxNx|=_sKr4#DL>G-^Ktjs$qE(tGyTl=Xx;!D}F^8i^Yl_iGlOP>9d|L zHds-&o-if`jxRPjWif%R#DL?x$i{%g!~pt8??}Cp2QCm8^%wOPjQAC0-UustBnB=N zl+ViC3#@2VU9fa4ab3_alD0X{OT~;|$x{PX&uG8JJeIzOTITC#T`W!)1F+&(lr{lY zREUB8`!X$n7RM#xT#fZSKxIV**7Y_9($xhkG2l3_urcr$u@M7kFUG)SUJSrU44|8| zVMPVM=8S>M#km^m<%YBxtBZkjb-_vubU1AckpGDRv=?LGv0ei_KIX<+#4VdYz2{$BGMKeXxCFQ6UC4Hd|L|`Rj6{**vzC7}{~d z3@hit!HPP+n)R9`V?eA|=VHCV`qZ(WZCTM6*5PI=@v35as%^V5U_DPy>!}*L($mp@ zO8Rv~tSP4p)^%nrYPFjz>*J-wz_r@=CaBL^I=^N-$AsVhahBJy;zC$yYhgu&vbEvP zO}A}3xUart=cbAMX76+lj?=~Knfhp0QDOlzb4Mj(V12#5Ykc#>rir`j_4eNB9$|Fb zKFb9bd@-!U(~G)lQsU~seqG1;B!RJ(n6eKmN!usbt)U{)-J5qM6u>uSG=tY>k}hbbFM4i9xy@DVKwc5imW-; z74HmK{ha0I3#$3GwWP0?#l{2Hr|Br z)@1$2l}j&Zmr!OuukhB!~p8@Yn2!nW(~9bxaHdxU?ZJ4xl+a+hb-W{;|etm2kwUS>qm^mXQ*<_cb>9-UsK6N>Z z@wNeNPCIYJ*=rbML>mojy6e;RcUmPHv#_!HbSe3Dr#99*p)fluyAFOR*G2RMfP zc^xY*gq5|hSWzKfN0qK};XYNIKI^#HU`1ovS>~F5$MV#&PYYP_r}HawTv$=Tul;Ig znVm8`)C1PrbPQNg;ufotv)XgV>8_`^t~1NF^7}W$OuXKtjU0f+l&#@h9T@RYwkE~t zau$sE6)m)3MTHm`X*OERi_HwZE%gD#xf*Ls+a+h&n(D&p+AdZ6nzL+82dt0RZ%z!L zF=gvPw%%IOeGF!kEQ4ODW8LrX;+6g&Wy-1kY#U!-4Wo{AtgT}$aM#$Q%*!jRGqzkg z)QsNWtt4x^?V`m*$=WWiwWsToTh@D}3u}th;sd$aIYElUmlNj`e)K04o~9Iwsb=d$#T0x%YrOL^53t zSgEUEMPpcpm9jQ%o=6WWo?`*)sg@OuVa<8}g8MA%v!s+Q#@ooJC~ZTmj|ZH+hSAp6 zSaChqRn&;nw2-~8X|aRz`~9CMFyeKSWkpx&*mdQvL!tpq?V80XThA7! zs|$SAi|rAM3U%yId;B#E>vP1p8tW|)tU22*&+WqM#$BrT)x_)cv<3*$yVm*ig*IOO zal(~&E#Kc7$d$14)rr&Rd-3YCQr57dLcE%F8H;AOO+G=-ADlf9XzhixbJ{?vxnsx7IL=qv z81Ux{{1_-ZK9IXEc!d`OKI_92vsh7~E*O(vbz9afh0Afi+WPegVxw%Kz3A6hd4Ba- zsSmKCf?tPJ7i{0R&Fq)@!Ew5}fO!J^is~yEt5R>ly7S;ZyJuQ?jrFNxWxW%uXe{ga zu3c#%?WesqU}d}wRy3M5PZe8xUBK#}7Z=T%VJr*RzCK{3e~n+!7*^_n+17kx{!sd9 z`8QbBH%qBgIR^$-)X!OE=V5Z!1#h&xA!|%skh5R#CULIDdY*iX6&3O;ZSC7KB?8Ck za@Lt*BL+}?4P#aE>u6oDdp7N=@3cE7l(*R5-?75!wis601L@W|Jn)OY)v~@_O1$1| zSy8`im2GGBXJ`vLV*L3w%Nw%Bv=#>$)lR#afk zS+?HYg*9evIc4kigX3AoGMrCc*q}lqbw^L!%BM~-C9C}*m?M%W&K_$b=57}@GI)q1!darQ!GDkC z4OwH`1G;l;mT_&z>GA-50sM-_!~pSnU}9620fG-%pE_37kHLyYv+h5Th4uRaR<4l& zD;mvuV0@2uPi`L$SPLBiRy3Yjb_!z zi}{j?AATrcy+jV74lkAq*)7}nvb zCEZGVGFca9UFQssbhW|IdnoZZ;H`Jfy%hn9<&SR9VPlywR^*U|%73Kd} z6~Fe)Ot*K+@c7f>^jYyItSI9dSW%&D<;(*=6R>jL7OW`kZLEr4bLN3h2CTkcX%k>Y z1;3iIHJ7ez=?;K~fd}{d|ALr_&nvW1rkv_eV`b+!N3?*Xu`oH`a62Yc%GA$^)0Hh4 zi2;=U3|3U|Yt9(>d2z1B8WRKN{Mcq=a(Zrd;i&nhC;PAx1CG=A)y=^aIv~;!(Enj{te5IMe3EQsb;NFAd{EUqOzfBku z14F7~ryDKr2enXtAu`-^46;)zj{^;~<)9jY~!EyeU zjRC*?8WRJ#^T21l81PwpEf4&rI9Fqh$pb_4M`vbd7L)(}e4yj}oQ(m_IVZoOy%+<( z?Ztr48db+;tP6feoU5@i*Nqhw^1wjCwyQa~_ux4H*v7!1UZeg;~n$FpKshg!NlcjLZQzt73M@OuHP zzuv{gKo!5jdU!TZ1NQd=R`L`vfX1?FxcFq;x9Yxs5U|1rD;mS9@qv1-=Jp>3topBE zMY+ZcRwV}1&Z^I6DqCL&SQ#h6uPD4&Rn~=M;~4GZyT>mEtoRaEG{&#QKr>S!_)@^i zJQ1vDY`nH+pP8k5_(uUNbr!5>3@bV7Sf-ry<$#s(Az0BE)|~ADS7-g1m<#dUs0~(h zrA@f5^!PyT@vJ`)Cw;`iGCEeyJ;sU(?W~-A!#@@0YOIXMV?_nl_4WOC@2~Gau<1a3 zr`b8-gX465#iwr5*DzLXT}FL;`{rG@*Vo~5+F6eCU#wrx5f4~sFZ%VLJ-_;_(SFU;CUl(t zX8l@NzoNb9*MIf=>a)i9b%c1`o~HrpIKOHA>aQQ@MZbQ-^Q+Hl#@rMO__|Ua*fGA9 zT~eFlbbZ5Nw=uvx5jhL(#TfXu7Xv- z9DeSVI`%(2zxu4vem$6{Y&lL>wod*$PL-`Y4&0@mBDwvS^{HcJY>?j^)l0^zj%VGO zsc-n-0V{Lcu%gkdnfiwR6R=)oSn|n>rz|eh@^~vU8eL{L0v_2h?!phit zzg5Qyf7!LVeR(dEAcD4Ehb*sSg$?FYc!R9qfhX56#s>xt+@0rwR66#sI9Fq3Y#S?h zD9K6;q`99N2YsM9&M_MU{(J#zw6H39U|6hkv#sU!o@pN`Q=?uC_^dEuMTI%eoPKqj z8?0Zy+kC+~1wh&Sn!9YR_x$R!#+0p`G2l2|ekET~j8Io^ne$>wmaWt3bwzA*@z}z2 zW4fMpHOWTn(^G5=kW>4#p?-cX8v{9W7XEyY7X$F&LX^H2R`5{LuOsrRmX$VhBm&2I zy7epThwv-v`?XieIL-$8rP z1JIQiD8G& z{9BySXQj5Y-0v@imGL%W09}dK@@?&*-P?9=-j-#W+w`~3w!9%L?QN{!p=2J&S#Lc= zoU5_Ml&#UF<>vJ4%uMnNC&^uole!ka(!R!psB6DgX}gTo_Z^tnI=+2-{eV6ptv$^C z{*DzcSWy?RRmzs`&;86s4yTIe;Q_0^{*`rlSQWnx>zdW~Y|G$OaXcbm)qjm&(HOs) zv5c+Tw&xhjcx1rJ@9(x4)}hAz%Z=uOJ|(>or*6AlAMeLN6zeQ2_8aLz^@)%6{0i%O zZTJ<9VO?LZ?;77cv1#J&dR-rp)QW)BZ@3s?VvHBS6TUehhMq&VUIZO3I>1$H0o8nXR*tz2LS@9>V z=vDTRMFrNuDRsAVbPUCEUKiFIB3S#TT6VAWa()-qiz8S~*_vNU2uR(}6W#Z0{3 ztKXiog`Vymu~*90h2o@)!8#{K{WI#uU#pa@obh^*IDJ<92`kEdSFoZ&*~%HO7k6R3 zz>rpD&6EVha!D7~>myiA*;+bb_e>$K_FVb>A1h|!b+3MV{b@9&-Wt%wGIDvAGIg2Y zT-kzE{|xK7)-6SacwLvLIcP{O7w2lMH%GAcx0=~%*(#gbw0hp#_KEf+w0F78WXQM+uG#SYX#@>D~$SQSUGnCD=Nfm&bG^S;#`gON<&(W zbzQ!ucJ2ButTFXg&T(z$Qx^lhJoa{@jaA30|C)G3UD@iDvA3H7Rx$)-3w7C|+L-2Y zb1L2CwMD_`O4}Z1S)VASj-?I27%}Snsy|Dw&B@&+e7xm#toRkyn6j0#-g<&KS7U`2 zD=OqyUDu(Ray+Zut2P)N&P_H3o~Ng2XQ44Mkb6AqW-kU_AVy*U?X~f&CyCQ%#he;O;hE+comZWgDjx9%1hF@VO5 z5#=0r*&SLSyo4?mBk6I9$rT=W49iiWe&?kf)o$y;dZQt&#;WT)H5<+5V!ByQ z3n6hn-DBg`pO1C3HC5JY4+=EX=w&q}_rt>x?#`oyFjk?)4<%8pN z`IT68TWsG@H-<=vNX^u?z1F7_HU@?S%Gv?c&sk;H6%W?y%}kfqHZiczi-8d_;#btI zd8(4La*h$*E>52nf5M8!w6mzU7LpDSto*u;^9~yWTf|Ab74_RLW#?majuTR*_Ioh^ zBYs6==3#QSvkr)JHP)EfTwK zbEg-tb7CZ3QTL6in?HntoRdFG^T9jY!lwyg|*k(g!gn|y+OXkiVAI)cG*hV zk#()TmEXTEX4+NfYh!H=+KY9;Q^e`oSuhf>Xv}(-oOQud#km@5uhj)l>%w}Se2Wzo z<8|p!^QhS|$pdHYw$1r;%Es&G^fcobs2{Jr(&v7<7q6ceBk_v%TAzDToIWf5gcZF+ z8&*_^ft-ErLtR)OXGp8Dl3&wK#H{33=hMSBUSBUh@+;bl@jC6r>l?*L44^Ubnsco~ zL!3S<{)82cSy!C1Z#dJ1HKuGaZzC{}#h5;Og+ zGv!p;ENCyr>ykKKf9otU>R%0wi`RVfFwYRD&x$``MX#1(MTL0H*&b+iVLjK7R%0El z*LA&#@roKIa0oNoP!x>oLWyjTBU%eZ#Z*i5t0sJD(SHB!|FX4RcJG>mNb$-k%S z8ODW%tulY)tnA!IU+a+DCAq?R%$6<3iVI=B%pR?%5U-<$8_Ox(I^eC@cbq4zUugrd zatHNuR$0IHXSzp}a7?Z`?)eo){EEhut(ik-TwQoKj z>~jOwZ^9g*}huTo**DCRvvz_&#fb}-ZipIq2 zShF#yYyBl_zn)s#B$Bo{pT1Je#K4p`);XZ=o`L$abiDQ*I>Ott7;*X%ak_Y&(NTy2 zG{&!khiJTHL9M-1oIdMe%ZkR-TRGdWFAG@t?eQymsWzry3d1VIN>{zS{CSR@h*5F;K8aNxu%trwf^2 zUn9=dSYgKs9!j#VH&s?WOO|zSbe|7%pDImkJo4B zCTXrEx3_g+z1AMBsNmO}eZ#j0te+Jh@rt_kK$RF6BflO?mtcp@h^1g;E(g3<%+&uM z)>c^c^J}lvTkjO7YY%)}ocI-u$*(zc*1N>%v*K4+Q5OS6g?JsDU09sXkzB>|?tt~9 zdJa}JrY^`?w%!x4e$29>&aYL<)@jElXP4_Ui_QAc#)&1Ja@5iXB{KK>yLiQy_!V{W zN}JF;iFPsiTN@4Q;zFunqII>EInMXVuW)`qN*;KuwqdKiI1lrF%j;P2E6i+IQK4+9 zU(l*gP9;2>v)?fAfKT1_c>RCBHu9=d{n<9Yz#2vjn6~yI4Hh0<1$vTW*6Ry|xxZPU{-ieI6^*I4Ht1$X_36oF-65oLSf7#7@aOkh zUdM_HVWlsN6&2#u#K6q*Y`VtwN(?wo7Xz#*#-C30XWL4~z(!&~YX}bOb~Z~%a_b7~ z_XY9#6_LT})RLCYuj?)A(&6S(XWx_hV}aD}e%O}t1j=aM9@qqPQy#-dMZjZ8U7sHx#DrSZC`vcaeT2`l3Sxvn)zjS|R zzmxuBh4lvlR#t-HSErprRf&P6BPWuiR&($b)*lR5@3O2;<5-&s?`5;X`a=Qh<(AcH zRaVpI)_qqdr;;Qr9e#!NhXYpD4iE!Qqgb1bgrh_&tUnU4USwIFMzLz%=D1zuZfBiB9V^x&i>>7}LAw&KKM}<1|5{e3Ras4&P^?RdVqvIr zcQv*DE$h$Nc>NW@@!O+*yq2BgTsPbKcFF(XxBn^2OT2zc8=;8~YQvgFL)(Xb zz~d*x>9gWbSkXt?cNP^``8Te!2@Q{cfzNz`DVft!5)lzz%e>(TY!hPRzu> z)!JZ0W8!rn5u*GGy#txwO2Ql#TUJSrU44^SFFtRu|U2o>${RMIQtk1Qq zXjFd9#3`KGF9xi>Ut{9cwOw+IWjLR@whPzzB2Jz1eT)$pYZ&9NreC1;Kr2bfA|6LN zNBw0RtB&=L^@^UVp?=viLEPEvyZ-^J8OsoBjTqk{9EM+i-SaDq_!W)GS!O(|m1peDak@P4C^6zsr~0#PCCip!O&0?4n;dEF zH>^*8)5gG@o~LY~F)@(45Azu>2DlO?E<~g1*kui9YTq38S#kQT_!Cw%re9$405Ong zpm3cx?&3Iq+r|KM@x%Zc69WUwhmOr?-yBAn`YkU8{PhD5w+Af1E?KtPYjcuK!ib>1 z^R*qP%LB|y;!mfYHq{tvURkx=SlwIN=>cyJJzS4w=wWYF;N$wQ8ADbGx(PH z^K)Jdz=#Xc)9rhU3Ng^HenD`EWdHqLar&%}wydc0zO;0_wqqd8s2g9h&y@7`*L9qK zXk*}?^)%~S(3lv=T^IbG7X#lEBQb!+_;nziOGWTN`+afxtoRdFG^!uFd}OwjiT4iz z)_)Zv84W#K8&)M=*YBCAYe;Kqa&9hB&DCb$kv!lw=863FfQwfX3pjfX>+}t^jwtCO zGJD)F*jR-Z*7LQ2g;LjIlr{4t+QncsZNj8$o>mU{#ekJ-B*2Qsu$r7TIXBsyUpYpq zzrGZ(Ql4N%qgj)#&szDWe-yCNZ-Et!VNJb0YlXB{`*Of~m1RX^SRcf=Hd&y)Jb7rY z;UDUx|Ni5E^(p$qQ?;SAVX!KBz{Km+5v|;B@0;@RPXbmri2*dmua>_VB;%p9id)EGrtr+Kz#_#a7y4Wsv_O zU>&opXgsUdzb>1PPx|ne0qX|KipH>-{5pMXDJi7=u)hjeX%i5yXbh`q4~X?@`}ry5 zuLIUC`fym$7*3(jbU}`wR0>Z_C zbHK{#5@G<2VeR-e1MI&9tXnNB8pG=1HQibVfmr+3fOVgq$FJx~u_ilj!-7iwEnvM} z&%uhuu%;tY{3YX=f!p$3!63z7?>Zr|0o2 z8pCSZS+k2%Iohw^4p_OiHmqn2tMTj6*|`i&?b^QwtQT8WG@5m8cHyY@Pi_AZurh{? zU(tBhJePd?&w%wN%ZkRZns}XSH5wTl`(FVob1(Q6JqgwH2*9ipI01yUvsUb-xp^vZfeTG=??(IeZ?i1~2`2 z!zWl)G=|mG1q-uN4et=C{#+NZUSL_#Xx7E0q<0Z^-?cAbRY;f^Kx0@2n zMPpb^zaZ&3rxsK)9I&#M6jn5b)x;~;EY|+1Z6si24i;84hSi)818ash>}bGxw`E0R zSWOHhJ(pJ?*2V(XOY}T`MPpb^er?WYX=kkuSTD1zXbh|IYpXHWm`Xo!xFKM@!?L0$ z!J1|Kbz{JKwPi(PSlzih>CQVAh_wd=tOxZx@ruT!c6^Xbh|MYr<>O3B+0vu%4^uVMSwD+imR=^BIN*YUc#3cUo37hPCZi-N!=v zr?$rgtX$&@zoOBsdBU}JZoqn)Wkq9HP1#C#eylJ$c3!~xSiOQ@(HK@!#~w?0&S?j= zc7DKmvt>nNSdCwko^!gwdO^T?i)BS)SlfP0cb$D};=3qd zeUfEGV_4gMUC5DMYZnKs53;OiJgWu@XAkKU(%K~f>pl8-VgQX{ZO1^K#>=Gv>t@S} z#UUVD;OCF|4Cpq_lo`GDq3E#O@A8oSqDtecK4Nu*Ua}fyw>tMRNVdxzd6PFHWiiVM+)Xu}E~cybLR53EZ(KI|XzapGK!l`$=>;Grbz24Y}t zdRe#RY^5I0aGW>W7}#X7&|ZvzCwMX7v$9?nD|lGPLwCy^15Xs^YOK@;SiwU{){Ul) z)jfAI1cBq+YGdGHVU21-{TLW5$vSXoGRIOv(X`9|le`#!5iFDqD|jf$nzN3*MVza# z#H=o&A}jrrs)0vD@0 z#7ujDwa>H%P(Kg!N_$|NI9+=HMv6SjSRq#MP%;nXY!7S~=W47mZ5Puf)Gb$*l1IP_ z=dCsdm@6U%&|Zvzon8#U$j^<&_%&w?jEi$M)|mWys%Z}_w^|w6g^qKNje%?A&kfp8 zKL)tZ*;@AhqtAVt7XvVYg|a>eD|jf$nllD=iE}kp&fmcb9!j$2thaV|VKt1xG+L6? z^kEdP8Je#hpWbfc^%k*#h5GT@EA`f1FJ57Eti9HU*(c7`SY!Gy{kp!ozHSzCoUT1^ zijIO`Q9lOElWP!=v-&o3c1j+D(QS+gy;vKp=%_YqhzFir!%TkNeAQLCX!qM#g%{SB zX#)$5VIACj)zw#Kf;|whzQ(emF{}fdueydcb2;o_!1{6>1izw@tk-37YweDJ^%a&C zjbT*`+?Xo{?hII8Ygy44)}hT;-IOa}?+RGoXj#!1)`88rNNcsb1J+ksRy2lnaP!sI z=8A!P0@l}ARy2lnVDmM(P-{;PSYKsX(HPdD&DY$R%dt-hSl?t>(HPdj&DUnj15XWD zUvF8_7}oyH+0tw6X#wj?EGrtrI~6_rI$(XKj(}g$7}mkf`?v1m1nUge2w3meFkzJcljotd#!N7qr2O(wD_HYAbsWw$bHAbAEQQ zRbMi@CVik!c*OFCte4s&6&3Ee()R0O7QZ^qqt>rq6d!&?d(p4=dVcj;BmJsbqdf8I zI2Wv6zhwQ2uGfYUuVu&H2DAM72E)u1&3S(HSs&MaORcC7uQ|)syf{~5y)c4RWlJ%T zr))XSXV@6{Bk@tT&|ZvzMK1~9?eFhc->*XuuV@VG@Rog>CbsR_tlg7aD`0((jsPnf&ANAMmX_9X!1`Xx zipH?^Z<)x}FE|#kvK$bLXFWS$eVb)P^^&n_Icxv*cDLm6oPhQ1Is$%0BUx`q z4rxE|xdH1t^gOI+B`itY|drZQ415y(D1$0Ud)FKx0^k@at`P9Q)FM^~WqL8qK;VOSslv z7O?)HWkq9HP1)Kvk!2$0=BWv4wO0nL zZ?UXs3~T@P?b-UVuL@Y7XIW9bWUNw~aQpVF>~6{B)dB1Cbp&DnjbRoo!E zb1f?x69YrrcOBfHsYUSGfc3{MD;mQ(xbxt?EqT&w?R5d``z$LO!#Xs+Wz(L$d$f0Y zdwszAQ5}MKMPpb8$G1#msUF3XBWvhLfGr)bsQ9!h z5~L8Z82}~A>AlyRThe>)z4u;kdhfmWUjOqA&XD8z4Pf_h&V6tmEk0_2-F@-l%~3x#KQ=lrqJbJc-DBO)tWXJSc3`}3uulawdWOe(1G7S9tk?Dqp~6#$XL_vnqHQ1t zphDK+ojVmkX_e3NSno~qzzUVHW(KZRYGp;yvpv>(GAmTV+Bwvxl&w+p9FO%}W`#;v zGsLQLVuN^|>#<(WtWXJS=g^?qaqROv)~tm=!9?f!xsW&cXa{S~`5Z&|`fKZ34bRC9K(Dz2mJHd8{R7h00iW?$Bwy zM$wBs)-tm~g{%XEDlP3OdWpw+kXfNJ*1^7UrM*6+a$Wp;FdM%{L7H@INnDuR>C)3)$P7{2EuAvFBj;5s7Z{?=SGj!Wevs~yG zjDLSC^ZKkO@W$d4*Tdv$6H_zuM?zzo^;yn$vajEux$qV0`kM4QqnyS=!VGEso^)?_ ze05n*=g-7xd{xYWcMxYI*5f6tV|{A<1D4ZXw{Z;dAqSwsdSGg1v3iidW>9$-|Nigg zeElY^9js7MzAEMb{Cu~QuP&>k9$0_VVrj8NH>kr?gy&I9hl}?RXCu}#cr$UDvNhJX zt6yo zFCtEn1De-yet z>nE8NDq$sG2eeMceb{6DD6>K(tUZPm!)e`$N{K?H49dq?t$o|9_z=L z6)It+e5I2cDz-)+^H@K{tWXIn*tvjDq-z{uS3Haf)YGF?XiBAwtzYdDq*FvmDd_i z_`e?O24;mySl84hs`Q-W1C>(o5UnC;e1=&+Pm2D5Z_@-{p^`RX_vB)w82-`RL{mTJ z{w(wQtY@1~L{XfgO{m%L@;Tyc#Cnp1mGV{V7{+qib{6`wkpoakzM>u=)}8z{gUT29 z_qVL;Y3*QzN?7T5i|(1CbG-FMX8kHD^7T73tzvb{R?>T{YvwEb{1Wq8R`?2L$??|4 z`32Mh#hF6A6E0-$=9h`H5$l=6i-=Ry1DeN%U-4MKOKk8JiasqwoPw3hmdZZXdTPs- z>BA;IsHALRAKR~UNq_V;&Q;3_KKKfiu-1LetJGOv_gLw_h84O3R+Sw1hR52&tWXIn zqX28m9XX}3iQl#jGPP~-}hKArcJD7$f{On{nTTy^w3m9VZZ zjP;N19T?6RcGDWdhAmgN9zeOWlcY`9JvK1h*MF_brSiWdU%_cvH!&+z!rBAYT_d|j zN5XoFwf)LtJ&xwVSEz(_tzpd%?;Pt3e)aLMJ=W8h6)Is}ZCLjY4CQg9ec1So$BMod z_zIP}0~^1t_3(bj^m zP&q3Nd7`-jK+0h$L^sDzcv*67eK zT0!9Wr^otUT0dB!D`C~B2ma-;zJpnz5?0PvjcOqJx5xS}W`(YVRbwBEK?3eE%sZJC zDrOzhIo|5PLFjntsnIORL-h% z9Gmf2as2~Wp%PYe9GllUj?H?kF|$G?tmfD-Kc=zUigF(7?U)rRVKv9xd7WeKE|2y0 z%nFsT=Emr9?qP*a7w~wjuVq%Kgmo>|0EO-2I|~Z81n==!JDC+KVeQ_xV<1mQTN=kO zt3B31W`#;vGyD37RR#|b&l-=lk6EEoR(wy5SnIJ~O&dY|3YD;C$=AV4HArb(i^n?5 ztWXJSZeRasZ(idFhQ_yfti8+%m9S>_(UU_JjtdDV+TgL?gIS?6);((XqS@%NZf91g zgf+KsaER`zN=t{2V?5R&+62lLRKl9sw^w5by!qmrJXVwnutFuQ*?rfH59rt$9qX}f zV^*kywR_)a|H!D$lX*9Ltb3RhDq+p-%a8Ty+`2wG&SOOv1abf>Va*b&QZp+$-ecX( ztWY8AcwVPT7@gp;qCpQ|p+eUEV`xk$#O*v*w2{CHm9Td18@pHm)2#ADkM({u7pzd~ zk};9PD`vI`jC&*2OImzP{PyiV*89_%fCZJXX7`P0-P$8M$z#1QvqB{~K&%6Mb(&ex z$sQ|?J>V-;!rHZOzgna46pwW;vqD9zN6K^6@+~D=Jb0YStY?s(Olv=bCX^+pWGq?k zNVPCAKSN805AsDd|D^$YTL##J1ly5F6 zSi8kzJ&RePQr4qNtfzadXEQ5Q!kWFdPwUWd>G!weh+fXDP)R+IrAGv9*BIzPJX^V3 zS=J-W3YF})x{B3_T6tEb&a&q<&L-wli0^b}h1xo69p<6HwFtBaR@D|-d`kW{SkGc_ zebz0!+Bn5^M%js(`H4evo@Ps0PB4QN6D)+ZAHUtLzT zwGeR%Uk$5LU-5;+*@zYAWD#)+*4*^0QU)w@Ucx!xwh7l7Qm)647%k%eV!w5TQ1wU+ZT_SHQupjjr`sm{98@zrI8$A~zEuesSnI;Ikb<-8;NN?fMS zg1U89yR@?|cYJkOasC()r|}gB+&ayH$a30t7TVV+@=%Q1N2F;FbeWUJ1(ja-E7()Z z+Cyw$g-Y64-PKw}Yae?hv)+~S)jf`N^EHDn&>~Df;nZxc#mB^N!_PZ8`RcM>&TEZR zLkR>?j#Q=Ki|+;Xe358R~*>lR*RoWfVlW5cVOu(?|n&{aUcw!%em$N{DO);-u$ z%bI0YsN^`7eO1|SZSz>MKZUPQiLa|_v$Uj6^fK!nQj{(9Vbh;RZP{9dP2&r+2<*4I zYO{rd^NW=h9~Hfg-+nvuf^{=Zz=9$V5NZ10yNR`2ovhaCiw1q|BTkpq9Zx7>g|D-d z#iKzXd1X61R`)ti32P3lI=9)6`aM>6ytbHieon*IXs5^Ojw_b3R!b8qth+qcO|%u1 zEvSSQ`FcbtUw3<~?zmzp>ro}v0gv@W_7y5-EfrPj*Q-5Nw6Bo^Pzh_cb_?A{j}}%4 zTesTwz}d77utF`XX%}E-i@<)%^b;x_$AA&j5c#`>SkT`FEa-Zg5be}Qw3j%+>$Bqj zh&aVDOt)#jYTVT!iY%vPg{O9sw6i*Evq~8dMZ@gr80P?T6z7Pbl6KZ=Vl7NmRgSvg z=ZKR7x7F{Grkz!1T~uMchB#eT{O-sBsLg>itUd5m$JS`nW5w?dR;ZX&$JQwCu_9N& z3YD&z9zDh55roy}05=?LLq7GG>KJShJI*1B=tNutMzjSkI$vAYY*p*3FZp z!{v!mVQ#)wC>}1BXNm`AN`bhq^;j=qR;YxvbFv%?&3wbor85ChbRDx6NRh91rwQ#r zs6B5;e@02~SKL{usttHSnYx~N!Mcqm$iV%%pkE!t`YjYhgj-sXI}0197^n z@Dr@im?lJ=g0-V;7EyV*r^nh$TLCN7=4%>XSIwy$zL@WRFOSvr^#b#WbiQ`dIU`;y zxZJx5tK{6q+R5_a@?^FEvdPbD_g1JHKN zfrCyCfDt(W#jyb*PT{L&4wQ+r5vwF$yD1049>y%^faRR!9Kf|u$N^|O=D;B*2i)to zaBdC}w@D7n5N9LSV-0CK))Pz)ggiW4&H>B0z&Y?l;zJHV+c5{`oE!in>H+BaG$G

&9I%{K&Vd_=4LJa9#~irH$pJ7T2cTPNLc}S2)!Y|U zh_ex^WSpkSfuM&m%Q;{<4|5LeBOj3i(00s$nv(-yL=HgPEe95fvk|K#2fC;pDBWDH z(N_%~mh)!LfwO1}@D++&K%_Zum{B<@taISl@Q9NGE~`2JLLZA$)C0$nuhXTuQiYxt zMxF6BdZIWzI;_4e+3RxIvYhv2UvHol!cS;BmaU_XuV6$DK+*Sth*S8gS-;*woQ+tC z(FAGo{#VL@@?6axQt%p9A_T}`IUmhAP@?&`h8ODQz*?ByBG6a7O6lAdHjT1%KPLyK zXdbYjl77O@lG+gH=>Ej%vL0kssHC0MSvsJ0zTg2KD^5+pS18WOBH|SJN~~H#%cBQ+ ztgf#ZON5A1u}-M5KBx&R$`~R}#X6~WcH_YwtD6HdUnkXkeTc{E=71z$HT#Mm>an6; zMcIN%`ifVTs(>pu$v9QMR@L(L;U24-ud=eGcRuzJ9;=%Jn+3kEn$pXG zM|!Mo4oJ$@D!tQ&(W5-p`;eC?TTt6}Ax+%QT4&l>hl?}i$-;b)z3p;a+qMNBN6a{9 z^cb4Z)`nVE`m=4$Z#{-M(cZGG@D;4Gwu@fbdMt4^V#Ro9M4TcA);l>cmd~5zSN5`; z1D5lNoC8mz6(a|r?U)0PcX9xX$N^}(<-ik&vk~iw#EXbilLKHx4nSj?5OJI2z*C8{5$o}WG#x8)pi-)qDu+vxy!Z-bIR`A~ z|8NexhSrQ6fVN`}{FjphU_=f;W10|go8-WM6K5k(U<~X65@K#8-Q3GL zU^$<`Iq+=q5jg;D#~gT?lLKHx4nWVP2@$tR4m_PW8?kONr0G~UA_r>4i9B$Y|eof&`Oa5(00s$XF53mM&tl=D@};FO>*E_#My{d)OIQ89duhxd%T4lMGio_ zX+pr~`V0PO9O#4J6!wJCtv2=?{{1cMmGmyypf+Dqjengk)ljSo2aeWCx7yOm|MOgC zeE}(sV{tt<7@@AONyn6Cij$LCgP`H(^O)DN!dI|5$1sU=pp!hMMOEVY#My`yyoeYt zCTa0U<3PTywK*^|KNlL>a=w^z0A(LJ0By${c%hR6V1$LxcFTbm5oaS-Ne*Pfp5P?M zmcw$|It$l7z*nfG&RSib3)xAy3`&2!gnxg_dNIudD^$X|#(+SfLWu&afRsE^730j}>DG!3veIc8BfAxE1RwJk|@D z6)Is}zfhc}D|c?5C@rjXpv$c|@t;?Etmn`?_zIPcatuolPQ2PlMrjm9X~ID#ZoL)lee}J0d%(F^XQ#tZyVm{r^UqPG+^N z^xt|Cn?D-Ap#7?O%_-UeZ(v@qzL~M0mX$Q|InJJ`N~uI6w&x}rf2TC>WXv7Z>q~$Y z)7yy`eeUqos(X!e(&MdF2M(q|N%dK9zKMMWE&Vn9K6C#bT*#mmd1b8!Xx~%XO ztWeRpIJ%~v7FCJ2G-0(RFiw%Lnq}*)9xHJfU!jt+)e&UO0B!s>;%y$Qdq4P1{P{Hb z+HLBAVATLsKpU2*ZLYqTm{GP?(`2w$L=C+Y(*f)8a2+HUp0JBia}g|A?RZlMVg zrzl&UiuJ&|ny@;38Hx8>n)SfDJ=XQ)BYcInTRrd|kJViFK%7ufJy4??2?kaoT#|w)$Pt)UVm{oW`vOU{~~h;&fTz zC-N04xt=@Qx4U;V#84;Nz8~-t(}#!|e7GhStWdZAHR(O8JBqZRQh@V=oC7}VdfsLX z#TRH1I4>%E2lEY@6f5?CD222X@nZ zutHtdq&d)8s~zQ42N(GH5hn*+)-!l(af*HHdb(N0(LxP3&6qzFY8VM~Sk8~LuUFH2 z_zG=DUq9yf>aw20-zQGtYv+!@4>My1h~@kw`-*X-@DNubWk_U|1TyRONHR`8bP{51QDb|8F&wxh3~a(s1JMf-yO;hhESXIJ1~qeU&} zXV}-X>4WeUD)Cjje*Is^SC9OUIfi{<*Nqp6=UqA2o>av>l6`2#mpoG3=clD3;?ZyJ( z!*YI^eMMj9Dw?3Kud5QWc1(n4v};5=>x+)BZvX3M{!k1}$eO)rv9ws?1p~{Mh_ex^ zWM9xZFw_?qacOmy^Q)W#xGowNLfsr_m$u7SoE&gjC2g0UfuVu1LSLaz!ClK~kGJm5 zzCx|9Ir=+kz7p%$sLpOH`Wk!s4bA}^w;%_gmKFa`ngiPHfv-C`;Ii8Ote996`?_af za8Sut%lR$#^(@AMwxh4#bbNJLCB9|`d-G%X9TdWHeusT^$Gu5>)ou@b+ws+9m9z&k zgZ(?Te6^h4V_$Lp4dou%j=p}^@zrIO_?jIVS8Hck&L6U`G5Lvh7S#2%UD{dScYFmS zasVo6yJ)tven6a!ST_@khD*$$PNW`Ue{gyqotUdG&SfLWuZaT-QwUhmw$GV+aq3(Xm zd;yx*EKEBKtV;cFzh~CJlHxo!MwxXv3O2O8ld^UmSe(MgH3Gl=AD9=c=*L73Kuw;K znsXeO*&^U;X0li-w)mX%?LQKy%Zm0ju%LD%Un!fE8-T6Q=UDM$g=$Wi{e29xL{%V1-J2HFZ`+Cl73{{*#zdwstTp zG(!^t`-Q~M-%_pz{zja3U*NLF0HugijCIgF5A%28Y{Y8wH5Ka|zMW3|qX{e8hln_Z zudA`&qUTyIPSnh@Az!SgSvrw{d_A8gv<0Bpe<9NBw=xUUm4*6Z!C#T5|8nvbyr>7D zwmp!h&dQ+yR4Vd`oRj7 zuy$2z^9u`s2a)l2?(kSIVpgam2fFAY!`bqDl~*5BR(Y%!Fe}vd6Q;?5tX2mR@pO8u z7c(o=9v7rx?J}%7g)8H+UdpUcNxt@=eys(3U?_3eu;t3`W3Qk$P`02LtA)UIl4d5f zNh}@1DCI#8zET~#niO?vKTTkTwqx6+i+O$4EyRn6Q|x0k+b-S2*@zWm2@r7_);Y6? z%1ciZR`kIj;uNgiy@R8B_x9%Zm?gu$nDzkL1T<}=qu4CS9#P<}MU?CL8SqNfIeEpW@7?SnG>9WF4utLwF2@$7Y#r@vu-EX1p zlz@z^hvhtmb6}i6u@8VsazN8p`3Dyg$_ z1BJfPp+QJG>}kw7;NIKAvVy%`>a5e89B^4h`+~tjf8Xxm;GSZImh*J>bqhSC z3EGanZgG5dStVtwr|xUt*dTq`z+pMJvaefd{qPmqj=rAZ`0BFa*Z>jZ1z(^=nD%Sk z*ZvkC6}@da&thLsr?mhJ+K#@S>G!q_Y0}_fIq$;0UPN2Kz5v>ezTVmK)nygd10%yqS9Dv>yRxt6v#-#0^z|yoSC>_i zuid!jRH;wXa@sykj44OHLanc9`ZU*9XG$fy$@)~GG`kSsmUfP|IHVGHVO0- zc8}%9MwIG-?d+*#MVl4ALM8P;_-oBDqNN^v9_vAx4Ii!Y$CCTX19K`%3$E;s&Lzj_ zni6K+O}dR%J4e%MR`c7_--yJ=Fy;E^HD2-C_cQM{+Q0%$$N{KjB~3g&D>GZH9-?J6 zVkdFBtnd}A(DQhMaSB$=u@1YMu%0ep4Sh}2rs&R0vFvG{^Yw@H&Q&x)mrG#sYoa<( z*(n9`b->BjpU`%Y1JE_R%{2L{c^&7~#OboaPq0GIV%9iCzG{xs+~cvjzM8fm@uu;$ zYvN#WZmu-LUo)r-daSOml55Q}Q!~ZspoGgS+v~CZl-@!PK<#W0mk=+m2w)UmOi1B1lryi(( z0h-q=a9m(m172se+T7K#zSS}E6`VJaZlhUS$ka1g+p#?`&b(kflUR`hP_(%bX>vfb zJ+O~BT~_!CR_NJ=G>YOBb(Us(V86%e`YNfjG}{B$daSOmlIyoL_gmLBVa2%vM4TcA zH0#&vJ=U$1r}Qs^O6u2Rjugwa!qj}FaHw>2fgaAe;;VW)VV4P8u5A7KSelEv3QFaF zIq(Hq1nO71)~q;3PmrxHl!9C+-Qo1Aff3V<5O+?^!MB)67oIELPDO7A%%a zjrH^ZF(U_X?23H=lx8hO(tOqKgD(=4%~voYU!i9*X`G^dT|Hf@73%jO;H6h4tCsGF z6GfJDntk0vtHu~I=o)7;?b1&;;rP0j_~0wlW=fiRAQ#Y6$13yZByqZ|@Dr@idzeo| zQJf|RYO@O=bASQ)pU^%Po>y5;S-yhnJb=JJ& zD^B^qSE!`U(rgbb5U0y}BeO!=tvzs)$2!5R&~|GNR6JJri5!56+5^jFD|mar{{BaZ z8T9}rvCMDx^A)Te%(|5n5vR$4iP=fB zkiyGR;%vlpqLo`fBPfe1R5$W0)-N^`=4^MGs_8!3)+CX#y4$eX)pitYtOU z2QlkINWpprO<;v?p$U{J>%gHC7Qg+&oqTm!CHb10ou4czC4uF%`RZOHEy;ndxta3ZAsyI9 zdim;J8!0JUnIXOBNI%MB#W;QBE7axy&UYoQv*xF!bX<+1M|-U9eRI}xUD7|GO4QtOrtuk5G@%FJEEBac%3YGY}x-c>}x?^DH&cc}ao*`cz=doh! z09c`te9cwMw`kQ_kM~&7e*spgJuXO-16}3;Q3|FK&l5aWaDf#n@pWw>e_g&XcHKyS zKKRq3p6IcH(@qlB9LAI?Ra#H-STQaStWZhW>MD#4?CsadfhT*c=pzIxRN`xPQLlb| zipPpJ09c`-_Q0ZE^3;PO{ux1ylwW88-!GALA(@D{` z#yA(WRiIroAy(l9iP0i(ywx>Tn3^l<3@=B!^}m=GtaqRZSWwfxBE|WxG^`87i9=W< zbo@7Qx~w>#0amDxwKi2Ll|pl3egEUJVk|LOp{TbIX?*Rb)+-&#PHMnD&0{@>*uV<4 z`I?3`w^*Q&n&@#3ANKdR$6GON0<2KUF^p!v%QLuKJ)0C|%k3kw`z@*m68F1kj?;vn z&tzVo)wT)K(j7m_GMVk=Wz~fB}b62(00s$=Qugwvf8qh z##hZ8crI}^VzuXt(y-==6B7Xjzu#uQqikV%Au*%>{o^zt2cS5PL7>gO3Nu>-+5_EF z<(ZOFg8-b*=N#}^(HDz|ft`>wgXXJQD*Vd}h_ewZ+AoMW4J+k6r^TnJ4pCC3^ z2z7HH>G>_~9C(qF11_tr2h#YO)w+n2ytAAyWnVu@^WZB~;%g^8GmsWl36!muIKH~9 z=qEzNDe`qgp-`MTQaoCvhc8jDanNFBIl+v2U^STvU!iutW!l`B*&GS(F820BnLKPm?oajOlP^LXM>#RCX#x<&zCzn;Ii7WWO0fd$W9!bEbBD2 zBg^?J_Vs`1E5KK%#8>S)>y?hLF01VyNa-u>x#){3gynoK`}!H$27HCOzP3wy;MI<= zE~~^>&Gx`+h_ewZj%5*Xy0SHYWX>!W{Kay zKz6z^zqk6K5mV%XyP=njD}EC@IyiZ)n1bej-Gif;C6aVw_jHlGA$nX3p2o z5gYOq>gH>^v|r!kat4Ouh|K@6h`TQ%W}ShefwAc^5i9x!5pjwf$d)RVxp}i# z@E6Nz`v*QsTR;v#*YMWv2*u16fqc!DZZ1vCwD_R#?f3ET|3Omp4}6s-U_sq{{dYpv z3|+TzF)gbR@bmr5>$6Jg*Y1U4?VwU$@dt>r5vydsl`}b@)6lYHI=fKxE2cYek10QvAz-2v?coA`meL)82 zjLcHuUp_{hjaVf)VD<%v!*gPdmh)4b17D_js0W~K4kT^6U|*nwYOXK(gp&g**IbU%x_LqRxW4`PwdZ*5{mjby+d~5fP`!SH=C- z=ZUist0V_9rJKu2-C0YVU*a722Kk5_fZDz{93v*~%fRs0MZJE)FFHBkvP$*^*@B+2 zmh&s@>o?g~Xgm7)Wye>SRg$mSsfoGT41H0Bu$*6KU%y4$K)yoVIxFchcc@U(>K==+>`V12ZhA?IZd&{r1QKsG9?3Ce3RWrjKY! zZ_NHT`1k)d=j)#c2CPt*HR(Q9GY8=3H=TTSStU8p4OBgg@$n*&MPgq=$D6}~&# z0l#o^z-8Tl4^YIwPFS|+{sYrKc-E=oPXpT_zCeL z2cT{aBt2iCeQfwUCkI?sN&T9m`{vLsVEGpbE59esMy$9O0U}P3uete3dAdAjmJ9vz zhbFA&@W#@xW@iu4)!d;e>+7?g{+09fr!*V+3YFw*r{euIQD^?gR zjQ&iVjaVi9+M44u|I&n2map@4<4^uU0*m$ZpPa8hqxBgH?Gb8(%Al^WW_gZlMfPQJRVk};)g3WcH3g3iVAmJ`f4j=d*M@D}or{k#7Vb!=uHtVro&8*Osuxeb)ne$lpFe_BT zTCZPqF68U-SZ`)lsDzdCRpsKiZjZH>S)nUnRk`4-$7AhdR;YxvUT5iC7`57C#UUu_ zSEz)wzK_+p*l3N%dJD5cC9L(bg^LWr4=i2lvF>D6sD!odtIoKmbspI{0>;IZC~S)meE_Elxj%SMlNKeIwtz=}K8(i+0XF&^u^Y4xbH zpc2-#rcFpEWfcZzZ1PxVnH9P+*6?SLkM&q*m=!8vt=F&QtHR)n%^vH0m=!8vU2k*1 z+>0XYIN0Mn*2gj{RKmKHuL=W6j`vva$E;8Z>rxIVoa;QnV;yEzsDyRd*YL2n^H}f8 ztWXK-QodGZ%Cmt-nV;yfK9X6XD`Q=(7N^7R4{qga0 zvqB}TbzgM`y`1K;-pH&_Ijhd#jM!t{!K}~~u+D4TxqOSqiou|$2cQzxdcNumcsSi- z9b#7KN?0{+wtt4l`b1`h%2{U*Y1~k8tH*kPS)nUo)fhx@rpG$Ktk4y(s+>SR%VQm3 zR;Yxv-uE`UfIiXCakj^bqYl&qPzh^&U!ZfM^Bj-$Ud#%Wv(7J+aDpsw+`(hrM(c;K zPzh_jeqAUoD%|w#T#xlyW`#;v>p8G+@FqaNJk}z!LM5#A`n58v(ayTmW1V1D zsD!odYqc~}3jb(;%RJV{Gb?l@tQ!5VmwT*bW`#;v>-||YvRI-2^^P9v%*B9Dq*enX%g!~_)hpMJyr~>Lj4Mru-5BWVy%Qf5pySx^&!j( zT_J1m-nTn@tPf^ZsDyQ?Y$@~=-^F8n1hYaVthRowRl{F+dX>j|e`bYBSnGYol&=bX z#dq~sAH%Fr3G0%t!Lv1r?&h(MGAmTVT5k`KuL`#UzPrbI6|+JmtXyZ&NzU0~^$@Kj zVBEuFeITtH^($1u%Jo2bx;RlQ&xbwm-sZ7BfLWmuR?b(Iiw=7|R{U)66)It+=kCxL zXu3d>dNU@=b2w}Z7TZ16htZnB3SALvb&*Ez&jmf|>hoA1%B)ZcE0-;*2*Q`G9Ukk0 zm=!8vtslp#49$u9J=VR<3YD;O{i-rHXQ#(H#;i~YtM#=O@H{M`nAqj9UQcsTwxAML zZfhT%4c|Qw?euzR+N?7Y<3#{Qg zVE1^e=!%4|Pzh^&AG;WS015F7daR4g3YDvJF`M1to0l? zQYqI;w1%)T?y=s3R*xKjN?0>P);2P=8g^|8O-|pf4Lxs`){MhI~-&p^S#*3tS=LY`$E$gMU zG+3dMvb7ehg9Af*3VVAoULs`N(_=lCRt{FEgmoQQ3A51GJ2X5Lk~E6$<*}Z}tk4y) z4h)Tq$3 z@K`UQm4g*3Va+V449zlMd6HSDNYNhn6-{7;y8Er9_e{~ghgykwebx=ci-=RST}~*B z4Ce=ESD>()wVZYznnsJ5oPeC=XZ=t@{Miq}Dp6@2g&Dq&sEzV7QE z%?|`_5R^Sulqax4C9D~p;dw+8MfYLWIZ~9ZU(*Cus9O&ty_aIA&TZ?7rhb2)L(J>5 zo@_o5MRAIHAUmPaLs$oyA(|*Ptn`+NIEAm7QN3pZSWj*JdOM;+zCuN1 ztEzJ^BEpI0IahBYMZSKTCa^+L$0Fcw(tT`Cd5)gYJzLVa?;reJU|ye9(m$}Kknbz> zj_y)uzDAbQ=0FS&X@W{}U>#Wdb`K2h2v1vKPc7>fW`#;vHyPH!;l4fj!btyUA>SYF zNT%wsp3baL3F`*1UOl|M&^J6ZHaa{=s|gl0kM&GiGjaebW*yo!Iy^p-51j>z9_ty* z3YD;~g|EXS{X?NaiRZA#x|La>5>`{T^1b`|cN7M8an721y-n>wSQUvk&3l-?DZSC|IHB z(?ZZk>NBBD!m=t1fj3)yD6>AC6!pOGXaXzL^)+#wr3Fen@bh8J>$6Jgtc=R&5dx*K zoR4B(|48%TE7bKhX`Q8gp8FAwuP&?PI9BsnjE^MFMywZ-w}?1JowY7MwxfS^w6Jqv zuzzUSEFSE|a@u-eJ*^oz0F|^|))MQ$kP2$_X#V{z>sn@oN?76R@c5Vt>|;Du`mga7 zDq+o5Rfc8}O%y$rSszb|I_u9gAqSvtJ&?41&D7``d0JK@@Y_F*d41Mnd4q9^vX!Z- z4AnLymec0zUuZ6Tg}T0)nP!Q`FZKKESC3XFiZe4f`5ZW&z@9#tbKohoev~Vy%~!A| z-4|q3M!pgN1^j%XlLKG`8}tO45HVgbvqiwyOzo(~tuoA(pG2IEST`|S3{A+|Q{Wu9 zgclAdmh-^Hzl%c#4w)U<4Kv{hEjvF9}(*MZF~W58`aZ z>Ktz+X4NcPPi?~5Ze{B~o3O5^Y+Z`P2^;qJe-<%gzx7I*P`03M*}}7LTLtPY?XvaX z#A)|iU<4Ml-OASg5N9J+N!jW+(8_)J`%i1ait&$#7%vHPAbUWs&U$(i)~#Tqi1Ct; zRkO}|MibU{tFxZjgmp!A)@ArH!iFtZFD7QxS#P5Wbr#gEv(RVMD*i9(tY;Iat+T)g zENHvcSYM2cwrOPcH0-cs0piNUy#x3B3i1iUP{c^7yOk|6Dk?=l&Q_kYZWi-171R$ zc30I7J^(R_C&F!(lmJ&c6PQ=Ay_$WxnbS)P$ceb9{AKZ*RU$I$v`-m&h9u z%lRty_3tznzCzu;x1{}9ofET@X2l9G@bwjruP&=(9DG*g&I9!?{z~F(#Cjro6Q?O# zI=3D$B$o3voCE)$xyS*isBEd+CBdMYy6V+V4!EqF>mNx~XXO@EZj)e0Ea&Uk*MHJn z_zHE)R?_nYn$J5%*?O(xtILY9#fUgnzUp;sTh2GIum2)8_zIQys@cwhudjD}by+d) z2@$98wWlyXG(hL$3cJmsL0>EWlL|cgXMf1`wCOd&rL6`uZi0OlO^14MJ14@Z*hEeSvT?) z;}m5pv#8f5d@FG_V%;iW%`WO4#8}REat>hsgdBiMazMLmz1_(Hm(@9r&D4{ajcy>Q zvow!k-a(v=Se?F%#H<pj~fV$(}lD1uXz*^9$w@?qf%gF(k zRWg>WOXrq3<|nb7?`L08kHS}|>ub{M4ZG$Sa4*&BN`LR$S{}Z>$MMx=b^5as=d0%U z*Y^@qj_OEi1<7f)y%Z?LwPSsR;{4OrId;(}*ui6Usl-_7Sb3zs(nbHVJcVhG4)>u~t>u6`1<rTOk(2mp#@Vng>>>gf%xgUzjZGbQjxw!PklTZp4Rr z3hh^@-4}p8X}@;nfKsv&16aRGoKVXOHn2MVS#`5%UbDbHwqvf@Csy{}*NC$bt8-31 zF>80ZN;xpC(ywVbzsWfOKKKfCb0FzHR&(4Ne*14YIpDHNav(Fd zJA_(aO??2fTZB0_oLihdP^z@}Wb(ICZR^&ZgNI5)8F{8Te$<>kG8& zfp0rG07h5{mGlv5=IeKe(`7xES)q1cKy9wXZNi+X1XQ}UqwjjG?){4CEfZ;2JMhp^ zrTCu5ihg(G02FOlL>kskDqHoX!oPmsV|DZOOx|3aA_saFDy50CPV40dx50|z05ESC zux9A-Yg)V6A9}2A*|PO(nj9e3TT1*LL(7jmRyPOkB=EJfs&#WY& z>_TWi?fQP=vAQ`xZ<$Dy1A4>Yqn~=L=MWw0EU4WV#3|~5%*fz)o|e@JyU((17yRyE zh1#-}rtOl+59}J!0Ht;QoO}hRWySb0utFuQJ=H_yg+j45A87y8vGnWGGeDU2*Q7Xx zL7NqfP}`qHe{tbeb)O<5$G#vcgZWLUDYEh*OlU zY<_RA*28Qpr_ER5GOSQZzGm|yy?y<(utNNXe}Bt*3T*?vLM5zS`H}vG*+6u`;byyztxq zo_Q@RasbSi0Fok3QMNS4I{bk+8?mDPLc}Rp*G!d5Gn0iQ<;mJXvv9zdKYFYsS~q-! zQoU+|G;upCi)Sw>CBdIO)(N5mD^$YTIW?;_L@)ZY$BH}!D|9POh&Y9>n)}$lc&zs( zHn2h^zOE{(HMOI^daOleh1&LOntbh?DQO)VMt}2I@5QW8iLaW++<*62vA;nMKt-%K zEf#0WRB?stDkPG6{KI2Kr3hB2gf&+wEtHBnRlz?!R@ebnDEc%IG#);2{i@l1{g=mj zBe8)M+C>v0RoPPPANaS&S|B#CLTx)M4Qto+{iDMpy*p^};9=VWw*89hOu-7Ztfub5 z%oc$@czV|D;K26L-qGs{__{#@jCLBOHG>OSPzmeOy}mA^6$FXSrM0Z0b}Lxdkb-qJ zP2hyOk@Vgkoz%{DmkaqfI6IlwvcgxeN{$URSu@1hi1ku7C5}20*IAn5;ImCwuUKMD zUcYLNgU>Z##rZfyoMK;)T_{f$lrpxf39Bt%?ZVpKgmw8Ez7+YYc#TO<6IRJ}ahlgc ztZu@34w983PLr>N-2=OJo5g~^*nQSIV#e{+ZSA*E-zFYEpfl9Pd~dL>B~GZ%O0!MG zcm;5aKzkrl7#!Z;;&alsE$0UI742(aL2Y}WoqS#I`0BD!bJ0YM*Mz>(GgoN*>;B$> zvGBunEvL-^;~}G2Uy;K}Sv9XW+{m78;v7I97I>kCkre(WEnD^bmh0R*2Yw#oiW4&YHPs>_QZ^!vcV)7Mg>nu}`;iW~Gv5(ajA6miN$k!7H%+{|itCIuu zFVJE;VC~sIuoKP(d*HpZP0M+Ef<${@Elscx+K#@S==kcgZX#YpjF*Htu!elaY5Cs4 z@XlJ!li64Id~7@VdXnR-%PPs&)$ny}cw{8Jt&!zCm3=k)e)`Fw?da<%j;}5&+6IUi zFA4LtYyZ&j?%ttYSR`~1)?"s":""); diff --git a/linux-0.11-lab/cur/Source-Insight/Linux-0.11.WK3 b/linux-0.11-lab/cur/Source-Insight/Linux-0.11.WK3 new file mode 100644 index 0000000000000000000000000000000000000000..83b8a91bcf60093c431c8bf17f52b9cdc811bb72 GIT binary patch literal 8851 zcmeHNU1%It6u!xtnA*~$Xr-XiX~mKsXS%y>wTU7LiNV&UjmC=9Tf^+^Bs*kwCd^Nh zNHH%WJ_tr%)Hh!O;vWHv7Hr6aFTp&hPb#}85ivdp6{-&+7{4=fr9)zRgG?RtEm05vc5+GbvNT<&w* z<)&fz<8oTbWMos#@iZT>eMi&fW0q?S7d(FA>iI1m%3F5%YvsY`|HEoNyN$6Q?_z8j zAd%4K;Pc=~;B{aMXuCT&9q`+s8XUhs|4A%n*B-{cM$aO64&&dwkFhJ@jbwRl^3?Km zayiyBIT>pRb>;k8ag5E`*snUC;Tg6id1}to+5Q)J^Yg0wVwZg8tkTL`n$b+l?Pr4n z+AT_J%zQ#ZlkJAniukVJ1g#6y4t$bcjC zR@lD;z7DSPI9l z-cPH|97$!<=~O12KG5C4PrI~*ecZQn-eYTiQMWu->|IM@@469JO4uQ;cxHB*jel7R zGKNXmd_?5F!nrOm=@hwPAP4;ea4$FuyaS!yq{$Cq9_UB^ESTPoX$*}&4Yq)fp*Mk_ z1;~Fl_%(q1Q?y@!PUHUsXkOAg!EXZO^E~(xPy;*;(D=*frym7SgEcjRqc`?f|0pqO z>HFYZ9|p|=^H^)=juQI^CF24x473B^!a)Og8vGD^JPM}Lu>iaU&|AJolR&Z|G5Ji# z^`8k`M+-Z7&bGba;Od&ExQei9scdCfhR4IlrcGEJsBF=vj_5;%si(#8wl#(;S-x^% zu_>yy2^NFLIIp7qmTvOcgRi)Uh4H~EjibfUuQ-zCjqDxRenDuPpV^!!WcB6ZRv#w1$ zi!SR);i-4io;=$&DeQ)sS2W~YkieA0QR2>wm)JZ&`F2F$==&vh@tHE)hc+cS$@Y*~ z{itJD-pEeT+~#=`gJX{2=}n?1UVNj8XtHR+emL)32q%0B{eQ9m=Svid9Z=Bb7QMLj7RH!n^7ZcDFEkY#pO2pW3A8 L(|=0vYl{BA4o;%1 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/Image b/linux-0.11-lab/cur/linux/Image new file mode 100644 index 0000000000000000000000000000000000000000..9869a43badb77318312737429c1972e920db1e68 GIT binary patch literal 131556 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 Cri=yv literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/Image.bkp b/linux-0.11-lab/cur/linux/Image.bkp new file mode 100644 index 0000000000000000000000000000000000000000..9869a43badb77318312737429c1972e920db1e68 GIT binary patch literal 131556 zcmeFae|(h1wLkuB*d+@t?kbCJb(O^~8tRHs(>7?3)uwHvX&V)lDk`>=qNUbq7PJ>b zaG~a54bAo1-d1f3(t52wTB}wAT1@~6{;E;iO8rqIwRG2|)ay@FG@tkToOzyoHUzNu z`}yPhdEJe&&oeV;&YU@O=FFLyGxK!!RIk|FZFQ~aS!4Moy*+90jbFSPv#hRbHm%sa zqGv__1J>YL%UV-q-EUQO`>UQ9d)a7&yDjU9vBj--;U)OQ*xy={?R}^E1j{`mY6qW) ztch9oS6jcE=Ii#2eIn9rMOO6WkG1j-Ta#Dq^i8#_%z=}0hayL?D*Jx8b#!+e&;47g ziXTp1z0>!qWhJ@-7XPm4`Q>0Z^WibiU(++yN?+<*KY7(u-;pDKWZAvFFOTy5`La>1 z)yMQq+T5ETm9InO2qaBDVdPX_X8&%Vb>ztFt&D$g#bvYR{zLirpGS3>zbYb zNjm2F;(xWAe(Gtt18%f(`~Ju}spF5i1Fp9^{&bhMWQ*my2erL4aQ0WunYkYIMXjG0 z%Ruq*)7HK|;!bP(+3PK9%;@HCUohvwi@%Y$?25};zy7Vn@{&xkW_ zWutA@MzasFtb0117`M90x+nZZ#6Hw-tsZIJv;WhFW zob>h@tNo2%6bs!6&=vL_n(~Ex2OR6mpKsmy)Yduqnbw^zZJnJz)w*-Pt%;&lw6?C~ z@12RQ6XaR5b(K8*CR}C0J`J1Dpc8_Sgnh3;;DSI>v|gEWOI7A=G^_p%R^xenk0sA* zdrYhqjE)%PyjPwT4pcZ$;Xs806%PDA$${<&$QDy?U`0NB*F@|0J}ZAV;_}PzGhFI1 zJ?Yh~>J*r05v%p}aH418ewNjq-BcAmtS3*yt#I?{mi7E!Z+K~-!D<}?fb44{k+!~b zf%W_=>pREQ%n%bYXw9|z=dQI@bWZI-3=B}qva9X0{Mo+XDVevzzC(V6==EXWxO@3z zp_RW12Pzz>aG=703I{42sBoadfeHsI9H?-h!hs40DjcYApu&L)2Pzz>aG=703I{42 zsBoadfeHsI9H?-h!hs40DjcYApu&L)2Pzz>aG=703I{42sBoadfeHsI9H?-h!hs40 zDjcYApu&L)2Pzz>aG=703I{42sBoadfeHsI9H?-h!hs40DjcYApu&L)2Pzz>aG=70 z3I{42sBoadfeHsI9H?-h!hs40DjcYApu&L)2mYVpz(p4So3}qM*qry{Z&+6G#Nvl% zT>Q<8zrFC{#Dy2Pe*Mx*GncfE9%HqfdfK5Q!z(=(g3gN~Pkuz5Wz7t)svdv#S7ttm z`#slKQ44piA2Yb~jobR<68CD{FxnUJgDceuz6JSK%eN5U(w6nm&M)IW(CXI)tq*QH z3U`WHSME5bCw$muTpT(EAnmw1bSLi)wQv(RFAA0CEX(R_J)D8cUxfn|4pcZ$;Xs80 z6%PC_<-lMV73a4)_`J5~e<>F#)vj=$!hs40DjcYA;C}}PvfCovRjBF{?RH}_lwFhz zS(lH@;k6jy?>n1U2T!Q7x(D%>-4Iz%@IyX2`00Sp%}B=Zp)!1$?;AcBOMArQsyxHrv@x7xlIc+)qh41Y_6{Fo(?FsTkK%S_OvF@dNf}9G- zsR|kIzIsoP4S;M=$V7L?o*+*EgaZmW^fy!geoTdUyEkb#{O6K$WlG*W=qnCLuoN0K|p?hyft(0K|s@hyx(u03?P1 zNB|(|03?S2NCKe70jL=UpoSQlKy9)U6x;q}er$tftzP<`&&qCSUVn!Dx3kVXJ^RXQ z*=>oP-8+4wthqTWd|%J%P^`+@34V>T)+P?Bvh4NUTv4;1wf|!GzVQom1_!ctV6=Rq zXZ38LT*aS>)@y@Pgq6dRG5gh ziZ83@;U_mvisP$2Bk56pX7YUE)) zJcE5mV*=92!hHL_-~fehLux&gM?KPO*h;`v<5eO_l%KS&*axslQ$9f1kQPx=qXFfC zSE9%}#t3>Q<cwc2f7|_o4I(hR@n`G7_q4hlNF$vwoROS>Whmc%iV*(^4 zl#K~tW5UZuBdSx;*SVd2YWgbCYpzdZeEKK;qp z76JC3T0z!1e<$Fin6|N9PPaG(6+HpPXSSD!-E*6}#9k3bA#+Jk0&1hH_@LkpFI%Fd zlH&XiNtz*ZxxNc2ZFtWoht$#AFi`~-BoBMu*YF*6on`7e!&BE0z-L3wH|^uIocdje zIH_M<7sMe-vBEQDT51ug|0+64w>zS!@LpbB*oI0Ky8-OTaN#*t6LO65V~yxoNUO_n zB&^G|r$9U;BxDMxH3h6>0S$2xJp7`g_y@HI#6eZ;$^(!)-r4oQ2*u{>Uv4e!X?=mE z8ccD6shgNyKiGo)N?{Bn5sGj!QRMu~tS3Y&4)z3@l|dU!Y2+x4cQjIbTH9m9k{j0n zMY3w(ai2A1U8btoe8Vb6K(zLemlyAB0bP>5+J(%u&p}n^0%(k+yttA;#mMu2mEhby zN%vWxF##GQJ3&_AN2oaniR6GhymXlx%C$EG8E_r1skttOSG9wRDeJDBXd-7IOmn=#~ z$h+{>XM;l^IZ95kjR`_Fr}Y`(=i7=WNhU=J^;cD_b%EmhNKz26D;HsiS=y5s(>^CTekYMhER*Yz+&UAs*?4>q8J4T$ITk^fY7<{Wi6Cr0 z<^bXwf%sTN6~{9Ijm`*2`{J+%fXzU3Hxc{$UO-VO@%M_9&;(4qz%|HjLudFP1dQW* z7{Ub!f8qV?hWL6!V$_xjrNDe}BD%3L8IDklQH)i%6F)-nVTeWr1BD+V2H7HpI#7S2 zC)nA-f+BWQNcSY5$nzQWk~NE(`4j_0rUGaJsuq5yzhj-0I-y@`Deua@qG|!9xl|f+ zLn}u5=On{uxX6g`iqE2=*$q)6_jML%-w$ii@zsCtH;^@tF=*E(H20Kh{9J4TNw{Vz>uV%P- zsX%a`K_S7MHEErIm*(b)eOjZ^vvXZ7ki(O0c@+0IaWgcI zk5#NO(0xH(a*^qFq z3N5?EKb_oS+qG2{50XfOUFb%G2J*+eOOc49x~frh*djH630bX48L`0Y5Ujwby2mdo zp88Iq_q~9F<{yGV(|CN%NpA?+5%kC)`_t|dp#!8Xr?uUFWuO7D&gY~kfGl8|YH~6friNU8G*PPwwO&rs6b>MR5!x-2-Sc}o7-_1p$ zXFe&*V6fG)Jyp;kvCgyoP!6$dZ}swHmXGb-5}BKe$jp+KE7ia`>)8pZ@f)FmxX{sr zUXNEwcp6X6r;{9KHlU`6tI76+a#Z|yiR3uD#!E0q@EV!EAPDouZiPykg)z7pvzXG% zyq1{03rusb8L-#eo3$*KaVAq{BSlyh9?`?Xlet;Rq{vfXGi1hw|%o4wnvawf^_T=Sv#V=Y_R)22fHxWD3XYwDIJZ-q-%}joQ$)77v zmXUPL0Fz%~@)w6o&NF!%lV=Q<{2G(rWb!%X$x8VSChuhO{^dr1CR?--{In644VOE} zPLv}_39ySIv;M4u1!4vgsRpn#Y_fbX3%{lj8*Ot_=lHms>R zlQqE4+DnF^VTb{?4-BwZv&56X{80a~fNR(Hy@^=3r?E`zLBS3>eGdI#>=qfEVLS<|pguyv)otY>Hc9lP|$L z<1otCS&LuHVm>OCQ8#c~#vGBs9R<{s+bF7-66JQv;j~kLvz&&A#>%Dy7WLw?>^`1q z>=Pq}o&;iRF5~2WDr2J>o9-Pr2*|jk!bN8eVU4g8qIMUIK~|$t?4!=6s?z&RE(MtQ zORDi6wbz|C*WR!9(MZSGj!&H}spO55OWsW`d6!&~U2@TY;1C|clV!wgurPupZ%nkg zUMvQNq$B>_!yw9UqSj^(suqb({Zc#gMxm`=9JeW)lr?u|5m6z;4zCUG9k4U0grc9P&yayNk11zU5>!B&N$6vA#40eN8A^ z1&;N#HxR9x#`OdzlpuMvZ{v z`?EbY(!0T!CXGeoG~*3_?d97JG%;i0k-FC)1geatZOCE@#t>wb8v*I^dA^A7OXDG` zB7jw3I>wGT3y?K*GCRIx-AaUW{w@e?6lwx%?d*tAEcZ}UqjT+(Wjh8*@v&`>sQk5G z0$eC`tPw{Bb0^oP0bFY!TFW6A90GB9IRt|a1nU@}7=b8OKJDv)k*h=9EP#1pFeU8# zQO_=s{?0phjSO^l?;1I>^OjvBs{@Ra_6g1H^KqSK1lMUsZmhO9eilpFhan_X_79;l zunU!p*@a4t973f=4xv&bhft}Jd!X{FGAjGn=GH2z5)1*dG{SW{hSRJ0E3eCXuE35u zgFZk*R78gqk48O1W|stQ&cVqE=2Ry!i|mfw;TRax+8$+o;*nKlCj+MV#yO@0IUwQ* zOTZZGqG>TyG;^qc0*02MvJ|;ODf=R6Hj_pXc_2SJjmL)=Zfh`J?{4pW02Jom(x!@G z`W*|eJT$!O^m&ZG$jaZpiBqKDIpI}o)9i+tbGUiVrFvyS3Oym@x_H=J+mGci#P|>& zvqvwtFqidh&gN^4ydrVA)o^s1bX<9#()IxPCiV_cr-8b@9koE@tn5GLsUCU;hLBqegfo@gnW$>r;+LhvID~XI!zuwceUC2RUr>R) ztXdtaws{Dup*1I|*$rvBgU!PGZ1AtKaF&`Ob0D7+TWPU1D(7f<&0!gZ6d=&74bo0n z<47al8~`E<#2jlv*&UIEDJX<~2a8nAL73}_ znf;PrwU};XLIUvaBgIeXqe|N}p zQqfrRvakAcXs*SLg~REN=Hp7IE^+c+WDSHR%79GqJanvX2t-no^T?d zA00JqRxj#f9n?DvuJr#L*H&zx0e55Jc7vB2TKohjuzV75Gp$WE5 zlt_1j5U7K@qE5P~gFwx_#IlI#p0ac+bN%T~Sq^o_=ME8H5v5UlQpl&d_7divo70Cu zE=A0>vr>sh2bGs>-M9oxm>atkq}#&*hfIe9O4T`g;W^hW#&90E%ckxs`jX1x1zoCY zt=1a!J3odO3zev~(Kmzt6hYxOe=Yj2U*goGBF@DMTB*W-_OwzAIpZcI_J^lC6*POe zs7q94>LGdCLqlUua~07!)w~=CV^-UI5XHQ)*28y29otj$#(8eAzv{EtZ&dS0o z=)lsAEimk)xo#DNblB8@cN89z`WsgYkDQz)@w(i^X`prlWtQqOo9kJ22XW@w`DCt=qrGnFR==69>To^jRh%EF&K0 zmw5jdwzL85j)iXRtEA#_a=7?uKsa8mkd|7Ry2Q)ZgoHJZjloW8`yauz16gN?EZkk! zVP5?sn56jySYxK{Jst6I+}Rfo41=711`}=7-C*lraW+B`D|3`-{4UXcsF@=N5Vu_v z@DZ$fE*;`{J{>L=SVej2nZMf4jbf98;I*nU2p0hS$r%>uA84r}U0<=Q4RKTHwQ{@4 zcZPNffPg+EuCUoheL#vSYl!}?hx5OG7{FyxaW z+rB0aI$GpsOp&5B(0~bVNu<(S(s>`Hq@NeaQVZZa-l>R+YdJmMyUU{;zj78zAXF>*0P&6ys`1DeM`S3Nc zT>JBBNOMFTMqE{KswcwLm$lf0O?nfk1foA+BfwR9$)oTnvmheHWT_YY7ka@1>;<>| z!{{Cx&Dx2vPP@dm8t>MLEG3C>xSkwI4vVwYl6e|-xpz|~ie(S=@e2$oTqYYm>3!|Bz)sQhMAC(1MCOoHepDWXxRQ(dax*c%FX%3@ z;VPF7wS}lY-IZdHL&H68gZ>oC^=%lX~_`W#h}dtS^d2O0efBVmVmE6;O|H61xNV` zJJvnv<-IHNK)#hG0&UPfi;MGG7|qqLC`vG8li{rJsgU*j;r$pnsl;R8)DpdwV>va7p^5^9Z@H<%h(&9l@I|Cc z?`fl#Dm9v;UTRyvR5;p6g%6vidi5Q9I5hbY1xgE%42pp*NSFqxsAca*F8%2u8AET5@G#h}%%rCA8a z{w~Iq0nw@hJpwet07;yu(kPY#ywK0aqi)l%4d&mnLsbs2a81F_xDJhr7hBmOK$z7v zL{WVeDif@M(>_NG)RYUd)jE_-6AH~~fynP2W5)Q6hL&s@9Q<&Q$2HO+VGn)DyV(!1 zt%zM|RXM;K#6+APQydii4DWHCY(z4G3VP;G45Gfq2*%P$`_>QbF2(|(SR_NNE6S#^ z&qX%ReYqr?MXnCiiUH;2)_D|qB;a2ibqRoAOobObZFFZ8IEm7NR-Tnibbf}5!W6u? zu0e`M*#|f}Mj$)QqX@HO+dX>DdiAT_30^0xHX0>~#9|sHiBTD2*>dwYY5S9;oTcE& zHJ%*d>a75KJ35%o=R4o5>Bn{0nNp4c-cX23BX4TEf+EY&IecA7OG`r59I|y8;o&F%D9G2Nu`}I-J zb$;2$87<(q?`_6Eq|z;E(x!7Zb=cB(b>8UKU=V;gHENZyQ@Jm`ixomquk9$UE;l4 zs@{1{)*m>xkC&Vz=ezy;FVg4dgXR=KQkY>PiK}EuSO{dj9ZlwciauGMns$=1nnYR+ zIhl`pL6y(fn%*baT6V$K=wSQgE=kQ!(m}fq%6Pk%%y>y=%S*b^k_5ocU8 zvY<55Q4>}7kAjXR(dszJu81AsXm-bE7juJy@0~4k_-40IN+mJ>IpF4QMUY!%qd4&5 zNHlgo(F7QO{q*wh9jHbJdkR^Ckk>1)F*>4mM-`$JSchxm8j_)3j#bm@KuHlylV`(t zhue!2gM&P6Tz(H?qZR(m=m|l%!-U#Tl^r(Z32~8nZ)G_6T2KK}Vg#m)8aeCjmJD$z zhh&u8<+*!Fl^B`=t+F|5fJD zji2|S4~CZX(q+Pabd3c)(z$jg;NG~+?%#P1`(hk(i^L!th89*8XRR9WRdE3$v5*co zd6u{uBMtbGAc|f*$+kqms;a^y7>vOVT>|(K?AQ+rzExPZa?-Ja3nam-faE+NA*ses z37+HAI8kCDNv5C3bZSO9_cnu3MH>uA%^v{ys6)86Hy@qI8Xz1iT#e3)NQ}xd zc*2;!OoMV-93Y&n$tYvmp$0t$tSz6IsTDAg5M_>R+YAqv(+2VuD_FuS%c z{KEA?BsE{!R6jEYfkrPc7O~>TVz4BXr=rw} zjh=7<;U*7bnhJx;h=fx?a`tv&du2edL8B^%0tHN6$TP$^OiGErGPqTPHmI?j@#rxH ztjTUdzeA1$PI^H7S{O4|B8mP>kS8*^coC9QqO{rkF{d$3!6tO<1H^C*C1yut8VfmE zz^OPjCF3x^HL?|>Y{gvJ^0}c7?y;r(_^BbEG30X}GY-S&YQ!a(kYECKKAF&jQ?TFP zjwTw?0Q6%{fd*{Hg{=kqIKp1LkXoOHB`4k7ho^!0IJx)oOTxWcEDk~X^P%PKl=KFl zcrpylv5h%?tvTvEtwrpvl1J7}&No0kqfq1WW$ZsrN@EV^<8qQLMph#lxI+^u zmZd={4vPc>aQ4w^fvnA94d$#facmIakO`-ud29{`=TZ4%kPsSLtBg3SK~gqBt1_n< zw;{sCujPLLrB5C~27)-XC&xfsd_4YF!q-JEP4AEg5`s=WJO~L-buT)}-e^C&^Nn9* zH$=reU?r2i`O(_XNeM#Q>rGvtR?%w@LLbYPv`PuaFe>iI;c<@tBTzwsC}QYZw`E3P z5RkLWapGME(di-!Aujo!>OP&!QZ3o_76}0+fxQ(oGRUDcEA!q4@cb9>qxl;E=k3Wg z2y+;f9-V8CVVHEt20g~092(6`#w5a9LThEbIgWt+gW4tN-Kk}H*p>jFv@Fdo_00~P zgxa>6{C`JJcDUnoi1>ohXxO+63I?nPU?g4ocnWVRr6QSc)BQp@3}Ur%j>*oR5>bSU zO&ZC-pBk3Fl+Y(U@hYxJ79Hux7mVVfQL%q^%LgLa#EoD{FrhxMtRq8Hoa!T9ram;( z5$UFtsP;%oZBAJbK*O2(U59i}LN1MST049TO=rBK4~RLTF3x5VT;#)0^JRH==hIbk zoCb-xE-p5BuwfotRh*zX(H_)PwKinsMUfrM_()xmD}8aU^u=YR?}y$|0~~C0{dZMt zz=%d#ML<|yC9`^(Yfpd*jOD3?6wXE#m_mUC+}^;ZOfljgkaUd0fx_FMAb zW)EMAFd@-nXtZ(%E(tgbCq{K+jr9Z_HI7M~9xGuSthtUG^)>h>mxYXI`@J_u8s~v} zWM)HqPZ^RRIsU_3zL9v!5vv$L`*NINr-A9AfmCrHI5~(Ya;q4rs{E7iZrO^U7{<(C z6EQj@>RBZ&HWD)eb<3~DOu1yG##Yn%>4RdDO44u*i8O7r=Ab63JaL|=jp(DQJa^F0 zr`$y+L0|V`nKmR|5U?5P$rRcs0|v>9DS0uF_Y$Urv;|O9f<@t(k|Mdxk}?8}Q{A*d z68Oh4D>cZHUjk^5b{+r|ugBF9f$|L)P{AOog(Ubjf%mAXm9(`V&O=3E(xRM?Up1Y zmC<-5Gol;Q$I*C++Q57%#MRT4Q!t6@=zJ~|zjV49vLFz9e51SHAjQ81#Q=a&i*6$O zKZe*io*dC*#Cs6%YNzT-v#%g}ZZ2Il7b|Qd@ty=GZct+ZvSA#S5OUw}||V;gs{c!Vkb5){vrW00az;J4kyXfHpVGOs&L zSoyD%`7F9rd6})I%-E@%nHk9lwx5h#pe}Bj1;^N_HJxoPuux_ptm2nQ z2;06`j|_FC;~S2pIEv<7e6C$Zd`7zB%o$})w%U*u_};0*aO2F~67a+rhk#>AfEIQ# zORMjo{T1(!`(Mh6{xS17Me}5cW4)Mt%y;@lb|(M_)QnET^zaAJM?E_N7)tknx{z)= zw(Ujqh3Hr~t8%lja1wZ^4WX+c*DoSdk>9h_^v=^0p0m4{fO6vP$BGV*k+LEcDsPUU z7*`cJCdDvUh;tqjo7T2PAEu~3K?P}1K;OB1CGwLGcC^DoZ?r3SvY)={x~`_WpX+Sw z_p&yPr}Tk?v<1|vzhaV$Su5V>?;?RDZ*CuNTfkdPyv*=|GrR2h+Dj79pUeKJusE!o z-gjNWdYybg!PL} z-1zA2eL3LUBpV;__L@P;JOl(Xj?;*ib_HkH5gS6e7{_h*R$p22EPj1xZD(T?V7G8+ zCAwoFI||44&`#hLQQ;sKYv{`deww>IO2=5R5tuAL^b0xh8>N|G2`6II$zmcQQVgM} z9lO8?#oaDX%jK_jSow1*UF%9WH8&8(Icb*N@2?Mm@d$#EQ%>FIaTuNSl$c+X-zKg3 z$uu2}JUa@Q0|KIgtj9=h8iHbI1Ff;Rl#E^YWv9?mw*z5xhQcO2dpx!g=+AAo*@L-s zN~8=?M9)+w3L7-w4UDHjxrD}~E>G8C@n>{5R;LD?+o-U7?`utFcT}~05xq|xrLHhs zxLopa{*NuxIT8>B6Z7?BWzPVe?v1Aw;zob*QxXe;YUXga%`>=%M?d90b~#Fx;$GbQ4NvqcqxJ|AI|w zFS9jZC?UE=8AGj(JyRqA*I-6+3I{0?M)vQ}u z?*g6pm=490#!yZliZbNwK+d*J<%HNKG!*-2yJT)@UQ9&@g5y(bOW zz>rU*jeH`%#L{G58~pkjDkk2-S};IlZ;-v`aO{~$+o^%y@Gm#H+5K#yT?W=!1>8zO z27=l>G%t@&?6!HYJ+aih+kukR`2W_tAj!%oH$84L*LmRHb}c`mXZd8i&L%IT$)gz z$0=yflQl10n$_vc*V2qsgnGadsHIS|dH)t>SI{PAP1Y!Yb2SruD3G;|yF7ZWEdV*l zgV!hFfw7)GXAVNtV%s?$V_fdeE1@8X#-@pFOz$IW-Zt_a2?Cf@$b(N<;KO#svpbSc1j&FlZtGl?;dV5mxGLkvGhu^VI(%hiy<0%Q*S!@gPVh-Y~jaJk(Y7dm8z5U(5>IZ5WlRkBj_bCth~Ss2Q);A2T+TK1DEuh=*bB!FM-!%f2{ z!s?=$#VJ7w8AKtr6r!+w1BNM}WkKWHZb9_N8GR$7NtX@IeHu;{vd=4_E1}z+lta}0 z!chMrqqTP7WiMb62;>IqK`x%)Ybo1@Ft7+qp^;s8rzhlBBNwRCsfx2ebyj{9_ef#v zVjhlsFzk6SmCM{XaZR}sgH2B#GXi&5YmzEez|&mDv5J#9)`cLM)Vr7*NK2yTW+QqE zYkt#utP~%tbkGYa&W0dI z;_sE%iC`_0Zik};-^~z@nA5R#MWiSS!!_05Jo4baUZ-_fiO!ZPB1DUhM99ouIHIzF zn|kvBnR~`cn1wB7Xt@XUpaioP%@S;ua0W^sT~V; zF4^x%xz&COP%P>dbz}_rU9r=I!yJS@zMO+#mx@z-DUY{`m#4}=h$+Od<@cXIZ23RS z&jBm`rGg(rKl~R8K5I7x@44c&7meQh{7PDKZ zdyodn>DM>^G5u?fgDA>H3Ge*3-H$E6^e5D%E5ljSUZAB=UNOW>3Jx!uR`MD-6JQuM z*%QM&47-@6k_=X&~05>6UxfU`4 zLCvO^OR3bX3elIA?F0h%rDgczD;Pm7S5>^wgp@6a-<2(H4S|weWad49v*=P5Z64(0 zE!Gj_W@|-v!+Pk4kX)GqtHX5hs5x(>E11}h8wngC*{lE%HHxu!9x?rgyTvl-QP}`i z#AgX~1H$g|GUOXZCsJV^aQm5WX4}Sw%wm80_6sS$w%46NJ!nYxP(wHR8pn|HbD$b+5VYN=tI9>?n>yh<96gCDS9sH=- zN=XPY$=5%n_ew4tlGcGUq*Ko$SnyP6+qQ8400s9) zgIg5gc=2TZ0+u5p*v98a1Lw6*HIYJhn7;GebRXs+GTZ9lDw2Jor&&5>j?{pOT`R; zI+slWTw+gu28TS^#BwlmNK;fO{d>lLhNUW(xF#dX@S|GS&2v^b%#gNw?LXNs!2!-m zwUPM~;5tiO(wI!s&l1gx%XY8JZm3lsdimTBy%)f7TJ-q^+(!ixWxNr!T`+rP$Pzl~a^a<(t?3!Ri$3A7B72NT$y;-=ID?31WkwQ|<&& zlw#aKbH$JGlwLGjr$p#Aj#$LRO-B-wXh2sicvRNdW^~5E7=Ux6W6%z;i$`09l^}s- zqL5(WKQzGkpjyqC<%#KlXNX{UjxkT^b)mjAW`}|Sud&jrGt}so64gB__W~a}8X=U_ zPy$sAsU4DD&G`(7MByNkm%#{;Sjh{rHJKsXlZ0*xhO;x!(pViuR@P1iNF5J3!^Mc_ z43r2YfC$;qP}I}tW-?MU02!gT5gn25pZ5S1X*J_GP4%X4uZ+ESxP$_)W#E-70Oj15P%uZ(1T6@ zMFEJ5Ryb>J3?gi@acUBElRTA1%GY#9{)jR~adA)})qKQqi6mRvtrGQt4lp_j%kKSA3u zB$Q0OzmRS=h!-~Gz|JU#bxLbPY2tBe=5oqKvwoS>1s18x;btn!a#wiuvJAiR!VdI9 zhjA{)44xNs`I@Yzo%GEvl+N*m%L+5_9`8#-=Lv7{I;-?L+j-rXzL1=Q8^}fSBo#kI z4@HT7h#ljE%KI?#faBbKhVZ9~vJf)A@J-X!%2OgDf~%Y^Ucko=t(}O5{{zXwlrI3J zo>_2&@cZeohH6CSPF*}!J|x4HBQ%qP@@N+&SI8L1fEt zaJUs{I5?gFEaBy-N38>iF!kq1hZ^Wj^H9;tnM6C8MN<|ac$~TL(u7zMo+*+nOD8av zV~c;~(y|NgbINds%5jUF4Z-a!OK}lHkl#@%Z0HgP(xa^zw{S|kmuegAzm|LdF4HLO z%3KeuEA4a3VTrB0p}q$zN4m3G4w&X>(_`k7+kg4~IEF75m!YleoP@fv1X6SokPvm& znd?)zh#a=Ven7hz6WKTfPT{CaO3Y$1D!`z3A9gmjvpL-q`TR{DG-BE|=p3?;*c%Y* zD4!U1mEe9oSojO10@*}?yoR2RvdyR|j&q`L0LziRaF@d3e9&EmaNeo|YaOu^*3zwp$o{f~5 zOzC%1obE3bpyNC8%X=g4+L3n3mOJ{5KXMobJ4>SiFLM z3GcFzVc-^*f#R#3;Zkmtt8?4~5bGw&ysvKsc4?j8I2k-!3u)8R0@_DVA>?}sDs{h5 z8`3B<4!Z(;y@R(n3sDhiTk+_V)J1OUiOe7^TuMF9DX5r`yqG=OEkuJgtxs}FAReS% zhNGM5pdw<4D_{d03(=XN#Lyc>!l$+URU}fEJY+z;j`9?TziWQ;d{J0Y8I2EP5pGXJ zVe>>%`qFbyZyslga=4AkaQg?rX@irqRjYfJH18w&t8O8o*9Fc0O(;0q$?n8|-<9iF&N zx@U~6BB&^i^xjGqt^ZL<7IeVoE%$wvdj`s7_d6Yh?)_9ZUD+A|IU{HF?idYx4H}Sx zLkQ9*6B{LP9AT%ElUzsYiD9yj{=l>362Do1t%ESs(Q1{=vj)U)IBT)d&Rd}v5Kalx z8+15nNCS6-{RsQ47@(voWw}noawKzs@eQ2USeXOG;*nWot>XZ-Oc|V#rSkgDx+^C|uV^5l?j`*VJc&?{o1Yy({pBG_1i(m>< z1Hz_k)aWkg3J^03E(%)#k7%5xYJ~qF7}|so8JgcCLth1ndtoT>d}Lpa`HeE;x+Posh4u(; zUPT87F^A&>8AVP~5dD-;R5n9uMBw4p8sqvSsEPT*S3jg317D}C3Piq#T~xgwlnw;Y zdU9HX9E=I5V6qdAmbc04#V>sEAbawtmtQMkaTTD~)hF~@|9V4Bl zPTT$@AXEG*M8ijxRQ9cAuuh9yY-UtBsLsNt)o5wNb~69` zRmqXC8p)wfq9QYmyek9(1#w~>l2$9XosyzPae5S0OBCt;>s%fTYze(~HBqJw{*0C) z9@U^V(4dbJkBwShUPLRUWZLUsp|Ckifj`?N=bu1G3f}DxGG*_cTxlM(K{H@%O396* zDG=FA$5DvRPo(prLG{Dc35RQDAfL$L3lpOV5P zMtIinwi(4o9{_J#-V3K;pfn3`fx-*ghN)p1kS(QtO*PUCtfF{=ISoslN1%jLThzbi zN>;>;F%UHv0?CsU(pX7&*^YIB`f-P}@y;V;0>rwwSmN!U-JAREMlJfbHWS|C8lPD<|v^%tR{qFC#$!=># zH}X>=P}U3^wR_@vsXz<&#lbs{FfB53K!Af$OAc4=k-vDw76jBfEoOpLF`mpqdN0qqMcE^32$}Si@jCIuU zy&=0}{DR+SH#D0ap;{Z&`SBs%S(rI)H4!MCW!yNS-qijl?=SwjY(7T@kW@dO3BvwN znCg1Nj9qxNV|x#Cw4s&$R+y8rhDPG6<%EFTM()rcl5+`YaHlnTeh(d%vivVxW;oQk zVD_PB13$`TM<^H{-DAVyR1AJ}oBz)GBz+Uerq>vz2Ti{L=UO&TJ zGQ``sdnSy;E|d{h(?eRG>zY{nEhurc&=b(%4&Y9E$fF zCA=kTM({?!3wID$1Td5ZS1Z~s?xjwMDs6kV9wJ|HC;zav&RT_RFlQ{XVz%}-L`Smt zqNG>TLnYu70%lac9%?y%9H3EfJb!?`P%vAnO6T;CKy=}AfGnJZA0~P(02qx#6q7C; zgl&Xw1`XebEex#2@ZhvI2~#V-7^6=Kg-CiIAkoET^hV!J0$oa*Aw@*>NJcaKO)go4 zUtcrNGUHzo{}Mozu)_9I)mY7X91y~!RiMyG5p#e8@6EUlqC}|djDbXINnGVoyDLCv zyej|58q{M%ZbS*ttk_>rDnrD@Vj1)b07hiQL&(2Eh6lhVF?>&jm?0spCPA8)Z`=+B zmM{sm_aY045nU}Gl470!E~BtOMG`06lRV+xhkByke$hAX&4|xpi4RcJQ^_FBT<`iXBE-k-%kYav-9P^8S5{p8yRaoqy2t8t7ZPw9a4})R^o80yVzvMS#=* z-iGiO4#0CM57%2r=YxG0B7+rFxXl0(hu{U0-&q8tA3?;{n%MOk`x=TuEc1I8Z`-k? z7Xft^;<3&!SV${Q7Y+zXIkNIG5ug86%TQ4n`=qGXFq_l5Tv}S1+@=L;F1*8@3>yMq z4Pfd~+*hQ^_=Rk0&6duGL-Kz{5Su{6BcQsL96iAU0ENH++7^3AES*Fgw zX#>fr?4dX3x}3nS!C>K2sH(|>YGTyucQBM4e%SGnaQzjKj`rch%9L?*JKXq?lPUO= z&2`Cp@G{gv&q>Dj0X`mHwt{z>8dDiwQ z3eNGk?Al;quo`qC$cAMwi1U&gmnM%Sy~yn!ji;0IIpjoZyoodv$%oZikGy=_Xuvd7 ztcK_^+N6TkMC-OvU{vc%E`~8~G<3PcA>s7%^g~oUD7IG7@qy3)9*|FdD}{f>kGohJ zj?Pe^SbExI8%hjZEeppJ>!twgFcaXYbDdLB69?oh9wBmHA@~N}y^O0# zV4rS=t3E&*ggTcd>i~h*AhJnU1ds8`Zb!=OuU#AgA(nn9LPOd>kQ|TNmTC zUthnLyDr(S*dD+G)0L&k9=`NX1r;L}egcbW~jIvuMp0$o*>)ggvYU~BDd^ZrwUFk74iU*ul#=c1;~*q=Eq{IQ;Y*SX$z4po*X$*wuRbU>OSaJH#Wy7h zrB@87onb!H;l|O9K%7_y<=wC!dMZ|{6zlw4UfJ`XRx1U5^H<5ld z^{}d}FFags6mFHwUW?NaX4huJta_x}_&Wq?EG(zSA3<*B4LceO`Dfzzwm$=mCfSk= zG&F}PfC)U%v;*eFKzL#Am>?9^w=r0zcf{i@v!2RGVafpc)4h9%w4bX}O z3gnnS0v~~S$7MukqNR%%t*aFqQ`gb}H%HWE5`v|#df6YVN7r{^ViLoNti((L3{b>< zx`GeFhzhAOLEOR#uDQ4myPymaM2LU|&m)|XBA3Uo^CDlxLu5>sWMjAml?QfD!|l6e ztFxS$6RS?e;Oe;eAxy*Sv6uCfrZ{}KT={@K1b(bx8?W|Kwtj(Z<)Hxb|u#hNc{J6{>7|*L>yhky^OaBchNQAc2{~i7tTuuYb z&9%^Fpwt2kNrB!b*td8TqH%c_n;<6p$Y>=$mIKx!-f0>e@^=)b%CcnY;r<50{aeeq z|6Z%q4&2ArB4sWN{@1XZ;we6_#Wb*|oPB;2NRKV9FJe8Gl+>X8Q@9s*$vSS*+cTD8 z`5*tx-85Km;1WfRPj0zRO>4VLLYdJ(Ah)H!3YKJZ^K=GnwF?DJs^U{e2W1ZKNh(13J0L!Jn^M{PJ{r|rE z0*dpUG}JF?H{s%wpt@fRMb51Ftm1HUK)ZqaxS!jhX36HUw^_p)BADy`+AR*-L9blo6MPnrB ztP;tkDJ8D}3vn}?hZjN&{3Ud;ZJOT0C_vE54=8en(Zb!rmdd?d+hp+1~_k;sY)4px= zo^8SrX|gvBKd`jFH_t`(1j5Z~^AONo0DK$b%!sP+vXz>v(MAXT0XkvB{J5V1QOP+B&)Laz@yo@OMvQOvgJ*L>z8>94V>}r8+V@2PYS)I)ym7 zDQH-d9snkQ8Ir~jS+*yQm{jpIEKT;%lX&BPgKP-l$VqBbTS8miYISK=O7plxHG#G@8G`LiqR7RD!eJbnYT?LH36u}Zvaf~hQXf|ct zrKcbjE@6g{w418?hI*^V-nZw>B_Pm3R0`o`ONj3yWn&*#54U5;3AAzjm9m+EP@OKm z{}HoRd}^4gLQ;H>cAQ)Vp^$C$F>RYzzm4k2(?A6y!V@d*OMf;BPrUGLboQ)xFgED; zBR$Fi%U&rSnK#E{o9y|LYxMA#mV!ncSUfZT88(x`CZNf3vy*_mRSOZ1!f zJ8iy9v9fFGFjGSqm)#Vplnr*@h3TD>`(EV6JNK)pqLWO2{y{Iztw*6Z#&+{1N9P-! zClNWird*1O<7(KfCsz>JI1xq@mp>v5$k!J#0eo1u(P#SSE_X>bEosI`-!8&OUXrKc zo(TlP(=pn{jyRZoh3D9@0STV+KBmTrpOJDiR3rp#HaAKaexraQZTGDO^WfAnSh#_) zYRkmY0+AstAkbgrN}tmL;bmXa(F2uAqfoaKevLRm;$Y$PrX+S*yjnJxYvC-E7y6Tg zmQ9S08EDgBfL+C16nCU`3#ek2S6IMSP+-i%cDaibhB^#sZsPG~6uk4bM%smqs1g?K zoQ3+$f`sv65M#&QQYKx;F&oTKmHL{F77p_=5HG{NBHo1`SKwUGp#1gg-G1h=(Ll#xVHb@_ zD_O$xKo9=MAok^tFecWhx0BmLsAUDsKk(T!ynET>b}4Uj(<(RfyAXs2{X|SIJgJLF zW!eUnFTN*L7t0mYI{iiYoiM@}C*&>nfqoI)2Q-zp5V@lJS@6sY{ar${wuKdh);;7T zI!|m!=Mmfy@XGBx*t#&yIq_j>LIIgXgwldjP4T6^@Pn~K`+{V7`(9*`zA##|(9_7s zJsA5MZy}z|?Lw62gcBG_$!pU^a6`=A?HAKlxXzFQfl!bS)3FjLlhJW>tk}?w#pQap z-WfXJ3E@*gxT26Viqh_roXTKrKvmH&ok?;J{#J9_XtX!2RTT*kpLNcE=SQSFH<#@7izfjG7jszUg+tB7I_I1dN0G> z09S_{Wm}S$w{)f@#lL$G5Q@A!sJhb`?7)?;a~B0o1j__Y67FcZky%7ua+;+E3lI

6)D{%45iSNSq&64CS|7De&pK!a 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 GefK}=>%zGJ literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/images/rootimage-0.11 b/linux-0.11-lab/images/rootimage-0.11 new file mode 100644 index 0000000000000000000000000000000000000000..5dcfde910af720ab2faed7aefecb4736e7d14b41 GIT binary patch literal 10485760 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

1&;9-W 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%0DB!^{;Z>p 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�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

qoZm**h$qW!eBK1pjru{ zP>sPMw%@$zd-OIBa9w$;=^Uoh$D2OTr{Hg6HZ)%8Y5F8y=^Z@(u7At(fvxca6K7W6 zqP*YqiACuhGzmw?LB)b$%6)Z;E5U$ zKxem66|dj(5}GwQg6c9tDaLAnP@lv0{G9y%hw4%IdpoMZHWMM~` zBN#1hWVI-7Q8k;jYPM6o(VE2b!4-`k;2x;6@T+g-ijJy5xO@J3MSW{yhfxqB6vWJn zCQ;u*A^Oy};o`0wZ~`LxlV}!y>Ago>@6&v^T&~QpoVto7KtfO2*NO#jteB@`L6hGA z!R|Lmk1Of&>v9cTu7S%n@PDudXq=_rqvLVHBwmt6;2DEwBAx_1*WkGpPYRx!@Z5qY z8xL6D((QQe#B(p6`|)hRBjc&U^DrI-&l7ld}=WRUy zh37*&0X(1J>A_{aP_J zNg(y3ryDK`o059t%(PiIeS7wtqWe}Cmy}BV4)f+O$adsV)QKY1JbV)X6Ma+hP1D>{ z@Jqn&4KO_$AWqPJyI(XO&-mjbYgep%COsW)o*&i5W*+{?=K(t8`-My8zXmhAX-%@yBiS>k)A_+~vWzV%1McTF#U zJ+;@*lkjUBy_&zZ@BDzjC4cw>eG~3^HfBD)flayJrteRmoVX6(tp9#G<)`@WoZ9@x z+xVtk^Th+!1@PaU{@9hKPk)lQX!!oEF|fBj<*po3@w4CFw{IR@bt<(zvG;ewCan9< zDHSg!LhK;jJ3Tgj3$hrh69ROXleairwOzoIGl?w>tMG<6?qlkxp5?+`%9&* z7n1k>`@!IiTfTEG>?=LvZoA>*`ak?)|ApVqfZhH=?@w>M|KsD2*3KG{3VYT+Y+ua! z-cOEqKYctOl1Qn3*?kM=6cyarwC&}8`!?)tSAY3b#wRli-+KC|U)~J+&R33i&K>{n z|Iu~Leaj%tlv1`HnMd`84*Vk3_e=X4{w>Ge`^UQ)#*!9f>Dko({_jOc?!4=ck#pkE zyQF||*=%R^)?Ye*60W=z_PkH}cI4gP(DTVY+n<)gey{xHf91FR?x%4-`rS3R!`|@4 zo|HT8s%p$Hoi?)o_TJph58w5dM-NRnVK}l9_StuMP8Qx-^~{f!?u}gqd&0@X*AyL0 z{`2t957pfRdtRJlYjKtP-wyq#uIWD5yQYpjdjFQ;fBxmtieaU&dzuojc%b3LPg9zH z^k6yc?YA%f?)rP0eo*}5Pv2il_Ou(1e7EH7SJZn#NgH9`@?Xow%76Jd=aarax+`Iy ze)BKx-*Wf&OZ?AM#c{dc&GkLmz~_W74%Fsz2O&VcspH?{znUahPU6 zqXQCrNDZ?Dkq9aU4TIKucDq5!ns1Xl-`@?T&R>|Nw|xx{gsFG7os4Q7qvf8zwLRww4e*FelLgmJi)rg-!X;mhaR%}=Y#j+J82`;F?P1vx$ zB%yMHT(P@uAUs;*3uDr6ceEt1G{!MoXYCGq(T|n51qTZrpJ`2X1-<*Xv z{ru+H5mSA{bZ^9z5-~jr6GZaiAl)m3O=Umv_Fidwgto%rE@?WCNyidj07JPQ-!qz- z>|gcJg*Su!?3&y3OZW{AdntPv;z`~S1hpafF3e#wl_mH`7-6PTLGpOvS9T`?;}E_f zkOQ7N_Fa*xOmKtCmU|-6d%+XcZdA+Gm~2nM?uYGKqMTQ;6`?h_GWUs%agpB zj0&>u;<`d}ag8fO`cwuf@G!xXDB#hPm{nHHH9>U~ShSd6rHl0^g}JuMUL?3?y#P&r+{+@wQF48ZM0&2@vTZeGoOsb|BTiqG9aObnteFjU}Zvgv>z+R-s zh=Swlwpt=k-b^YO&Nt@=O5qv&9W2^?q(6jRG{w~`qFX@ubEc%$qwVhR;6O%{itVD+>k6T1y8`NOOG_$B)~_y^ zL8On|TnSERc6M3Wx^;Koy}Wct%v0yWz*pv zGMA-9ypOTBMG&yEn`5$X{^*KN)f{xeQl(`|ks1!H>IGm+4D zv8TPE9ZjR_Hm6vFbeprcrrVqoeJ`6zgG;MiLskTyfd$8h#O;IJ$N4@O=+U12IO);O zz#Dhq4br2{u3w=?o8swuv}--2N1I$O)}u{n7)SJn7@$X+oy`={z#ym`P~oKXyHM^C zinN#IEnl>3={?IX>(cI50xoI$%lS-)rc2v{wxFLkv(|%;t&ZM)b1gp9c`%2f+GZ0q zjWA`yL_bZJb{4Ee6lop+#6f@5bZL_Z{m3I(D*M<1YO&^efoH5sTMwY=(k3hA;LYS5 zu<@3@q#8uirOg2}UD^Z~6x-nqUD~xCvXGO|rJc*CLo{95QJ%SbDFSq9lbfdRd5|vc zY#x0k3=R>cOPk_iGjFt6 z$ZOj0av-5DlXrIBDokCEb~Dbh44S(+i;Af-xa(zm5_ zX`YlVEs~ZEt?2K*CI+EIXVvUH_173CNT7{*IiNmn4O1Q@BU5>d8s(luNURQ5!aPP7E& zF&uR>0;$@N(;XV7vJ5eE0@HI0leW>1Lp;CX_E0CA6SS!%&K=P{Ii)?1m58>x1gdT;^Hsnd} zgel3iCI#aKSBZkb_2=5+ZDUbIWl2RsrK@Q50|^_TZn|{s zhRqVYCX`fEfIG`;f|||_6JMI@tJ{d>u~L_X)3(04JiL{<47~kyv+-_4XlOEm2?m(5 zb(8t$psVa=UIi1auvJdO+jv2#%SAACA0?x**_Rum_{gyon!4zt)J^A)LG@9_Dre?f zGVek<2eUo$A<|YE5T!1SLhRyj2Pl!GcaDV@)*K-CY~KRgEv~E&R3Y#~bjb!}o! z4vsxf{vs6Z)!YWnRpdfu^%*i5PWcuXy&Zi?&C2tXxN^Y&ZRh*QczfUpVmX3eDFCz9 z0j(tOU;C1dD$i4~n*JVhN03!<@v&dP3Fz!E#|G}2h9(etITfmHX@Lhf0t|Eat-`%ssY=?}ZRMi&m`D>~xZHG*SJ3ud?;pl!4p27^6>rT1H=){LEo$EOjDnhinQ?}aEuzJs@ z*lJ${DbOg83qly3>U&#Edsc!tDY4!IJUZBFw;*KLN0#6^rXT%OE)P_WQr(VJ36L1r zmAV83Wlljd8`X^MzWjf9&s}YMq#1NKJZ;yXlPVREnO#_Y1h1gMA#C1A<}t$TA@dMnt|Ie!W|x__koglbt2uppi(&Jd@5P&b ze)CGr6oLRs&FN-;3P&NLe6JhqNB7jJIh|VgZVpfJC_OcHZyr9u2a)Mlh4Gsy2tkEa z4@?+H5byP3e4gq#tJFbQ@+53chtZ?4J zak>YFJ*%IwNysEYpK2yy548NCT9#9` zKckQ}xA5#H2kk|MNPC6N6s^AvQ_zOWSgJ7!GM1~5n^cd+X$p+?-m%Y?u(^jz>0l?4S6#UR$u`Rie=^mU=UoMjPbkqDZt|kZ9M= zo>Rd?xKl*}7o!%m*)_hO2tySr6|D}O3ewBydp-_U7Tm5WS}zw>Y?Vq&?yF$Kx}u8J zWm3_`it@G6x}vSp8hL#QUTd-8L%v_GbV-#Z8(k&q?klNale7VQJIJygs|t24E?KR4 z%j=7gz`70mamgi>WTmgPxukf#unLppDw8XOHw?lil~$Bfgvuh9TtSAdB}EmKnyXC0 zCKK2C^83qNNU7ujY+2bVm0{P2w61);jNL2v0Jzo2m_Cwg12&jcV7;@oq|#NwX}LB~ zob_;9TZA&X%E~LH^(9+e*l$uH>=nhxMXsRC%1iOCEZ;)!l1(K9KnZ1DCao_gi%U4I z)%;wWOV(11qWd>U_pftFGX1Xxq%P?`q`kSwg`G9h`cgcwt}lia-y(bgo>YSGYJ6AY zyAI!V_-@2^BfeYl-HLA+zGe8XrliQS-X)b6uiY%IMjq?<*-QrbRKie+Zz;Z|_?8e9 z2o9B7YrdMZRf->8CKD~OT_ng6%SUm(h%rT)1XyJ~LZ^BjjxM_NP_4v>gb&cCb zd3&wZR$M{~vl-@XLmIIB42NvqMk|Oi?z!f-Q84yI-a@Y(t)1z<7&~s4jp=#Udv;Uel;l@>!6v*~X+0zc!7#LIjD(HuOM=z_(zVe*+>nr&)!pp9 z_YqLyvo9kd+hf0id(GKDk@@kTz>N9MV?V&xd){h${4sL)()QSPd~Z!pduA0PR#z=m z2sack+*YV}y<%G`x zU1PfjIYTU;?64%AC_iNfXU1nj1NGh=**{?7Jtd@mMDF9X z#LJIU(F_HBB)dLUjXQ=|M*!4@l{b2B9x8EB`&I<*21;nR4l=A3Vx55T%X*XU#{Loj z{y8{_q+={E&T!nA7YB7>#yq>vI!0+dNF2hadM+r(AZVJmCT2|x${tRkTb6OxGVVa% zXuU1)9Au7&o=2C1bfQKnDXoUyJW{kyD!P8%_0q<5(nk8?$8gX-3DU{&9`Vg{YzJe$ z^!U)`23OjSn0j-@ZlKLU{y^Q^>*VvL$zX8dj;e$Zan1TYcR0H0W9B0jdB5`h!Mdxz zTGj|$c1=T=`mYZokH;hv`O~j~)Vl-&Je89W)%W#LIr*JmABOb*Qu0VxOI|_pEE(xn z>?1pEG@9^fr%x0rTOxl)z) z)f>eXN{hBwwEb9L4A_r_Hb!@!5!CNiLxf9j+~RzG*bReOKgmVsLe|=Hg0NPey#DJio;hFZ~Oteu|pX%5Vag5F&Qv{wmB` zsN(*4QT{V3w&x*(B+s=SGzv^Mx@PX52Kq(`CH<2+ajn-tct_haM3;ZR2Te<^DtFG1&Zr{XO#{E%5DslAAnIop0GoI0!YDp^Zxs(!F_*!us5uiaW4pC+Mi{pd`we;F_?X`exWn&JjOTOoH6WwjH?G z`mhLVl1F;Z&2SC%oJ+RV?L+cpGs7m&gbDLS9=u3ez-wUT$e=`-JeX{?57HP11yn*S zQ-3ZyH~?-HXIOAO+VxB})L2Znjj^_a$9>uJ+mzU-2qr^+X!)J+2r2_u05LsNF{2#T zK*tAyKPPysWco2oRCKL4MprKMvOtrk@18MHX$l~WIuJ4nc)dJq&hIy!svk8k^tRMu zfC_8M2s(NKpJVnKT7-(2?h%f@*j+)n;-CD@!^{skA0gu1XFe3#^S1P&ZeG28nuw; zv7ZhEnV3bS0j-nvOv3!H$W&uuO#h3erCu zv8bG+MUcB*2YD-=$#|~8a~+-(JhSlJjAuTcC3r}lN)kqbjU;9gOe9aFAITQQkKiVW zE6E;dHef_3@gw=yFb>In9*Pqq{UgkAJre#%21j4|yAU>^UMNQkQX!d|k>!U%(n;<@ z-X>}TG@a*NUne`ucNJB*aOfa`#bv{U)a)Wz8bU#|R$2aFNkaL0I!aMlf^E4Q5)zAt zNsjecc2WwEzu|}kIo*z>6uA^3%mXFsZ%&YwZrGfFgA*m|ixW1KB8`o*3p;I>Vo@rB zB$QVoX2SHu%A{dZei;^}6rW@3?$;$C-C}t)d2A{#N~n<6Qf>*;*Oud4MPhLh0$?kv zlrZBKY-t@P32^WR5Y%L}R4}`|a&=J!LpmTQK;|H^;mul+`qPL&#)u{0L$>&# zu4_7paf~6<=VSSzk0fqBAIlegBr)^X5l5;Op}m>U(WKKgx@`6geb3Bx8&PVDpSdTL zq@RV0Y%;$@!SMsdg$V;dSmorsP2jQ++gUxpB11O&Zi`WNkt0NpEP+&F)LjIO>LUPr z*^4ivvslyihzX;eh^p)&mZ!Rp;w8O(>_Se>S(Y@8E6W9lfoFljLeiMS$b9U1N~-1n zy_p*aS)*>&vN1Uc4K-;aWv_g0IF%pXN5=3z$}Mmg?_jj*5qwb*s5nrq3+W`8?g-p~ zprXva<-;$C@~K>{zN(Q}7+Li?jSuf5K+3)osoCqW^diCLrR!k(GUoD&20>)1v9bpv zkv|zBA`2nyp)_YBdVLKv)REMZIIiAIZW1|B2ViuWFB1D@j%^8$KB2u7PK1`KXZl&v z+ux>S(ooTQ2;@sk#VY;L*C_ghVYbJA4FkA`@&&|9=ag-AKV-KwIRLl1 zFWuwxdf1MJ>-kIY33%g&WNKY-@m{cL!W0eNFA2`k2spJ?#A&u`RYVdOu32D<*Kbls zEC=w4&3k~P)z}~T5;|L$Md`ukVZ=|3w9#&c&sO^}$St^{ay{&dZ#p9Kd^4$4wLYTw zu7h2#DK{0>gkX6q%Kke7(P!9x0dAyxG?^hI9_48mrEN2auS&*nS{+qwSu9q&V(;5Q z!~wP~hy<=aL1}M6C_V77NZ=<#V5KY9+Z$_pWD(jHr?HORh+ClWti{Z*9?wg7+VPyh zgFQs_^Hz6)@A4$d2NReqJ77|mK~LO>=P=FiR(HX76Z>{uVS9Wn`*tZKo@LK&C@{K{ zJ-f%-9$&_u-O7lk*%QZL9?f9S-gMjJH?n81GGaG8gTLUs8-5P6YEvxUx!JbIcM&vF zanRTA_rM)}#m4c9y=L|UAQraA{s+aXF;lE3G5ZOXBBYNuMdSrYe5IRLBCwhpr;MPG zAcY~^w&piK2@Cx~H+bg)v^~`2=4RR+-wgwR7(xD_G3vrTn)@&8Gc+29D0S4dDsQ+T z2E1Pwi2+aKO>grR8a=u5LfPm@i%|bT-s#U!NY|C#BQdr^#=NqtA_4xw0jwf`{C?Rr z5uauem5`NjOR?DwrE$X(0=x|bP?%YfOfF52 zb5ie<$Jq|WIjPTyIKi>R2^X0CYjS104~7MApSuU~_FtmTJ{`~nKBPJ$-ah#m<#~D! zTdCK?B|BzXq+oPvjjkS#^hYr?5w#9d^W!I~GM&q(%L67;w*Ed*D&K7y(Y75LEsCLM z9@PxXB3W+XEWf51?%)8IYKBY^wVxV9Q|#rSCONixClM8*a@jDTr!ti@*y?7%N{yxw zxUo8cn*w(bxR+3Wg1%Wf0UOWZzm4+ig&AE|8Y#o8z-L+!^b;?IN0(p$dI942o{vX* z;xcK>ANDi=lXqZINZ*Vbw#8@6sgAQ9Z1gs^?IqgRK$JfO_FcyHE)#Axw!n|i6Y_py z!DrU_&Ab+*bo}O5@dmKrz@50(8eFlV4P?U=-%=TModET49M@X^047Q6wf#~{ag-G{ zNIsTsNT`%om+|SSgbfu5#pM-z;B{-nXJf?%K0~{R=7AM5v3w05nu z=!RvHR7G0FC7a4umq_y}?oU_?20f-x8xrm-$GO+_MfYJ&hk0emmXg(QS`Xn3=Pb=H zDi$EDXOLExm9H(vK{9DM0ueVxa~3UeNDim?AeH5a zzI^5K`IJn~{6z~XetzBp$&sJ8C=VfTUzUShol6!iMQ*|=dzlmN^Oi1zceZ0*Ho>uU zp3|{>*|H_emU0S97LePr{5ugBnK+zz$VVQ~BBc8XA_4IJzqM&d!|~a`gdwV_ZfCtD z3Ef9@UYI#$15cl+Q?PCzso8?iZ1^Z|fBoq*;tAU6Y)ghcQy${Wwi|#b>KLdB0RR6G z9qz+Il{9E$VF3l^>e4uG)Bdf3pTh@i%a3_x{?(wgW^E`zG6c^J0|4 z;J#}T2Tco`4ToSHy>O3ZIg zI=(!|!tC|Q@ekyfGO!L;+KsVy3mt02dd{8}cjydoU9~{sF*LO?7(n`^a0kFKG z;NT!lYl-`PNBnPdV5~V?je=~OskDP3pi4>qlGLKm0liT*XT!B07`BbAX_6kAasiu8 zYMMMpr(RePYNd4ViR({VSvXnw9TMp;IFtjS8xCVBis-*o+`Uxp)Z^*b?VUJBm81{tu#-*U&=4pC@q8dZRv(h zQZ}TQbLY-Y5Dz{#^FP_=4wDkEpNSe3@my#&IG%B45_IK-ZwyzM!WEWqg;kwz$1JQKWmD(J!?YHrvSWx_MsWiZ zKnxqmgrYK@Baet2t-tbUql7v$c^224CcF6_uVv6lUGaM54HK0|JRYt;;Qw)X?8TtY zA!z<(SV=Ob!78qLU+7#e__%bAQ7E$Rh5m7D^ZsqhlgOf=>vhXc=z2F{UZwm=t0$7{ zDQ|`50!9egtS#o@2r{GRJz%CVCo63c#By}*DCqPYPN^SjMW`0@2)w2Jl&JEy^1hbh zZ&P4LX5PaY|F824>?jEQv;4rx-9&1eGzR z{smYy;2m2Z#v5}6qHZjl!wvZ+Qbd&pg;Cbq10=G+gdV!_2D($P74D$T@FQJ-q%)6a z))by`=Q>D!p>(A4VMyK1Fo8~LVpU3Aeb~YT5kNP8ddUU_6Hw}2+T-YCg^^IFOEApv$YKLHET$Fpfy`;g`48zvZ)f z3~x?Vg=kAc?IeZrZI-1JKUi;0m+> z=c5(Xl?(+*C=){l)!zZrCaC@n&`On|?tsqnNT!jD^3>dEsGRUIOxJ^?0L@o&R3P>A z_43-aNmSo8ov$Jhu5ybP^JE!0S-ee?PP%;rw+Q@fNOVN{{OBD0N%lgg~P8Y_;FxI3C6Es-M$Ngnb8_RN2#4 z-~7Vt4%bjn-yYh&1}!|0)OnEkXrz_QX(^7Ef<~aRb~@|;r5`yT=cCEF;;c3J2ok@; z(~(6WYG5eNmwb*F@<<)GB~T|AN5R)9A1Xy2ki~Aq;?b9fxZW*sM%#8LJbm-}lsa;n z(`MT~iX7$}mAWNx@ZAOFl37X}WvV(o5V&zcL~-h4G7_uDc@9tog4eJZ5j{62+G^*) zK!N8C2(2>Y^@ag)MpK+Qh%;1=6Eh$O`Xcg~Mr^vG~u4<@8=qi(3%6r&|=r}VENJ7|G29;rKk0CplV3drA z4rdJ~1OhSoshl45M8*Mxf!xzpdlkqtBKit{r99&TkbZ_4r3NDRWrOzn>(;`V91z8J z(C(YxAzB%+yuB-JkE}x8;H)HPV|T0r)wWnXuSS`5H~rfPzo#|-o%kkTT1b8Ym?y#f z&mKLUZ}MHaNTj_{`$oq(qvadz_I2j8h5hCGx^U!o6#3O7{C)T?!Sf)VSCJpN>2Z&0 z`S;=Lf_p-gUjX4LTv?Rca+oDA_d`Q)9gsqpV}f*GM3_y%f{57?TtsGv-Gl=^YF-~^ zAw#v;*mk>%+EuhEnldyS?VYs)YlSN*k8^XXzol}^t3C?nv(|vQ-KGd9Mg(gAb2n6< z^q#xkR`+lOKiK(N@NA>9t+LlJ&^Vt2MoSseqa1Ied~Vpbm@;$p2k_TX0Hnvh*J+@T zo9d%?1Qd1}07}^D39bPB!bupWRUMCeTkV2K1#cPTo}js3Gsqoui{b`HlDk$2LGIPu zK0*Ig?of&$IFqq591o>^hxXZ`4EbzT^S1W|RMD z&EFtWN`PAr1Db&3XlqGJqI{T?C}*%U^|orN=@`B1oo?5CfjQf*YUbrR5>Yl z%5goZ;obw}Ah}~+G1Tw67e>zkdP9$0&oksBNFz2hK?=ckOJt~o|qvpp}491~! zZsp1`Dt`rDX&C5tGy_c3s|yJywJVNR=#}?78pzS_c!NK6tKdgmG98YgVaFS{wisuG zBE`Q}WJ*J#Yq;=D4q*?kaHiRUYlv`85Kf?kl50`T0ct6#bJ+~Kg8w zZ%OB-loPy;H)3uTF+H5vD=S&%{K}U4F@PjRDQxU7LT&K77^@@=%V7*%r6=m#Lnh$2IsF!ef)* zK!oNYVaL2a*1Dy4*p+>>t?jpe%^HyHm4o*R@xbgeO;EU*a1jqS3nQ=8<9dtI0FMQ| zDfM`0Qhl4s)hY&|zR!N`G9RM)Sf-p)c2P5X571kZCyCfTYrNtk7wl5ImB;LGy)mjb zbrf;bem!=G&O#;k6~3T4Y7N|T(-{LRu8JPo-Y_^?RmU4i4qzIi7}p7+BynKT00gqF zZad!IhfGlHmoKJFw|7$=TfIlDVaAObH&arei2DtwYo#U;0h16=1VLED5QIdhu-eFs zg$v~)x(QAB834FQwCzMB)bTmzn6GmCCUdU5anLV3ya(1&b=qp5_=5W8Mp*t?E@HIr z&%!NI3NAwmG!LYSs${U$lAuZ>fR0+Vj^?*2&nS3mL5)t6##~D}BNry9SbXp-SYMxL zk;Eio|1e6fuoft1^K)WUP^N)8&M5Cj57f+3Q+ zi;55J#m{Hq+rN&@TmsH7Xuux&hTFWEuWEMshTCW^3~C`RTOuA|o|-ic!B}y9J`20B z7PS1qb2k=r`3=+`g&hlGYft-Ly11+X8HU;4_8QiXbbIPo2g+x*6{SJz%!nSjf$21i z){^+TFeAP$8^AjC8>F%HpN5gXj#~vk+9?la7Jb0a;$8aSX=(fS!PycU_rczx5a4i$ z-TMD3n+xIj`~g^F;vfR}W2?)ELxzJ0;E$CMgKR5t$mkFPm}J@^1hC5Z`~lcy;@AOr zX2LMfDdjn(xwPYf{x88IE0%~~hSyBI@ZTR$`1G^Wq{MYMBo^P0xK%loE4c7H_za_l(4u;K|KMOe@y*3|5JSsN&cSh1ZzDDUK&q$8KL5G!5@m9FNi+ zdEG!eulq@K^pDsS2U7=3b;oVB?fCi~^@(W69gccce)7_*$a>J|2^xF*NqxaMZ_Zn` z?LR;QrQXct82&)(0)3s3=lIQR1wnX{mk;>}<12hxb?nSdckH%pUjTcH<7wfa=o*7; z!7h+@*T;q(yMyE4i`52-@g!Cf-g8@Rj~q0^W!kRtJV{!9J7&Nu{{Qt9{~w0wIpk-` z$GO4+Y>dK_hkDWLq#o{1;?eE&J+0ZJ!!1WV%W_G&7vDI1x8OS+-+DaFcuwPqP9xgv zLjEW5q#@lZJhKs3_a}EUH$=g36lSXyCZM_JYWB%dapRF^E}oy`!4G)cA|(<^jHZcL zl>Kv>)WII--4ZWV#o`^iZN$MZL5_kOXe!5kYF@mWwreF2Gk6y}UNZdLLE&8#{@VWV zc23_uTu zg}{E2yl1W3jNYd1+k(U<74@`na?Xmf3CjT2;(j-K&WhkoY!zvmg44A$!SfnkJzSmD zMJ16?5_MKL8Nbld3#SDC!R5nEnBY7Cp7^qa@xfnlbcR(sGEsIt2Wa5{alsuTeXu}t;`Adn%CXx7Xb?kbb)mP1 zaGyi&sc%AHj}n5uF$yI}F7xXgA`URfOHycjuS1{)ehb&$wpzTWXni{rAH%CErVLHbMc(d zHZ4#Kb}N5T-qB{*G&TX$PRiA7>?!Q5ad-X!+#z=yBq%78bdX+$=oP9$ z@|}T|pe(oRWg4Sp)S|ot0EzQ1K$*J+?D9al@I?*H3p+bQ&*2!KG%bt0mg-(r*Wk28 zzxz$PyY2A`G^Cz;*Ic!*(+I`j&Uj^l>WouTm93_T_({k_a%o<~C;k-YX{E43EsRqN z+rc29w(&b!sSI=`s<2rtY**d!zKkmr_sKeJDkQeGI!k&S>v{R)Hlr$^Op;G3UCE9H zb?nK<;AcIot~v}>?@^_&&FgNEaYqioC%zLFPo5 za}b2wJ9u7cRj@?;&#Ka|RUWN$Ld7PEBa%cbum9ng9@q z)A%eWkO5I`wO3-|H#gSggGRt&+Dy@0C)O!V&55R(tyA6RnnZJ*W2D<$7i+G;IwBB=z>+m` zZGk}ykCl{DBOb??8)K1$xtWXrYJh;fPS%EtrMYc*`!?0NYKFDbN@wEZNWz3Foo6z@ zfXR0#JpRyZ#WuOp^ny|1+)(bQa;%id#R zsZ~zLU^$U0((IrLvx*RN=_xcby-_`n{9KOHg6;Z4v%}(%Qemb# zQ!xSa=_V0(0_Bn6g9z$_HDEhV1avuSR9o{=5$|fyN*tHp|G{O@X2(J$o+g6-$$^C=p+-ngl-Uiu9qc-4Ii$Ds zqcvR2f~uCI)Ids^YBuB56rPbxid@j?UssTvmD|y**ixoa+A%(%09|L6;QP%+BFt;- zrkuvma!8k>Yd7MnZK!7aSDGNb=;Tebyx7qPB3urGuoZ(bzW=Min`@|$1ZYvbU64tj zNk1=^oUltE#4dlB9n;A^l0S$@T-QcuoOPK?i^ zT@I;qJG6?FdsVS^ysOlBv~l8Jl@4?rjhG-dBzY_q@)Vk^Pqj1_%ez4WC91%6(minm4z>GNz zD#c`tn5OkuBu<8qP9&^|j>1j~Ltwo&uwEm_muN16M(bMfqadCryjDgpOif=RZ48Z~ z3S7@qMubF3?-GSF`5My}%(Ox#*U2&5^YqG_^|ye`rx-#D0yC=lxT7Z`FpFNDj zLpjOwcrG^{VW`!lhX}>mtTq{DEV0eN(zEe+BJm|%gOy3_vupi?Yw->q_iqsu z=rF}`kLsglH)&<9V7~^aL3sb6@8Sr$i% z8?eU`!@yFFyGV<*B+*_Erx#pD*P7~yDtE?Fx4oXCXKKU^+S)lXtrvUi?)eR}Yx4Aj7a)S+3v#zN-ZZ5mGDN=JD{+i{>l9*)S`4^Om&-1qA-thr>8xe2GM>x zSj$GyewLZ);F_NNOfXaQuSn?4hFL0yF>FaIu+T~OYv~cTN-;k7t%xpLvVVWplV6m2 zC(_8Gt?fma+Bqu1QFsm;b86?{H34IX%&!ibJ(fx?S2TBy{aZL7A(B?3YcvoZ!mWWX zAwS9{OqzT6wq0oNQ??;#?qp1}>kcFjNtK>qFPR$m@-bK+_zF_PWJbkwj@If210BwYoveq96OL^! zOO6tgwTsa!O4b|ygDH7rIo)Y)VfQw*j5fs@2n|OS!|wxz)kkBSXf4Y&1X|%W1~@TojL2A;$P(GFkSR$S zNR-e{%5ZDhJaC~q!fTU_J5hXXa}z+#xq1ZRew}YCGBk2ccx> zxrmCNm%*9}l&&B0F5SEXu!o_A(4)mB zwzimRTexRpocB-kZrsj%YIz$r&25Q}f)$?Xh+qAv;JSq-^VNpsM@!4%SIB&T#qk1!mG zDw9>d2T_k_qy}%tpakuYJ$@{O<79V#z(wNM&q52XW40#iECPWXTP0^W?dMHW9;A88KWJbB*0sie=L z0XYAdJZPChx9j#&jokyO_TD)VQzji)nb=*4ZmY10rb||r;}Yg+#QN3-FSd+9&+)fs zSF=`Z^rW|}A<9n3LL$8lrUhkA3qg>lZ9c2|#vuBzGp@G?P*0$33V{akd+fX{omy%i z%%4p4+54V9=(HtNASb66GM;t|`;^}VOAEBL9d(35)aT2Ab6W??^f68B^iDz|>awNq zMS(qwRgIDG>Qi-YP{cvqyQa3cFxMG~sXB4-vO0Bqe=hfx#c3`Frm4b7%i1!mSahGk z6z%|PnMvP>?Q+=rsI4_I-3n1Qk#=?3`y8`qXYqjThwaC=4t>jr2QkO6-g!b2kDah+ zB1{nUdTWeHZ!L4^!`d7JLipdb4DyU0JqjqdjscPVVa@N2Vl8CA|0a476ZUEuLQe=9 z_K2u}(u&0=Yn5N6d!w?d(NOjkYAQq=lJmGi{I04AXX7#X(jdB`2r4a%V zhbS_(&tg5R>WJSh7L zNR9;(SS2UmOGaMx4wE*zS7oD`=MF3gs1`rr1ZWrm{!jvV6tMI%0={GfRI>*i1boQ| zz$XXd_xxm_psfelr0FLgE!&ylAF2hrSj#MaYzq|1%zirkT719Ci%%(@cj_Lhwu+xw zU09Jn?wDO$Fs(a(ORZ)-5(uTHZQ?UO>1CZJ^TA0y3=?!#7y#F$L z`0zpK0Sp_9q7BwW>@VJOO$S^$0q7`THN{auXu}9Vdf-$g@;P(l7KG+f8E$kVyZ%kW2@SSgm(Q_2HlKe zoTQ`ag64qAgl2+1Wweu@F`N>HWdfcjlm;3I`9mb3H5PMGX1YWcRA7e$V>4AEhY+81 z2?PR79PC>>HH*f2g&a%EOw#M+{wLRw>6~LQedt>PDOEbetRTJBZT{YxXubp%V%+*l zK}zrpBA}%gN*^*MtK~Rq{e{wg8OQA^0|rq0^&Zpdpx%5;evHyQm`x^4Dh4r+X!cQY=L7Sp|(?u)4x54tW+EVa5Wj@*iuX-x4*d^W;$uo1dvF!aqjsa*jzpJXz#xh2s=kFo2UCRhAcv4MtyP8It? z9&@C_SPtP%&v@VBbH7X^E^9tRPzZs?+!X|pHLJao9xRaCp;Mc-%fM70wYDtDtQk{- z*`T#kf@w&`yO(*pK2(1yQB#SOAs**0%e zOZ+Jh)+WrA@d5D@%+yt|$-x@8xl;EgI$n+L&3?L<4|<|TidAJ_K+6e=`481qNoctW zMT(~`fXQuhjpugk8mO7$g7QCvlq^`8?D|Q$^@aFTc&&FYdc3acoL;eLdmWBy`6+y> z7p11-pqrC84bv({VzV*6mtqONft>oR3UeCTiLVr$j62GNhk8bP3*ft}h)UP{G`DMh?cUdNgwfk#G*j5}WyYzjvd%dA8F z*waIsg1r#BS*EfM>)f7+m$hds!qkCr6p$Kn8q${MQSJ7( z%Q|Yv_Q~4@3b`FEB4$(^e$jCjM<0m}ym#VMsFUqW2Q3sU{ygM?Z*<$Q1j1uJi}r9& zPE087z2OE|RU5?PrcK}Sspt6Pc&YQ4>tGirBu-wh3e1l^?M{f9jAnCHsa(~nS+0x9 ztzS~KI*I=5;GO{(Cax}yV+j{ocx|7E&{#Fx_;k2n-X20T?r3Dj^5ssGG zu1gbj_gGM0tJ~qT#yI$hgwXfact>YB7>ul8J4yo}i~tvfoj!7hMVA;3%^ZPzgvU4s?d{shWtaESW2A1uWv2_p=vh(?-P!t4Qz4O%Y? zHT;-a$Bf(eOK(MN*xP;gMl&mK4F2OA)R5S;DA7w?qLSl{2uv~}N?_73`p-sZ=})L> z(^+Z(SRHKi`y0U+H`-c1r2%6wUk3Bs)X2<-6OC7z{N!R(o(#t@0YpnDCjG$PY_!rT z?2g3DtC)`2bo^lrfeZp^7>bk^I5GPwQ??MjCWLi>W!6mzOrlB!CQ$|DOe6(M&T{Qk z9kxPx7F?9`cH40ZnJ>sedkluo2*^D&PJAU>al;1P1@gDSJkl@3p)7CQ7%t}+Unysa zxLagexZ85f}<0-|GW7w7A_cx)A zEg&B0sjJgRo}UFPN3%`e|FQMhjpC7)Fe*e+SUiS3?BCri`eNwISn%yvrm=^n0U6qm zLi8bp^g$tdDg+5|Oyhac$Lh9ZF^^A4+b9lC!=n4dV?R7=i+p&tb0fCWH^*1XX;>2> zLWk?zI^q-2Jbd>qhzrDE`+0jfW?z?~)~8r}>;y#;x!$&Ea?P(N46nI!x?sCn{DBxU zD2N8FgvR=}Fq??R$(wc@F^Rd`Fl_jlL}lSl!iwUlO{t+E5<~#|YLq>IP9V}?B$~7d z4eQycb_g4>es~&t&dhpGiXz}yG#FER;@^H|ADUWPkmF&rL3|}BVN%Vc1ia{QlFiFR z1lID@HR$_nO!xE$E%=%>A4 zzrhuJj%jsxtLq43n_QP)JTP>&6P6o=S-9rnq95fEyf7zEJ0RMB!Th7=;tWg+J3_K} z0y(4~x9QsT#tGx%jR|q%;}XWlU2lw=JSBe86ad-9g#}p!M$^V3V>D$na0Ir-BO}Ud zIESf>t2wL$d@YB`lA6F_nn=8!!&uxG5;=_5J0Xd~^cp>f!&n0nZV7=GbC?#WZsRcK zxP;Xl#w?sr1eoTG=(mBx6x_;TqVuj0*v(<0`JoVaH;0M-XF}i?L*Q39O!az`!&I-( zUnTGnAb@ClkHbXI`+$1^sJvMaKH~672*9Tt-h)g(ang~QbD^EpiIp2lHn_ggtkZJo(sYU^AMv$h6IXO0mKp+6h&^nOFXjUn(I zA#iC3>;kOf@$cq%;<=l{8v)#;`_!Nif z)W**^To3q54%a{)z7B!CA+QfH@qyy}7=phLg8w-LuP}DRR|BT@Do5G~4%1h#S`Lo` ztmCjA@Bj{<#2UvH9DW1vP!8_`Jd(pJ07nBR+6a!}`00SJ<**TO9EZ$c`IGN)Ko*ROn&*3=WQ$yf%9-r{bLhwS!FO%a*_OdukvX{-_KLfUKnB;0T zhe?+5I85@hmct}7>o`nuQpjPFjoUd)@=(HIYIi$_soghlnA&s`hpCP3;4rn3gTvG= zr5vVqDdRA;g^R<)|Lq(mp5M)3;(}K*xQLzVlDj{^R(W?5F7FCr6mYe%+lQPR}(mx&Nd8lVCX9jB6>bVqACP z`W>#Pas3Hb4X)2|k%ReGT#Ct<0@pLR{(x>}0x0xX2cwwj0Lp!S)Q^yK7g7Ap5ONgskH# z!LDb%F3}oZ_JQm#l=s!ZsMftZ9}sgWx-W| zs~FdMT$^!i#dRmHyKwEmbq}ulaXpOdcetLw^(?NJalMX<;=hfH?3ed&9mVxAuFr6N zjmwAY2VDHO>t*HfsUO~*zj*26iQuZ>d~93zw1Y47%KziGH5AT0IC|=|vB{4X?a5fk zoDBO6@Ce!qTKev6Dwe7bQ-u3<8Hc!89+B>s0|NT7*?`b{s%JfUSK7RJq zzkEgE^4I-mr%#`;Q$J$eFq}RoNN27eGNbxLtYz?-Tng8lSEbHamXrAT0?%_4PWoc= zwiy*8wtH`>_=du}9)0w!8NYj!eitZ=pO3d(bP@{+x61dVd*yq1wR~UWXLskeaWe({ z>icK2`?kM5!tRz2KA^iXb5GbT+@8BXg|&xBK3U9K7yN!;4=YP3G3h zG2w>3H~zd^`j0zbXIVh5eV_9*eO4CI3?sR)2GR=e9|G=rt(mXWfsJ?tk)l%kJZ86A><7uxd_1 zR{E_~TVH(u+DoV(b^g(*-(Ht-WcO3&ryzXaYsZ^sT=DE5d{?hpfZi&^ZK|G0d_yOA znfU$6>lF{o*84wPRxz+81>rsMfB*Z9)weEN(l;S$F2a&>!DMskrWegm21@23oce9s zj?~o^t>3<``zuNPO8fc$NUMMEsi?=^yLutQ6+iBcTe56RWtuhmx^#s7b2r?%?6aNk z4nCo%UW)MKCC-x>w{Cg-v77gWuRz#%^5E532Vy_!{lmN4GZ9XWGHuG);&|ZQ$F^6k zLfAK=@6pv8dw=xe&Bc*cgq>BRN3N|n@l;&ZW1I63ZdiEJ?FE@tkK{b@-RJofo;acU zcFV`Fxih^nMF?;Fj|BtmpM5j?+qMrKB?yn1^1|wk%O6&4N?h>FdW4;yr|iGORkCyZ zniUb75pEoMO`p;)_g$Jfz5hx_6~^v~3PGT)x46M;0rVX%Nr{F*>+QKqAtd3mIp@Q> z1mTMx)xweAC6bVJ{`pGfurI*xyubL~mBUUvck*YQQ~tjgQh{i?=r;sc5Wb4T2HZ)| z2~Y534i|+(e}}-gaCjG9o^B0+S93TC#sxJnCgao7oX3x~G=zMI1v0pHKz9KgTh@JhhXaCj-;S2&ys_#F=K1YFDEe86<1EzwX8 z_zMni1N;q#R{(D1a4z6W9G(kU3oTA*=L0rycoASDVB+~vryz{yFu5^H3kV)?nJ!e6~ z_Z&~>2DfsUP7}Vw~vL1vR1LSQ3@$tEAeVY1WX08<^wZcpGa+3vGA zOvlX4b=qLCM z4yOR7Q(_2DFntF_a4z7JA@CUv?*zUn1a9TxQR0w<(hg*QBZ^bAM z!BaR)?=Yqin2x}~pFrnDEaxyCl9R(>I^Cmy!*m1*eRGCCfsO###$h@-L?Vz<&sV-wuK4!#Ik+b1CLzIc!)7<0l0EhQmu&3BrXCxEID_1cf$~8^z)L zop>(;OnFlLSPs)?DU(9rWDe8!A~$iEJ{qB~_9*QzE9Qej;KE>h;5UW9cZb0AsUW4@ zi8zmQ_%z@bLf|(!d~GhqtPuDJhhN$Ny&VEKa`+_hO(AeAhokO5flwe+F2Q{{JQeVu z5Ev&+2oNDb%7T98@PkI#ULkxl=$yy#lusImQ(>tt2aMu`ZBEQD1o6diMZ;l|vCSM_ zx*G8SM<9OOF7y|UZ$SLVI864{GaNRogl^&R+&uIbz*LsXNiQgJJ`<78Ngijt9WY9C851e9AeT1o#mihxE)7 z98N-eJ;z}^@_CuVHqi4HVB!_omQ@_T5^)Z5_!Yp%I9v&OKH)IQ(iea!ZM}&3CXS~u zq6IMigcQ&diTV@YNQSQfOz|raeQVG>}9B-2L1PQ_@&i?um>>FM)O54a##RQUgvQH z*vtnxoPvmd<* zwgs5a15A8gigNez_;F~X-}5-eM2tr~&I-gKPgIm=G-y7;IUmOk>}zJWe^{tO~|~46g-D`O`MIEgaSY-pS+dMEr+% zeA2hOIi5aAe458sA^uAoPaiM-naB5o|L<^kDc~9&XBXle2TbMCX1}u>jspB6kG}#+ zx{b%DEk(Wh$b2K4Q^(<>$ny%oln)(rVC4Acfgb~yc(Mm+ujlwAv>lzFLineFzmen1 z3t;nbcoE{<2AJ}s!(wtdp6rbRj?WP>zH|KK)tHjuu;4_$<1mdW_iSxfPWn@(e^xOJHYYALFj`VCfnvC4jV9DH*%P4-LE-JX&l61ALtpzVX}3v22A<9f_%nvJlST~1E#vrSJFuw zPqyN04j;v{`8*Dt!L^v<4O75pj;F7!b2*-D!a@$;2O2hUSOt6;U@D7rcsa*kyB7T# zFwypB(DpQksV}_1sIXMqXyAFBXaa5E!As|#&l2jX*7Q4nDxe^c}% zJJ*uE790bZxhlJ`XcHmlX05j@%3H@G5WK7q=X7#>3MYZ^DL5IFqZeB88CYmXWjAdy z=M~s(7Di*5B^#%VGSCbb4p_}dNR$1gc z3kz(yEU8>9iVVpcA)IC^N4V8OEN4OFut=_JdO@D8gu@GLxt3xM2TSKcb6$QPJi`W4 zEh=m;16h^aSio`}7bj#U7Z$9y6ob>KNp@i|IR_ImK}D7=k2pgO6%290<`)*OwHGac zC{QhKBv-IPQDI5mMjIH=MIbUaZw_hm&70*m-@KW%Id0_qRiH=(S=3U%Knn05Qm}b* zPzo3%H#%})Qh<99VUsztd2_oIY~CD{g3X&*f1u3rEgOYQR4&_I4045R+oqzf!>Mna3*Xf+A5PGBS;OuPHyE@b}L%Jwz`?%FKs-PX*KUlC{hugPfrzs_luwWKR8 z;A>apFPE5^X}1+Z#Mqs*A%)R`nVI?MiR&362o%FzF?+=7$eyjT!fCW%*_hXruU2cm zy`-x~g)ZzSa&~@UNmnr;7s}maOfHMN)UjJ+w=HS!77LZyEgqu!3j$%=EO#cR#i^4s zam*SAX<|_RIEWMzz>>_Yao4rO`Qs)EnOWuG&zXhmCk$(q_^VA^PCP574Jg{`)vPK=mks}TK$O^5$yKtT&@7g7Hf2CDav_Ge=fkrl z3zH#&6gF5*^h8#{K*`l$)n=_!Sityh%`eQdmE=*|1^X~Oab_Yh`PoD|aAsqW2n?$< zRu@~K|6vp2DI3yQ!R?e3ttw`A5t6}odxY@FC7?58vXKG_Sm#)mRk9Wh z-7cnb>(Kzgnjh+`kWrIW!t4sFT3(?nTJ60(ZJDK*4Tr2vnB{>MtzY>=zRbQu+o!dTk`3td(SYcCVrg2BS>OkzmU z6c#`bpf@O08e>XmIhP^WI}OF8Uc&n4y0vo2$eQ({%*@Sf1gElC_kx?+)x}xsGUcHS zZO8`&vJF?+(auaI*z$^43(La{A+0(=?Qogx8&!H zr;*rLvNo^C2+P5485b!O3z#X!oGSVLCBNG8nV57Gm*Dcxuq`R==kkxW&2{+`O6R%! z@s8=<6qi58HnKFr<K!aC!6t%S14_ZcaGzsyh>IOMXLrNVFe2=we>h4P{;gfpC|AKY*fou^6zn*%j`9<1 zW2OGc#Cvt{!EpY-9@SA|2OVyub8@Ur?VLQ;zRa!MAxw?6g-;!88{$oIE0a>CQJ93^ z*MgGRX?$A@s1L*UCcF{lF}&l7+^bP^?oKRUNd`QU?hT_y8XV_wvv)VZOA6bl(g>Wp z)5p6UFaS7fb2b4uwOqy|=lhQ5_ib zsFH$h&=Tn^?qc;~=``+CGR?V)KZ(B7G$~826^UaP*3GQy9N zga=qKSRnGmUMw^v4sP_Ygu@VVjUYV^G&|=5U+co34*dAQNe^WLxeLl%u%QQ~?WH1; zQgh!06^o@;Rg|Tkw=$hr$SAP)56S@?c*_`VS}yGqS}bivlHiGm!7^~T$#CL9{9$}n zea(UGD>0`(MX(vkMT08bXp4Yfgud~I=Xn9xWuFtX@S*gny~HnCN@US{%|che>BDs1 z6+3ZJ?q=Cp1;4Qw3yUlTs2X}zd%bXE#$u@zi(WXy2hM3v*{@if>mku+67(^kH43Se zp5xR2IYY8crx+<;I#!;*fmjI46j-sASU>;2>8kfV?#62SeMN`?i zpS71!ESE79W#Ieg&~pH|zlWZ42L3mmGfRgPgV>cDO(VAG-5Fz7)1Ge2~Aa#des!kUiL; zbWIL{gSg;51<#E9c@*xnJ%FC&n>N@BR#s3mq@qZCN z6?U)|(>7nB+a7{*f!UgkB<@q^r_v3n+hv|7f($l>;1lK??_agrPg%9#YXm9V8 zR7Q^v@?YbF{01C{0EfJ(7?@n-@BCl+AWtFw&INxv`52!{*ni@Kd_FzD%m?{I;AFqZ zMr8Nz2YDWBgb>%~!`aDX;^#pxwH@BabCC9bumAD8y80g{8Sd(TJmbI0|9F&KVpsp; zKV9a3{L%jl|Kl{$({Zlka!Dh-%KeWo`M32y?kj-Q!v8qk$^ZDCLOD!#+5fnj#%a76 z$i8;iad~uZUFBBYLd=@oF^awA;k5{EZ*bmT<#O4lrHZ`Qts$Q-jE|$yH4b7%3odX} z>mg$W$jw0cIH9vSQ)Pr;TEy z3{h1zYGc$pQBxjJsCQFfxE}u#Gn&^AUZ3C|NZFC6tQB`^fZNdGMP1-gq64kM`=A<+ zihX+-G753;)42OkKs5W1mJuN~C{>Z8midc>TCnv1OGl8V0r+jaWkD1Gn}buIECm#n!1S=jqsE8It#eXZ6_LK z)h??1x>yoXsnRct-Zy)Vge3ZZ9DO$N2`RItDr3h6!yTc5S&2e#NdM zLf}DEBgSK}5kW~`R{|U|x)tJFRp$hOl>1cPBILu||Mr(wn6bI+1v(CbHO0kqUoT)V`-Ep9{Kta4fcE(IVApo)2UGa zEkmBNMeQf9#C$5ANaHa)6R#8DbcQVvB5OM*wgeI!b?Y5_qe5cChm z5?fm)A8};;j6%s`EfpKEN5)q+(cugDfn^?5LM#);O)@L1{Mw{MMzZd%e^8X+R1Jz4 zmB4)9C{Bs>T~Z`e7k@2#@JyB7#B?q>98=*i= zg<X4HKBJQQ3au&X7ct`wiRya|fmosh_7N6JVTe55p(&I7hl z!L*00C7ZmUJeT^6bdiJtULoM7LAUKrkj;Jfl6y!zM@ompT;?>dPxcIB73uT{D<8<5 zx^a}ot!2-}NO74;96+^GgUVDDncn1er+Gtt_q7aK%;=2bL^y^ahr-R`d_C+=y=E`j znsZqXM^P6Q_4}Cdxf?816N&qY*C)=z)bAry(;!q$@VJSCaBEey&aah?b}^%+={r2? zY@a7)wCJ{fO4w!SapbO8H2K`*;ZJf+Bk2-s%RLhZCr)C9Y-)!g`~BsH>_n{1#F`|G zA*s?}=v}5tY$Iev>VPvLpEy+^@+k6{Lx8QCbYh0f1>tI-Q7P?lQ(pX6DZit`dp9!XmG@g zE4c*|7@nvkdey+X*VOn}c!Zfc!M!D3C2pCZ!d-*A#=R(>S?7dyprPTXqS-Tb0pNY4 z3B{BH8ZqTzl{Xc%giz1kUJyAXK2REQeuakJFMEU+8F3)XZ&8IRJS)8M;yUb(V(JBuoZk2Q4v?fnq9%%LScv0)hHzJ=OdR>`*BKs3!}#iLENWmU2W zw^Xfb(FXMZ2FvB*p{lRK+>83E64P7O&&Ki|wURce>I=MiLCo6R>Hb<3ZF~^iTl%VE z;mc=BqzbM8MI`BH^i=6-%#mPw6Z4kRPU@m^%GUOEC<4U0*^6AQn)L|eObp9GdXeF& zCa;mMMolyrT;MUhh4q8Sfdo&t5ivrdU1Ph0KSBD%lJf6x=$ePRw%o|H)QQGKleT04 zx6)czQ0KZ8BP11Y3on31FPbNq&?(+}HBRG)Pg>R(W~7DlITW$yEG5=R6_~6cdm!kP z8SPJKJIy6v{|e?N4%6HO21TY)Ql&31Ai+VLz)!Zo0J!rRO|4<;r6z-h6z$>av15fP zMtmxSEoJ%G>q7gOjbq0ef#iW=%kB2OVoQk;Cp=@jt9>25%49M4xI;ddUDI+`!91|T zJC7z&P20S-E?~R8;A;|2sN7L^Ij4-ZPjzlqz~g)S19)kk>N>FTDtu`ClI&-~4>CKP z2_P}dnEnBlA#-!nw28IC`8)jpJI#N0VQbHcjusj zn4;VM3fj{(Z6%Tlwh}}xH?_bMApVtE+Jt~Lg1iA*+5+&;Xl@fC(KPNj(cU6YkG2M< zM{ilYCQKRuy5N%Mj;oMijh4lL`>FOQ*jt217tpM0!q~J?nAD6wupR+5kxz^Ysf}~$ z6hXJ$2ijx?G@Sy7{Ysk^Q*_(uL}xeKb+?z25}QF?R5=9Gxdlfa+l&mK#Q0ColoQLv zNl!zOHNDNU;hDC#m+szsf&T?&_!%?&V1}PD!~f5jLHYsAxbL4bgElJ=GyJLG%;yNy zGA1CYP%#7lylXo6!#OjJ=$Dz%5!s8#|B{b(eMf>|29z27m|I8LJ9nDg@!+8Q11CAp zX1=#8#v;-O&VBjdb3(Q3l#cu(B0?JcTWG`+%Hi~^b39wG{nX>Vs+bevr(*r`>VM)h z=0Q-x#GA@wI-Tv=gyU5^c?_B5Oo+2j-Z4{Au5N^6>kc%WchN?-Fk3HIbt7$J(;XO2 zPh3AOwQCN*mJqys+1Vrld}JIT9qPKIx5ra9*LIf;_Bl4v5fY*KC|y-y>;;f}OM90} z^u`FnObqs|U*Qc2o(1s-N5WBIG-GCJOQ>J3W=XIiZn5rw0t51SRWFrI?W(NzPHsnp z*|0(71-ACsj#CisFcNrsVNYc#NI`xypojcVIJCh93%DN$BF@&TiER)uMAeG$VgmcQ znZIZ;9y0&c*dK^qj5_VH(OWUEi;R1Zurf?^Phrfa4$pXQyX`@RHk? zuvTmb3_1~#X~fPUkO)PHmOcd%Gup%f+s|)_q#dVf*QMyK*!3E$Cle9x7-aX)$R4mb zZJ|VaJGi%0Ru0=MBs=oOKAH?aimMGrM%cxP*Fih&eU!e&hGUw)u5=8k4X19%@f#Rk z15JWvCgs&BzBVL>XM#D{;Fc1*UrBet27%|aa5N-j5&!YFCLP8eB-oX*M=&`(a}#C> zrgsd@#Q`}pi8S^gN`4?G$Q_V!Vn*(DfBOl9u%}P3?8p(RlR+RAdzIP*hq5)Jxy;f0 z0b0!w#eHiYAe!E#f8H&~zFAs<_q&C`Iu*)Uk<%Lx=yEg*GAT3GV2`Erp8OOXni()R zd!NR;hY+2_9=#ZRwB>5NCUoHM58`$A(w?SZ>Ao56jAkWV*P0C?TzN(@e{$_Rlw=*i zeQ?5;s%SnfW;D7pqQs1bS`*VzwWd0%19N~|bTF zoZPB(+fT;WPl~=+xTqXBA6U2cpnJtZY;!p(X4JbJ6@q<4z+NA)9}U}-ytOfE;l z8n;}6EK^9Fr=d}d3WV_m&zxuxM$4T#g2XUGL5q z=62M@B(f&M&hbM+Jjy<#M9dmexN|QF&dCX-Xh1_^Mx6t@?dpO_Tn-~VKeyrR622`{Lq>a@Oa`2Pk&-feLe!Tj8qI zhzfVA-#xcYOg}1`>pdo4DlG%bJ({)GF_`gKk;m>8G)`2R!*`T=&Y-tUkS8Tx{LD4m z50^qg*N}Fg9!5T>#=>WPtBFpG7i_9S;ju8~wREN>+M_iVjt)1e$lc*4O|siGY_tY* zOVb4Wvuix)K@b?Y+muA}N$LpZ=33KPO4#nkvyno`oF<;^Mgovjx9v)@cOAYq-Oeij zC7OM@d+5|h+MlS~d6XwXOq&j`Wum!3teYEa@I~>%=;xsX5V9vvn$5wkDeE z9PndX7i+E&v6YejV~!8W8o9>s4ubsGDH#fnW6X`Q$im!A>!;KJ0ehXS5f@7-cwrVz zb#S2APAeTZ>NYndROvjE0R~LIL*em6Sruvj;7IgCfn{paM%OQP^uHEQS!8`G3{8z%6CT77EO*4rq)@`T{M7SIV zVJik??2)aRi{=Rtl7OiZy&@>cbSE9XSlWWuMhLOXA7<}O5({yKh{SbmgyuO!Qa2n# z$#yiaL9sQmgM;nqiS0@oB?JeOh~p6St_|3!zQ5dnlpaE1Q@>*JDuq`p<>90WwuFQ1 zSZ^=%tHMhIc zmGvpjvtYbs`m#iYFL}O#rm28} zdGSXC10~u(i3X<3mGmrGBc^FPUiXD`B4Gvd=PBt3H>6}y{?H`~WilfqhFgZ+^YqG_^|ye`iwvQ~*pm@_ccJ+J z`Fk@c{=f!pU_+3~A2H-HyTXsjy5YSKSYs@!I^$@CV6${OgEPL`jE#Fump_J?T1W38Wf z(M7~#t_wQd-M>W?pu-f$J*tm#vXKsxYxZk^8Wbqf28uL+B2^$x>Wl1~?qw>+;4Z>u z6!H5enx%&}q%dSz94T&quT}K$r5bmUR?Ijm+Uvc#ppLFJ)w9?cN8NV#!q$qJ8gYZR zc8*Nz#ooGmeuM0qXdW5E>cAA(RJxrF44zByy+;9yf35l!Go&X)KYYH%RBb=L1v*Qj z6y8Da5;d`S<~Z57U%6Laj=2 zBkMMuL}4DM%F>=qgJ?e;tYxEUKg-N@a7_>Q+^}h2QT`PPz1c8Les$37u~hQ+PWomf z0H>#^QY0)V7_w-5_8kenEb*gk!mzhE;Dh)0N}5N<cV+t2^0Xbv0&LU4DgbJH9&< z7-qB(XPqYK?f4{e7|mJOhPww6z#fj8Ww5>=C~Of6-Ls;xy{SfJZA~^{U9^{MbSmA+ zQK=AG-GSsGsnX}zI6}LWv~b8fNc_YWZmn1;cvaR4qhO7gX^21W9ZAWN-xaQD&6rYv z8|#H>dkMm>7bMiUll7ufQ7BTT{ma2Bvu(nBPnpx3xFvaoBAI*103JayDSUac~T`VbH!-u4~lff#P zmOhLYjeGeRynla%c=CHW)Ad^3AhXaQVfN*o63vcuO?i5o?v0D?WKC?c-klajlc?Al z7Vi$Yi(`mVJRPQ+5G;<~PAUGa}e$@Oacs25W0or%r=>FrkH6 z3pb3aR8_3rwl*=nZM_onTQOMZ1d={b!VALNP{LUIl-Qj5DZCq$lr#*CI`-5dP^*t{QLYv73{zdani7u_4{CSpBy@Rg@G@1Qpx zf4L%H@=uMlMWA-N?Zcn}<>J_knfy(ZY*y&W!LSvd4;nzekvI9gZkrs6QtpX}IhtYy zYHh=*{S#{KeX%}`wtx(v2ZA2fv*4ZB)`x4e$<~NN-cf6=l}umYbxB^>W@{mNmkCyF zGNc+(qGbP*W$l|R>tcC;wTdMMtLQIJ9+D<0(Wyjq3!ke|>5kf-iV;gp8wO|vgNzV1 zKXioH0Lq}RS)ZVa!{0n~v;iu380v1+9hjWtoV?1e!2ej?gXrF_MujcXiutmzw_v6U zu0XN9FZyvDPzro_?EMX91MCzbOkm$qxeh0}0$H}mvcqK7dOdH2Jy`1^ThQn%9B??tCl;LF$bCpBirW@%U*EE_>RM8jL1oXD+(-tq0 z*0Wg^QpvW@Fuz5+T*0CaU5H843_Tx~#m{-BL*8YX4(OU^|0VcNTq9|ks0u9C)0Fi9 znl7eQ>9&|^TexRpocB*OC)lp|Xso0U{#Ic_0aINNc&lr!L6Iu`gT0cdss(&$iLH|u zV%!+{T#Z-KU}=M1oP`0$7AdEKPDi?%3}IH+D#N9Pw@3l3y2-;a^T!QG*d*(i9YMp- z-CkL$b_F8V4@njMZ;{BxA8-9mti}-r^{5}M25L#hKCL_xR{n`_r2fnp%psMBi@qe{ z5ypF!G)ESAk|`Sh>5?8{I5Gj44L~#lucr&yvb51>Uuosci4Fm+I^uNcH#5v@!|A%H8ftG`+$q znl4#gj!T$_q6Ham7&eZWTKLQ)G7-P_V6{$(259@?8Hpx+u|z=MfHJw(qVLO7;-6K0 zV-S6CP2XDts3*`ig+PP&eR+L!>C{sDVE$yP&))a^L8mQ&%s(d`sF8LHz2-?Kbal|u zcGM9L(__9IIJb4MOdqpwonELPW+#<;V{chf@nqd!J(#?JOR! z{jmM`)}e11@gU|HhQ1S$cL>!XyxI+A{ zs>vYMX`P*)?l9@2b(M{B8a<^E0uhHOvL4&;(zRu0P~66TEC`LpS9ZOs zqyg-K25I4|HsTO_;O`|=Nxku)>??9$D`SBK7S=2y?@LBrHQdri_o{4E^W1?20oCFs zoB$0Yz#mEgj{=rnM!=VhfNJ)jgMcp?0oC*-$5(538?$$4e2{AhWWtvaJ(5s=ik!|bbUQk9#1SlPxu#StrB zzR@Uc3ikgf_U(oA68?^SP=&XPMbQRp;-YBnmTNlT(g{FE0jnvF3PKx30MY}eDv@_C zcn70lg1GfuCqwrL^sdt}rkJ&?*`uB1rZ#z56*JWg^*kz7i4LAnZ!&{=C!Hi>V7G_CvG} zJ?(n94Eh0F+fLXo8v*df8# zvOWpMheGKCsem{)(KI`(0=YA=SgdCtQ$&KHfY<%2B(qS&T7;|#rJyG4q8a-!RvGAh>>7{bbf`EuT0HjlgdT_Fv7ZiRqkA{w z5~(fSyXn3ddO5r}u{6(hapYFo`G$>Wd|KCauo22;Fci!>sa@kVpJBkjG4A9$C&+ez5up1m?ed|CDBCBvE)n>)qbnkKLc1^sbx);8q5Z5mJ&=u z@_f*B1{1ZH%eP%0sxQ?jDpaBVh;l>P`U|qfV)P^_dYVCe;yvrr+{ z=aN{TqqY2wzBPi61ZcZX?e!mWd&v>aH9Jf-tYH#)bhJy{c~i|Vx5%>47P*gQ#@o$Y zb!@8Pa-cxj%urIG{L9T(A*4`Nrjg3z!`fwf4c|oYv6XDs zP-QhZM4jB<$_#uMVc4Nzlx<;JtJR5_s!+p^nRU##eZTZp#D=}yckiE>l~;lPUab%k z8+M1N5N}b*@kRtDy@Du#NiWfV`Af++QA@U46Ot?se1C&<2pC4%T0f=nV=&)h;JK-> z0@4vU(RiiFPg5WA93w^zAXpl?qIv3d)&CYL=Yk+NnBh_lX29%6X#~;w!))2XQWqJ6-Zv zP6lO_nhSFc;<>7G2L4ttUX-A9r#kId(>p~cTY4mQsZdQs{x2!I0c|~$r327Eg!4_! z#6~#|M&mQ3ViPJ=+0;w-#$nISTb$4V;*qM0FsF}Koe7%YAHy2DLTs)2)*$*Xx4+Ae zIM3)R&!|{o4(*i{8_=3aqHkwB=K_dV zR5teFg|bFaYU(Md5swg?)tt?G;v2n_IM0l%JfpOV7x1jSjxjofgTOn#7+GFd*{GBi z5h|i)FHJJPBSN;N327DKpqCaTK5$|tNZZ=5kLHP3Po%}HvpyPQ)d3xERqKS09cXn`|tudE!l*FUx_Q`rV zzg`qag+Fz-kPwMO0vw;#brek$QeT9O&Ud4+nZU z(8GZq4)k!KhXXwv=;1&Q2YNWr!+{Eo1mmJy zi*cc4H9ov9F&0{l@T6&k8&tS0ErAy+!X(50n6Y~ols8QTkJGe=n98%f`xr9b>MV4NOw z)BQ@^n>juXKO=qXgH1BgTZoO&kC<-^;v&l65;LmLzW^MZ|g?D}bx6RY9oA%DE z&3}K7!h2c|y)ymMu8*I6^)Fvhxcqhh+3C|~?9`7~H;g{5mCjs0WJdLgSj*ruxfHH9 zuS%V($@ePG{J^JWdGk*6d{Vq@#Ki>@b9-SoLZboaL-`IQqrZ9x-9(9!TDt_+mRj zzuos<x{JmdV({I}OKU7n#kWo9 z`x}H`vDRIR-S_N)rU@Hwy9VK<&Ox_~|EBzd7xrIzn?97+zvO>v!s>61@7y-2Pdvg& zKkI&+bpMmbTXr8$n}~4vf>m=8veIv@+WP7P=p91+sPm6b{r0+yBfFnEKLz3YUOV1A z;j)T>Ehz}^iU0fGZ>+v`*^<5q zQF9TNlnW-COE2r+jgX`u4w)Cb=_ZYMtG(D{C}j?zxPzsWA9zP5aEg+ z_r@(*wxu%78hu?l!v47%?p*fS&UXi&P*g8Pc=8hG$&6dKJpS0t`@&ZsY&?1J>Z}8? zANBs>-R+qOr$(7JW#fWdhzDsNYVt(s?j6YR-AY$uIjPP zc?dTwyy^CW%&JFnp7`$bd6iO1&79tUrK1WPIVLIufj+lT zLE1_GkiHrNnDh|oEj$*mPfy6fB`FaHt-9wfg^)B$CpaJ8B?w>qs1}a=E|G+<^Uqf* zhkXHl=l#g{t{isaxsyNZoU$j>!+{3rFAYOhHHnrl6QTo{A&o2Kp zy1RXV;TNzLx2JKvf@haswr+5j$N5)bXGk8qLg0UuuDjdZoTd!uP1GUL<@N^EQi6iJ!aXEn;tMt<}>DjB0 zjy`E+JIvv%+E`Esch&3iY{pfEwp^nfYd<)&H^;cTxX@lCd>#)OSB@_EO*@Lk zWEkW^nXIyp}{^dHwkROS&<6q227KK8(z%LqFmM( zW+Y3KK8vFVDtwGTK24egds+_kPs=68=Pd0{469F*M)bq}Tb%k7jyT>3-J5gKH}qm( z>BI4;!L&LQUaKY&=;xe)Gw1#UV2Px|6n5~$g4sAz3G=7CkR`dcU?C67g|MR>`sLmg zM3*wOc8TSxtQ)B9q zz0|Gg@E8p?N8^|o*7NNHmgL?Bngf$I;wco;0o0a#ecALG65>OZvsO69z|k~&n9qm9 zlpUyb;FF7R-J5pFi<2jDRGdCw@1=V);~Wk=!UsCKH%(H4&#uA!TtWkmVV%Ylj;;3^ z#S&=@Dg+|vK!SKw6|D?<<^<^(bQwM4829mw(`hCI=&QlZqFmFMLbLbA;hfTOJVvgr zX-tjTt_-0($v%J>fGBR1^;6^<&F94p;pUE}36?5#Kai z#21u@Qo;iNhrPFtkE*!-$M0r$!xA=Zlz`z$Rwb1fP=cU@5DiHdgAj=1K@_7RBnFB= zlf8hNkd2#YF4t}C=Oe9ts;x*Lt+i@>h!0=_lthYc5UNqBMy2+~P1~p`L`>b^`#p1a zvkB4q{r&U%eZODw%I@Afb7tnunKNf*&di*137i(7M|n5Cz)Lj)nIJmgwOC-5N%wT8 z_f#cXPQcd~>^Jlo(`24NAGg(Ez9f(stGyMKv!oj#AI05M+=9WSPBa>f6vFgLU{Vr0 z@b?+ripHTUj92ihdvGg8+8x=rWdlSM_OFwx+;T8m05)27ct-7^r9?@Sp zLkzg3?v<&LQJOE&12x~HhV#-m?#<#4P+|mUycop!V2q;xJ_Iq%}ql|qo0y2}B5 z@x|EF2d<$x9Kb7{MHMP?D^ZWBKoU|?n*>~0pX91}H0CY@0N~O0aZjeyX{K9&9b=iU z8*LpZPF#*Ql>rwZBV3n;;g<1*#ubPys3?s<@4-9n7d96FaKulc7EaiNlMR|6@8(U)hbs`0n>D&gm`MX7bDt7GLv;}s=>|T7sl|>-W>VLmK z<&gHFR@$$}i_rID0<+K3)IP06dyf`%cp0)sk7qh~5I~$B&%rcRgy1rAOPL|OKfr1z zphX_mD2PDfcI5P~@M10o-c&oYvIrDpR+`8v%((^23Ky-oDc^Hb-h$=1p5+Rx=#$W< z$^4r!xVqQEV*YKnti4s;s0x;iie1h4H5<#SHeBd+uUfx;CFEtdjyx6$uMLI-OwH^}ouM zLI>tWg)-;picN~f-NlMk;cgqqM1|efcAYkdEGDZaN6$5YiY{|@-9l{+8`><-RUeDF zLo@_iDAha8pXozZnC^W9ZlnG8hQHuJ@Ce4%i0SJdB4OG$0PlFmV0iS+&4lk043m6R z)W7SK+03o>o6RYKKLgncwjv@JD*>2lm(QL080}46Jq~lO{fo9bOlKJX!o9X=XBce3 zJUMv38TKpz)5#h6o$5H)Rouyv;86)!vJasZ*guvx2|97aqUqGP}F;oqDoOz@Nx-{d@Sm15k{-ci%K3s zawK%3&r2MqBB3CXF1mOWp)B#Fws0=d#rf1=4j9ZwUzdZZ8LV`T)$?F!r-Ozz)8HQF zpOP+!)w7&k?+YSJcJgLMA*`bywZnHss`o<4S1sEuy4pYNqRGQ1zY(&EOzBMx2_7Dj zSD19OA{00ubD^)pU$#@%XIP+;29gCKr#iM<8a>BCf+x3Q7W@@R?G2|Oo5#w`=mgML zb8Mc9`Mf|Dtd8svG-Vqjwrxvv?ZMSe7~l!btXK|IX#pN{t4LUF1pU>R^LCX8TOUhgIX4@rjU`LL@6Nyg6TId0_(f6jDJ4wE@loaeI8rXwC&~fOu`7cU z2T6v(e9r!IeH9@Q%fTzEvPw}otr-do4t_K+lir*P`u{zFo=O~DqDw zkP`==JCfgOdcxfei;7fuQx#WtKmi%j->5tx78aw((YZ2Uzg!EnpyDv38f%zlg-iMASuo|Y9ioc@xETD$8O!r;ZNSY9IH56lAgJcIt zo_?bh#791ICJ@h6$O0UYLm^m)(piXU4EU>8c#{6SXuJkvVR+d;x?(G`!J;h2_zkTM z;O?|&E!kFBD4{7;tlXP{OmG%2D67swnqQWkYgl*X9E~~8ESgCjlJj?SH&(dX{ zrA3OTaCuIi;#st`XgR)@A$SG9XJs$CN`S2JEJlLj!s`@|XT_pI1g^;SlrYNtDau{Mq6+2D(vk&B z5V>&C5|84^mp{m*2+5096lF7;g(fbA1wf^+U{L`emoHn0QuCKAT8h$SQ0_9IvwXqQ zs}P;*S&&OSmM+Nm6fIk}WZ6*-mQW)YPCpZ^s8|@AFM*Esc zLLc}of%D_}37P7MKyHEs_Br%1FyDf%_DWiFSY1f_Ts9ieDu9tI=W;{EfG8RnVGf2l zDmGO@dX z3?da^4$%#93DtKV#C~o@>G3Lf20ETviY4Rm6#BNpVh#2Od$-48)tG<0|Fg$vClAhR z)Lx;%;?ybsc))3adKgIpiSWdMg)%|clh52To06Zurn=IG`%ns z9msRS4QCg9RtY#$gn6gY_*fqD0}62Sa@@8VZeEUKYDe)6+{~gAEwU7tubv7kWx{;5 zx!?$E(3EK#)b;CAIM1o;eg+wETLLn3D_oYQ!Wb3JrsO#b)y zkZsi(mLMQ-J&fOGX$?hq*7JRsGm1*csx-#TPp%#3+fCwO27fgY`sO9O>KEXF!0;>> z1+52|Nuy;@nzNZE9ce~})5JulX|xW4J_>sHG64Mtl9we|qoMTxQ65sleN4j=?qM2_ zFF=O$>9Tfs7HMdOPSlaH0#E;5TgDEO#C4Yq-?|`=h-F}K0<+ql)HuQSMRM)P`ggnq zsJVA>cF5zC$tvHA;#8B(uw>{`xd8R=wF*qEzyzk=@g5`I;i48E{je8+Y-Dl-oBSY| zN3fnQ@?$>~TmTp>nO*hgLW_=sfzn@V4|{=RtH2qx1{3!m$E2&ZVLgHwfF!Ox34!cR z*~&=e?_1%zX9dc}e*5K<6y+IA#2T@z;HNq2IUE-LJ%qSln(+_ecRE&JjO)eog?Ro? zpKw0kXL?jzFW?F1jS9ON&x&94Lrd3fU<&yh)3qw{Z0jnHJUhA;@!6ALqn-YOemG+p zX{J8;wzh-qD%%uI8Jvsu?nHYFUzq+=>9rT?qUH4f;R4ROK{qHchzSITFQSMgrz+bxQO0$H}a>y<1>YRb{z3;={fpO1u|6Ap{2C&6dF z9?oi%e>Ve^nwY08jXQ3}qi;9AVXo}t!;F!l5w3v>L(htL411LD7$$jIM54#$_ns%& zDnqn#)fip;O1?5Vu+_64Xo9X@q)+M4JZ>JRmf(duMh3fO5G0}ET~xQ5;{j=|+7TU`{UX~ZV+TXw zfi2sSA(~Qk`#mqmES4#KBD1Gg(B*~l^w!2P$aJO#_m7b()OX!xL7d6ucnnTApHZs$ z1WYN{PYVaCvKZ129_j?eAas?`v*gs!v!Yjc5^$QQ5uYY}>I;nV7f?4P=!A{au73bt zQ5FwoXwgL57xZ`i2yteVzM>zRAp1+7V2%(~>|`;e7}%(XgLF;Qj%Mc-?O~E9?e%bL zvgxt*x4{d@#Kv}AkW>yp(Vj_8X*<}&{@wgm)QK{6z?q~47=lA2i^X^yYP3dCGRz*H z`mg5<*-=>QKt7V4sHQ$?xJMmmfy;EL}UT@&MRu{7gF|A;u0~k}@48d5Km_nH#X1`L` zpyiv1_YrSD+%VOjlWS@@O4PpJ#aJSuiQN9^P;P6%ZBppb+-*va2eJE=+kzv9dSbxH+# zmh@)@WeipZP*TB%^V!(Y1vqwzq~3?~yK~|3&L{`3lo&VTyU@4;*`QINpb{Vx1BhcU*2h3g#r`Jp*i&#zG2P_Q{zLJrsy2iLsE zT1}TX(#uW2z8%DZ#$L~{W#l-jCz;VAC7sS)YJ3ho68u7u3GZ|$+kT`MI<18^e~vAo z+>d>d1Fq*|cKMJArmj#O*7U!CV;PFjAM$L_$u4%n7zds{w;(VY{Z^K5w4)zE>q48Unch;KBKgI^Z3o_`dDU1Z<9CNuEcpDtmSc*hIkI=g{N% zf;BMG3M8}+t1XU>OeaQ=({VZqi{$FNZI=0Q*ia36L=I+r;!>i%B*vyWW8hd)_cp>a zDc){~aR@(?y{MsvK)oo&7D!yKdGB+C?9Hs&FeK1=thNamsIxkQl?~Xkbf@3qoDhCl z;w%LB8vmH(7hJa@;+3`!b;)Q!HS7r zSY8%5rA!vh1b+bWY^g4>Js)mY@d9o3kxtpPk|bu!db;z_=2kmV3pWs*0+3fExnUUm zhFNft(SPJa;Z3WjiGwxYaq2dAmd(|$gUw&uBYe_}$RmB}9h*m+kNVj;=^a}>XR|J_ zX$joI)W2iXDs7TuB2AAINUc2Biz!fUf(=}Wjc&4Ko#027IZ$wlXw^EwoJtSGV9!7; z3XGP1Omd$^27{Z*Uwt1&H`wg%(cy*Hp{0S@G+;8?pAM&{x<$*g4Nefsz0VfhgnS5% zRD#0?;cFtQ9f9WyPY-S6+S&JTTodC(z5_~l_&5fkwA={}efDb#`x0CUqxgP!YYe}F zERF#j0%e_2nhP0FLSJoRHaehv21~>!fKu!oZ{mxjO3K^XkwOz9F#A%iCvwz_I-gei zL!hC8iPla&SemUO0K_gZ9>&12i+xfEMV0n_OHK!aP@h8}BOBsa5U3RyqLs2ZtHclI zo7f&E{3RRE>nhyI2MjGZAdWwOCR1|!)9C@v@ARvRKL&@|3wCe7peM21j8GSo^8|P!0H$; z9eRv@wGBNEhh$7p*8_cMBi)IK?4 z=rx9xI|Ty&7;+O_htN(OEd&x$N_GW-c?J87af(cV1H;&!ch%now6U8+5-{#0ICgTZ$rC*sMV+#=?-GL#<-DCJzDRVBe2~(lY&qv zx7^m}l!LZb+S~OBq6Ux88Ku3h2A+M^uXjiq^CSR0#u@%ha+l&=8JImjV-BBHD2Kxm z=+mJC*=*>xQ#}U85Uk4}cZDeNo+|}uO&_J*e2Zp+$T26l25CeB1D;jPR^Ykct|HWF zn4SaYjv~K6;!2GFtu|H_BA`#hOh7ib)`t9KQ+Lr_CF8@?1z?8rF4sL@u*o|H#tBaM zM4t;201XbvnN`Yx=bLv-IjTn^rx`hF=GM9ePok7@ZkhgNE*g z!|}lUWq962NvP%SacH?eumuZ%OBD8E_5$E2cmz4LB~7s3j^80sn8;{jMSew1wy62X zHzGxfoV?NT-!UR|qml?(mtb;)L4nZ_dHF-|NX}pb=>DtFYf9B(YAI2b< zLlNH~9Dcz#h>z1dudFO)XNisQDvj>nKn;2woTx!gY?;K|tJ&^SBtw6pI=kq!h56+> z>sllW_qN>D>kP{Q43;ak11%rL=tZM#8O6Pu7h-#at>nzYDP-_FIwB6_x7xVuQuON4 zwp1KusgAS3?VE-q1C3r_{1j_Uh)UrZBZ6vCBeV7XEjj?m>tZ6;Y8O2MIg?;(kX{qv ztjW`q)u@RBgUeWK$_Tc87=fT^J&{o|REPIYGY08PjFs3-!2ul9V3CkgM>;b+&Z;ru z8G+)}<-ZOiBn!C4EP$gI{r1ip1P9+S9w+=di^gDDu9i!TKG1=L`GDy{g>s+4 zJFpa@6DoM06h8VeC<>8MV0`#F670nqjB|l8I3twI*6@z7b3#Kw`|3XUE5@7_T7u9V zJ{b37xIw3ngeRHdjZk>E+664Y2|-@!VOn*xF%KB;;tLjIbb%~_6Ac%G`2r0K{rf>@ z6q-XYGt)xEgV@N5+gRmrE}7uZ>=lVe8y_Kb7hjO)C}Tg~v;&};6ZuTTJ(`R=;oUei zhX5r;95OQ3sOn!!jCUsCb--b1WUc~XXlAZ4bG{(+(Z;RJTn-;&jF^Bi>F|Bzj=^z7c6orRJ^GfBCGVkh3v264Y__7=hsSckq9!t zT>pdoSbul@1H{6(iEm>sy|7q?kXPg7lAH6L;9KN30fM!1vcQvfiuTIoZbo>ut1Y(a zR-7vH&Aq_;1fP1K7Mh0)wqq+*?HPU}u%D9-72N?t1JWJLg9UZFkxS^o<;(9h=J z91_>X@s=R-DKPd!*@4`lndpVXGkkL3E|}$E$?uyx&(*+loUNWdAj>g|B|ka+D{<}x zcYuelM)fF@zOH%%MTIgv{oeI*KBA!{6oHCDZOroM+g1j^AGW{wOS&OG&yV)SD`)ah zQ5bFt3N|tnEUx;6%pwQ7u{_*IhsZeVH~(%Nn-(QBWRMmzTEw;5sQrW245yYeDUg#8 zIkm?=t5hM1{hbfSPjP}#_IDYM{w~5Fz}dZ4y9fh#xWC(&7XAHQ{OsZj`+}LJnrQrv z!Auj~-w9@B%6(0u0}bKjS&^DYCN_ zbEq*p8=Q$#za=``(Wt)m0uTj~ENKp6p;Eoin;?t&N5Fl^r(RnMMOP8f2ja!G1q(oS?J)gZ%rAipCjMAs}9sod%j^ zfk5K_TIy|sQ{yPGsJ868UrDiW*;z8RC>Y(x5mw_B%7Iz<_z^yRcx1GRJ5{gwb|rxK z()US+h4hn2e>FG?=g^K=Co^s^oOi^FAXzAAOF5#wt+lV*H;n%vGDs7lr2imD;s0>< zw6KXI#IQbrhU8`aMsV;Z%(Hy(<{7yZskOs*b96XP`Xxr|MFjwIkA_KW7Q74v`7(L6 z(ggYn7-qR>Ypei0nb!PRxXfya%kYCTJ(D9p6DESy6RHFH+QC;s2&$B9&lTA@hU+{x z;!GsAh;W*dP!dA5YM)+>yn2BS(sQ-V1C#HDD@V`R^6=@w$Kkg$j_=yxPoMC9vQ+Cy z;l)kiWBePXQKQpPhaXi)LR2B~oH4NwBnZZ&ozQwj-L5S$;hD6bFlHJ7-lHAHo){N7K*CtQR{aEJSGCHr^w!$sfn6j z#t^gSzAF^(x3telka6K);L70G1F_0NBF)>bF=_C0ug2gi;T)EQUrK5e&o*U4fhCB5 z){1+GA_B6PsFh-8#R=`ClMeI_h)a#Zv+*3rwS)pi<1v}n-u(AxKc(#N6>BEa2ABx0 z7F+^a4BQqn%LIUEd9XheoMJw9HgM4nNAL0U3H*o$93JC{F-par1}5J)+0Gq}=u*DBPItvId7 z@SG)ZvRNIA<^(U|8=6<64lIhvA~h<0b{xgn6ZdBBog4jHxpEh z$vtvq#ieh40YpS>iHwEw=(*wvsN&pazfxm8S=wD!)BPG+ttQbtD!zv}y~3|xHL~wE zZoqVEdALp&ngu}s070JQl&D+@+Xf{@jf@3_7KHMHx`}NWey(TFze~MOfv?1iG=kY~-&Lo^V%}|eSgJp=LDe6%Tb^@C8u|1m+ z=iIB`uop-E4r!(B{+cF5JvXGbhtxwMwKJq1GwhhQf)j8DgXXizia>pP|(>;kd(tC#4nxhhW+$BTb4m zw%cavrTZJ<-Fm;)?)t5#DaG?Lk_GPU*J_%XpZcPC7{_086h|U{2kt?8c7g>=lr{qc zY+z$u*G5X{p8dhgaHdI_iIOrr4mBkNKj1YT7TiH7out>arDTXE3$6rA8p_7u85B-| zoA)KIL#NlG0h2OH+iGy~xGkK-U*pCoh`bTESSvm1|03i~%-f!%*X(bc5`wef{G-4R z417SjScf;^vd6_pH8YJUi9SCc{DV`@z#>0UxA>bKnnf?@<0-G=L-1o9@bus$O)oy| z(W1Q$LnVjfC+LM}w#2%cog=I?KKwH5+;KRJ*+jN|bP-1a`{nG}N{ zukAo=D%5h$Rsty6$y9i_z1>DHt+zXJbkC$@2UbCu+=x;g0rVh>AmJ|iC_6%aH;y+m zVZ;SjI_#T+?Xw%xPp6(3K{%!N&W;r9jtp@(c+fwuQ3m?z;#(o`=b(#_b3MfQdMG)Xq z@;g(JMSeHWlCS|nYMYdZB}Oik-#E1c$F~t&bAURod#1Oz0(0>g^7I^tO*^pAa#tD1?;MM_Ji!uNcwB`+qSJoMS`~iS5jQAIY4D@<>RnA;=w3~1j-OI`AFE!TfBpK z07u*5;yW%(=ZPQ`w?B@7$G3m)?OYrXT^eH|B=z%TEgQ+Dpj&Cx4(y3L9D&)F<8Zv< zy*x((0YVg8bDR*Zxef=N=ZM#TbPGaAiBXTZ}ZDKIk5%oX+TSD9_QgI|DX& znLmbaE3Ua?kJ{43qvo>Pun&y%*CZ+1Fd*Z;!2UcmPZX1cJe}wjVMgXJWps&A{W&*r zCi(kfR2(hrA^(9zW}e;%-B%H%VJL`_RWxssWn0_;1taN6cB_{OL4hn%9E^T?0}iV1 zS2rNjgDJfBCp|%{@?=?KEVvYN4xpVH9D(l{Crf+Q#b9U>?7s_AC#6T671<9*=9b*= z*-~MTO5GoD&eZ;7twGmuXz5x*=Zom=Y9%%zyDULl8l}(_ zev4(6vMJ4c{dXqds!ga0l{Gp<7EY>Bq@QCEITMjG30*hK#$yOu&G;FEM4PqdVBSZv zC5iN6Jf6+QE5`&3NO1l5nJx5Vk!1qfvl1+!E9t+p9Q&W$N={l&E5b$(hPJJ2%p9!0844PG{5=CY?t&9m3y>hYnqk6~qn;=+ZiZA+1;07{>Rj&@(Y;T!p0q ze+0b-a1N9;n{t9@DS4f@z=*@lNvMS7J#O6W?nBuOfo9}5*6LUePAJrKaO_e#%ueeT z(fZ11SO}V|RcRhCs%KudCf)pllV-5=7 zG(C2Eaere%DAso>PQ}UAoFv5}e{t?9UX}=2K|ei4>*K}Ps37lCLUS0_cthXCj^bn{ zS&Dj@Ugb!wO3-r>z~c-PSBG;FvEfjHULmXT1_*?CdHMmN|A@yMJ#=SDjU-iItQWGy zinj{tY@SE0UP=RZIZ4UNOim8n7&%61llwuVAPJqxU^P~o+=~!VABT6gaQ=N#A4^JV zh0`=a(hQMEJx5}aIEI+;pr`3_d^p5gbKE~g@vS*ir!7O9obYnbGhPwrlkSvF7(OvG z&>m1Il)@5TKaf+j_v$d4f-+#jEBwKJsWd!i!?-If(2Y{hz7}Q}9L5b$27xlzbM+qM z*BGi!c-o>rWuG@TFneb3cU&Jwh)-z&*0Xa;>lN?dA_+8sAb5wtp}UYn{eettSiYxo@B?73_fyOTaxOC)Y~p z`@ACqo2KcpV3W^4!KuDGCn(j)QLLh#C8>Nz7ul9n9wFK|IK9w#3|xgU(N;6P!cn_2 z7Z%{qx6oAM3XSAHi$rPYHl`1Gp{}Feta+PjIgSa}0vgppwh(jB_cfdQlQxdN>)3}$ z(r3}cJTMG(TMhTc<6W;HdO6G|?gFu)O%rmS3Wh?X1xS_qS10`h*$SDAerhwWg1`c* z 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%0A0y%Q)PP{O)Co6oeC`lJ=Ci0hCxH0 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Π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

hlGs3f2Lj5q_uW(tTaA44MTGFI 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

6vI^=$4i6%I`d6P~ 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

_8HQlE#SK~kW7*WwpnK;Eq= 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 z z-56GeQ*bA0aU>1y?b>%*SlSeX-HzuV9{iyn*GWUEOIWdu3;%A76yG?SPmoHZ@f*D% zc7MDPwWyuk>X#|5kHRM$Mw+RTf*YU0e&XM zKga7#hTk>*=lT*9<)QeiDgL{9eDCV`iaOG}&kv?Rb~3oy6kKigu8vdO)xosg1lzkh zL3~g}TydzPQ@s(ki9LrC{jZ10f>i!$`a&51#9ykpar_Sbl9)G$BhI$jJ!j1uus~^@ z<-eH|6P{KNn3C^GCFI@I;TJb0-+vu{3YbR!FbyWeA$n}=;T^MsYC@}d@0h2^`JL7# z!4&_$xPHqZw94g4a9u~xo8e0mZ1HL_KsneGx><**GV%VuUj!#Vii>o{MFuBN&`e@; zSv5?$rf`IQ8vIQHK4c@N#2*0lBu>a|Q7|V5ai0mbhX_fhkkofP6C~6S^o^U?2KF+m zM|jhGZJ6Xj+S2~37!XKXOr3qZsG=KCQc4p zL}8EvrFbjJjRhvTWw@6uajHfzq)1PUPENS}^gh(7{cq1@AJa6<-uf2M| z!0Y!8*Kp4H2^ihRW*L%Yz`;-^^VRn4b@nHOeoBWhDFl6n@U(@yWw+jx{*N_T%4goP zM>Q>U5u&&s6|(|gY4IZXWSCGepRBoD%rkBa6AYl_(PStd^Bo}C^%0t#5Xh~0U~&X< zz23CgHc#a_c-DK<06H>!149xWw$=ybJ9WzfQGt|)7MA1n8=cumM_Kh^pG{RBz@zFA!W%0go1pY1`LtAJy)mT8C3tZ;v@X(&A)h1>rGj{+0LH&~zpWX`1oK=eIP5Ke zy{-h`_(4k9v8te@G8e7q9m9&y?qeGwz3yX4?qfFJDQJX7 ztmM8T=xz+Uj|AOKLH9{@!js$+AO@u5H3f@)SF{M1Whcra{I%BJ%t_J4 zdoeC&!04Ck@D12q4t^3ztK&aIDXW1fG_i?^3k?DJ2HGcU7^`kHrg#euSHm9KVWkmb zPBlsPy-4P}r(G#KNbuZmYJ&QnvSVOwy^7w0_H05I(2Dc|N`T$MO?n&H4+kK|S0|+) zrwqHvofL%q;j-ff=qDBo@Rl_sWpI<>M$0-W6?sFj9+?wO%=um_ADg}r4VaKo&`<`g z#0EWyrwl~;DzBZwrYQx-=z`ezoJ|SdvcuJbf-q8=dkp162dGaj3gO3lG% zG~>~KpaF?eKr$2Bs3vHmIv~#0uH+qo{ZwI+qZN|&G@`k^KE#m!uh+YS0l8JztW|zyOYJoBWRe zlUmLFUbyR`Q$+LzLMj-6XO2VMX`_qxGRf2`CzI&F4;5)HqY86Hn&3fYM4zQH>O|f* z1xFB1pqXh`^$g&V9YXoKx+xJ5CxMA+sxxI1%suH>@Fu6AjD4PiAMA7l}N%Zke zTRuAuxyl(4T7ks*Ds?R*p-aNBQc6vbX)>97Y1cz>R+6vJ5|I#tvn@MCG3v8TCejJ( z2&CljMNdK(MS9ldP0-rGZK0M!dbt-1QT6~#$qKJ%6{-$` zN-K~Xc?w+y) zX#*x?$lD&q?lruV1W7P7)RCz}6OG0lKv#uPFc?ZtXpfXBAuy0h7)M9HumL;O_lFyh(xX$zQ7_rCW_qcx8Y1&8SaYD* z$$@V89dV|hWmyEKChq&-Z9h55@YaM_2XaCkf0e17QX+wte-Yg{uJ^iZ4}M(Q}X0hMWPS^rxn-l$TL!L z8sUZI#S{1pmY9PjCM;!oQCOBqahf}hUZp%*5-eZ~cL~8Y=HMEWh_8Ad6EkhS@<-jD zN+=8O*^a!q>cQ|R#^7~Y%2{DiwqFp1fQ$-@agT6&r^Q9ih?|9C{+&I{z*E7Yu(LK2 z$pvE*w`Qz02iNMQ{A!!F9%zFgj~+r<91#Ju3?uP)HC`(Sh<09UaIGt^LPld{%a zf1@btxgM4Wt_CkG78kM|@&OVC76XVdQ9^^bMnG9_old7bf^CBRf~^rpP_>bPKZ z`MDT3wBDeKWe{)3t;U9HS6P)d5`qZxl3%8?3>+TlGJ#BOSf49Xa$n~yF(sG8d9&is z#|bc-70HTMvdsAy6`~rm(W|j8Pp@NJn6W@nk!M;$Cc`C7EFKF03*t~>#(5{sH_N|7 zBvcRzO|&?)Vdm(e3?x-1QsaORyxq~tz~|wksg|W(RJAOF6S*%JCCPyl8#)D!?4pY* zrU45VD|mgD?HOcWpOrZLFBpTTWs+Hml~}&?9?^ul#3Q!{@1xl^iKor5HbIE~nK5X< zz^=n@p2<%v5^%ALyg3O)6<JmjW?qBFIf)wGBa&iYTJ z?ruzulkd#PBju;O_9O^D!V}_MP%=987M1F)WC z!z0SuASqNwDoe9vPcJB$p9`{FY=*s!bz;EnhAfrR2&w++yyi``@)nw1<74FR;0;)+ z2B4#f?C`7ae8uz@M+RVvU?m267_v=k@@W@satzqea2iT6gZ1)2YX9_l+?}VU0ORNb zwAGTt$b$7)IhKdhP-$#Y_qxE4Wy94}5^be}Z45m+`(D~bXR%(G=o2?5)Mp7QkR@n> zAoN8_NkWm*R-M()sh&Z&f??6(X^MoM$!bte#W?`32iavqXB+k_L^+NOK{t3zP{m;< zAG9I?Q_}#{-DcT8HnV)}BDVp*$(9EpHwD=sIi?7Fn}|2CT#`J&Vs}rRYNWsm*1+Eh zTrJ^?B1A~c-1EGX=?N~BV=CUE_5d}r^3>i>i>l+Q9c>Qhxsgz5 z!r~O;T7CU}qD)4B=i!GLa$xF5H9OFoJ-7?mgy~f=0mCqNg!?ZH8~$G8S)A~<`E0`& z28GGk52}<LXCq z#p!!Fp}U^*lQQf_ELFDy`2QA;e=ri^Pm~;&AzL0iSZzNDgA;M-o>sedA!S9h#?4!IlS?29~5@Tm(rO8;H2^PaJVM!>)l9eH(wf`1>_{ z!?-LkHJ!irYI&2*F}fTJ0gL6S)cm>2N^65-~jBK zBlF~L=rab)ui-#`B0i}`rLh1A2Zlc_>;ZDrhIkxvV9dfUxBUoNz|1`Yo+v^P=V8Qw zuYO;%K~C9ZKcb)P^l@Rb5o6yV_o#ULNkk6x#*bw`2QeSfn|H)>?)D81&)d(YA6+vQ z)WY)OKNUCn&Jhs!@LKfhf{LEVxic=P>i+9M1CU2~*+FoDzlbE)GZN%@J}W1V`GE4W z*E;Oez|3Ef@{b|~M_P!e_h0xbDgIxR5BepU_B*1+LW&UE0D>wTp{zc%oQ!P5uCnU_?0%8|0^GLc9JMOb8eqX#LzBY?uyAN1*qjH2>oL-cKx3 z{81Z`bna8sd#PCNrCo;K;lNyucLck^Pf#w7)Qj53zGD*#k$aew_78`n_$Q1R!m-vx z+`IgwJ)}X7>zaL+?nKubqti&12guxJSf{aBs*-QLJwfu$xxhJVFcV|*PE_%ZlL=ss{`DuB;IzAza zrszOFrQjr8!h=$M;`w5brU67H$+GOfEdA56&pmZ8(sqoEw9&lIXO)Hed{|(q0@)T_ z;NLYARjG6HY=)0$x_jZGW1Y8a{|@y74L9{L$xQyWM+?!lcMQpXsL8TF@1<1SNwY(C z{)BG#Q`^-)yJKv-yMr%^T@QM2IbF+W<$SOXXasWoMwmYjjon!|3})LX)mU&r9Z}n( zW69+~o`vDtbtUn&q7G2cc65 zh=+-VG0tw)3bvCIm);`N9ljRSfb5k(<4;}nkB}T8ufG$0_LB~mVGg51?Te9y1v>4Q zqeJ?cp}hmN)$gv)ikGn45WDd=fpAgEKJcG~GSe0#0;ktvbKbF|fXN+`GA*tiQE2fz zEg>#2Mc-RAxd@_K0TC@FD^9@cMsZ95HUSgFRj|_%*eVRT9TxO(*t-C%EHXkNd9&hK z{usQ!)Q>cl%0gPUTdE$Xyoky2!&X%gc%fAlsswWCCJy)_k%J?|3ONt_ktG;2F3Y-1 z`2;nsxm^kvi)w6AQTIs+upBXnl4JXSxo3im_JnlCZ0AmLLE9S%O~kQ?G&Cw%;OWUd zytt`X3P#epf!FDJT?h!+GuP7FCb0GknF?MQ?0 zWZ=04&pJGh;31no$MF0U4;dYxGo%@`eF*!z3JI>kGZN3Wc*f!xk7p8|DR`#g>HOES zQGB;>z7TGmsC^$0?{b8f2PKpKH;n%DkB;|_xXypZ(4Xc%iT?~2`4bT)^Iyb8{wQ2< z#XFb$|MXW1q#@GqjKwn^PbQvhJUMu#<8k1bgJ&L|1$b`9vjmR|&vHDg@yK}A;TeR& z55Pn3E4sWd=12X4{^)`-x;N|@$js}{cT_B{yyJG;a&e$AujnwkByM%Dvt8M zND`g-(I5HK;m#5~Dp+uFS3_mxK7*7w*&>xc{HP>-@m-Yk?qeBz2!lA`e+vd9HFm(g zhv5XK3*3~{(buMpx$gS0=?fPvUQ$>jb$CpgoRw{#0zkvHGOWY+9?GG?AYegNX9`ww^DPHrtlJp&(^LQfO1M2}#PdvTxB;dIM&sBJahr0JP+Y{9M4mDp2PDpo*F#+@%$dodw3f0 z{0YzJc$)G26VEw3K(Ul^L_B)AQ}I0pPdc6ncqZW?QO2owa`DW;Gat`lJS*_5!2_b36~@c?{1Jc%H=bYdp{4c>&KWc=q7gkEb5b`*c>CFI%U`HmM&GWthmM~xB5T{~ z9R;&FeA^>;P1yL4M|$o2>=pWM+W4=hCk*=LUwKm>{u_NC|Gf0Xgug8-`|XK)29C$K z+GAv|8!9dYAME>HXw`{Z`Cz{ngN^J>Fa&f$xTGWhLE;fAiL&-IG3qRD;y`vt7TB>AT|9 zfyFNlr6GFzu;_%IQ~&k2dEd*$W_-8xcz#*038#N|sPKv3f}18i`kTl1#g~3`>u(Z< zUS_5A{a42&Bo0ow^`j?bXvj#emWhk{zcL~6uf3jouP>!PHTktGUZ@!*y*IYUKzzqN zz9IU`|GD`WJ4#MCZTQZadv@N?(Hoc4Cf)G*5PUb7-u&&b8}c2+w~p>f-TbAZhVPSi z{d&KD^txNG!S}rK%Vv%Gy88WR-~9fq5%`XKzU|4;cYOWP=E^a#srb(Pm*u-LKmXN7 zt&e}?Ov88e%tbe*FU-5ScEiiRxE|k)Lr!lS|IM`p?>_$I>2dhp`pQSm6EFYu?^>=} zH1h_0r>s9TiSQ;#_r6H@erb2jFQ&w`{o$6HKCRjK-jVv%S5pt&e9PRP>G3)ERwHMQ z&E2^Ex!hj`OQzx5@lE?C#~n3izS(X0UVv+?&&#{cs7SIx$E&38Lf=H60z z&{>ptZ63bca@O8^%V(Pp^gU`gG!Nfn=awHUxVd!uFK6tEUVv}gvA3^UxIg)iJ^p#1 z>Nb2k;_d5~l$QPCz%Q$67va0*ik?UASl8o^&&?=~DZ+Po?a)DY)*O8@rS_M1FU9xq z**D#_^0wMXmOSz8=ga9kZS1VEjP^*Y_j{yRuoos~w9vB7$dEj?8l zJu+qF7%5j?wQ6~ZZB1cu37H!lS~A?WWT9LLGdU$OQeMfzI||2<;hgy+7M3P2EWq1U zn(U%?acOcfy-P}yOA2f&N|vlDDO$R`&^ABhEEzd+WI+rJ>Ws5xEnK;Bm26wOa;dy@ z;qs+-7uv2Kx_I2xB5(>NyK-pBl{Sh~vwq?;{nV5 zgPyk0mitd5CT>ZzBQzdc?thyIwLmhe- z_T+R)i*ZwK)7S?2nq?7|{RO9->W(Fpo^EdKMP>q!#U^Co=jm-z?y2fr=rNiJ!iklr z2#j8ful1|2C${W|g1vebK+{D<2Q5`!BB>@-pL#lD%y<;V;={OrG4th4Bq!yF@(hTn zk=$u{##fd~4;-hndc?WQ@N06f^<|lGN75tMqC-#Lq29DYgDn?8JJjGdmQU+pgDVKv z;vS!S%36hA1YE-JUoiG6{BTzf)KDqj_fX^%eo*d$;xYN1CwcfhWCP3FhfPzo!fvLU zeMo7=4K+-zYbxDFsWrnhKj+ej7TkpvRQCXa`s`GI8Dk_`aK(L03wk^YDZIjCnt0cL zNE611LB9kBNnw4fcs&i~pD^09_4whVeUy}&H8)#I%z^2(Q6pC@Ub{qEs}qi^WtcxL zTnUO%ay6(!v2AVfQn?U0EgnZ1;t#ZpJ=wPe0sM zE5R=hUhld&d0k4hfw&swPg?q+rAFX4_dKuUxa@KkU?)&?t3*tz?zEcyS@mXfjOg7Ruy|k?7a}e>@{z z5OID-BA)wfB4wu$GR~ImUcG$jV$89&C50vO(v=I@&M$#SZ(hNjTUt?ExNwP>16d#2 zZPLh=W{(6C)i&VroGka<80$H=l73c{#iE@&=hn!=M5U`eny3_RIcRzd=q3?8(qDTQ z+F!BIs%J~SkP6&5%|(~Uxq8q~FZ$sYSnvQydYKumGBV_s13!4o4S8G-56|IY7(Q=2 z#Z8M8-t5=gA<{d}-CYQGBQi^Ud;5?D+4PS$^rc9~M>r1d?Q9P~2(@i;`o|mpMnf)< z=;MYfMAi?7a(ds#9bz_T6NlmL?hP_%*kI-g;_QPuGE{`@QJTS`Ai^^htg#65pP#L~~v)=eR;6cM6!W|3!br&b^0U!Dx5bCsh ziGB)G;UiW`qvRE1Nk~V5+iDZ+AmPypq zdT{Xy+lZoK^ef7l=^3PBnV#YLj!C#{2-UjlWmK!az8e*x{zl`{?l^J50s*Rlgjv)U zdYLz+e+mTStxen15JtuL`jo8nPd5f!%aKMcMD>)aHp~yMATkN=CZ~E2Kr!7Yi*;?F zX!kuUn$$WqU688YgspS=SxU^qlxkBP=AGp+)+>nNciWZAK$Rjw_C!X4y(#QhiXBQ9iq&x zhXE*G{lZIG#0O}p5=`5MyGJ-rlZ%clp_Z?vye2Yw9MK(WF+%gndnrdtfW;QdZR4XN zx$6nU@>NmB4)s2O4uSE%8V)8IskLYXYydtr&1qPCbL|2UH3g~Fx#gX3L?}>uz%L9( za~NfeBduaDhLs@#Q1tSg#w-VdH*F`po^A$$nc#7M!Ss%cDWNr?$DIMFzU@>GWL3V8 z91s>R-)DehoIBdLJpztpqnzqs6rBZeA$}XF9L-v`z^TS|@l!r6$7LO3*ytGBkBv6S zgEz%g$CA#9Wq&OUks0J}o`W`FtC#JN!2%f)xf`9XMs#L%KPp{AF5lDCqvqfG&LJKq zqSJ@!fEu`-#;R1WMkJ;b-F@bMzFTs{n*W@-uldjSDzgh$tXhKsivo*v4)0l(me^>V z+g7byzJ56D&@L<~gn9P$YZtD!4O>5IWs+^84a0t%?V`IJO}2g*7A~&xIJ9kq+W!r7 zId)rAOUNCmM#2q43s{sJHeBU82@Fwxz00WnVqSFplCga32=@dsCgZ-|^*I2!{Pgn;{V?sn9leZzr@G9sy5Dr_c?R`EXglz7{`fj| z-);JGo-BNs(m%00@MmOC=1p^3f@zynMbu9AKR{N8X zRWc9CYGFkRG`}vHR zCjLH?(i_nq`qf2#<(#W3C@@NLqgMCLMj{ClGO_uQ+@sj24K@?JjY@U-LJdCuK1vk_ zyEtfDGCs9s2u7{iJPW114G`7YILFqu74_?xEWP$Ps!(`Dr%5n2OGK$G2K{Cmf>0>+ zca+>l$*mp9t0}obbt4X`n@A(X+W*3v5QZ*}`430_I4tbeYC}J4J;sYUTF!-s^P=wp zHimSu0jw+3B!)Qjy5&o3i`L79CAOmC!orw;vn{gauUd|~9Kas2Eh%2Q zrqDKYvCXxx1REsV@`Z~Emm`;p!~o$TLUhgiiP9+P8p)O&+E~#hN$if0@rbb_$0Ftk zGDnQUUEpD}jfcJJ8$`JggNa+0M7E)0Q6XOTa`?qiAqfco1`}d!a|De{do@@f^4*T! z$n$ppF{BGu*@d86CWb!dKcez3U)tD?Iz=PGAX6E&Q$u`Avc!x@+AwN-?0m z%AplDV>{IaCMVg425GR0eCqh(?{%v07M)&hUjT0}SDmQl9&BlRz9sNee3|(5@uljD zZ#>+deGFc{+BFLWQ2zy*TV0in0P+1*0fQTa9 zfXoE?(DIDJT`uybbrPWRc9;M=)%PLrfQZ>7FWGLtj7o6xAvTL(>I-k3|vB8iY|{?+Wi z5mAtDLZG|GX(@fKT)XSOA2!5PZinl6s?Gu~po#B37a&66f1vR39BvNoCT!|K>XSe) zSJ_haas>4|L=EnyW>b?v{InoUvAXY4^c5!J@)`k(_vrVmr8xpy{aZPaIc!t^KY++V zzd#(o6VTbGLQ54YO+1%|IbuVoG~aM(s3q0DB6VO$Sguj<6W~O1tF7QDqmjHmsz5m| z_qK+E_?Sas+>&_-0(IXKY6h3X*28J^1<`O8-*N*j-~WMCfZlkP%6ahPNq90G)QGr6 z7cMdN4w_6Qp@KTp4{qi{kcB@o-y39_p^bcbn&_bhd9s)NbKZyoZeb@DMqfsGV{0(s zX2iaR-?dhreV4`TJc2K}k=+#NxsyWbq?lk7IWWH_IPlZgp&mj;Vw~XnGV;9Kp+*3O zO4V2t3g3fjn-VY+Us3yI942G92G)LwYvaf@054#T78Y`nPNI^6yD6oHZDKCE`t}B{ zzS}^xiw{iHYjindz-6Mq;~Z!XT*>{VBfUe!nLu%T)(5OxtXr)=v;N%r3+sc{hpZ1< zAF)1a-DZ8v`b+EM*6r3OtiQ7Eu+{y%SzoZe zXno20vh@|~tJc@7yRCbyuUl)ZZ&=^7zGdBO-DllzJzza(t+l>wJ!Cy>{k^r$T5oNz zzGHpYieg>*yM%#D82En?1FtcSNSLD0+RYDQ@$T7oJ4j8$hSW|Ju+N1Q5UZljG%#4z zv0};K<%MO-BA7Y~U*hk&-e5&q}9(Uz$4)EKoDHEyY5tP!3Iw3b)qB3%mXVTYv*fp&n2vAeXrR2vGTMkfDoF9)_7`QW|U3$m&Do=XeZ`?aabIKi&s{TC?@{M!bLdDT~WAX=|USeD0HA37K`>- zj)lbwSAhFnd_gFk4%1b4g)1eBXs0WEn72Yam!jfTEBFX#IL?1o!DBVSDI_=(WAsyO zo5njGi)AY9FUm}*CsI$>S2d%nqK&YzplejgRaeytLxobH%yV|RJa=Pv&smpjqkGOg zXG`Q!p0l$1)*#=}rrzkr^iCIW24-nKW5|bLk}ssqHUEL^PdSkP5Z&MPXEdpg^K+9G#HPo|>tCsBw9wCK`e9bh?z^!+ zv73V_E^9yCZzue)Ke_5>G&XE>8Qq+kcIBaCDA=Zm>Z&HZu@t12QbnF`k+rGQ#>fcy z>P_se8>DGCZR`<&JDO^n0^Kb8nblYAqjYZ_#2^FDMDD#QavUeYB?N~O>A>e}`WdXj zcev(+O4UP@YU@@iRh;LZ1j*gkwJH?cyq*hv7YCa?_ry!?$z*Swj1^{-B)Erp_Hir1 zKmemYBWr*=-m{O}Q%>-5!)9dJVAbbPVyIAWhg??(Bs~<$uTzO;yPk0wTtT^9@WUx_&zQ6J6it{e4WaW~Lu@&bt$u-rV zh*!n=a)Mo|--l6g{`T&ah`3-Idsm#_fkm{X@-cjgJ4BGUhaT?#3%v1HS9KEEeb2Xz z)>oZ^8)FeR(*5%QIuzdCCHw#d`p4i`q!04JhDhHHK?hJe$=@dw{;w|KfZs+@^z>)D zgdd>or2mhIBH*75%fBar4p1ik-J$T7uHnFg;Q_HoyTQZ>aQ?;_YoYF* z9T=eVIxVhQ_)@-sn2tIs$G4sN-l2MKre-!ORY!n3<)KFWx+I4?6SmEF(?@VO1*ng6 zw75>uii*CT=qkcrrxI!emE6VQCZ(Q7%QB1?39B53x^5M#8E~+Pci-`WgeqR~5ieRTdE%N1N*(s%RJgGsct@cry zZeq+my{t=2tz4JG+v_75p;6P$ zkOXDD5L!Yg8LS*@Rnj2#{9CAqLXUbCHz2kdtUXa!oZ%eg*(t%5-^HnKHK1peP%15i~r7 zl$f!yM3mCMXaKk2hz5t4_f^ySelHU1>-+!mT#tF@{3WXRNY?&IfEI z%U8)@v0prmdnGgHY4vMgiFK$=b`{!I7Ou6e5!`$ZwGB&6wJmmGt-6?&s!8LB0k19I zXCSVKgq5-=L3ZJCENQzypi@Mo)6NR#h=r|~pzJTfTS`5F>pnM(alMup;*tOP4njS6 ztZuWI3hgh^{Mf-H@8&6cNpc&qC?)P!fJDa2ERg}@z*uU&4oI$A`l+WMUTWU7T4#ly z3i(|JKP)=l;B5Pd;>g|nP8N6OcAC7`(fe_PcdNyxPrgy zrMZwJeBR-L`e~!eH{K{2$h#LN%DB|aXp5ZK6?Ys`LG`3IJ3B| z<2-FWHms#qmG7c(*DeD2J6<%J0=II`F&K81DuQTq?V;cY5G-;$2ydVLm_wbf=Xh*A z9XTGm*$w%ty|_OIS)N})7;5;6xTIzt#I=jB4CxI<8a|B?={0CLA57AJZ7_tL_jB9=Uocc2|7YJAea za5)|HueTMhTUtV7fi|fZBNybKy|m;`TakM?&hE5vOZODH9vy+&MyS_s2in7!N|WSo>{I`v4Fet=Z~*;797zZOe! zAKlK=z^Cyl9sA!rm5%+7p_7fXH_AEXWsP*~|LXN<_^U?Yr|%F#0*?KUIn~ zLa|Cfk4Op_-I~svF>px=m}Ckd8bKtZ9tMLu@Z2FDunV4Z)p^OtM3V_7d9zcH7FH0V zl%4Wd;Ei(%cMtL|TMDnh5@zk+>dPV#VHquruJ5`5)lp}nRJ_G=_re*0IIW-7&lhh{ z@{VJ4G^isv0+H)M_!Nl93?ZTsYZ+?B!*PMw&?$Zaicd{ysoH^};36&@!*E$*Me@Z+ z9vH^~GNeXO$lgKsaaBbFqh*j&Jjx7ukZ}za6kfQG*^NuuNbKXDP}X_K8uTYHkuRy3 zcsq@7T(gwFERN9rIkmze2pyeL6H#A`Z)B0LA{K^s3dnH2+6EGUf(J=58)5{iWy?`4 zKh&qk04)hfqxKjaq6OszObb?&6D<&z(v0L&W&V*yc6?}j9-~d?^Z0K2-tyu=;s8bt zT*trD@#|%tVC`SK`>NVMr$x_(+mP9Aa^pI?WpS?h;nW{d3tkCHO%&%bZi_@c8rhGG za~-9KE$F=*(Z&();)piil!Fdh9cHp;J3RBT5up$8C$B(No^C;Y`Wgp(!f>W(#YS!p z^&y~1HBlz#2ZivldI9n?s0E0_auNTb?#7BGC96tw`nO(F(9pks8a)&wO%wDMx*8gH zuW-d`nMJ=@$pf<5%mpm86|Vy8PtQb)(1o6cX?tiiG9ipcS|0@+&}d}0kULU6{|I4> z<)9$GbPQd{^%?z~q93MaJ24-Mery0)5Pm-R0hPU((F|<_b)EYC4H`9rXe}s$F`xoQXGl*t%2kgFj&#aX=v5291JAaEUWWl~|Ox(um1>$`LisP_PNuKM~_+StYN z#!~q@{IIOCRPKZWOPe@LC2%FtVkTcbg>jFogdFN4nOX*NnPtxuL5uSH`36Kd)mFr2 z+EBWR=nw>dh#1TWAu$IFq9DoD#sy}8Jvl&xuL^|^)5Fbykxq3HMvI^{gX^Nd!urYp zssj0C!U=E{B4lHTkZIybW1uI2EASu#%o+|_3AToEs4L{cLu#0*NxNmsbZiLKxwNQw z7d2G(4G4{%(co)f%*kR6%Z(Kwi1xzmS4N>To$o_sXT~Na{%wX9~%;cZ$?SBFaXIx(x6+t5(@oK={!HiFpV# zt&~e_VBv?0xrY+iR;^en^U(p(mLJp)%UZR1y)JS&idS40l|9ntgOflsNJ#35dKS6C z7g+uzq##@*i$JabmIa=+mGThq{o7W^!vYx7o;DeKk+wB*av-su1wN>s1_p}s?CvF? zvRmWdH=*$`L6EKTd$v-e(&ZcOT^Jm=f!Gvc-fx`Y`ih$Q8~XV!)ZlHHE5sP;jS`4X za4O_?eaNp7enQNC_Ih#|>#ByMD(lpYaXJYLi5y{Ec->}i=>zS`J`zFku?P}&Gq=s7 zq_o87U*zQ@IamR1DViW<;%dT>43jQyG(4>M5xC8VDZyQ#65W6jft(&%M=;~Ou_S=5 z@VOuhQ#V*1Abajq5KR{80X1tPNiLQHQjd|BVRb5!^io z(AC1hw4y-?St68Vbyyf>D;%`CvsB$DTo6ksg-fjUs)tZ9=%f-A&@gDJ{FE$}C~7%sr&J}1GT;XBdUg}` zbkQB^4eCy0O!YHin?F&=FA>v~MurfqajGw16#~%{S}EU&z7ARNwFHDf3o#Wn+ek6M z#-0Z+8V>$y`bDI$+Kxis(fXKqm<&H4(?%!QGSt zfA-{Oq`5h6Mt4i&+>fLoxQA%B1>cS3rQ|YA)~fWC%~Jh(GC(Uw!*`0tDry3noAur@49e2t@0LPRd|Pc`NCqGm}S;VAo#jo zA4d$+>(kbP!)Y?+o9k9D12!^I67Ej!g-+Lkv1r?muv-wk3nMVaqSL>+o2$g)(hEsk zTAq(z=3}(p?5-#NhEvUl{JDU1c@eG@1{Ev^6)cy#J6#ok3&}p$cD$Wx6u|Ck#R0sC z-N)(r75oMACLnXR3BQvf_zD|oQl_OQ;?d=94c9X&Lg<(@a z*dw>>IpG`so>F#vQw;7VP;%QgISdE?4!h^?;?gs?JzsX)WIE`Ns?I%W*@H_@<3HSF z;)pFD7Pk2Ao8Cqj+m=Oo4o23tMJzp7J`2PbmyEYmon}u@Q@iplU5*Y~k6r8Wh>cih zp7Om>{=)Y`?D>38%m9F;C(5t=0#~XYUz+A4RyqM$n%l;(;F;SR*ArbgxB1SG#^d@m zweNfkq&@>64o9GjxGy#uY57vtX8u+AYF6An+-|_7Q?RYCeof~}>uhwlRLi$m)X+We z1}xm@0;&!f@n#baGC}lv<32bf_SxI8k2k5`p}B=D_)c%euo9979X*|ZbqtA%afv!YFWmDGUkE*&`MIe}mk*#O@$iY*gcC>%BFG8M%BCiVI%TkAs)<9^$$FNIxg&hj%}_ZV_omyV^p2Ti}Q3 zI{q$#WmAoy0j!6u8K8Wc3q(-djz8;wd!k z6?Nel%(!&VwtB)L@`h&{d16a*#GyV7@Yu0w2i#jYEp*k)LHQM^t1Acle{Jo4 zppp>6Yxe^rcN1Ft;;y>uUDFWJl}A7G>4!(zgt_`CTNm<6f*;!Tg%yll<}o~mot_wJ z6KILdRu7yg2Q_2bo9d{va2CTgv>Gk|H{toK_09mB2i$pfArn6UU>eD5uFfM~0;T_3 zDs@O=B+yqChPB2;7!APMviDQ2d^>(aBJ&pC4?2KX&08eAFDYR>+UZN|C|jLf*u!gbmewO>H=*WM4zFD z;f4u>w%KBQPQ8)Z>bXTlb0fM1hMInKQHr6Wv*lKY+>z=MxI6E=X-|Q)Xy$~#?C|||8sAB* z@3;E}QtG3|V+F#)GpRl*Q+H$UO}iZS$KIRZv0K}Fnz5>hLE2t&FQ=QCvHR9&8wS^5NleZk~XPFaC$5_za!>4h9z?UjP*eE&P^%lychu(^qn0}o4 z_l%B|p(1=XisI;UY7H*>GInqduxIH|dv1Oo)SU zJN$GG!eH!Zb*(7cyXvfoKEd78EjmyKjU$4`o}~RmKuG&3oyZ$=2T(PykM^d%NhZfE z^|%#;QrpW8%b~sF0)$at6r-@ek6!_$;$-OjU>e)xJ zBssN%^~485gUd5Ux(8frAM77TFp2s~?*5v>hsDQxN9IcS>ArFf|0*mz3Z9AxKgYou zhvI+mLB!iq^%uAV0sm|7jvBvB+%I7d=M6*31lGJXnu`T2mVJRd5)%*6w_fx2Uz~!#ek*YyT6wZuOr4Op`3#@@#=N z8g10o)95TzqX}afyZuB-u0=@%b^2@ug_{F5l$yqg1XVj`S^JAB8#hy&8x}jvSQ=~W@8I}D#VEFiBXQggZz=0pA4LtpeezudmO)lGhHm!GI~nLnJsFDSSzLA_M1H~UJxM|i znAI4~XU+P^hy4;u7$`IiT7>4dd~69m#wQ)L#$lTti?f@>=ytbI+u|VSIeY+WzH^z4 zcE9(7KoL(tT)#)S?4tLu2&7GP$cyVeK>tEheOLlPgxjcv#@Uva6c*kog?W%S;Ro=! zq2fFfDskvwa0BrsfQXDr1aD~>Xr<^@PhpVrq*fO1GTj7BF2+2B>1gjFMkvmK&05TN zMa=X=mP)#l&efMTf7MJOxQad$>b>Yy$Axd?F<(kCpQ#p7bOT)z&nQga0=W}lmCmk zw}FqUyz&K0fD^9#62=ma{0H)Gg?pe)ReIoU{_ha0qA@pmo}Q2hex6dnE3;T_XYtS z9^Q89Z%`!u^gd2}EyIh`z=!5zDNQ7#BnY8$9_Y`pBAEltqg=5;+3FoI%0`G7WuA-0 zhJt`|*W(N^LMN%xXM#@V=@7&2exy!}>-9f?#_2~v9MS6uq9fV_o(7*J7Z1ShsK}Ll z1fId3r(92nT)+Re*&#Fn)Tob-9R*!?u!z$b6t&s;n_*OR-7&dXZOi0S(@Z`!g-j2L z=;Rb{R!%fHL64DuFNKW+S0`kDxGk+%ui*s}dnF1$w6|kGy$d2^TH_+sot^&|D+IyV`JK+5kKl=ADDr#Lj ziTQ~kq8CX?6>i6fQ%h;qOD~b7G z@I-vR_O=z9Fm9(7q}B#go14!ih$=c^Vx)1Cf)3a6;F5$s`iU$L)}2O5u3;5LIA}dHZ{UJhg#?O?$hJ3js34OMtHC zkxtx-?mRfb3))%VQP0T+6gas8n}$8_9pc=tEunvU-zC^ zq_*YaOdRXEXo(s)inM}}9P9mctV8$BXPBH{&2wcyy{XMnF=2U{&|v+f_E=s%z&M|02??1u_pJ^m)moYy8{u;})2E>3>}tq8vG zA|m?vr7ib;XUiko2dVKux5NnE2on9sIzdCFbf%$TE3qS5il)Vs9UVNILtt_7uUH>G zlzPirIX8LFt~BwZI1jx^ByUNL1W&=a#`JS+>XGo#(qerCCc3Hen22|cbrGAf*s@tt zC&_R=o{f$y7^q#OwpeG9ei0-utTI@t-+BRXVjXta3Rwe3oXwYPdsz9X(`HGe!``fu zPzK3ig(P3vYmLYqw2f1HE$^vwYUYdZ%Kue6tgOTYJ^}3eN+i-Vz<=+hH>?gMc=djP zPU=6!asj#+DW%?nePzaiQfV=jr=sYLXQ>+f6mHSZY6`y4^HFRtuujqO6{#!%hHqhh z3v?QycCcI~-XQxUWBn#p0{M88k!Ve%%Ai*1jo>6zAD;~+D0(|~1Pkhh`(Qiq@FuLM zG3Q2bvk0pRc;rlx;u8!|=!%c%#|7Hsl-RQ_9Ac2oA2<+J!LYznBA*WA@c8*gX^xj) zLi6&-{~mMJdSft7YBvq1?p-%%Ape3I^mo_rKu%-9I1Hb&KdiciyBas9 zVlxt*@l)N7YrC0C{jmC@=1*-ZJ443U8oQD$&%F0(n=7n}^|9Dl%Pe=@(XTaxdf{NA)=)ZKFzM*h!esrbARiK!6rH4B?48(SzXV4mP7=3DTmi=@2Wi;{Z;7^;ApgAf0D4O!|!^ zw+|}Gy+bbF#LnplCG1c4?aaB;)|Ab@_4awUt)27D%A4*;7p(H#W@0^<^NefqKhImHj0^!xmhob312%vP*H<+1hCO7$~$Vt&$f z_UuLT-39B{mg=N~6d!hI*}WKN;e`rCm+C(NZm8_<88%!;Z8_{P+E=axcYqEAZCM!| z>fw9*v+p3GWhIdY@-9X%geG9E)%O<06q*v`NmnQ|U1?vH0Bbxdyz)n65;fsq5n4oA zHu80=V2NP&uE4jx9V-=>p{z3?`~@Vw(u3$a^$psCElI26GdxNe7KjY_flKzPw@dXy z=r=E=_NwtM3+w|b*hA?@i}b7Xr_GdBq+Dnnkn%q$Wf#^1Zb~>&%5O=!*CEPXcYx|49_Os?>WIKD|?DQvZk+9(s%SByG@>R9ZU9 z>Gc8x zwb)!zZXl9eb)n(g_NGs)+5%g1#9Hr;G%U3>eGF}%ZY>D{F-z`=Nd4i)Wyq0G7O785 zDCw>*iZ+y{`VYU@eokBJ%4`183eB8`vaW`uuFK8H*Hqq}*sv6h>ybXFFG^_ebSHRv z>I*GeiL3cDdwmhKEnGF{Xfs$}WK|=u7KYRf*wh?Jt4~~oisHg1BNZ%)h5ityBk7#0 zKCzV2U1Uq+!<4z^9H)$Aw5x}AQhAbuyfB77thNie9^#uL_WHyUQ3K2RkWAEYk%5O(j}B1){()vf zj~i11qot5@h7?GE8z~0+OBPJ z!K^+&ftV!zIpb2~VPGMDf|OvIz=d-978`cXF;BS?BnbDBFUdhXFZG#m6L?-wtV7I7 zI0@|Y0}LzzQxeIrXS}!lJ~Wb#K5MYp#Bm|v;W;xO!jihxrhXBAgIECenS+wdvIBFU zLA*m*7j&#S5ej^nP_+dc32oHvU`C-5pMALU!96qZ?tEniPWuZimfj;opX4#>VS#nc z=WJ^C$b2H6Zf1Gx&sI!oDAArlcP?ongF?^zHd1e_|jVC8d!sG2=k8NRHLGm z77HsM*eu9xw3t97B;EZyU$HiUTM0&7&jRJxOYIaKD)`^~K?{DmLh!$k`~eXl8>18? zg#T2h(BaBLe*}BJgGk%LM#bA=@lyLvZ|}6JZD)svcE4 z27vIpz0C}?Teyb}4y*rTXNCHC(>a^}T(@+h-eFZgZ~n|yztU<6V<!@@>l*Y-jyq?RTQtgyO{oEiCsUTP}BtReH_>lYe5HulW zzaI#pF(;PMqRnLx|2}z@0A8uSF2qbnOp8OCK`PTO?kLIOV*_ zm=JGYexD)lt`Nde4iW=AfZG@I-j*x&c^-!v>^p>g$^~uiYSh~N`{cS~&f0qbT#X}w z%fb2c-o`qLSV`+B;v!cW8?Y7nA3hb0_qikmMw2)S+72&5P1&tg#S3zjv}#WPF>;Dw z;W12}#otauDQ4g}`DV^IykQrchWJ0OCcoImSN*O`sVN%G&&_VF{uMB-c)bOcBcw>b z0|Hn&A!<^Vg|j5hotDv^-Rc{nMj#D9`{`Rf63fy_SuTM&6IoKdO`uWwe=Y+B0S$|W zv9?LU8F!&&zNIi{15oq~oEfTh^h)dVoAhE)CVEdHqaY3sVL^^34us>{Frp7R3_a)f zU%4zcf!)X}=&`^N0KCl6nz(udp)vLbaD|G6(p5z4lm0Y9xRt&noa3zw-xi!RE63-m zbcs!KvEGh`g|UrMKP=VvfoEmCB)SmbPIFuRYoq|PtfxSbKyqQx%Kqav(dSX92uH>> zNQ~(mB31{hn~7GN6?q*b@G!-nO`dth9Sb#Gwse6zJ{Ocx15H=m8L|ao%%G5mcPp5- zx!hklP1Rfcw1ZC(_Pa4KU>CN70I<1`008L%9K^QNW>V5|`OzUfMuA9*GR6oThQRC( z6?>FR2+ye(X(9fuZVY38gR)8)UwH6;fKmxkuDUbTBfO)_G5o&+3K^g*2p+l#Mdfy`a_6uX_o@9a{H z--Jgo&QlJHABft-YWmh$v@=~GG|^`A;j zpo_7vPk~S8%@1rPU0^h7owt15ckjr6C>;1-(?!B$P|5}moVD~pSS7Y@QF)qiin#YC z3?45o`VtJ0ID^si_?09e`rTsg$NAP8I-5%x;9JXCce|CW6Y8jrBJZRMbK?FI$RPw; z?<8UlG#HtkbxBB1{;fVF!BUB1Xt4{&RTjwD26(rchl2Ef#3Be;P*(xrs-0a{O^j|$ zk8T|w-I^x)(eJLxS@(T(SzByZhtV;yUIBr*3TGBatXocuQ3;I)8IQJ&|>?_fIOjD}f6)N{4^QH9Zi0 zs5;ZkdQ%OTL7JY`qifjvN&QH?r}(ReNzS@A5YAE$kXR5d^C&yxX6mBhOlyd67Bt=Y z3a6R-7u4gdO`;MVbNlcimxprkHTN>TkC;mhG5la5%Cs}FI6upp!e zmXp}tN zyy(TsqGJxxCQ+7XH3bkPE%YtkB(P{YK%uYi__)F#w7dZL;?ia zGl1?#;R=pO?xQx~K^H9u?2taH+(k%A3l0_TtZku%jYFK|*Y z0(TEcHh4nFW4u3(WgJf#Z=`+!(cWb21v28p`O4B^>M-I=fbYYB_fB(CP^S?#8ewA) zW;v`fhmB8{^EZbrZF_0p@C6?NrPqmx(%hNYtS9d!1_lvvGYA~SjR;9c(i=rmyxnAa zB`&?W`CM9f=)f%T2e+7cGpUJt2@lX>mpY6F$B;uO&y~_)$(rV+N0Il{Sf_8j4I@3x z?5{Epby6h`>Y>dgJlEY;qqD(?9zPy=; z5PVi2$OTAk%{*%2cwGB}KI)4hU+)*vA-dr+!E1FQmU*o!u1U+AJxyBmz?Myrz|AIs z*iE!vJ|d2j=_1G5)7L==#-_Lre`nJpTgY9}7AbEw?hFv?)+7+6V()t!0k+zks4;Zt zo(Ka6C9&}=LSetrP3)M^;2L`aCBcDC<+LEX(kjw#Ly*SrneGU(&%J*okmLGdZx?cl z&N|WAMjfA_nKUE3<2TV^!3*d+F)w6`_%SxtXh@KqNfzl3GFV7`w#^LsZaO4hwNpL< zULfzzZzA!tg7BE^l|FS|cynmpN`vsO;`-WZF^LmX_*sGz$!nG5n=BVe+~cYtC^`8J1r9XStL z+1=5^hM@z!9VL>tBlyx3wuM&Iq*z<5)AC94^DR+D03<9BvC7Gd(HM%A8maK$3ms^8 zOa}u-n=@(EH6~BWcyn0B^J3>ci!3HhM4Xs#ML8A}O1VOeb&m&;B3zh70rIzC4ZWNml5)u|qB`(%mRR>_Bcaogp3dPQn~2 z)k`s{X@Hw#r}q{PDL@E_lU;1*$tEne)ueU=x@;`Y03Qw%bk_b6WjDC|7w5@0RXh9_ zZKC?2`~S+~g-xttd%^dyZ?H8>-? zV&@yc!cb@=(07F&&N`WOA-o*r&ib~J#3~QDA&zpg)isnTt_!W9ZHbgi z37vII@sW?VqVXf}iUv9BX5)oH#5)&^74w*W^rBxJz43aWbD5teK)g7*4C3fweF;Xr zU-T?4b(%FOOkCq~M;~zL<2Kxs)jGIauO8gMI`@cC2 zbn2UH6-P^A7ip7)r=m&>O7b4MV|2Dl8Okphu%d9Hcjp$&bxNntL{rd;tf=}03GQzK z7)?kGVRlPBMOR>@#D!ZIs;4j$)z4`nDn&S!6_%5us zO7*=cRxDPd!OLD3*RJ=+a=S`JE8oUfBegg90%`M`XWzgBI>n@R(x4Qv?3H=%c zlN!d=v(kX`;E@Y9%N6o}Tyh(BAqR;WB?gc4V7$Dlri;d{xSd`0ij9~hzgDzak&29pWw^_i8!_XyEI6fIZ4o6LuB4Tvk$~|8r@5T zWd)mk0SMWU?KvT);^}y%NY6%O@P$h1IF9u|sHCC?WG~h-}Ds{Hr_n4DbaJuU;^^>XwY`H*H_v0jfl0I8Lso#+SZHx$(?YrMbX z#Is_F&Fr_BA&L_K-E|K726IK;Ro)ZGBbL*qbf5+;q^4K{uNxnbuSVH8`;~Sv~eSnY@t6AfZ%tNv{BxJ#jtGS@1v1Kepb65Wo~Sz}+wx%Zs|{6ucd%Q5LWiM8 z6&a{U8t8vx{p{FNN=5doo!^$FxyNLvQV(|1jIezqHVMw)pNwtaoe zL_Mp1fIJ@&#HpSk*OX`EkC5k=W*)~i<(an^dA6H*Qm-k`?|+3n`DUK$uPM)W{|$La z`-}TC@tX3ic?EgSP!@v0&DWIYJGgs0^fNP0#$UP#^iEi+@UQs;!P ziF+7K^?*9{yFgDsp$4_zfwrq4o*>f$+D_qr{)+JBSVK6y*&luJaM~~YFZ7?xaGOpS z3>q+G{toxqV*LUaG;9y`TN_0%22y|L1RQKhIfbX&-C#mhd9pMDE z9XGlfX1;+ghx+@V(({@XgV6WI3;H2EgXLW`bfONBDIB|$In)oE|B$A3gCq^5R~Nm? zvqk9VxQd~APPH=Dh?&!^48L&LFK0KRG=KOZEQ8BgXT%L+fwuG=_t9DhaXWo{Ry9_% zFGVDuiA*GRtqx~GP9JIRg#AcQ^Jk-z4?7RJ`(DF7E}GGN>f)e2q0xpeGq)SOFYC)B z@riX=MZoQvN3Y7riW;}8lWg8pkE7L1Ogt!WuN$zH{K~Ks<&OErhx|p|$*SvLOGiY; z320cI($y2E%I(Q+M}^v6k>Pe#)c9NpeZG-#&=1|qq(GvmsI_Ve8hIV$Tzhu#_*CLI zG>cN~*~|el1(1>-H7aU_v52dpIby>_7P$PV23v-xl-wf97(<6rX=J)iglt+ptw@_l7`$0&_XUjX9KfB)E&KYA#urHV_Ns%GVI)ojl&yKv1^(41&L}UmK z7$I?Js`-=zKq3@@2!(eIZXVWkH19}*+d=nmz!e8VT{Q?r1CFTg8x62?10wMaFp>bI zgBtJ&H{b|I^f%xWZom<>L;c)j;lqBRtkkHF<_nG60t)UrrTc?1Fusm2qLBp0kw zT?DhYfQ!zjn=91+tO$IH`JiAvoU5+DQ7R`u)^42hH-&6C|F3|XknRf0TNP?a9|on* z!oSC(YHQpq36`HH;&#{uyQ-Cw(kgORPI6S<*8g68CxTNEYTuG-zHPq&Z!Uz{wx%$J z41@oZ%&=`K;-CTa2U{+~|A~$I=W+0`Px9Bh`;p4~2|@wUn+ z16waagW;Sj(3KV}m;^JcR2-HR>Hh(_Ehv`S36>PAev$r?2++wYR6T4~1{1q|et8I! z3$W_#!SZf{n42`S1~eMg_=#2<^qQK^^pWS^?abe}GzEsaq6eTHaGrv9;3Y^$iGj~d zPz1Ijl+5=;f0>?`=|ND)lK{{;M8-5&H^pRNs>3q_g(8uIkR)`In1iB^On2Ua(5JLG z=+=w$!+1qAD>TpN6*->E0)(o&!=Qw^NeQo@jO39XfT3fj+k(Ec@#x^|2`aISL7yH} z&YHzI50zaevgJHf(oISkfr~S$9}ZlcNS>m*RF7_4ry4li31TxA1ZJZiqc~lsI+NW* zbT&fwuR|i>=sBLAZPutKg4YaB56Z~!M8avHlX%xHo}L^x#k&#TW${ER)D9y5SM=rm zi`ZY3w~0aJ@hXhNwLv45W+EKIC-OUwpfZ5&@$Is}=lJ1^4fmXGYP-N%9rqg znTPQC>iDg=;^`$>>&6q*KLa1)#+u|-0^fPOPx4m7bpWIb`>yk?ggtN}*td9RPu7_r zh=!*L+t>H=R8M2jqpO~yny1P6Dkj-c=c^+iEDoklRGVwC{g5QflBe66bqrjir6AZA zbvGhW@OufWa&%z;#J&YN`LhYiTh^+dXPqHsftAm;HGk%^tgLIp9_dn2RT#CF^uVD? zg=Vi%Qv!z*0!=o~@CV=|NROuvi&furM$jyeF?Q6>Monon(MlilC5_;IlgHvQ%;h;p zPV4&T)(yr=fUz4eUUa=M{)vR1qYdt(JTN&%a*WIL3+|&|JtFtUkH~H=%ot(MQNQn~ zq%1Or7&Xr|+GCEeC|S_1fn&R1(AeIMZ<@GJKTQVC#*OPm0HD=6^c_OOkJf?=~Y3B)d+F*QIg|`#7K5un5QI6M%2MU&*$Jl80oS|EWZl51G(g#$z zXXhW0g!-6uGU)CImbC>vX9-h==GeC-0tuqY+RzO6JF^9jU`aU|+-XyNN9PAFTC2`d zj<#Ug@e@;e+3AR!R6{I>UnEAFgsSr=Hl99F9_i&4`DI(c6S15q$9!%|_Vg?WT%O^4 z;$C!}u_FW6fmP`^eSKbGphtNVh>_-NiXq2EoKFVJUowz`aRa;}X>!q>rdTV#WEzW+ z8A`8$Ag39j22B;=L{nP{E>M_OFNUYBD&?{8(JBk77HFEOT8ZC$J9-6;QMeI$9F5^N zlnunsp)vf#!G9c4zpftBse>GjZ%OpJ9<9K2< zHjbS9LoY9xV8Z&O%5=dCYd)9iRPVFJGk(n0F+clu^|z23{PyrY^~~k%!Y`b>$E60} zp<2}CHj(az=*(Iq!8tbl^2)5gie84!6W~GHdEtAH-m#4I^?pF>$5;b{gZFeY>u{>` zMt20#biq4Ev1%ZohX7RG$>`A;Lyt2(SnS;XKBW+Vw$Rh>dx^ix6qzq053g}CS^P&BAZ!Co(9~$p7Y`5x;V&(x(JLS z4OZiG)oKWxY6=Z;zH%(MYq=k|uD;cL5$yCy9PAk^_`BeS#;Co`e@s&&gZc0JxBTav zP%Y!i>YM!^?`R5H?Qd~@lh=Ni8D#2{z5WD6w+-aD{pW@>olC4x^(NhFKkR(vu*q~I zsGqk^Bi@=g?i%KZamO7o?FP@Re$@O&yBZn9gk$0Wux0W5B+~#f)!#AzJkB5jnCwmh z@uoe`U|2)L2$nHQG0I2;c&6;xP4WLra1`-@&g$k)n@I6i(`N*|;8O{HoD)Wb=){e>Vt_ZGfX3sl!68PaJP1~M zJAK;Kw+PIM2AE@e692i0P3No?>X+mYu#Ev72SJ4UKb~0MM)wyoAwowIdDA4|o!rsS z21~__H=@1T+DY~bZOJ6ZJASC?I(j?y&Vsm{r{kIHXpt>`RWS)u#cG zSdy#Espxf|hl9u&>n&c6GWH)3T;9lCJ3yiRo%7vdbPO!6*{`}gFbklo21wIN%Fqs$ z9~A_|+@C}tM1VDGk^WQW+98QSe(b$OIBkh==oaXYYa}V=mBVzTxDkg?JkB)Cv|GC} z5r!ILP1_&BhrgB%Aikz_*Ttp#syc@mX}&5RC#tc!zA6pz#ecosz|rCZfP1u&(|hb$ zC%M36V|<_t$7b!tjX;TOC=Ze=?3p#}9@X~@lSj4v+xH!b4+kVu;}MDzp!E1OSxv7| zt6-A3Oc+iYiM}EY6}f0f5-07=YWjs)XQgP%)dlNl7S(B_iM8r#w#<}NDs2FIp=U|D}VqES~d2E?U)Xm$=&rwW_XxAtR?oI>B~iO+v6|7oe(ozVfz z2i&ePj}o5;&2Yq3;)<(e7%Fj5CCCs?$hx3*bKh2#8tEx(AEhz!aPn^T#25c6r~F`n ze+TSqy0V%?9v&hju=m@}5}c^b6Vfq_Q5HP8C`nLWxEH-X!|9P0Swz3(xhnVkZVEAa zPABZQs9z93Mw`KCD+MRDBuNXX(R3i4kaY%!N(t(R>P)H&Pm*PzdKyz2D4+y2KyB^& z;(3k$u2a)MWZjPJj&0z3TxyH@5u(G_;XPPji3V4WjUw#5zkKmLVZLxbLa;$g7^@je z0E>PzccV@u;E^X%0?94u5ztHr>BM*@@|o!}HNx$qc0jm>!#C6lBVO=Qhi9P@^<7+{@YPoO z?g)r9lzRL8b6j(kA;AKd1w5@b5?dbh;}9ty7!vBqtJJ3VjEG=6nLm_sXR8YQ7nm2D= zy7;2V+Pi6 zilog?P22!-RusJx?qQ=_?9nX_ZN4iy1DcLN%K2${dk$~jA0V%n^6Jf?ZjJN?O$$EV z;5z91Y%vxPI{GGHjJ~qA*+dop_WG6&t`B&LiKi`14K%;LQ^@;5;1i^WPmm8{7<%lq z#``i3j&}v~65wt^_&A0;V_{Mx!?#j5x&|!C@G+Z;S#DV?;2NSNShc)#bdAL>a1IAJ>A zONKVdI4}bMRog)-8aG{HBMfK72WeTsm%1wL05r~|nlG!-pQ>4ESr6Uw7|gfg%py?U z(?>pJdho7{sQEHld(Kids-{_bbi(EE5UHlwfBc5a`C+PGy)U)D3Y4!d9FI&85XVZ3 z1j-|QnPm}#(H$9b@&N`0+HruupiUt87{UUaLTIUV1d*JQp6W3N=uNX`phZV)Bx|!m z>Q?m!q*51RhVhDcDQ%zP!^i&j^N#@|2w_IbC@fr^p)x-c*AUi7o0?rmHvT#hCoC>4TING$qKE0tt|7-ODVfIQkA}O?zW4w$x4i*543u7SAP?K605L+d+TI&JB)_ne; z3sY<~+la4ajuwJ=#|nL_dB%t^T<(j5*v$3mL`0a1Cc`5RTfT7ThPu4Hvg7wzz)`3-V_$ zt@cxBi~D)}J%>zbE$F|eN%iasmc1Lm&3?|>e?WqOuW_o9hFnw*(G9cWZKK1JDK=Bt z6m`F3hHf7*pgGLB4{A@;^9H>)3b&ugKKL4;-e!7#-=!+D!pmWHGrdp_N%Hi-5 z)IF_=ezU6=Eo@UD7G)V&MlwNljcVtm1l{(^^IQ7)JHYtid-qHT9L>uC2D zU&J-_E$D8_aqn{0VTJ%a1V&91h|bmwD)4LD6m`EC>uytc5y5&|RU!9xKJ|BaTz`=^ zzM)@RF8B4fXeNLKyI9Y@x?@#iqMlv&^k+|p=nHW3>Xok(Yv#D6kytK z?cM4Ic_O**Zt-B5POH0HeD#P&L_GTFA#khJT~8mOWAsY^svjcXsSVo)%9-PNs_IrP zNLo_b%k&$xJ%Khk4~_^fncuE*M2K^Xd~hPk$@GaIk$4d3PlB&-@t#`v+t55uMddbI zbOs!VgZTC6H*g}C>h`N8wMNEIKje%n;LN!;s`&L4W||%q3x;R6raTp#FSC77S|NZ_PA= z+ZXWdmgJj_j_)4W@x1s<0wKp>9s`fcWsGd2+gUdR-|^^kO?WP^K<25+C=e6OxEKN0 zHYR)vm!7F)#RXp*UC_$*WtP3T*zbErlGpa03BxoWI8VRX)hj@%a3r)J*EP(Yfd*IO zU=trek;dSXymr;IKfb!*{j;5S=z<2t=m^h&fARaC2VTzw+sHLqd&~A~?%kR07pa;V zc2(IA&lD@QVU<9r>_0i5coi5M^mGVR43>2XG>Xooc>QHJfXE103>)hCkVoi$mj?>Q zxidWbac-I8*rh+sdtEC5bVn>(myHaPs`~~B0azC$rUl8Ne7S)mgBKvhsKJH&MY97Xl5=m zMm)!Udxqwmf#;A&MQ1MIB!&G+tYdX``-VvDVx#1z*?&12`Vw`yWnYFd-XkNx*zP3qFM< zZ(z2~C+RJKLm)XBi7(m?g5e<5nhT5T-wHbXmSa=iB3@{u+FW-`=~Th(2;K!b?291H z9b%haZ)yI_s(h}tp;#(wCGXE&*z=?=QriQa&W7>R>&L=&Tj^GDdTq$HiC@HC9c(`I zXTX#iXX@yApy_%Q*JT0(y}4;Nxctxx?U{uxZFOqK+u>Byfin%ns)a7K(4iK>)epY3 zBJk&302dhRLUIO>Q+9qU?k7HeSv9; z$zw8_Q#Qc`O$OmfP1j2(fWc@F?0}o0OfWxz=Ia5KqVS95usefa-ZMh?}U_ zTWIh8DyxJzLa$LNl!#HF&}A)5Rf9#y9oUg-bw2JvbTF?^vC0bla$BbV5#R$h_2Kp%$Zz0+W#g25mcWn=>4-NJ8Sdsq9JkKfYcgaK~--V zkmowelZ`ydW}burHCP9vK8=3(bCCLN>JZgnjZduw$;I}d8i<+V8otj!@COMY{hH_< z-Z>AQaC09imfH#0K+e+yCFf%{{Avsyj-|lxI0AY@TKzcxrODOFwP)la^juy%KkD|2 zY+F8x!&C#!2w4?E*1%yavIh&{rNs|bQ+y}zcLIImY=nvt*%55ugFqfeJ&ntwdB|9R zG;G3h0}c+5F09eIAQ)hv#ybzXg7Z7YC?i)OvfBCm)u=l< zscz!)lJw&jBx&<6#NWQScQedWQ$5qF?xD)u{Rvv@C;`gj*xQY!P?#2^-&j*PXh2h<9)GA5 z6igB`FVOj9pv@(SROp+7!qbiLTLy)LZqZ~74X1FU6N1!hg?)ndYdoP;OXwTW!-=oU zC^MWcdgDhQTG%`bvxumSgWy{@IMha=cbX}2Q{13jsT6;m5pNMC^?^<6<%XssxiU|@ z1H6)am;cR&P#4Zkjn+F4<$_YLL>SvLnW3-7LdRUCpOk$1NwcV-=G_GezqQmqeLv#- zZ_+Og7Z6E`mS_C3#WJn>11cb0rbc;Tf;f_~blIq4H3eDCY1`;yPjX8wra=PCpm++tnoQ zkbb+Pek58lT`g8Bi1U(z;e8XZ#UjitMP`G5?#L{98DF~5d7#`RYLqElxE%( z!LtHBQG)Jz{59gQwn(1|I~w5fTBOBZgipgIY4JdW<{@gx>kIt|r5RD$>OM$86A!%q z+<=M+gOzch*a7o^;rTB4)cuBq@l+di7o47`1<;GjX^3Fp!l<$i|W%f z#DO>IS5mGQxr2^0HAo@h6lpQ9*U@@w93)NjaMyl4W{8P`#zBz{`^j1h&)OWOU|VjA zU)J8RxZ5=M8yRk38KW0#U?58dClnrRF9Y<#J+O_5F(MTnJ6e#)L5+X*k*FA z*i+i|OR)2%ro6d=$S;{WEb!eLo&w zcpq)JER;u}%Us(elhPOs&Bfi2Li9fbx3p6Cp|$-&E}mjD$ma>uSJ6(ehB{|%2666Z zBKOzs3fomEMY`L0PuLN+Cv1c;Rdu%`3O7+2HY0N@Gclg>kUjK-aCq(#5-Z@Fp3!z1 zwJ%Bc9a~7+qR zNwdNuXf#mMXxtk(1XzC5mes`j(t=60A}v=GjCPW2T)W4Xld^r-3T?g+c~hIT1m`PK zG~oz!!_LRabgtV}-^g6q&Ve z*)qp!d8ydSD-N7=ZM_AjPihB$vRqLQ_;g85$Js!}32bCpn8WotoWCJ0T--2^-!4Ny z8`_IFp#NGbnokj~ke8*>83N>GbaXTUdvWJ)a18G0#?^P3?mn*9Fato}A|!KHjnog% zMNx~D&ry^LVND-sUop@p)PfQTj@_6e2MD1I2}Ab#+fpDw$ao*U4#Sxlpn%PI7f~}h zr_{NrPaJ1CPNqqd12>cR1L44^d==2m5W)Bt%(RDsNghQWC- z52*d#-6l>A=T1OS7|C$=DIJ_TJ+rJYr%c~6slR$UrKE<9hoAy69SMN0hEKc|IWGw^pgcHJp)1qL$Q= zB+G;P19t5RQFq^b!U1bc^25%gTZJ+fadN-mfjvzp@tNJ>wFn6KIvID*QbmM3Xzuy` zfk9J+H0vzJBfAYcF>VK}S&(@m6^{e?vtpD0jZR8C-U6yecnm{SLIdZ)Tp(}73_obSj?UJ^JtT(Ekx%U^VN`RHf!j=mFCV1^d)z;R8~lqX_BsJMl(3 z2Q3Lx=l7mjZz*1(&j1wAu-7Lc3d@729-K6?II*m#JigGD*a0C(&r& z%cwk|qIW*jE1&`JcP z!FU)Smc&B(n6MA=Ib~hj#%{~jMp1D=+Zt`{V|IjX@4*Q$+7K6PgRC|YQCqtAaN1O) z-EG%~(FX`L@^T}fq+(0Sad(0BHXDcg%Rt<<%ExV%IVoycSJ=%Z81bn~sp(4+Y^oyx zZd*0E-lodout8}Rd)K(_gf~hN1c{f}RZlJDR1q5oh)iy2%eO9JYXM?s} z%@MFT#+e^W0ycHYIGgdQ$^m@uxMhwje}JT(>J&pOKw^xnyQ>gmZcU`7nF9og zIpc}|Hw;?V-U-FGzEhttA?R+TjUatT3UdnXw23orsA;g1NRB)e0a+VvylU6wXLoG> zl7=PUlfZ1KTWkVjVng5Dna~Pn()ia};DQzgnxD8Et*T*sq&oX6&frn4VdRv$ z!D4s!_o7H|?gOXrG71!bkO}8B3il_6e}q z``ZwVd4wh!$)0gcG-^@5fRzC%01{z}rM^y3$@oA$RcxeyV^p%4Fn~i4y4--i<~XK&=1?Mk$vh7I=^>18Qr8 zc=T^Cp;Bw&Q~0F-#y)H?n0F>STH1BojG9SL$%Y#aX}!!6Spl-3EjyEuaVNZQqo>Ug z2d-V9raK=eGY4$~y;H)}Y?gOe&ZzBI5e*=&^V~x(SXx?WX+b!Rq@)bfe+`i& z@t4Jv`qGf?i3bP)YA%uTzw`TkBw`m+i^G-$C&J1lE%ncY@9=(5TTd-2>C@)hv=pE^ zj4JF}0yc4&ao8DTPGB%5)f{1PTyo@_FxJJuM3>lY@~z-6=>$>ePzvPWc}9Aa>Yq;O znom~?CW7GaMtd3S5ZY;B>LI9PD2$eSY0l^u2`ON;Mmvkz$Ix_Rv(W0+DIPg}I`$Je zo~~{A!SURY0Z}-WMBy}zQ|+3A3k8993PkwC|;WJw)ddsfp}~>(sf7_PrDo8jY?=L5&~?#tsgJhdG5q~HX^aI0-7PYiX)fkG(Wgf0^1I39C;{}K&(NB=rOyCR-* zCIB$tNI8A$atIfLsky{z;7oc>R;Dka&bd>o%(AJKciQl@;|aDei&tj~_FJaZRAe z5X>7Gc;nJ|rop5O%yJ15Vd+mp#s1+))q@WYqu|IU^l{D_SHP#09ekcM$WNb|3c^oy( z0)=~;H}*J8I)KG;joQ-uX@a(LxDATG+ZJHAPNU?=rK{;kHqwWiZCh=;v(PGs+cJGU zYGn$pi0Dy~rGLE>y%oO<$G zqSfdLUCb~F+b>4zXAuaP)^eY66ubPW5rh1ty7PAsgFTGC_AFv5b*eMR?bte!-x0{4 z&cL^@LQ)0GjS2uN$g`WmcMeDgn`gHpEWB87UXsL?>ihqbGTZe=2vUh3Fid}G4W{6k zNf=fLbRY*a@2p~y0$rakk%6v6Bwk=7{7vv32J({ zME@5N1V4yRkr927`4W}uBKnu$j2JaUB!_(u8H9@W`DQFezo(zi@S~^W@Me8fcf+X; zHeWAC)YLkvctC+Okhz%a{pK{RGAMtw+!Y%rf z{N4>;fT#-g#lf<^LsSzE@pEji;$%VpAz()R1d9AG{S4F@UxxfprG(bFo8P)oW)9w3 zZ7)+X^p9i)!Z8bU-lt;AZ(ddO$Y%LrxFerBH64M*$CmQ%DYys?S1WBw#}#PGM)-B* z6viHy`US}~Hd5ja=bXesyjLyTLk|_|J#c1{`nZ4gRAml)2g09mETYVz%?TWQ>Bv`m zLxa3bxh~2D@&-M$g4dQ<2`GBb2kX4emB5}RD2VQOPQ&Zk2MJtlsa3N6M7lqFuPoI>6sjN*`;Q@-KzB*9U zaYq}8I(uG4Ura%T=Ie<`Drh_s^kgK0lUNdIC+K~^6|*1FL~1?(Dy}#FIWSGF>qZj= z01Q89&Tl0Wag|2_b0XJp6>$ zV_l9zAwXs>wO;_EKQS3JnCZR}j<~@pR=QaL6-NKCF*GMbaig08a6s{npJY6Z1^9f& z58Kx1MmXv0y*>*YEKVTKG7NLq-aKNrbLEuQJO`zKT?O89@z$8n#gP3-C7)aLo>5t- z#yE|NFqv0>>)vO{Go-!)$Yp*Pi^U|?9qkw zZeTjuuy?U#oKinf+t;8^1Z6&qK?kmG^NRJTINpvL$K#f(*#4SV&k&s}4tgB1EZ3C2 z#GxfXGYV4B-nhJ1Hpr-@F_pVN*oqwexy|U$m04r*I$jr{WUP=C<$ThkpG6vF>}A$@ zFm@H{5V{H#XI92tsDVqX75hOKiVqK$4$>%t7PHP~;Id1}qGE2pS}}GihL+X1a;$;o z1aVu3o7L_Q(dDaf*&*eD>F)g$k_zZK;(rNtE(s*La`$DoZ%gDX5Z{+N55mTx?}BZJ zjeNeghiAnC5^!Zh)6ZEyCl+R*uw%#&rZu9P00av!I&SFy&2HHqz)o}oEVziU348II zIH^O$87lU%1J*J2wN(Nb!rqd=h`Z?eRJfI`ToH&`WKSSEsk$(BKU})(WIwU<*>kNW zUAdr+#!`R<7dzljEV5<(s?rtu{b2pkxwN^czk1t<{wB}_sSe+S=B3R=i~IxPC?HIx zu(%p|z+PMUb4C-fz+j}$pout!8(DXuG6mOC0dAKkRizHBBpRNA;=ZogBTFHWCjCd2 zFCROy>5=sEEn6PhBDss)D?E~W=`#1ym6E%7MSh{=UbJ-O3j8iZ@M`+KbN-@*oMg2- zUvkgSD_9`8^9vU(DUjTG3-cB&r8tiprR3%3yNf0Fg1nL?C~WDnmGhS@Muw8&Z%JP5u}TwUNUr6}XEvS1NaRV*G$OY@c>a>1e{ZprNt50tVJ*;lS!IiHGIV6>&U2u&$2 zT2zFTE0!%lt)3-|mZCNhRIm)qS&_GNA)*W1c?HytrFkCr%4N%zEL+OGS&~m-%Zk5+ zyr{(ODMCGpah16M4iK(j5^;L4aJzNekVe~aOr9Z{t&ZgWAXr~x0E@VXVDk$5SbD%j zb}Kz$Cc8NVqi3@Y@wIG)p8c;l?S%$Bx~C(`~s8PbzU;MeRuHZFPgvlJ0GQ#57hJGXwWt(d@~d*^`UYCvTP}7vf#~B7~x+PQD9fzEda9 zc*x+*DoKV!ItJ6X+ygt&4Nbn|DXOU{~x#M4b(UOgd{lthk{esz5p&JJf1`Ne*Br= z^z1Rd@S9XM z?BMWsV9)jlZy%5shumq}jHm5D%+S3Yh_EZu&l{9}5~aVbKfQ~~cMUbmcgCf6q5ND* zf06l2E`MUcQU%!9^LHFHoH`%K04!NDqGu} zCO)VmUKhGptS^Lb;=s{Kp;u#VL9S3eeW48~Bvfg<P%|rv#Y@5YhjViu*l);X@*N| zZmR)F?*dLR&M3b@ln>pA1*wNXJxLO>LNu(HqZnsm;~`?QDJJV!V6KE7g1+$(r$fBV z<`LSAU<8X?%vw5h3l{{^meS&WRtk}MAO7JxnZL=r5B~rGZwcB4m0tl{hxgkAA1s_4 z_aMbV50uhvqIWQu^e*Fl{X@mN4FV~$6Qh$89zPR@1|SYl!s|nhVm<9hH2NCN7=Srg z^3xa#lpxP&NH95LW{_2PE#KO3fo^C3Uup8TW@LlAwmxBgUf|2bs@KAE;_C*EYVP`j z0fyti}BKY`P2Y?h%}1{h3cGGFh0w#EGuVV}~kObSJxn|ay7-Lkvy$^Lv>zWSl& zd&aOr7cr{xj93-;N{in>PKE^q>&dn;Vx3W(OfUeFXEI@U%y)no*GCwBLZG)6fXfl+ z^=k9e!XpBIhdZE>@LCv7WcO5orZ2U7#?z7EYnYNikS~Rf8rxK1PXSFNs3?_1z;d?I zB8A%tNRR~iOppHF^E@cnw2W&_qH#9Dzr*2JpUG5|1Oo%oJK{=s+AKkaPt!hAafLkX zC4rg8egwZbIn!U;OEuY`lLGH_B0sy8D>3u?uJ=k(cOEs3BWxl zqR1Hx8c0@NqABy%!<YvT1%3E+`(;xnr8SZ?NY`@If zyXQd($qL7Lo-}nV>8E9>J8dybE+LC6B)-UShJ2P(l*&@oGC2R@{kGvG6T)+~?5I`- ze_d(8ITKai>AI-1)`QX0X0jo)a=OZ@DW@}((`t7njM_)BMYH3uw)Qa0fsU(X?XZZI zlpCT-dsI0dRXU@}S$*!mFeX3^NG<8aRWOh0qg>8$uI;Ud-`kAAPYY=exit z(*+@wrvG`5QI2p6cs-9RIQ(@+8t$$NwDF*9cW;5)+dY8Vd4lv`;o5R^M)$u9Y3Fhd;EVYCF`N z8Z+E)AY1U!KGoMm;wuJP5L!jfZf79<`}q-hM~sSB27n4 zIc~d>5rzL@Uxx+uiDlz8Ut2~F4;gN>Y>~21Hx%npInl(z%aVUqb~OetEvKx_2dl(3 zGfTh+B7KYIrntpw*=f2UHnp%JP4gYCpBROcQqO6$4+z{M-J!vYso^|!dKL`_pV7<# z{=fnft$=1GtWoW-MlFImTc28T9R5>NoV--g$C6LtKO!$S|X(R8D zJMH~roKgSQ+{xATeNB1m%XqBY1!2?Z*kEbN}!3NuM*4ku>ad8(&PZL_+&a@6 zOuMRmD3AOQ%6GRcNPs#CTuf7+shX(gY)HkEUIk?w^%LsaQGgvMN&(+dTh#`1B>Ww; zl^`z6h5=<##eyL#;(;i~xyc|i9%Sr-TH8PzfY~ct3#XWHz8-+0<9%W z0Y#CYZF$p-aZsEza>y@_U?s|-C=<0t3uFV#SK1?0Enhj^)!Scp<+k3;`G1JSf zw&-2@yFa2SK`R(Me1E!roH0}0iv^Q4iV^q$1u|DLNvMDm$Mq`;w5r861cANy2|lA+ z9nr0JurebkF5j*eJNl1ar4nKZ*0P7YwCFZRbemnI*R_8ZD{ZU#UuHP9P!_=}ib_`L zP4P)=(YuYD%j1$fdqol|WLjK`N5#9g*kxVnT8?IZ#sLn%sq9GHSsSV3La>QjGqyXT z+s#(~&kqfLAOb}mGlr@-E+U8xBlUPa)o2Kac1cfkyDj<+qqTec6M~iK*26}L3+!qs zD&mAx;G;%(l3Hq`#x8TIOI_v(3hCV9xIz?(3xJW{C^zsZv~Gt*w-PVuGJ1w?iS!&f z9g!kSH>wbWMCyiAk(4*5es8cyz%Fob#RNeIM7g!B1e|OQ-Yu ze~%;xPOzK|+Wzaui8vU9qJwf9f<|Kx#9L}xbh>`|8R%0y$s{LD+YBQVT#n%9xvtSS za9N$GZimY{ECZ|U+GYoA4ppTc_7Db*hT~Xjl~#6KQ=qZ#Q17#=+a0Y7MO!Zpbv|(` ziVKlW50=$YNP^Y+&P{&o3Za9x~7)>N+;CxezLDixgw6%eQCdyR_m|!xLbZmef$vSMQ1@`7fp@uzG_jmPI_F zw>m7|x@x2vAti{oAo<_uECYuJrcNMJ8@A`lm6W@+t@g~VE-l{$9H)ZWtw?^Vn(rvZ ztPtH;0jvgJp54N}Foyv|6@kTRxm+$;V)0x+u^n?9V^FB zbpn|(kr@X<5UeDr6ZRv-FfE&LRnxK@&ZLYHEh&T+8;}A=c1aaAivfkJHM})HeIKfC z&7XApCzyj5WYSp~Cb53$qhbh6jYl32-bb@A>*f# zz6>ZoA`t3bFfuxSfX?i&eP%tIGvHC{u?M895#nu7E&y)Zd`#s-A);L0HV- zdI7eZGK^j#)-oKwyVNusq@fom^1IC4ms5R(wjBHR>tLcX9{eOb9#Id2q);EJEnUu6 zM!?AYVwCk_bKDWOiGj2mx>RaAwEF8yx*CY{7M5LeQsiXF2Ap-{foP&S{F*yovAns+ z0c-`l#J~4Og%dLet3}0Vyke`CvHw?%@}m1SPHs+5$~W}ug#N>u7u`WZ<_*QBZ1mvKZ+3eK1w{&(Or^oLy^!ybf^ zF_SJJd_|xz%~GVFz~}-R@O89A+;LX{@f&FKjiAjq$tKI3TuDw5xnTN)eD|a!R0JMO zyS!q#9=#|Q0ff_#!%;EeI(F$8_(FK8N(@Akw~Z@OBd-z4!j|e!>XG77y&e4{4M7Lt z*auDL66)WV-fBNL1+t9#B(*y?2BQsBD$%FYAV^~Bjucb(IWcwJ#|icnX@{BOD_C!j z;{y}e2jP!{TOAq?X$kE?+r^`e9^$a;wDVxvg#c*-q|5BckuRu?Qf(Y%8<(#93GaMn z)(V89Vx6^b;>|w`?rV0TB+Y&Nf?pJo4S~s5wDU02e$h_Pb4+6(wz%*ZXH;6bJ}Jk2 z+*x-&3jbTn3EhZH_$OM9%aEN1hgBxI(;KWkdmY?9E-L>OhDfDGRlFzP0s zV{|zdBG$=^{Ik}`1#tkI72i>VCL055&}16dE8*4F;_kpDuPyF<7|8t+uO09_2pei_ zxlcD(Y%e$uwg)awaDLwou`$jmGs2QIy<3uQ`~0i_Tz|xJ)`jyo_;fY@DE)Ed9h~oZ zgjFJKQ(WASk)P82J;KfOyYP;Gri%ynb0n_vJg32bh9$It#6{>pqZA^diGKn1y7v=) zI}WFqPvI>dL<4dE>NpkkJTF{00atgBwe|7UN=|$s*8t}O#HfV8`~;js#F|vV9vrXxBEDG!1Nr4OcXIl^8=(osCi$rMV{W^K5m}u zjPhc!5p&-n53M=;FGw7|4nNL=9K~`(t>k#%;{8=cfx|z~KDBKTsD<-4U#JRj=Qs#_ zd@n`}0>yCDJP;Pt_0Zj*0jR_8Yl0N`V=KMwlc2}*p`Rq?kFd+Qo@R(D=BYYd|ABN6BdaXgr9oVa^bY4HQxKhRAxzDA_f*`a$SK z*BS$9B^516S{h~p< znQWISx8vq;99eLhv(0*9E|1jNK<7m0xUk8M+I;Gq=6)`DW!+iM1DQ4vvEXL7Lj&b6 zbJjjd(AZ&_s*Lo1vrHaN=F7=Us%Ixv%|s$m#e!?A1K#loP_#sc$Ejs!=@K5a>ixjS z6AcR>YDvEH;OOiRd>;i`;H2#|J87eJozE)E&GoR%SqHK$P~fi(6m@Cf@a#f}7`n&s zM#nmbn?Hm3fdQLVxMZgA=2PWB?dNVTc)HVhu;j%o+)4ACTzm~^cdg?ZTG2nZm1M|8 zvFiZ_`{`Q7kzCLJVeehQqpGgH@iWOJOv1nfGicPHqb3$aAmO4wg5)+Bgn>vBz)Msl zi38=3Ra?B9kprCefP?bV6h+g%7qC0k6h#x*0({liVuM_clcV61F~0w6MyRR&x3k|JpNAd*-z#<4F${&^>VZ{ z4A5!5934EL8Js)dwEBZh*;Wa&4KW+v1%?YMhr<7M&`eW|2<%>q$$4l-0h2o>c}83l zKxpthBO%T|O`lt|ISHd$4HYdpJ5JymKrkjhn}7-6D%cqbY!wEp9TwDZ*t-C(Y%)S2 zDcM%mKgQZ$>QQY;WdRM_E#9XoEm~x`uvHZVo^Mr!GJ%u^hz-6-q>vX}3ONV@`QHAoct~Hh11@MXrdL1NJER9 zjWs>jKm|ATN`XikH}E)J&kG^J^2|7T+a&kZiw#QT$ZTVtV0_FI`qalAMa;=yq(F&+ ziwfa^PBzX`((FZ8?zx{V_wYiMeCKePP53BTadHH#3^ZjWN?oYgSxJZSg5Cqwfmmsd z`V23a7>TZWY={Q+wxRHSfqRw!bn)*Z2QG5pA_p#V;35Yua^NBdE^^=^2maSNfXN6g z?MPSSNyBp|o;7%$z(Y2Fj^p_P4;dYxJ)~JQeF*!z9uaQ9GaAo0JQMMx=Hs~=&wY4`@i_4;!LtI73(p!n zSA+OOJoLV*&$~ZAsu%P}7nISxVZVXSy#AzP-W>Kv##r(9!8!`>`?nmhz^+Vi77@~6$6VmvCA;NrfABP)*>q>LVV8Z|Iz6P-| z1HNQ9c3}G8O-UU)Zv2FsZk{-4!Tk%1OG>4XM`l)bj(r*s-Kf#92JcqTNbh#M@7DZN z@MptcVfgtt8~JK~z>(1?@<92ZXFhiEI^K|^FY%ni6Y(aN9`Fpta|xaVJXhhl9?y+< z#^ITaClgODp4oWj;VHsXjAt>PAK+PwrwY#x@jQlS1D>bxJd5XfJio_Nk7pmA*YLcF zrv=YDcs{_>f#(Z6U*Q3ZrIf?s(dkZwdjg(Gc&6aV#6zl#)A2a)6yUiF&q6#)@vOpw zRY&O&Jau>;!}Ak7Kg07Bo?qa32G6hXJdfu^JTK#U1-o>O=} z!*d!>0FMdh4hG`U{x-f8c{KfxKU^|*{-!h%RaHN)iJr3mw*!{EShJYi&i%>hQ$}S! zxngtC91ef-i62Z^_xTe;w!Hr`x!cx#{oItR|M7L<^q>8W+^rv!pP2Hu#TCCh@zAhz zxYdE9hul(q>B>89`~G$0ZhLI4{g(Y-_xy1|&5y~w@$+{cyk*>!Jy{R_^)+&DK67Z> zE#GW>`&Yl;`w6*gcXXe+<(8?B#$B~Ek&eHrAKi4t)C0#xmR$akliV$i`}3yWS)BI4 zY~QcRo$=v=HB;-a^7?PD|BT!lpL}xX)Tf@Lzq91VpDr7dGT15IA>J8367Sjr;=Q<= z-&HlEGbQ}BT(XegHSavZ?~=FPqPOkd%@J96tE+NvruQ?CU$GSLjK4me@(kYVuR6Hr zZM?@{|K<11*$Cg5_SiMXfBrIg`oLXlBj9d+vSQ_cvS07Me@EsKXf;SJKi>LU?Bz@U z&#6{2}#$a+;j97E}W2&oSjqezw+fNk)I5C{>{rN{;90(SG`z2MtXDNz+rI5 zJzW`n?ceYC>E@Lu@@;VE&O19ldF;C4#u2yt;X1gRO}lEV}%-`jT7|8!bh_aE=9AKH}z_vX~U{&o6+JMNq}c#<_2ZZ&fD zM8~?d&pUn@SUCgkynpo68SBqqyM7Mb^d(E6_ru+J)!@SqtQq*{=Vz70mcm`tn0)p3>yJH?()jZS7s1^+ z=e8d#ySMR);$QspgC*o1KlZ>6O5T21xz|5p1>9@?GJB}|{m-WTqvwwmwB0s*@^2ql zbJx#|Ytv>ww+im64{~-r~r#6!SIcIh@1FpZ~1nUb*0blF4KX z=Pui*Qd_xg)Jj_szLzanT4F1Tm1tcAe?Osvyag*)u3lbNJXxB)Y~k{;gxu6U=D=Aw!A~tVH z$%2(7HaDIHwuQ@=-j7VPbw)tCSF8ZC1i@gwg*jmp6VRTzeRlQ7q+2sDv6`vOp8#i{yXr7$RLX;FeQ2)7AMK38ktfH zCy)|`9*9l{r~i)p$DS8nbeo_++zrKx7*;(ghj}si08T%WcE9UJ6#b|N!jnmHO30$9 zRDVE-pk)Ek;@d#^CSz-y&+xRA9Yg?bS9#%iq=u``hycnjj%?_RlD((ksmCJtowP2h z>?LpA&XWA5|2r}h=evj!N(e_){-<#}6Tt=bkC^v2anU0Cq&wx=OXVD4`O%HYoAYsk zc_g`SS$2h$<&6KhvOxQb*wg+A4?M_j0Qir@VH5M;;J;R<-LpXlA`5;6b`aOXDHA^G z4OnLqAgD`vb+kI4p?vNyVGd|^Uz{(JUtN+8FJj?LURd654Nu|UYAAZ%KSd&_Lxo*B z^;B#08YJqtsCoaYo?D%-0hOrL9~M(aO#b^6;^hBQ{efvkDZn+Sy&1>(P^bTMnIS4& zq?`B|EW`hZpHC4x(UXNE(u#h-6?##^wixpczAKeVb?|xr_rJjHxUxZH2i!!haRqffQ#2qKitLct6U~pf18fBg`Wq)U(Dc zm5I707Iml4u>jyBXl4eSI(yTl(IXHSOObLd+Y%o7))BneUE-q`cIO)`-*t-^Gn1~k8 z3ftWfS9G}ESwwlokx8W11uj31)q3^VeOjivXaL}VTr*<;;JOYV!lP=^HEx_|?%D`w zvPatW6n#*d_yYww$izvc=>8uDH7C} zKm%osF!!<`X<={(#~+V<*NCxileZ1BmwcPNCxc%kkA>gy;8#oV>u~U^Irw!@`%(|& zkpO_%O`MnWJ_=vYbM$La*s+zSDO7dY1vPG8EdqCsL1I4dMtq6@4D9|`+bYa-x+CS! zZ^PiSOWr_;NTzaR0lAfCHlDo{f-^CJD01RTfnI40Vweh(!SdLjFd9Je&=wC-Kyj-k z;l$L-2;3DjurEZW>?07%z8FDmIH7f3qF;WyUyGs#Kr7vQb0_eszncxdFyVn6gib93 zqtNN}rbbJv&LDVK#Tk3RHA4GX7biYST{GHWqyoat(1dKIYk51JrRYt1lQgJLW<=7? zq3~93!(JK%PK=x(oRVb72yi4v#oY7E! z{txuGUTX5~3s7gj1^+O{-+dwc`)2lwKaKH|AZa&zJN~_M2m#Hx`lbJ#{_&sqjOag1 z__v@fd<*?WjKAYT_`jLaFZ~ZOeiC~A9N<^q=?mtHQs*%Yi9^2)Faa;gQvc8Z%US=R z083ealsX1*?U^)1fcRp0>rV6RWnt_d>)Fe4*FD0sm&GnF+TKgqLfLutve0!8_UvVu z>y9FEhxUjY5PGm8v@S|L{&!*<;f&-|MM+0;%HliqsGh>rdJ327DGbt6Fw!{^KK&&G zt`D~la;u2+QOe?5v>iiblzI=Ps#8(9a@QKv!!1OSNK)XSE1(vjN#gn0V+J&n_DV$r;iCCf&l zSERdx1$Jn`f*LsFbo*mKfIoFBw&Vq<{!2|v?_p*#YGo7oHF?+L*M>;v6HFof5Ny!t z^&;Lg>1R@j0IfV*0JXbb29)+c>@2T_V8V1ep3u zK%grT1lNHhy$Rmao8TLJv5QMZ_7aTfodP>3gX%&)b%xnxsO-`h%9WzT&TOm^&H;ZGx+mqfU&xvmWC5QH*`8$lwb zJb$^Llhj(V#aoM_)m!p9&)$FcHS*I;R#gJedz=Q2?!tyW4N<}AW^)|6p1nS(T1YIcL*@Nmx>BUU`0gRfu{uY^)^ znEF_1eDL>ekh-Y>P+Q`uZCEKO{kAY#cNDS0Q&Q#|!wZ-iduju(4#GywY<*3UlID4L zSRUl|>PDggcl&89cC8G@OnGoEIG=vELr@V6!HA1;5l+Uj_~Y?^j(>f8 zUEkQ^}ZrF)skG7 zJ7dtxh>=an?c6K9jHM+&@C9+DF7g77BJmNa7Kjh4Is+d~yw^l^!gCO#Ulnu>TX&7R z?V4apJfnk6Pqz6VU~vE20`e;N<<6vF;wom^=n^MriASjSULQn4TRT+5FmUZG490i` zG1S+SIodb(FwLSXRx_|vA!-7YN6D}$DU7xvWQo`7a7Pr+miz3P6l=oHphJ~GrCbq&(| zJo|01xS}}}MhZiUFkHVel%6Sw|NQh$>gk#OyXnz(1D5B#E08armsl)NW45$|{4TgL z2JXOyoz?j{@$nO^1Aw(n#5mL-Sli${1$Gd-e0GgJ!l~{BlnCb$F*Dso_vzLmz*o43 zqyNYB1c;uwf}WfId-QZ8FWP$0bY!<*nvYX{xoY-HwqRmdH$b_iF{l=&=wvUZ_djk8 z#@R&W!|Yr`A7RC%jdtbtdz8Ht_W6rvj!c)|5DvLhKJvw{T(Li!R<#E8`_t40*j1$R zJL-yaTCW7ZuAfQeN1G2^_c4$4Jy#4gECn*LfV^bUvf{GkSV*_o^gWSz)HLl~zQS(N zC`0!<%5V7T{%p-|KXxc!tFaQM<9kN(mPsVX%cTtqYA@Zm8M1D`jWlcViDq2*A4VfUnmUZTNL)43ZJ9Bqj{ zZx^3+akbnuE&I5k)>TmpO)|i?j#=~aG}!zDv~O5KGOLF(PyrfHVPX9Q7F)Whu|Cbo zbQ>D5Q?`z5nqc?aIrnPN{q}9)bPJmE7cE_}gc-z>U;DF~qL@5kq5l-mnu7i4OKmHa}=1(Sw5`{+Br zP!Nv`0{Iq0yy;886waLPm|h?iIx_Pim4ps}X9`^(hC6c98pu=HI9QJ^M{dAB)&zi+ zRFVrAWkC8V8Ad>AE6l??Mr(z5+vHGFAJxgu5c0wi?K1}44D>0V_r=8fkv5HG!-?qSG$My zgPx%k8s74MA8%9$@51HFN*6ugE)&{*e2=1S6!urYzij#HWwu4QebDy3rkeH!PN?qv>%TpLJI+}%*cC|`@LM51GAfQ>0bhJ5JAH@MUo zVnngN_IL}R9FPi~->Psy`G<*gdnbw;Iv%)HJGx1KQ=Y30p9v;P zXg1L&*_!jxhvK8(x@zv2ZME!IwU_)PHyc@oWoQ2m;vpJ<7>QG07^*{{Y!hK_@}9zP z7Fgl)5_KX0`F(wX5c-4g)doy2&=^4Y$VWbZ(e;m6a_5Lv5ryly&|#EYBAFy?Ed?=B zH$6x|R!zJPZPnEN0uJGUMr9L0VTT;Q-$n<8_ojnxj(Z^Tl;XiV4C`$RdK z+8^a@D+wB81U<9_%}A7fAr$L4T9%Qg$0EYjx@d{;Cvux{+EJ?NyO_nIGK1gg8a~|X z(16KaAc`cB@43UkuFq#73!0+3(Z51AK^T`wV~R^wjd8iw!pU+XJxok=!V}i?2%P?$ zTSwsMIsB-pNK=SPDE44X=)Md}JL5kg*+?2egV9=;BpT3BN@P{j8C3vY*}H@>y>sIT z0~!+sl(Crn%qB1bJm@QIU3>|yg)mIy1q0{fND#{#l?xHU-ho@k-){<(dK~X(Fw*F7 zq`%UTTFFLV`;UOnc^`-(;r@TX5FWt7DmC`{R_S5tXyOzuWFO)@g?y@GG`P4a~71@)u)6e1H}dkKO4S zp$OG?KQoaesB0i`wF9#{st!}QKwOst#>=tu)IZ~`MF!s?(Rq$lvgfXQFd!XM;#xRH zQ$Gs!1-nxIj?ySHq1;#j8$AGR5jwhhZMU@$ogdhrZ{>s6+O}G3VEnJ8|lI7 zylnPb2`61D(K#6rpdp4q=><6!=*)4m{6P*eU3 zsBzmpr6mvQ0aukl3H&YL7kkzA?!3SRimbj$1KfsE@qeokUZ`)SsI4%`+fArx9KRqK zhmuj1UU8!Pk24BsCLu^3WWuj9XgGhH`TIuxj>B&~5y#`$Q{4Q(`|1uO^-bt$Oj=JP zlr?(LL<2kMSAB6N@OtT!dm8$XT=R9U4sv4W1%gHEWym9}m!ZD+P|XbiiWMG5L;f`+ z1euWDt? z5pmsd>coKqv;vWOYdi8k_sg1~hDIWEV zq0{nAZj1%}AAt9$>Xc_a{SLavLoL-&(ReX$y?TEyJU3H)#f457*nIow5&5Ef3drcO zADer6TKYJ$45@_p<-XC`HX5~fLiZ6cEsmKcH*BSB3lXXDZiGae)_fPE;K^DlaPXHT zp#~Gh<)Y<@Zy6#{$d}}I`7c3MDoj%=W9uIz z4+vy((|RQXK;aleNtnf<0}erY_` z57NTwhl^Yw+M#~OJ7tkS94uk}XS{KE$dK5~e|7Q|M4&zIQnFJ^P^aV?89fM=u z0OTZIuEiTex;*tJRC~Dr!u4320V7X)S2QRH*iHTx2%=#9MQ2QsTId-9HP@~CzQmU+ zE--;U)F)A`5Y>N~ldd0hj>V7qT&^T-rBGBeDz@-=gSB|Szm?-PMKL z{mOA*=PL+LsU@jsvz(=^IS3_5jeNN;hZScg4hCjvOhcH^5HM*}a04sn4VUmmQ50%t zy^yMETnK4y7*gC7qaz&zq+jtsN#ImNI4Q8{3-~3{LgE$RY3x@J+i5S>&-ZM30_AFQi>+E2Is8 z@P8{&qa*FZxBX#dfmJT5XH*tC{k?E@t2H5! zUY$N(Ilk;W`&Z@zo^JO@H7UAQwBX^q9=9^Yu3KtMAo~&fp z0xb}+SV_7RFgVz8)U)5D#2zwCuBXv%AcAHV!L-bJTIOI{zX?rw{%6yQ3%IW4e8oA_ z_5Alqi}P;{xYzMVLcqO>KN17(rTk$FxQqMEckG4p9a~RJE}U-{b(yG#tV3Ckx)Er< zl!YISDIm0B$nihMTdU4nYmm1yc_M^n^*>#X33^%y!L-^^gYD{nwj2}nv=W19x&F7( zvgvik7OXR-K56|o>I1g}suHfjTpL)ofX2}fnvh}LI25C;Hy9TusoA#?L-9{vG^TOx z9cYI=kSmLmuomzo#;qt^R8=S*c3_~1(Ntj%Vqi;w<|Q@?!FueGupnMLK^TwUfso}6 z2@EZ5f$aO)x&Tq{!)J)Dd2>Bes%V_!9tlX0CV#4J^!4-98HH%NFG*qNbLz_}zIyYuV62G5zgvruMqmeFagJfM zVyTimgtux$zvisM@WIEkDV7=Wh_PA=mF&t3*`Q`(!TOac=qEoVBXay&@9mdYtzgmxl&RplXRR9kW^b8dA z2rj&63&BH2MzDD}4!{8`=|Vhkj|O0Omge^+=F4i0MTyA!1%=s#<42{ zF0sb%Bss5MJBjKDqvzkPYmh~*UgRgaF;{56mQaH6OEjLL#s$Az!7r!w6_`LMdaV%> zDs5w-4ol-AJ+APa2yU52we|UEWH09A+Qt-xUf>`g1z~O;M!B}~xR+77Vnia;1mo0A zS$d*+R%zJ~{V&ef;{*FH$YnZcP`nf%fS@B!+18gL2~f)e>D&kyWdp-U^aFGUPCDtS zQCytG!f%MPu5p1KnS;g>{8Z~7FDF0a6?LR<*$(c#o@r6Sr&0pY&d zk!|d5O41gB(6X_Ev$4Y553KNFbnVyB=2Rex>M{lvTd56+x=;O}?>X9yr5a3U&FE@D) zA}&>LpO1JVYeqg7O|=@ys_jZ#6(o|i{DE^KYNwOTpz4){(huyQU-jt;dX7aTQ7qg-C|q)1qOF2Afi=kP zHl(Ea?0`==-2&qlYJ*z7Iepr?5^gQY4-;_h(jUBU1AVwZyhLvmqOKo$o3Sn=+PT_z zGs%m@@C1ia;h1n>M-%=9(YZL~Tk19A9MkS>1FI_vz0D%Za zV<3Uc+(4nZjBgy}Tn}dJGJw344b;?>+stXXrqwrSY4eU|fUCHYWeZUN-ASh42H@a$ zVp^<`QMZZOMD2;%1j{Q2bW*g0-SL_vuwt%?;<$$De>?3E;H?FnrD+`}z;cFC5@Vb$ zNYhY#*0}g4pheaBE6U}9RY%C|Wi&$$V~QrTp-j%HxQA+0<0+s5bsiSqdVTT2a|_7@ z7(f9{OdQD}sCx~D1cd1qcGS@EOxXE=L(2uJv5XVsYV25nvtumfC|QvEwIA-Q-T6n66r zKOQZLL^bWq^kCFL;}>nxd$4ATQ=a`%@a7JqiqexO>`Dz%?GDoTY&nk^m*Y zphl&w5@eZB6d*?I_l6}vNnupSbTu(j&lDb(xdw92P86(wRXE}qhH*>~*9M}D0Q*qJ z^F&`shrZwI`Of9@0jEw|BHi>QDx%O9vedi`A5hJu6xGi1S}eGJml6`?gOd#k^Ab8= zl#y=1S>C{ho*OLH^eAO!WY&*W7UnBg6oqpciql`7u{Og+xwII4`gL)idjWXe zWPbr!M=g3mv3fVZElIb@h1(RzwzZL-#sQuWQFPlzG|P>aSE`SE%xwseuO=eKlV<{o zd4mei)DzyK9v61yw#oMGSZ9s)MU7k5ug28{1-Kdwp1}#x`unZCC8|zN*cz ztgaMp_gN$4!ulBVQ`w$#>sGxSu)pA`c;RNtV-HYe38$~&9gRNwwpVFJ2pTM}{DcWZ zH3eZ17UT(R!2c?>V7PV;#(TsOzTo%R$DWFM>^bj@gCAOD>g&fomfsaQfSIWvS`Z2H zhLS}i5VnyCJ0S=gV|k3Eu~V|4Gumu7Na_>l%``emv@}p< zEU#3xFcUj=lhB&sIY$OFKuBYIq}<%tHV{bypKMpXMIAVA+bctKwBLS8v8z5Kwl%l$ z#$g-t{N(w0ZL)7Csd%hpJ7+gWWEbPw)YnlY$J(ewD!`+YN@3f;bXcO=rWBr%(<6u^ z_rt+_riKcj$$lINsh%)v8jvZzxt^TZmBRj4W4F;mGy?5$(yZk&9!M1c+q&d=q}$Vm zJz5m~VWqGhg$`1b^oQk&mL~f)fxLNF!+Q`2=@D|pK@b&&a$7$r9ovqa^?V4`(t`pY z7kf)%n{lAAj?)2gkvpkQjDUeG&NdQ14uS^Sw;39ksuz?*ZvzTNacpmFPpJNo2APWW zEh-1FRknJlI5iOKThD6V1s-%qL4S%Gr$t3h5gWS7F}w;*Fb0k~$h1KSX`o3{*?|1{{QJ%om%81lJ>It8571jQ3xm$ksSod#9Qn+TKulJcFWk)AY zqU zO!ItWuskvwtVAa}F6usHAs*E#jiEnL=M>%XBVvq(VzO9(wdKS)s zGv77>ELI2W+PB%l;aWg2e&@c;gMtC_SDuf6vt!?8tjhx#1OFph^H%q5jtTRQ)x1yb z+dLr5JKFQNsRI+g-W&x#^ViSfB{ykak-`hFMm0L#r<}-x!wP*2S@WM9EZreVRXO!3a zTKY(QTTXzH4qwS}T~2veA491yDL8gj7+1d@V0Bm2CR9CWz#2(imcehN`d=IMV+5og z^%>_F8g^cR8UPKsbI1JhyEImr>gi5i6`;kA|pIqsKTI#KcrSg-z(>%9uKP5At^z#^Dt`11n?6If0HPN%S?k zHtK26b0}&PekJCkuHq?VJM3Q;ne$aEg!r8VVcP<+Sulgd(a6kzMOPB z>7V**G)2$Blzg&1ouW>MKqI^~RUo|DDZHo9I$u998atdc=jceJ_6Y6Z8}C4;`pj9e zwnXO$AK&l!$l#g6%~+gin$+S-OFglZWMI98*og6>s#qJ9^mpa-M%ntVQqX8r%HK80 z<&8$U;9Voc^?=IbXy;oAOX>+taw^76)V(W4@175_b66gYHMSJFwa>7cI|g(M=LW8e z6~jy_$<){7mSb%(cIpZ)tK6Y$L7p44F0Vhd6MWe!h`a#m3bkL{-M~GjavRaxg(N|! zPH#HK4*wawT{^ui6@fpT-VoaVh~86z-o=K1`xNx{ajJ-R3!ehzR6Y~siXLSRdVnsJ z9gk<+>NLgpq}SeK*{~nu{@OUizq(TG8{E}9*jLiZl0d6BusvI()tV*P3rT$)D=Dc* zQyN;@Vk5KB6b4j&*`n6wjOfnvoE=d4S1jw~sV{X?jU=gGud4Me%Z?WV>9?=JR!lk)cYxFH_YvzBC9i%~WnMrWT|)HANW1s{!{ z#wkzHkbr!4wcrE2YG3#W9X>*b7e0WG0DMn4{J3p|U)e~=Q;X0K$BlcL@GDOda`?z! z^#unGfD=j`96kVNp8zb>R&)g{-U&2}focgBc;1%3!a-MzbOMfUtdk(nfIu9%ojZ>T zbT4yHsP;?w^)yUU?oKk5Dl?PJbp=UrZ&hKAY(CSvl~xZ}FXXNRfTO`J!Sx$V<&a-b z%5f-7#bH*4()|hNgNBbi^L-9;Fv@p=hs^^T%R)EiOjz6trjlPzqamW1vUWZgvL)5i zK>7Tj1NAg3>&HL8{-!XT%7xekeqqt@U!)(bK1A`#m3-e;$T!fhwS5jPP zzpv$(HPOOGVQRzkvX*AKprwC{9F!{X zX)r;m#O)1VVwEg(djk_Vw=Rd#nfkLhd(Q!BE_B&lNhX5oYd*IH!K8u(2FHaRqbyId zhMgCT1u0fOE%;A9LJ3g~zJ13y?(jGu!>n@!?>Rh|TmEKTXDnF^9<9_EAqqiWzi?T*G`|DDM735EwOaEg4p zrpRy5@zI;eN6UHDEt2bc`3v&CRQE>a$UFK_v^0%~u1b^K5m=Zz;f}y=@dQc>Z(4=b z>Jb$bsss@rH}!n+EC)bN5@`^UcJrjxRc6HzCm)hOK(PN3eEV_?0bjx80r9)HJ+DS*L|svwQ@caYemK^XS=fH`7OS)X~HV z(mIarE5UJ^lAh36DqjD`Bp<^8J&=6P{9xTH|@S3PLID3^+^pC(jyjTi2 z^ND;6D+FQ#fY)bfVmhg1RTM`-sm!(P!x~@DY2yH+E6UT*;-47wh=4wJ!*6+>9rQDh z-|L7#Hr;#HffV3_GyHebq17JLqah%OI#jW~el3HVWt3>QzEhx$ZD_B67G*HcsUS8+ z`p`RHilvS@o`AvS@C1_9WU*gV$vKPwuHO6hC_0N*nzokHb{}DPxN#2Y=ukU(EMEK-A*k z)ls)~-_s?S&K)c@NZQpk{)v*3WsO>bW&6Cq*g%;vP-Y60nU$=#z<6)%Ur`;h67aPI zU(Qz$*GX~Jy+&}JzMvaS&6IdLZ!T@)&4@t5+fRFmN8Oj6pBnd&|9*OozUiU#AS{(x zR!`%uwXr-}Yp+B3EILv(?n8szoPm9khRDY5h(!%#QqGqc=gW+MeRiB0fWN1$XT*NF z1p_KeQ`8=0jRs79>fMDCif@=HrOk?~xNKKFf)_;yBncRWWx~7sGi91NS4W+&XqqVw z3v#~1gzrx?rsE~IMn>O7-HxbhW@--()2o}oFeS$OdIjm1T|r_=lAHCrILJD}FSKV6I`bY@BgFSexh0qddq-ViN7eq6 z+M%Zabtvku_?31MQcO-h&@k>cVQ(MPDbN1&|8{z6U7`A~(nCRP-TpUJPkjQawH*wH zu;%f-FR|?&-82mi486|CxcB*)Y1bk zQu} zchZ5^dFmAu^S2`AV2(Lgjiz@uBD@C6NC(ZR9Yv_%C{JFWLDz5eVdRk)fLNHL7C{OD z=zs)26Zx6guz+gU{rkX2AxjL;_2Wj23QDnh{xB8*PVvAAOK=VqE7nWCPi>*Am|xxG z;{CpprDyCNMuR&NHm_uRTfiNM#UdO)%u|n}0w{$ivBev(p9G~WsX({>PHn*0H6J4z zGY?OjdCY(n{?jvR-|(5M46hG=gUUBvZuGwHZj-Tua6ls35yLdSwk2tRF{Ref_-Um3 zbGaF430DD+zv3Vtt<&WeZ0*%0rqo{E_^Hv|DK~R@>TLjHG4AQ(Frv^m3+T-6m9*{w z7M#gQFiKcf$Tf}3jZ@}ZN4zQaR~!@yJDxI>ZE{ViC*V@@(3Wu&@e~?iE;`(tw4zfh zBjut~Ba5&%dTNBdgY6>3!JbTAG}$dUg~69U0ZsW7yf9z+;#t&FxO`>Rolm zb|9d(!DrRz+=;{FX}l6#$%Db6T$}8hPeSO3?4>trw6K2vMywZTTW`S)RukpHR}Q!) zwrvQ^pbf=SrP!-v?-~Rk8BrpZn#VY_3L9!oj2lfus^c%kUDe+V33yO2mjKsD#)XaQ zcDnUX64MB_!55rJIBE<&vS-+2uS!}53R$Iy+|f;n6bHSd;wADZl0 z%Iet<{SHuqO~WeEfAQ?c4lCRdIqp%KyHtRw^DRG|kF*0x-tVt~aQ}fM z?O7$BuCQ<2Pk&2LQ#+}Jx8Qvr+!Qt(@4LRkqvQE5?~QJOdz%mATMvHysJ$VC_t0+?xrGFyIy9MRV^GMHElh%Dt z;gVN;1m`nX`*Ln;k%bpm1SN*-rxj2 zO7V8&<*PB3w^3sD5I~cc0I0%I=#3gFnVuvk1u!G&`_Ox#D0QwU_9u>dq8d0s%xRh7oCI>1;QLnTb2#XdV6MS_cgm%-K z<)Xt)_ImPcvhU%S_iltm;!~$1CScz)<51)%e=z$uh(s|o#Q97SI?_K>XB&+Y$aDoo zvI$5?LfE{h-b?%?p1Y$E>>t02$|r3D`ML)BvP@}Q0Jy`(z9(Xah*`zRUY<|pOr@9C z)W!p8id@tX%0f;1QuI}lR?G3}zft=}s@fMQCAof{KS&Mn55^LhW6{7C*g-Wru!CEL zJq{C}T0Hf5YVy<{43{L-W#SXYdA{{s(477sgBC5;mY5zIGv>;`E4;D_Mb|+(u z5SHvP9#Y63=)(!0@p55_*k6pe@+M*r7HhTAq@stSFSfq?SJHi%6e>EP@U=T!uuDa( zTfDwf#P*pJWFPrs1#JfR*MZu|Fiz^#!(Q|4HA6HM%C)cP1;t)t;8vT)60Gdn@NR97 zfi&v&jIg7YarNRON{BLofdv<+_$=N>@auU9rw0b-iviOkUBq9r=YToD^`g3hr6{UL z#U9CZ1r>(?ECQea0W4w&A)-rHtyjh*gwhdBgof`-0DL6c*cOPaBE@`#%XTEEnnz=| zb9~1PPF^lSO6c03#2oOur6PLzP!hivnA+z71H?KHP$h$9fGzZfJ&7qB zvEEH?dIwsFn?-1fd=4EmfxDB;rDw7eB$I1sY4yT{z!_zziimRlaCsPg?4uuAH=cCB z72{hmT!}{I{{lnvq^gImkjj(umFy(4T7kVj_Yljz>?`ur2S28I0}t1LdXN_I-26^#3iJ3X})TQC;&ie1J4(8l8kvuhCqx-B9UprW$$K86=83q z(lRG6U%f7sVn935Wt3a7Zi1aDo(mgkd1WznQTd*^JI0|2V|5S9>=k6IYmntt1kb?) z|JJe01QCZPMYy6BhZL^IDzN9!l~7ctNzn=$HfjTJW7a9ALv)_}8m`E^Ga%+SuCaYY zi2P1HL$>&{wHNUVE16KmZ;ZoLzrdkD^|NY~j)_N_ahiaS&Q=5Vd6{_H{|hK!riGO=g!$Jqr^);JOmwn$VPOd-f%C zkJ(8sTExgstb&UmdYY)0gb!r}FY4s*q733ZfWCn}*(On@sBKUoqh$@F?Q+kQ9#m`y zyDjt%RyOZx*J#>28X*ewjNT{QJ{PtSN1?{x=z3B)z0|AWLigi6QE5#Z_8Tl$L8HOC z$%GI8^+<2mC+J&g&GJyhsH`(578|hCo`QOC2tlm~LY_q$K_dXS&jHrgQL7gloZk~^ z?1oF@aW}vkZ zVg)KN?RQu`X^{R31wVu<6TH><`c{$Psffd(Yc+n+4&1Y`n0EUin3cq~N&GzZ-Dp(x zL#S`y%Dl*v-RqC0MVA3(b?$dFUK^%$|n?}HHbj1q6F%qQY ztJhNe_dNTrl=I`7vaQtkfQUrMxo=7_{4b5kPN4D*ovY{&w$YKBnom&3o+%Tt<3%>k z+@>w`8E9$$Bh?)&e~cV-5@};eW^Ih`_W>w5$?lHEiVkzY-k}U@K@gNtVXoX~oF(sX z{3t>(Um-hsysullt-u%<)J70FR~Q@H%p;P?Rp@hz7 zyi2+JVH5mTchPYroP!H_8?g=*g`l#|E$nFp?0SLyeWWx)36J1Xt>(%pbz=C?8OlYT+Sr51n6` z2uVeYkyBCGWKc5LgX^}V6a$n-dq)W5tT*~sQ04%QSX{$<(W?=Ponh#s!K!yfR1~$n zWTFX?$igBsO3t~$q>O*dL~Y5@iIlNoY79ET7E_3ZkP0`+`nl8r>(%Ix{6+Q0lmN-4 z6E5p6;>w8k|nsOfDejD3s{e&t*8S~Lde*3H&s4N>lHOmE$#L3KLQkRRsl7$@1Wa^@j{9l%4=_8gL<+GuV@-R>VeO3eljVONQ~uI{I&UW*qvRIMWvDYjU}TBdMbUAjTm zKt!M8FGd`Wph62=D+RWRQh*}pr{%~8vKgPxdKdctCL>A_a5x}>k$@;}IxA=vMcrfvLdCZ1}-+oTkva_>yu6)5NqrJ}=^J{#X#NfOFA`%H4q&y4;&&=N*Hk6r*A1`jWj zJhL7;qj>iT!aznI%J>TEjbY=D@5G7`V(@0~@s*qm?dg+F1eu6*)AU^3fb|2&!B%D( z*#&abv`BpqCDVR@JUvqmvRsH46VWZ?f^hgXg<;!ZeMdtiYwAXxAt~j9jUy|%a$pz!R)F1RIpq?YC$cb zb^R?!J3K(V!UMUcC~gseCx#UxzRdoVlb1oaPms48YoIhw#aaWOdq$_oA|+4#_$(sqhvo&H z|Br`lIKEBEH6V%xG$d$WKQL;PG}*Rj$&!)>7A&zXU*TG`e3@<3C>uOAM_I`a+>6Re zR@xRUvn?olz`e9&nTsJfeNPAJ&O^vxera%H+N0efUO8J_-HokiOy;bQKoQNI&IfdE z3I;%BEZwv3g*pi;R6<|18)Sx*5}{v%Vaz1~zLuP4UhQ*ORs=Bsb^0SXPylUlq;J`0 zoD8|Qb^IFW5q3{@CBX(Aj60<*?F4Ot0qrO7iPiT94U;Y2STrzY5M7SGg`$E}M4h!36|<^5 z0>_|i?4Lmabg7Lwa(t~k;c4nwb~73cX|TL3Kl%~;FTjj$W=1!d(ap^0{&r?;ILgd8 z_^r%X0U%;VcOE#ikYX?sNO06o#gBh6^2WEniz)=pOdj(%L{b8W5pA5{ex044J_1>yt-ToXn->N#0&j*Hiu@CwsyHc=Z#Qu{&yym z#?Kk9*rrS~L12*sUlZ|FpUr6G1Ktzmyw-Q-gv^UQT&Ix`I@$Sm+_{Oyc0qh}+w&G7O)PxDbXl-L9o8 z0L!>%0ymZ%^RQ$@XNqCbtYSMBC$=IS_iAng?dqOCQ7Q)^5AuVwZ4{uI$c@^Hls^930C?L0dvB4$hn)gq9=%W)H3o5=lNfS|>d--s1vT^5ltntB8nF{X@R_R?AtiWmkK zp+_nNYp{It>#qc;C~rjQdt^ndYt_>Z-dj~$jc8|BDcwM)(d3phttdBA5i-fgB8O2} zZ#b8xH)kAiOny&pxeIB>YiY5L5-Lpp=NjrsSMdBG#HUrK3)8x6xs9*LlI(ngnSIu5 z`>X=VoK+fTaM@3+5MO5t?ZlE%|vMB|mR^o*h@$&7Ou-9W$rTLTbV*XEw;0 zlQ|0)yxDW?nK?wqtW1Z!U^ecQo5i`AnN5DPai<%-3ha(Nq@&*#CYS>b<|JWqjI-k1 z-&-}H{?Q+!p$@H2 z(Z|25p$vHUg0i)w)m+9OP;Fl5B<1EsOGvf3gmjzNl5(?qrHk~NaTD78C1s@Lyqw<9 zbQT^^cNQO+4k^zeO_h?N-;Dob&sT3QmPpqbKjZL&{~kbhl9!H2E*_J-RstR= zdHUpJ$K>RETk;AiITzpJ7d{j`DtR2#sYfM`FV@;;Iphtx9NE5+ub+jw+~bOUqi=kK z>|QV1AEnu77Zz$g6^}y-eac@}e6`_==AEs0H`!}xd9u!4tGFNUw`;f8LcUzCiOk1! zk(oK^4a*}>070o|N<9i2OYG{zKVz}FDTYE1BxyXJa2}Ow?r^v+#QP2WCE(bOcLLtccn^nv zF`jZf;W)y-tw`I2=Qy53#AywKC4YjQ4}U$*5`4d)!PIL0s^;Dk7PlT@DxO^U;Scrr zkd#bSBHq~B-NoY!#cuViNs!8;@f%$^Xy4C%f(^IjJe);btCE+XjNh;a6|?FEpqfi`a=dI&yA1^gR2yt2YteTdFC z%nhW_$?g@fJdW+QIN4nr7{7yXD=QL&gEHdWh%Dx-Cos_U987BeLy#84YOf_1XaJJ- za_t*i*3iw3<*@_XP4}ENSK<&)*X`|haAe}sio|JiojZwnw}t%Trp;}?iJbzcv3Mcw13U{TMUICrYFIT78AT3?37TaE%Y$ugF2-n zz&d+PZA2DMeMeR9^rwfXjXJ8>YxfDhev{|i4qEfou}B$1Ozi%H2gxkvYwep3*?%E) zdqavi-q-0i4Rl)urEvXilRjUSEx)f+Y}8IAh!EMmQS=Jbr+8n&JRBVg`jb_ciGGIe z3x&V{OE-?RKT3AG8hp>u*k2#dVrXgf;5Z(1qLi!z{}9iE2~hpQXRberk5YRY&MLPh z(w4-|0btjYXU>W}RJNmla~(y{;HL8_m;pCYCq+B1C{3&rbg9`WFw#9}sJNmjn#x)8 zKQ@&7(LZ-#6O1ORz2MDZ7z{cFx;Pp)e$zaaY)n7^Va@^NSo~sTUQK3PQM!b$!DsnCb-fq|tn zMIF@@9dBV#u)?aT;O`@vUZo#@InZ~gcVjJoj-IDC1u8ly$rGOrNsuyiF;vmjYl8G; z;$m$7vsh=Ak}^0bS`R9}9!tU@|IY+M3}Sv%hJw^n@0_X>bwt9NfFnV^Tya?CRCz6| zne?(@kW1qt9C|OpitS0csEzFpv_b)o%BIQQOnJcKoLqEJDQZw z;mU;a4qBKxUKy#lkB@L4mpezog4EE7@KwzFmAm&tmHMz;)B;m!lKZNFyCvX0OxB>> zC)M9#R)U%!+fT}cZDh+*ahz0&+Gydrs8cgLp`BTR8V1qfvv=gFZ=*)R9srmsu&E1l zJRM{J%a`GSPIC5=33|*-xQFn3h3cpzzm9yZaKYI_^QcB$Gw1JYV9D z0%VIc{qR3cCL3>i$RHlAazVMUnRJ3Qj@7mpQ<9ffk*-7vQcAO%+#_(~mZzfC zKqey+m5SyOX=o8F^!a z6USj$!ez~^OHe8f)?OWO91J+fkQsP=NE(d`ynH1uu#ljO(6n(i-DQT;BcQ@zRSa|w zxk1V6Chgh6!?L4A9MS56mLj$27L>kv1WUG1>l*?L5VX}5orkIAT)NYa`V@&pe#b%Y z>+5i~;~>>QYGHJ4c@$3eov|lU*XlAJiXMq&TXPcuNb;GH6>+H7IHoGEHDxRI#AFkO zK~rd>61HN{f=C4U9IEU%P7T4)fny^SvB`c?yxQmmK1 z6-V<($3dJ*fd>FMTAL;@(2*fHk}$O)c!Z;EBv3dyXdplZz?Yzr1f8qqU~>f8kg#1H zq&1t`qN8;Oc~$Gx850JetO+MfU?o9u1yliC%0ABs*9 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 z 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�+-iqJC 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 z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL_}}f&0SN#A0Dz$XuiFvm z1PvH4V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ y0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxdf$KovtClkW literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/mygdb b/linux-0.11-lab/mygdb new file mode 100644 index 0000000..ddffed8 --- /dev/null +++ b/linux-0.11-lab/mygdb @@ -0,0 +1,3 @@ +#!/bin/sh +cd cur/linux +gdb tools/system -x ../../0.gdb diff --git a/linux-0.11-lab/run b/linux-0.11-lab/run new file mode 100644 index 0000000..c59d08e --- /dev/null +++ b/linux-0.11-lab/run @@ -0,0 +1,3 @@ +#!/bin/sh +bochs -q -f conf/0.11.bxrc + diff --git a/linux-0.11-lab/rundbg b/linux-0.11-lab/rundbg new file mode 100644 index 0000000..8bc9255 --- /dev/null +++ b/linux-0.11-lab/rundbg @@ -0,0 +1,2 @@ +#!/bin/sh +bochsdbg -q -f conf/0.11.bxrc diff --git a/linux-0.11-lab/rungdb b/linux-0.11-lab/rungdb new file mode 100644 index 0000000..1beffab --- /dev/null +++ b/linux-0.11-lab/rungdb @@ -0,0 +1,3 @@ +#!/bin/sh +bochs -q -f conf/0.11-gdbstub.bxrc + diff --git a/linux-0.11-lab/runtest b/linux-0.11-lab/runtest new file mode 100644 index 0000000..c8b3059 --- /dev/null +++ b/linux-0.11-lab/runtest @@ -0,0 +1,3 @@ +#!/bin/sh +bochs-term -q -f conf/0.11.bxrc +

{jmQiMRBr{oeMqOd4c%^`Eq!0Nq-4@=yn_8) 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�<_#`NtBour&~MyL$mZ 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�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 Cri=yv literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/Makefile b/linux-0.11-lab/cur/linux/Makefile new file mode 100644 index 0000000..ecbcf30 --- /dev/null +++ b/linux-0.11-lab/cur/linux/Makefile @@ -0,0 +1,125 @@ +# +# if you want the ram-disk device, define this to be the +# size in blocks. +# +RAMDISK = #-DRAMDISK=512 + +AS86 =as86 -0 -a +LD86 =ld86 -0 + +AS =as +LD =ld +LDFLAGS =-m elf_i386 -Ttext 0 -e startup_32 -Map=System.map.2 -N +CC =gcc -march=i386 $(RAMDISK) +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -fno-stack-protector -mcld +CPP =cpp -nostdinc -Iinclude + +# +# ROOT_DEV specifies the default root-device when making the image. +# This can be either FLOPPY, /dev/xxxx or empty, in which case the +# default of /dev/hd6 is used by 'build'. +# +ROOT_DEV= + +ARCHIVES=kernel/kernel.o mm/mm.o fs/fs.o +DRIVERS =kernel/blk_drv/blk_drv.a kernel/chr_drv/chr_drv.a +MATH =kernel/math/math.a +LIBS =lib/lib.a + +.c.s: + $(CC) $(CFLAGS) \ + -nostdinc -Iinclude -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) \ + -nostdinc -Iinclude -c -o $*.o $< + +all: Image + +Image: boot/bootsect boot/setup tools/system tools/build + cp -f tools/system system.tmp + strip system.tmp + tools/build boot/bootsect boot/setup system.tmp $(ROOT_DEV) > Image + rm -f system.tmp + sync + +disk: Image + dd bs=8192 if=Image of=/dev/PS0 + +tools/build: tools/build.c + $(CC) $(CFLAGS) \ + -o tools/build tools/build.c + +boot/head.o: boot/head.s + +tools/system: boot/head.o init/main.o \ + $(ARCHIVES) $(DRIVERS) $(MATH) $(LIBS) + $(LD) $(LDFLAGS) boot/head.o init/main.o \ + $(ARCHIVES) \ + $(DRIVERS) \ + $(MATH) \ + $(LIBS) \ + -o tools/system + nm tools/system | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw]\)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort >System.map + +kernel/math/math.a: FORCE + (cd kernel/math; make) + +kernel/blk_drv/blk_drv.a: FORCE + (cd kernel/blk_drv; make) + +kernel/chr_drv/chr_drv.a: FORCE + (cd kernel/chr_drv; make) + +kernel/kernel.o: FORCE + (cd kernel; make) + +mm/mm.o: FORCE + (cd mm; make) + +fs/fs.o: FORCE + (cd fs; make) + +lib/lib.a: FORCE + (cd lib; make) + +FORCE: + +boot/setup: boot/setup.s + $(AS86) -o boot/setup.o boot/setup.s + $(LD86) -s -o boot/setup boot/setup.o + +boot/bootsect: boot/bootsect.s + $(AS86) -o boot/bootsect.o boot/bootsect.s + $(LD86) -s -o boot/bootsect boot/bootsect.o + +tmp.s: boot/bootsect.s tools/system + (echo -n "SYSSIZE = (";ls -l tools/system | grep system \ + | cut -c25-31 | tr '\012' ' '; echo "+ 15 ) / 16") > tmp.s + cat boot/bootsect.s >> tmp.s + +clean: + rm -f Image System.map tmp_make core System.map.2 + rm -f boot/bootsect boot/setup + rm -f init/*.o tools/system tools/build boot/*.o + (cd mm;make clean) + (cd fs;make clean) + (cd kernel;make clean) + (cd lib;make clean) + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in init/*.c;do echo -n "init/";$(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + (cd fs; make dep) + (cd kernel; make dep) + (cd mm; make dep) + +### Dependencies: +init/main.o : init/main.c include/unistd.h include/sys/stat.h \ + include/sys/types.h include/sys/times.h include/sys/utsname.h \ + include/utime.h include/time.h include/linux/tty.h include/termios.h \ + include/linux/sched.h include/linux/head.h include/linux/fs.h \ + include/linux/mm.h include/signal.h include/asm/system.h include/asm/io.h \ + include/stddef.h include/stdarg.h include/fcntl.h diff --git a/linux-0.11-lab/cur/linux/System.map b/linux-0.11-lab/cur/linux/System.map new file mode 100644 index 0000000..6e469c2 --- /dev/null +++ b/linux-0.11-lab/cur/linux/System.map @@ -0,0 +1,576 @@ +00000000 T pg_dir +00000000 T startup_32 +0000005a t check_x87 +00000073 t setup_idt +00000090 t rp_sidt +000000a3 t setup_gdt +00001000 t pg0 +00002000 t pg1 +00003000 t pg2 +00004000 t pg3 +00005000 T tmp_floppy_area +00005412 t L6 +00005414 t int_msg +00005428 t ignore_int +00005450 t setup_paging +000054ae t idt_descr +000054b6 t gdt_descr +000054c0 T idt +00005cc0 T gdt +000064c0 T fork +000064ef T pause +0000651e T setup +00006555 T sync +00006584 t time_init +00006799 T main +0000690c t printf +0000695b T init +00006bd4 T show_task +00006c59 T show_stat +00006c9f T math_state_restore +00006cfd T schedule +00006eaf T sys_pause +00006ec5 T sleep_on +00006f24 T interruptible_sleep_on +00006fdf T ticks_to_floppy_on +000070aa T floppy_on +000070d9 T floppy_off +000070e9 T do_floppy_timer +000072e1 T do_timer +000073d0 T sys_alarm +0000744f T sys_getpid +0000745b T sys_getppid +00007467 T sys_getuid +00007476 T sys_geteuid +00007486 T sys_getgid +00007496 T sys_getegid +000074a5 T sys_nice +000074d0 T sched_init +00007660 t bad_sys_call +00007668 t reschedule +00007674 T system_call +000076a8 t ret_from_sys_call +000076f0 T coprocessor_error +00007712 T device_not_available +0000774c T timer_interrupt +00007784 T sys_execve +00007794 T sys_fork +000077ac T hd_interrupt +000077e8 T floppy_interrupt +0000781e T parallel_interrupt +00007825 t _get_base +00007857 t die +00007a39 T do_double_fault +00007a5c T do_general_protection +00007a7f T do_divide_error +00007aa2 T do_int3 +00007b6a T do_nmi +00007b8d T do_debug +00007bb0 T do_overflow +00007bd3 T do_bounds +00007bf6 T do_invalid_op +00007c19 T do_device_not_available +00007c3c T do_coprocessor_segment_overrun +00007c5f T do_invalid_TSS +00007c82 T do_segment_not_present +00007ca5 T do_stack_segment +00007cc8 T do_coprocessor_error +00007cfc T do_reserved +00007d1f T trap_init +00008003 T divide_error +00008008 t no_error_code +00008038 T debug +0000803f T nmi +00008046 T int3 +0000804d T overflow +00008054 T bounds +0000805b T invalid_op +00008062 T coprocessor_segment_overrun +00008069 T reserved +00008070 T irq13 +00008085 T double_fault +0000808a t error_code +000080bc T invalid_TSS +000080c3 T segment_not_present +000080ca T stack_segment +000080d1 T general_protection +000080d8 t _get_base +0000810a T verify_area +00008171 T copy_mem +000082cb T copy_process +00008778 T find_empty_process +0000880c T panic +00008847 T printk +00008898 t skip_atoi +000088f3 t number +00008b64 T vsprintf +00008ff0 t get_fs_long +00009006 t put_fs_byte +0000901e t put_fs_long +0000902a T sys_ftime +00009030 T sys_break +00009036 T sys_ptrace +0000903c T sys_stty +00009042 T sys_gtty +00009048 T sys_rename +0000904e T sys_prof +00009054 T sys_setregid +0000910d T sys_setgid +000091a4 T sys_acct +000091aa T sys_phys +000091b0 T sys_lock +000091b6 T sys_mpx +000091bc T sys_ulimit +000091c2 T sys_time +0000921e T sys_setreuid +00009300 T sys_setuid +00009395 T sys_stime +000093eb T sys_times +0000948b T sys_brk +000094cd T sys_setpgid +000095a6 T sys_getpgrp +000095b2 T sys_setsid +0000962c T sys_getgroups +00009632 T sys_setgroups +00009638 T sys_uname +000096a1 T sys_sethostname +000096a7 T sys_getrlimit +000096ad T sys_setrlimit +000096b3 T sys_getrusage +000096b9 T sys_gettimeofday +000096bf T sys_settimeofday +000096c5 T sys_umask +000096f8 t _get_base +0000972a t put_fs_long +00009736 T release +0000979a t send_sig +00009819 t kill_session +00009873 T sys_kill +00009a23 t tell_father +00009aad T do_exit +00009ce1 T sys_exit +00009cfa T sys_waitpid +00009f20 t get_fs_byte +00009f2e t put_fs_byte +00009f46 t put_fs_long +00009f52 T sys_sgetmask +00009f5e T sys_ssetmask +00009f8a T sys_sigpending +00009f90 T sys_sigsuspend +00009f96 t save_old +00009fe9 t get_new +0000a029 T sys_signal +0000a0ad T sys_sigaction +0000a1b7 T do_signal +0000a3a3 T kernel_mktime +0000a4e8 t oom +0000a507 T get_free_page +0000a543 T free_page +0000a5b2 T free_page_tables +0000a6b1 T copy_page_tables +0000a832 T put_page +0000a91e T un_wp_page +0000a9d6 T do_wp_page +0000aa61 T get_empty_page +0000aaa1 t try_to_share +0000ac33 t share_page +0000ace7 T do_no_page +0000ae49 T mem_init +0000aebd T calc_mem +0000afb2 T page_fault +0000afe9 t get_fs_long +0000afff T sys_ustat +0000b005 T sys_utime +0000b0b2 T sys_access +0000b18e T sys_chdir +0000b202 T sys_chroot +0000b276 T sys_chmod +0000b310 T sys_chown +0000b38b T sys_open +0000b62e T sys_creat +0000b651 T sys_close +0000b720 T sys_lseek +0000b837 T sys_read +0000ba2a T sys_write +0000bbd8 t lock_inode +0000bc05 t unlock_inode +0000bc23 T invalidate_inodes +0000bc92 T sync_inodes +0000bce9 t _bmap +0000c0d5 T bmap +0000c0f8 T create_block +0000c11b T iput +0000c28a T get_empty_inode +0000c3df T get_pipe_inode +0000c454 T iget +0000c619 t read_inode +0000c84f T sys_sync +0000c8b2 T sync_dev +0000c9ab T invalidate_buffers +0000ca1d T check_disk_change +0000cac7 t remove_from_queues +0000cbbe t insert_into_queues +0000cc83 t find_buffer +0000cceb T get_hash_table +0000cd6d T getblk +0000cf0b T brelse +0000cf54 T bread +0000cfd9 T bread_page +0000d0fb T breada +0000d1f0 T buffer_init +0000d31f t lock_super +0000d34c t free_super +0000d391 T get_super +0000d400 T put_super +0000d4d3 t read_super +0000d816 T sys_umount +0000d977 T sys_mount +0000dae8 T mount_root +0000dcf6 t get_fs_byte +0000dd04 t put_fs_byte +0000dd1c T block_write +0000de6e T block_read +0000df99 t get_fs_byte +0000dfa7 t put_fs_byte +0000dfbf t rw_ttyx +0000e007 t rw_tty +0000e057 t rw_ram +0000e05d t rw_mem +0000e063 t rw_kmem +0000e069 t rw_port +0000e103 t rw_memory +0000e1d9 T rw_char +0000e243 t get_fs_byte +0000e251 t put_fs_byte +0000e269 T file_read +0000e414 T file_write +0000e60e t put_fs_byte +0000e626 t cp_stat +0000e6fd T sys_stat +0000e747 T sys_lstat +0000e762 T sys_fstat +0000e7bf T sys_readlink +0000e7c5 t _get_base +0000e7f7 t get_fs_byte +0000e805 t get_fs_long +0000e81b t put_fs_byte +0000e833 t put_fs_long +0000e83f t get_fs +0000e853 t get_ds +0000e867 t set_fs +0000e86e T sys_uselib +0000e874 t create_tables +0000e9bf t count +0000e9fe t copy_strings +0000ebba t change_ldt +0000ed3d T do_execve +0000f7bf t get_fs_byte +0000f7cd t put_fs_byte +0000f7e5 t put_fs_long +0000f7f1 T read_pipe +0000fac6 T sys_pipe +0000fcc8 t get_fs_byte +0000fcd6 t permission +0000fd77 t match +0000fddf t find_entry +00010239 t get_dir +00010426 t dir_namei +000104a5 T namei +000105bb T open_namei +0001090e T sys_mknod +00010b3e T sys_mkdir +00010eef t empty_dir +000110cd T sys_rmdir +00011425 T sys_unlink +000116c6 T sys_symlink +000116cc T sys_link +00011926 T free_block +00011a98 T new_block +00011c3c T free_inode +00011da3 T new_inode +00011f7d t dupfd +00012057 T sys_dup2 +0001207e T sys_dup +00012099 T sys_fcntl +000121d8 T sys_ioctl +000122a9 t free_ind +00012348 t free_dind +000123e7 T truncate +0001251c T sys_select +00012522 t lock_buffer +0001254f t unlock_buffer +00012741 t make_request +000128e5 T ll_rw_block +0001293e T blk_dev_init +0001298c t unlock_buffer +000129c1 t end_request +00012a72 T floppy_deselect +00012aa9 T floppy_change +00012b2f t setup_DMA +00012be5 t output_byte +00012c5b t result +00012d18 t bad_flp_intr +00012d77 t rw_interrupt +00012e66 T setup_rw_floppy +00012f27 t seek_interrupt +00012f80 t transfer +000130b5 t recal_interrupt +000130ff T unexpected_floppy_interrupt +00013144 t recalibrate_floppy +000131a6 t reset_interrupt +000131eb t reset_floppy +00013268 t floppy_on_interrupt +000132d3 t do_fd_request +000134d7 T floppy_init +00013529 t unlock_buffer +0001355e t end_request +000135fd T sys_setup +000139b0 t controller_ready +00013a44 t hd_out +00013b31 t drive_busy +00013b97 t reset_controller +00013c14 t reset_hd +00013cac T unexpected_hd_interrupt +00013cbf t bad_rw_intr +00013cfd t read_intr +00013e23 t recal_intr +00013e3d t do_hd_request +0001413e T hd_init +000141b8 t unlock_buffer +000141ed t end_request +0001428c t do_rd_request +000143c2 T rd_init +00014418 T rd_load +000146c4 t get_fs_byte +000146d2 t put_fs_byte +000146ea T tty_init +000146fb T tty_intr +0001476f t sleep_if_empty +000147a7 t sleep_if_full +0001481b T copy_to_cooked +00014dd6 T tty_read +00015144 T tty_write +00015356 T do_tty_interrupt +0001537e T chr_dev_init +0001537f t gotoxy +000153cd t set_origin +00015433 t scrup +00015623 t scrdown +0001571a t lf +00015750 t ri +00015786 t cr +000157a7 t del +000157d9 t csi_J +0001586a t csi_K +0001591c T csi_m +00015983 t set_cursor +000159e9 t respond +00015a41 t insert_char +00015aa4 t insert_line +00015ae8 t delete_char +00015b46 t delete_line +00015b8a t csi_at +00015bc8 t csi_L +00015c06 t csi_P +00015c44 t csi_M +00015c82 t save_cur +00015c97 t restore_cur +00015cb6 T con_write +00016344 T con_init +0001657b T sysbeepstop +000165a4 t sysbeep +00016602 t mode +00016603 t leds +00016604 t e0 +00016605 T keyboard_interrupt +0001662e t e0_e1 +00016659 t set_e0 +00016662 t set_e1 +0001666b t put_queue +000166a4 t ctrl +000166bc t unctrl +000166c0 t unalt +000166d6 t lshift +000166de t unlshift +000166e6 t rshift +000166ee t unrshift +000166f6 t caps +00016718 t set_leds +0001672e t uncaps +00016736 t scroll +0001673f t num +00016748 t cursor +00016768 t cur2 +00016791 t cur +0001679d t ok_cur +000167ab t num_table +000167b8 t cur_table +000167c5 t func +000167e2 t ok_func +000167f5 t end_func +000167f6 t func_table +00016826 t key_map +00016887 t shift_map +00016949 t do_self +000169b1 t none +000169b2 t minus +000169c7 t key_table +00016dc7 t kb_wait +00016dd0 t reboot +00016de2 t die +00016de4 t init +00016e59 T rs_init +00016edc T rs_write +00016f2c T rs1_interrupt +00016f34 T rs2_interrupt +00016f39 t rs_int +00016f50 t rep_int +00016f6d t end +00016f7b t jmp_table +00016f8c t modem_status +00016f94 t line_status +00016f9c t read_char +00017023 t get_fs_byte +00017031 t get_fs_long +00017047 t put_fs_byte +0001705f t put_fs_long +0001706b t change_speed +000170e9 t flush +000170fb t send_break +000170fc t get_termios +00017158 t set_termios +000171a8 t get_termio +00017270 t set_termio +00017334 T tty_ioctl +00017632 t get_fs_byte +00017640 T math_emulate +00017723 T math_error +00017743 T _exit +00017753 T open +0001779c T close +00017810 T dup +00017847 T setsid +00017876 T execve +00017913 T strcpy +0001792f T strncpy +00017954 T strcat +0001797f T strncat +000179b4 T strcmp +000179db T strncmp +00017a09 T strchr +00017a36 T strrchr +00017a65 T strspn +00017aa2 T strcspn +00017adf T strpbrk +00017b16 T strstr +00017b4f T strlen +00017b72 T strtok +00017bf5 T memcpy +00017c15 T memmove +00017c69 T memcmp +00017c93 T memchr +00017ccb T memset +0001bb48 d envp_rc +0001bb5c d envp +0001bb80 D sys_call_table +0001bcdc D NR_syscalls +0001bce0 d init_task +0001cce0 D current +0001cd00 D task +0001ce00 D stack_start +0001ce08 D current_DOR +0001ce20 d thisname.1955 +0001ce60 d month +0001cea0 d last_inode.1935 +0001cea4 D start_buffer +0001cec0 d crw_table +0001cee0 d ioctl_table +0001cf00 d floppy_type +0001cfc0 d cur_spec1 +0001cfc4 d cur_rate +0001cfc8 d floppy +0001cfcc d current_track +0001cfd0 d callable.1844 +0001cfe0 D tty_table +0001f500 D table_list +0001f520 d quotient +0001f540 D _ctype +0001f641 B __bss_start +0001f641 D _edata +0001f660 b printbuf +0001fa60 b memory_end +0001fa64 b buffer_memory_end +0001fa68 b main_memory_start +0001fa80 B jiffies +0001fa84 B startup_time +0001fa88 B last_task_used_math +0001fa9c b mon_timer +0001faac b moff_timer +0001fac0 b timer_list +0001fdc0 b next_timer +0001fdc4 B last_pid +0001fde0 b buf +000201e0 b HIGH_MEMORY +00020200 b mem_map +00021100 B inode_table +00021800 B nr_buffers +00021804 b free_list +00021808 b buffer_wait +0002180c B ROOT_DEV +00021840 B blk_dev +00021878 B do_floppy +0002187c B selected +00021884 b recalibrate +00021888 b reset +0002188c b seek +00021890 b reply_buffer +00021897 b current_drive +00021898 b sector +00021899 b head +0002189a b track +0002189b b seek_track +0002189c b command +000218a0 B do_hd +000218c0 B hd_info +000218f0 b recalibrate +000218f4 b reset +000218f8 b NR_HD +00021900 b hd +00021950 B rd_length +00021954 b cr_flag.1923 +00021960 B beepcount +00021964 b video_type +00021968 b video_num_columns +0002196c b video_size_row +00021970 b video_num_lines +00021974 b video_page +00021978 b video_mem_start +0002197c b video_mem_end +00021980 b video_port_reg +00021982 b video_port_val +00021984 b video_erase_char +00021988 b origin +0002198c b scr_end +00021990 b pos +00021994 b x +00021998 b y +0002199c b top +000219a0 b bottom +000219a4 b state +000219a8 b npar +000219c0 b par +00021a00 b ques +00021a04 b saved_x +00021a08 b saved_y +00021a20 B drive_info +00021a40 B user_stack +00022a40 B hash_table +00022f20 B super_block +00023280 B file_table +00023680 B request +00023b00 B rd_start +00023b04 B _ctmp +00023b08 B errno +00023b0c B ___strtok +00023b10 B end +00023b10 B _end diff --git a/linux-0.11-lab/cur/linux/System.map.2 b/linux-0.11-lab/cur/linux/System.map.2 new file mode 100644 index 0000000..44e841e --- /dev/null +++ b/linux-0.11-lab/cur/linux/System.map.2 @@ -0,0 +1,1075 @@ +Archive member included to satisfy reference by file (symbol) + +kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + fs/fs.o (ll_rw_block) +kernel/blk_drv/blk_drv.a(floppy.o) + kernel/kernel.o (do_floppy) +kernel/blk_drv/blk_drv.a(hd.o) + kernel/kernel.o (do_hd) +kernel/blk_drv/blk_drv.a(ramdisk.o) + kernel/blk_drv/blk_drv.a(hd.o) (rd_load) +kernel/chr_drv/chr_drv.a(tty_io.o) + kernel/kernel.o (tty_table) +kernel/chr_drv/chr_drv.a(console.o) + kernel/chr_drv/chr_drv.a(tty_io.o) (con_write) +kernel/chr_drv/chr_drv.a(keyboard.2.o) + kernel/chr_drv/chr_drv.a(console.o) (keyboard_interrupt) +kernel/chr_drv/chr_drv.a(serial.o) + kernel/chr_drv/chr_drv.a(tty_io.o) (rs_init) +kernel/chr_drv/chr_drv.a(rs_io.o) + kernel/chr_drv/chr_drv.a(serial.o) (rs1_interrupt) +kernel/chr_drv/chr_drv.a(tty_ioctl.o) + fs/fs.o (tty_ioctl) +kernel/math/math.a(math_emulate.o) + kernel/kernel.o (math_emulate) +lib/lib.a(ctype.o) kernel/chr_drv/chr_drv.a(tty_io.o) (_ctmp) +lib/lib.a(_exit.o) init/main.o (_exit) +lib/lib.a(open.o) init/main.o (open) +lib/lib.a(close.o) init/main.o (close) +lib/lib.a(errno.o) init/main.o (errno) +lib/lib.a(write.o) init/main.o (write) +lib/lib.a(dup.o) init/main.o (dup) +lib/lib.a(setsid.o) init/main.o (setsid) +lib/lib.a(execve.o) init/main.o (execve) +lib/lib.a(wait.o) init/main.o (wait) +lib/lib.a(string.o) fs/fs.o (strncpy) + +分配公共符号 +公共符号 大小 文件 + +errno 0x4 lib/lib.a(errno.o) +hash_table 0x4cc fs/fs.o +___strtok 0x4 lib/lib.a(string.o) +rd_start 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) +request 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) +user_stack 0x1000 kernel/kernel.o +_ctmp 0x1 lib/lib.a(ctype.o) +super_block 0x360 fs/fs.o +drive_info 0x20 init/main.o +file_table 0x400 fs/fs.o + +Discarded input sections + + .note.GNU-stack + 0x0000000000000000 0x0 init/main.o + .note.GNU-stack + 0x0000000000000000 0x0 kernel/kernel.o + .note.GNU-stack + 0x0000000000000000 0x0 mm/mm.o + .note.GNU-stack + 0x0000000000000000 0x0 fs/fs.o + .note.GNU-stack + 0x0000000000000000 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/blk_drv/blk_drv.a(floppy.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/blk_drv/blk_drv.a(hd.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/chr_drv/chr_drv.a(tty_io.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/chr_drv/chr_drv.a(console.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/math/math.a(math_emulate.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(ctype.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(_exit.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(open.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(close.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(errno.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(write.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(dup.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(setsid.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(execve.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(wait.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(string.o) + +内存配置 + +名称 来源 长度 属性 +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +段 .text 的地址设置为 0x0 +LOAD boot/head.o +LOAD init/main.o +LOAD kernel/kernel.o +LOAD mm/mm.o +LOAD fs/fs.o +LOAD kernel/blk_drv/blk_drv.a +LOAD kernel/chr_drv/chr_drv.a +LOAD kernel/math/math.a +LOAD lib/lib.a + 0x0000000008048000 PROVIDE (__executable_start, 0x8048000) + 0x0000000008048074 . = (0x8048000 + SIZEOF_HEADERS) + +.interp + *(.interp) + +.note.gnu.build-id + *(.note.gnu.build-id) + +.hash + *(.hash) + +.gnu.hash + *(.gnu.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rel.text 0x0000000008048074 0x0 + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + .rel.text 0x0000000000000000 0x0 boot/head.o + +.rel.fini + *(.rel.fini) + +.rel.rodata + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + +.rel.data.rel.ro + *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) + +.rel.data 0x0000000008048074 0x0 + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + .rel.data 0x0000000000000000 0x0 boot/head.o + +.rel.tdata + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + +.rel.tbss + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + +.rel.ctors + *(.rel.ctors) + +.rel.dtors + *(.rel.dtors) + +.rel.got + *(.rel.got) + +.rel.bss + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + +.rel.ifunc + *(.rel.ifunc) + +.rel.plt 0x0000000008048074 0x0 + *(.rel.plt) + 0x0000000008048074 PROVIDE (__rel_iplt_start, .) + *(.rel.iplt) + .rel.iplt 0x0000000000000000 0x0 boot/head.o + 0x0000000008048074 PROVIDE (__rel_iplt_end, .) + +.init + *(SORT(.init)) + +.plt 0x0000000008048080 0x0 + *(.plt) + *(.iplt) + .iplt 0x0000000000000000 0x0 boot/head.o + +.text 0x0000000000000000 0x17cef + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) + *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x0000000000000000 0x64c0 boot/head.o + 0x0000000000000000 startup_32 + 0x0000000000000000 pg_dir + 0x0000000000005000 tmp_floppy_area + 0x00000000000054c0 idt + 0x0000000000005cc0 gdt + .text 0x00000000000064c0 0x713 init/main.o + 0x00000000000064c0 fork + 0x00000000000064ef pause + 0x000000000000651e setup + 0x0000000000006555 sync + 0x0000000000006799 main + 0x000000000000695b init + *fill* 0x0000000000006bd3 0x1 + .text 0x0000000000006bd4 0x3914 kernel/kernel.o + 0x0000000000006bd4 show_task + 0x0000000000006c59 show_stat + 0x0000000000006c9f math_state_restore + 0x0000000000006cfd schedule + 0x0000000000006eaf sys_pause + 0x0000000000006ec5 sleep_on + 0x0000000000006f24 interruptible_sleep_on + 0x0000000000006fb7 wake_up + 0x0000000000006fdf ticks_to_floppy_on + 0x00000000000070aa floppy_on + 0x00000000000070d9 floppy_off + 0x00000000000070e9 do_floppy_timer + 0x00000000000071bd add_timer + 0x00000000000072e1 do_timer + 0x00000000000073d0 sys_alarm + 0x000000000000744f sys_getpid + 0x000000000000745b sys_getppid + 0x0000000000007467 sys_getuid + 0x0000000000007476 sys_geteuid + 0x0000000000007486 sys_getgid + 0x0000000000007496 sys_getegid + 0x00000000000074a5 sys_nice + 0x00000000000074d0 sched_init + 0x0000000000007674 system_call + 0x00000000000076f0 coprocessor_error + 0x0000000000007712 device_not_available + 0x000000000000774c timer_interrupt + 0x0000000000007784 sys_execve + 0x0000000000007794 sys_fork + 0x00000000000077ac hd_interrupt + 0x00000000000077e8 floppy_interrupt + 0x000000000000781e parallel_interrupt + 0x0000000000007a39 do_double_fault + 0x0000000000007a5c do_general_protection + 0x0000000000007a7f do_divide_error + 0x0000000000007aa2 do_int3 + 0x0000000000007b6a do_nmi + 0x0000000000007b8d do_debug + 0x0000000000007bb0 do_overflow + 0x0000000000007bd3 do_bounds + 0x0000000000007bf6 do_invalid_op + 0x0000000000007c19 do_device_not_available + 0x0000000000007c3c do_coprocessor_segment_overrun + 0x0000000000007c5f do_invalid_TSS + 0x0000000000007c82 do_segment_not_present + 0x0000000000007ca5 do_stack_segment + 0x0000000000007cc8 do_coprocessor_error + 0x0000000000007cfc do_reserved + 0x0000000000007d1f trap_init + 0x0000000000008003 divide_error + 0x0000000000008038 debug + 0x000000000000803f nmi + 0x0000000000008046 int3 + 0x000000000000804d overflow + 0x0000000000008054 bounds + 0x000000000000805b invalid_op + 0x0000000000008062 coprocessor_segment_overrun + 0x0000000000008069 reserved + 0x0000000000008070 irq13 + 0x0000000000008085 double_fault + 0x00000000000080bc invalid_TSS + 0x00000000000080c3 segment_not_present + 0x00000000000080ca stack_segment + 0x00000000000080d1 general_protection + 0x000000000000810a verify_area + 0x0000000000008171 copy_mem + 0x00000000000082cb copy_process + 0x0000000000008778 find_empty_process + 0x000000000000880c panic + 0x0000000000008847 printk + 0x0000000000008b64 vsprintf + 0x000000000000902a sys_ftime + 0x0000000000009030 sys_break + 0x0000000000009036 sys_ptrace + 0x000000000000903c sys_stty + 0x0000000000009042 sys_gtty + 0x0000000000009048 sys_rename + 0x000000000000904e sys_prof + 0x0000000000009054 sys_setregid + 0x000000000000910d sys_setgid + 0x00000000000091a4 sys_acct + 0x00000000000091aa sys_phys + 0x00000000000091b0 sys_lock + 0x00000000000091b6 sys_mpx + 0x00000000000091bc sys_ulimit + 0x00000000000091c2 sys_time + 0x000000000000921e sys_setreuid + 0x0000000000009300 sys_setuid + 0x0000000000009395 sys_stime + 0x00000000000093eb sys_times + 0x000000000000948b sys_brk + 0x00000000000094cd sys_setpgid + 0x00000000000095a6 sys_getpgrp + 0x00000000000095b2 sys_setsid + 0x000000000000962c sys_getgroups + 0x0000000000009632 sys_setgroups + 0x0000000000009638 sys_uname + 0x00000000000096a1 sys_sethostname + 0x00000000000096a7 sys_getrlimit + 0x00000000000096ad sys_setrlimit + 0x00000000000096b3 sys_getrusage + 0x00000000000096b9 sys_gettimeofday + 0x00000000000096bf sys_settimeofday + 0x00000000000096c5 sys_umask + 0x0000000000009736 release + 0x0000000000009873 sys_kill + 0x0000000000009aad do_exit + 0x0000000000009ce1 sys_exit + 0x0000000000009cfa sys_waitpid + 0x0000000000009f52 sys_sgetmask + 0x0000000000009f5e sys_ssetmask + 0x0000000000009f8a sys_sigpending + 0x0000000000009f90 sys_sigsuspend + 0x000000000000a029 sys_signal + 0x000000000000a0ad sys_sigaction + 0x000000000000a1b7 do_signal + 0x000000000000a3a3 kernel_mktime + .text 0x000000000000a4e8 0xb01 mm/mm.o + 0x000000000000a507 get_free_page + 0x000000000000a543 free_page + 0x000000000000a5b2 free_page_tables + 0x000000000000a6b1 copy_page_tables + 0x000000000000a832 put_page + 0x000000000000a91e un_wp_page + 0x000000000000a9d6 do_wp_page + 0x000000000000aa08 write_verify + 0x000000000000aa61 get_empty_page + 0x000000000000ace7 do_no_page + 0x000000000000ae49 mem_init + 0x000000000000aebd calc_mem + 0x000000000000afb2 page_fault + .text 0x000000000000afe9 0x7539 fs/fs.o + 0x000000000000afff sys_ustat + 0x000000000000b005 sys_utime + 0x000000000000b0b2 sys_access + 0x000000000000b18e sys_chdir + 0x000000000000b202 sys_chroot + 0x000000000000b276 sys_chmod + 0x000000000000b310 sys_chown + 0x000000000000b38b sys_open + 0x000000000000b62e sys_creat + 0x000000000000b651 sys_close + 0x000000000000b720 sys_lseek + 0x000000000000b837 sys_read + 0x000000000000ba2a sys_write + 0x000000000000bc23 invalidate_inodes + 0x000000000000bc92 sync_inodes + 0x000000000000c0d5 bmap + 0x000000000000c0f8 create_block + 0x000000000000c11b iput + 0x000000000000c28a get_empty_inode + 0x000000000000c3df get_pipe_inode + 0x000000000000c454 iget + 0x000000000000c84f sys_sync + 0x000000000000c8b2 sync_dev + 0x000000000000c9ab invalidate_buffers + 0x000000000000ca1d check_disk_change + 0x000000000000cceb get_hash_table + 0x000000000000cd6d getblk + 0x000000000000cf0b brelse + 0x000000000000cf54 bread + 0x000000000000cfd9 bread_page + 0x000000000000d0fb breada + 0x000000000000d1f0 buffer_init + 0x000000000000d391 get_super + 0x000000000000d400 put_super + 0x000000000000d816 sys_umount + 0x000000000000d977 sys_mount + 0x000000000000dae8 mount_root + 0x000000000000dd1c block_write + 0x000000000000de6e block_read + 0x000000000000e1d9 rw_char + 0x000000000000e269 file_read + 0x000000000000e414 file_write + 0x000000000000e6fd sys_stat + 0x000000000000e747 sys_lstat + 0x000000000000e762 sys_fstat + 0x000000000000e7bf sys_readlink + 0x000000000000e86e sys_uselib + 0x000000000000ed3d do_execve + 0x000000000000f7f1 read_pipe + 0x000000000000f947 write_pipe + 0x000000000000fac6 sys_pipe + 0x00000000000104a5 namei + 0x00000000000105bb open_namei + 0x000000000001090e sys_mknod + 0x0000000000010b3e sys_mkdir + 0x00000000000110cd sys_rmdir + 0x0000000000011425 sys_unlink + 0x00000000000116c6 sys_symlink + 0x00000000000116cc sys_link + 0x0000000000011926 free_block + 0x0000000000011a98 new_block + 0x0000000000011c3c free_inode + 0x0000000000011da3 new_inode + 0x0000000000012057 sys_dup2 + 0x000000000001207e sys_dup + 0x0000000000012099 sys_fcntl + 0x00000000000121d8 sys_ioctl + 0x00000000000123e7 truncate + 0x000000000001251c sys_select + .text 0x0000000000012522 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x00000000000128e5 ll_rw_block + 0x000000000001293e blk_dev_init + .text 0x000000000001298c 0xb9d kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000012a72 floppy_deselect + 0x0000000000012aa9 floppy_change + 0x0000000000012e66 setup_rw_floppy + 0x00000000000130ff unexpected_floppy_interrupt + 0x00000000000134d7 floppy_init + .text 0x0000000000013529 0xc8f kernel/blk_drv/blk_drv.a(hd.o) + 0x00000000000135fd sys_setup + 0x0000000000013cac unexpected_hd_interrupt + 0x000000000001413e hd_init + .text 0x00000000000141b8 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x00000000000143c2 rd_init + 0x0000000000014418 rd_load + .text 0x00000000000146c4 0xcbb kernel/chr_drv/chr_drv.a(tty_io.o) + 0x00000000000146ea tty_init + 0x00000000000146fb tty_intr + 0x0000000000014808 wait_for_keypress + 0x000000000001481b copy_to_cooked + 0x0000000000014dd6 tty_read + 0x0000000000015144 tty_write + 0x0000000000015356 do_tty_interrupt + 0x000000000001537e chr_dev_init + .text 0x000000000001537f 0x1283 kernel/chr_drv/chr_drv.a(console.o) + 0x000000000001591c csi_m + 0x0000000000015cb6 con_write + 0x0000000000016344 con_init + 0x000000000001657b sysbeepstop + .text 0x0000000000016602 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o) + 0x0000000000016605 keyboard_interrupt + .text 0x0000000000016de4 0x145 kernel/chr_drv/chr_drv.a(serial.o) + 0x0000000000016e59 rs_init + 0x0000000000016edc rs_write + *fill* 0x0000000000016f29 0x3 + .text 0x0000000000016f2c 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o) + 0x0000000000016f2c rs1_interrupt + 0x0000000000016f34 rs2_interrupt + .text 0x0000000000017023 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x0000000000017334 tty_ioctl + .text 0x0000000000017632 0x111 kernel/math/math.a(math_emulate.o) + 0x0000000000017640 math_emulate + 0x0000000000017723 math_error + .text 0x0000000000017743 0x0 lib/lib.a(ctype.o) + .text 0x0000000000017743 0x10 lib/lib.a(_exit.o) + 0x0000000000017743 _exit + .text 0x0000000000017753 0x49 lib/lib.a(open.o) + 0x0000000000017753 open + .text 0x000000000001779c 0x37 lib/lib.a(close.o) + 0x000000000001779c close + .text 0x00000000000177d3 0x0 lib/lib.a(errno.o) + .text 0x00000000000177d3 0x3d lib/lib.a(write.o) + 0x00000000000177d3 write + .text 0x0000000000017810 0x37 lib/lib.a(dup.o) + 0x0000000000017810 dup + .text 0x0000000000017847 0x2f lib/lib.a(setsid.o) + 0x0000000000017847 setsid + .text 0x0000000000017876 0x3d lib/lib.a(execve.o) + 0x0000000000017876 execve + .text 0x00000000000178b3 0x60 lib/lib.a(wait.o) + 0x00000000000178b3 waitpid + 0x00000000000178f0 wait + .text 0x0000000000017913 0x3dc lib/lib.a(string.o) + 0x0000000000017913 strcpy + 0x000000000001792f strncpy + 0x0000000000017954 strcat + 0x000000000001797f strncat + 0x00000000000179b4 strcmp + 0x00000000000179db strncmp + 0x0000000000017a09 strchr + 0x0000000000017a36 strrchr + 0x0000000000017a65 strspn + 0x0000000000017aa2 strcspn + 0x0000000000017adf strpbrk + 0x0000000000017b16 strstr + 0x0000000000017b4f strlen + 0x0000000000017b72 strtok + 0x0000000000017bf5 memcpy + 0x0000000000017c15 memmove + 0x0000000000017c69 memcmp + 0x0000000000017c93 memchr + 0x0000000000017ccb memset + *(.gnu.warning) + +.fini + *(SORT(.fini)) + 0x0000000000017cef PROVIDE (__etext, .) + 0x0000000000017cef PROVIDE (_etext, .) + 0x0000000000017cef PROVIDE (etext, .) + +.rodata 0x0000000000017cf0 0x13ca + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata 0x0000000000017cf0 0xad init/main.o + *fill* 0x0000000000017d9d 0x3 + .rodata 0x0000000000017da0 0x438 kernel/kernel.o + .rodata 0x00000000000181d8 0x18f mm/mm.o + *fill* 0x0000000000018367 0x1 + .rodata 0x0000000000018368 0x62c fs/fs.o + .rodata 0x0000000000018994 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + *fill* 0x0000000000018a0e 0x2 + .rodata 0x0000000000018a10 0x133 kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x0000000000018b43 0x1 + .rodata 0x0000000000018b44 0x19b kernel/blk_drv/blk_drv.a(hd.o) + *fill* 0x0000000000018cdf 0x1 + .rodata 0x0000000000018ce0 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o) + .rodata 0x0000000000018e68 0x17d kernel/chr_drv/chr_drv.a(console.o) + *fill* 0x0000000000018fe5 0x3 + .rodata 0x0000000000018fe8 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .rodata 0x0000000000019068 0x52 kernel/math/math.a(math_emulate.o) + +.rodata1 + *(.rodata1) + +.eh_frame_hdr + *(.eh_frame_hdr) + +.eh_frame 0x00000000000190bc 0x2a6c + *(.eh_frame) + .eh_frame 0x00000000000190bc 0xf0 init/main.o + .eh_frame 0x00000000000191ac 0xb04 kernel/kernel.o + 0xbf4 (size before relaxing) + .eh_frame 0x0000000000019cb0 0x194 mm/mm.o + 0x1ac (size before relaxing) + .eh_frame 0x0000000000019e44 0xdd8 fs/fs.o + 0xf70 (size before relaxing) + .eh_frame 0x000000000001ac1c 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0xb0 (size before relaxing) + .eh_frame 0x000000000001acb4 0x23c kernel/blk_drv/blk_drv.a(floppy.o) + 0x254 (size before relaxing) + .eh_frame 0x000000000001aef0 0x1e8 kernel/blk_drv/blk_drv.a(hd.o) + 0x200 (size before relaxing) + .eh_frame 0x000000000001b0d8 0xac kernel/blk_drv/blk_drv.a(ramdisk.o) + 0xc4 (size before relaxing) + .eh_frame 0x000000000001b184 0x12c kernel/chr_drv/chr_drv.a(tty_io.o) + 0x144 (size before relaxing) + .eh_frame 0x000000000001b2b0 0x2c0 kernel/chr_drv/chr_drv.a(console.o) + 0x2d8 (size before relaxing) + .eh_frame 0x000000000001b570 0x54 kernel/chr_drv/chr_drv.a(serial.o) + 0x6c (size before relaxing) + .eh_frame 0x000000000001b5c4 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x160 (size before relaxing) + .eh_frame 0x000000000001b70c 0x5c kernel/math/math.a(math_emulate.o) + 0x74 (size before relaxing) + .eh_frame 0x000000000001b768 0x1c lib/lib.a(_exit.o) + 0x34 (size before relaxing) + .eh_frame 0x000000000001b784 0x24 lib/lib.a(open.o) + 0x3c (size before relaxing) + .eh_frame 0x000000000001b7a8 0x20 lib/lib.a(close.o) + 0x38 (size before relaxing) + .eh_frame 0x000000000001b7c8 0x20 lib/lib.a(write.o) + 0x38 (size before relaxing) + .eh_frame 0x000000000001b7e8 0x20 lib/lib.a(dup.o) + 0x38 (size before relaxing) + .eh_frame 0x000000000001b808 0x18 lib/lib.a(setsid.o) + 0x30 (size before relaxing) + .eh_frame 0x000000000001b820 0x20 lib/lib.a(execve.o) + 0x38 (size before relaxing) + .eh_frame 0x000000000001b840 0x38 lib/lib.a(wait.o) + 0x50 (size before relaxing) + .eh_frame 0x000000000001b878 0x2b0 lib/lib.a(string.o) + 0x2c8 (size before relaxing) + +.gcc_except_table + *(.gcc_except_table .gcc_except_table.*) + +.exception_ranges + *(.exception_ranges .exception_ranges*) + 0x000000000001bb28 . = . + +.eh_frame + *(.eh_frame) + +.gcc_except_table + *(.gcc_except_table .gcc_except_table.*) + +.exception_ranges + *(.exception_ranges .exception_ranges*) + +.tdata + *(.tdata .tdata.* .gnu.linkonce.td.*) + +.tbss + *(.tbss .tbss.* .gnu.linkonce.tb.*) + *(.tcommon) + +.preinit_array 0x000000000001bb28 0x0 + 0x000000000001bb28 PROVIDE (__preinit_array_start, .) + *(.preinit_array) + 0x000000000001bb28 PROVIDE (__preinit_array_end, .) + +.init_array 0x000000000001bb28 0x0 + 0x000000000001bb28 PROVIDE (__init_array_start, .) + *(SORT(.init_array.*) SORT(.ctors.*)) + *(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors) + 0x000000000001bb28 PROVIDE (__init_array_end, .) + +.fini_array 0x000000000001bb28 0x0 + 0x000000000001bb28 PROVIDE (__fini_array_start, .) + *(SORT(.fini_array.*) SORT(.dtors.*)) + *(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors) + 0x000000000001bb28 PROVIDE (__fini_array_end, .) + +.ctors + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + +.dtors + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + +.jcr + *(.jcr) + +.data.rel.ro + *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) + *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) + +.dynamic + *(.dynamic) + +.got + *(.got) + *(.igot) + +.got.plt 0x000000000001bb28 0x0 + *(.got.plt) + *(.igot.plt) + .igot.plt 0x0000000000000000 0x0 boot/head.o + +.data 0x000000000001bb40 0x3b01 + *(.data .data.* .gnu.linkonce.d.*) + .data 0x000000000001bb40 0x0 boot/head.o + .data 0x000000000001bb40 0x28 init/main.o + *fill* 0x000000000001bb68 0x18 + .data 0x000000000001bb80 0x1310 kernel/kernel.o + 0x000000000001bb80 sys_call_table + 0x000000000001bcdc NR_syscalls + 0x000000000001cce0 current + 0x000000000001cd00 task + 0x000000000001ce00 stack_start + 0x000000000001ce08 current_DOR + .data 0x000000000001ce90 0x0 mm/mm.o + *fill* 0x000000000001ce90 0x10 + .data 0x000000000001cea0 0x60 fs/fs.o + 0x000000000001cea4 start_buffer + .data 0x000000000001cf00 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .data 0x000000000001cf00 0xcd kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x000000000001cfcd 0x3 + .data 0x000000000001cfd0 0x4 kernel/blk_drv/blk_drv.a(hd.o) + .data 0x000000000001cfd4 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) + *fill* 0x000000000001cfd4 0xc + .data 0x000000000001cfe0 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x000000000001cfe0 tty_table + 0x000000000001f500 table_list + .data 0x000000000001f518 0x1 kernel/chr_drv/chr_drv.a(console.o) + .data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + *fill* 0x000000000001f519 0x7 + .data 0x000000000001f520 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .data 0x000000000001f540 0x0 kernel/math/math.a(math_emulate.o) + .data 0x000000000001f540 0x101 lib/lib.a(ctype.o) + 0x000000000001f540 _ctype + .data 0x000000000001f641 0x0 lib/lib.a(_exit.o) + .data 0x000000000001f641 0x0 lib/lib.a(open.o) + .data 0x000000000001f641 0x0 lib/lib.a(close.o) + .data 0x000000000001f641 0x0 lib/lib.a(errno.o) + .data 0x000000000001f641 0x0 lib/lib.a(write.o) + .data 0x000000000001f641 0x0 lib/lib.a(dup.o) + .data 0x000000000001f641 0x0 lib/lib.a(setsid.o) + .data 0x000000000001f641 0x0 lib/lib.a(execve.o) + .data 0x000000000001f641 0x0 lib/lib.a(wait.o) + .data 0x000000000001f641 0x0 lib/lib.a(string.o) + +.data1 + *(.data1) + 0x000000000001f641 _edata = . + 0x000000000001f641 PROVIDE (edata, .) + 0x000000000001f641 . = . + 0x000000000001f641 __bss_start = . + +.bss 0x000000000001f660 0x44b0 + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x000000000001f660 0x0 boot/head.o + .bss 0x000000000001f660 0x40c init/main.o + *fill* 0x000000000001fa6c 0x14 + .bss 0x000000000001fa80 0x760 kernel/kernel.o + 0x000000000001fa80 jiffies + 0x000000000001fa84 startup_time + 0x000000000001fa88 last_task_used_math + 0x000000000001fdc4 last_pid + .bss 0x00000000000201e0 0xf20 mm/mm.o + .bss 0x0000000000021100 0x710 fs/fs.o + 0x0000000000021100 inode_table + 0x0000000000021800 nr_buffers + 0x000000000002180c ROOT_DEV + *fill* 0x0000000000021810 0x10 + .bss 0x0000000000021820 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000021820 wait_for_request + 0x0000000000021840 blk_dev + .bss 0x0000000000021878 0x25 kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000021878 do_floppy + 0x000000000002187c selected + 0x0000000000021880 wait_on_floppy_select + *fill* 0x000000000002189d 0x3 + .bss 0x00000000000218a0 0xb0 kernel/blk_drv/blk_drv.a(hd.o) + 0x00000000000218a0 do_hd + 0x00000000000218c0 hd_info + .bss 0x0000000000021950 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x0000000000021950 rd_length + .bss 0x0000000000021954 0x4 kernel/chr_drv/chr_drv.a(tty_io.o) + *fill* 0x0000000000021958 0x8 + .bss 0x0000000000021960 0xac kernel/chr_drv/chr_drv.a(console.o) + 0x0000000000021960 beepcount + .bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + .bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .bss 0x0000000000021a0c 0x0 kernel/math/math.a(math_emulate.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(ctype.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(_exit.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(open.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(close.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(errno.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(write.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(dup.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(setsid.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(execve.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(wait.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(string.o) + *(COMMON) + *fill* 0x0000000000021a0c 0x14 + COMMON 0x0000000000021a20 0x20 init/main.o + 0x0000000000021a20 drive_info + COMMON 0x0000000000021a40 0x1000 kernel/kernel.o + 0x0000000000021a40 user_stack + COMMON 0x0000000000022a40 0xc40 fs/fs.o + 0x0000000000022a40 hash_table + 0x0000000000022f20 super_block + 0x0000000000023280 file_table + COMMON 0x0000000000023680 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000023680 request + COMMON 0x0000000000023b00 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x0000000000023b00 rd_start + COMMON 0x0000000000023b04 0x1 lib/lib.a(ctype.o) + 0x0000000000023b04 _ctmp + *fill* 0x0000000000023b05 0x3 + COMMON 0x0000000000023b08 0x4 lib/lib.a(errno.o) + 0x0000000000023b08 errno + COMMON 0x0000000000023b0c 0x4 lib/lib.a(string.o) + 0x0000000000023b0c ___strtok + 0x0000000000023b10 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x0000000000023b10 . = ALIGN (0x4) + 0x0000000000023b10 . = SEGMENT_START ("ldata-segment", .) + 0x0000000000023b10 . = ALIGN (0x4) + 0x0000000000023b10 _end = . + 0x0000000000023b10 PROVIDE (end, .) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x0000000000000000 0x29 + *(.comment) + .comment 0x0000000000000000 0x29 init/main.o + 0x2a (size before relaxing) + .comment 0x0000000000000000 0x1a4 kernel/kernel.o + .comment 0x0000000000000000 0x2a mm/mm.o + .comment 0x0000000000000000 0x2f4 fs/fs.o + .comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(floppy.o) + .comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(hd.o) + .comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(ramdisk.o) + .comment 0x0000000000000000 0x2a kernel/chr_drv/chr_drv.a(tty_io.o) + .comment 0x0000000000000000 0x2a kernel/chr_drv/chr_drv.a(console.o) + .comment 0x0000000000000000 0x2a kernel/chr_drv/chr_drv.a(serial.o) + .comment 0x0000000000000000 0x2a kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .comment 0x0000000000000000 0x2a kernel/math/math.a(math_emulate.o) + .comment 0x0000000000000000 0x2a lib/lib.a(ctype.o) + .comment 0x0000000000000000 0x2a lib/lib.a(_exit.o) + .comment 0x0000000000000000 0x2a lib/lib.a(open.o) + .comment 0x0000000000000000 0x2a lib/lib.a(close.o) + .comment 0x0000000000000000 0x2a lib/lib.a(errno.o) + .comment 0x0000000000000000 0x2a lib/lib.a(write.o) + .comment 0x0000000000000000 0x2a lib/lib.a(dup.o) + .comment 0x0000000000000000 0x2a lib/lib.a(setsid.o) + .comment 0x0000000000000000 0x2a lib/lib.a(execve.o) + .comment 0x0000000000000000 0x2a lib/lib.a(wait.o) + .comment 0x0000000000000000 0x2a lib/lib.a(string.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x0000000000000000 0x628 + *(.debug_aranges) + .debug_aranges + 0x0000000000000000 0x20 init/main.o + .debug_aranges + 0x0000000000000020 0x140 kernel/kernel.o + .debug_aranges + 0x0000000000000160 0x20 mm/mm.o + .debug_aranges + 0x0000000000000180 0x238 fs/fs.o + .debug_aranges + 0x00000000000003b8 0x20 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_aranges + 0x00000000000003d8 0x20 kernel/blk_drv/blk_drv.a(floppy.o) + .debug_aranges + 0x00000000000003f8 0x20 kernel/blk_drv/blk_drv.a(hd.o) + .debug_aranges + 0x0000000000000418 0x20 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_aranges + 0x0000000000000438 0x20 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_aranges + 0x0000000000000458 0x20 kernel/chr_drv/chr_drv.a(console.o) + .debug_aranges + 0x0000000000000478 0x20 kernel/chr_drv/chr_drv.a(serial.o) + .debug_aranges + 0x0000000000000498 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_aranges + 0x00000000000004b8 0x20 kernel/math/math.a(math_emulate.o) + .debug_aranges + 0x00000000000004d8 0x18 lib/lib.a(ctype.o) + .debug_aranges + 0x00000000000004f0 0x20 lib/lib.a(_exit.o) + .debug_aranges + 0x0000000000000510 0x20 lib/lib.a(open.o) + .debug_aranges + 0x0000000000000530 0x20 lib/lib.a(close.o) + .debug_aranges + 0x0000000000000550 0x18 lib/lib.a(errno.o) + .debug_aranges + 0x0000000000000568 0x20 lib/lib.a(write.o) + .debug_aranges + 0x0000000000000588 0x20 lib/lib.a(dup.o) + .debug_aranges + 0x00000000000005a8 0x20 lib/lib.a(setsid.o) + .debug_aranges + 0x00000000000005c8 0x20 lib/lib.a(execve.o) + .debug_aranges + 0x00000000000005e8 0x20 lib/lib.a(wait.o) + .debug_aranges + 0x0000000000000608 0x20 lib/lib.a(string.o) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x0000000000000000 0x16d23 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x0000000000000000 0x553 init/main.o + .debug_info 0x0000000000000553 0x4cb6 kernel/kernel.o + .debug_info 0x0000000000005209 0xb2b mm/mm.o + .debug_info 0x0000000000005d34 0xa290 fs/fs.o + .debug_info 0x000000000000ffc4 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_info 0x00000000000108f6 0xc9f kernel/blk_drv/blk_drv.a(floppy.o) + .debug_info 0x0000000000011595 0xd5f kernel/blk_drv/blk_drv.a(hd.o) + .debug_info 0x00000000000122f4 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_info 0x0000000000012dc9 0xacd kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_info 0x0000000000013896 0xdb0 kernel/chr_drv/chr_drv.a(console.o) + .debug_info 0x0000000000014646 0x85c kernel/chr_drv/chr_drv.a(serial.o) + .debug_info 0x0000000000014ea2 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_info 0x00000000000159e9 0x7b5 kernel/math/math.a(math_emulate.o) + .debug_info 0x000000000001619e 0x66 lib/lib.a(ctype.o) + .debug_info 0x0000000000016204 0x77 lib/lib.a(_exit.o) + .debug_info 0x000000000001627b 0xd0 lib/lib.a(open.o) + .debug_info 0x000000000001634b 0x97 lib/lib.a(close.o) + .debug_info 0x00000000000163e2 0x36 lib/lib.a(errno.o) + .debug_info 0x0000000000016418 0xc9 lib/lib.a(write.o) + .debug_info 0x00000000000164e1 0x97 lib/lib.a(dup.o) + .debug_info 0x0000000000016578 0x95 lib/lib.a(setsid.o) + .debug_info 0x000000000001660d 0xcb lib/lib.a(execve.o) + .debug_info 0x00000000000166d8 0xed lib/lib.a(wait.o) + .debug_info 0x00000000000167c5 0x55e lib/lib.a(string.o) + +.debug_abbrev 0x0000000000000000 0x43b9 + *(.debug_abbrev) + .debug_abbrev 0x0000000000000000 0x1d3 init/main.o + .debug_abbrev 0x00000000000001d3 0xf63 kernel/kernel.o + .debug_abbrev 0x0000000000001136 0x20b mm/mm.o + .debug_abbrev 0x0000000000001341 0x19f1 fs/fs.o + .debug_abbrev 0x0000000000002d32 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_abbrev 0x0000000000002e9b 0x27d kernel/blk_drv/blk_drv.a(floppy.o) + .debug_abbrev 0x0000000000003118 0x23c kernel/blk_drv/blk_drv.a(hd.o) + .debug_abbrev 0x0000000000003354 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_abbrev 0x00000000000034fc 0x279 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_abbrev 0x0000000000003775 0x26b kernel/chr_drv/chr_drv.a(console.o) + .debug_abbrev 0x00000000000039e0 0x175 kernel/chr_drv/chr_drv.a(serial.o) + .debug_abbrev 0x0000000000003b55 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_abbrev 0x0000000000003ce2 0x163 kernel/math/math.a(math_emulate.o) + .debug_abbrev 0x0000000000003e45 0x3e lib/lib.a(ctype.o) + .debug_abbrev 0x0000000000003e83 0x51 lib/lib.a(_exit.o) + .debug_abbrev 0x0000000000003ed4 0x97 lib/lib.a(open.o) + .debug_abbrev 0x0000000000003f6b 0x75 lib/lib.a(close.o) + .debug_abbrev 0x0000000000003fe0 0x2c lib/lib.a(errno.o) + .debug_abbrev 0x000000000000400c 0xa1 lib/lib.a(write.o) + .debug_abbrev 0x00000000000040ad 0x75 lib/lib.a(dup.o) + .debug_abbrev 0x0000000000004122 0x73 lib/lib.a(setsid.o) + .debug_abbrev 0x0000000000004195 0x85 lib/lib.a(execve.o) + .debug_abbrev 0x000000000000421a 0xb6 lib/lib.a(wait.o) + .debug_abbrev 0x00000000000042d0 0xe9 lib/lib.a(string.o) + +.debug_line 0x0000000000000000 0x4599 + *(.debug_line .debug_line.* .debug_line_end) + .debug_line 0x0000000000000000 0x1a7 init/main.o + .debug_line 0x00000000000001a7 0xe86 kernel/kernel.o + .debug_line 0x000000000000102d 0x274 mm/mm.o + .debug_line 0x00000000000012a1 0x1c50 fs/fs.o + .debug_line 0x0000000000002ef1 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_line 0x0000000000003088 0x24c kernel/blk_drv/blk_drv.a(floppy.o) + .debug_line 0x00000000000032d4 0x2bf kernel/blk_drv/blk_drv.a(hd.o) + .debug_line 0x0000000000003593 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_line 0x00000000000036f3 0x33b kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_line 0x0000000000003a2e 0x3ab kernel/chr_drv/chr_drv.a(console.o) + .debug_line 0x0000000000003dd9 0xd9 kernel/chr_drv/chr_drv.a(serial.o) + .debug_line 0x0000000000003eb2 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_line 0x000000000000408d 0xe1 kernel/math/math.a(math_emulate.o) + .debug_line 0x000000000000416e 0x28 lib/lib.a(ctype.o) + .debug_line 0x0000000000004196 0x39 lib/lib.a(_exit.o) + .debug_line 0x00000000000041cf 0x62 lib/lib.a(open.o) + .debug_line 0x0000000000004231 0x5c lib/lib.a(close.o) + .debug_line 0x000000000000428d 0x28 lib/lib.a(errno.o) + .debug_line 0x00000000000042b5 0x76 lib/lib.a(write.o) + .debug_line 0x000000000000432b 0x5a lib/lib.a(dup.o) + .debug_line 0x0000000000004385 0x77 lib/lib.a(setsid.o) + .debug_line 0x00000000000043fc 0x5d lib/lib.a(execve.o) + .debug_line 0x0000000000004459 0x7a lib/lib.a(wait.o) + .debug_line 0x00000000000044d3 0xc6 lib/lib.a(string.o) + +.debug_frame + *(.debug_frame) + +.debug_str 0x0000000000000000 0x2093 + *(.debug_str) + .debug_str 0x0000000000000000 0x1c0 init/main.o + 0x1ff (size before relaxing) + .debug_str 0x00000000000001c0 0xac0 kernel/kernel.o + 0x2332 (size before relaxing) + .debug_str 0x0000000000000c80 0x185 mm/mm.o + 0x4e0 (size before relaxing) + .debug_str 0x0000000000000e05 0x904 fs/fs.o + 0x49ab (size before relaxing) + .debug_str 0x0000000000001709 0xf0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x491 (size before relaxing) + .debug_str 0x00000000000017f9 0x1cf kernel/blk_drv/blk_drv.a(floppy.o) + 0x673 (size before relaxing) + .debug_str 0x00000000000019c8 0x15e kernel/blk_drv/blk_drv.a(hd.o) + 0x5e8 (size before relaxing) + .debug_str 0x0000000000001b26 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x58a (size before relaxing) + .debug_str 0x0000000000001b69 0xfb kernel/chr_drv/chr_drv.a(tty_io.o) + 0x4e3 (size before relaxing) + .debug_str 0x0000000000001c64 0x1b9 kernel/chr_drv/chr_drv.a(console.o) + 0x5b7 (size before relaxing) + .debug_str 0x0000000000001e1d 0x1a kernel/chr_drv/chr_drv.a(serial.o) + 0x3fc (size before relaxing) + .debug_str 0x0000000000001e37 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x4a7 (size before relaxing) + .debug_str 0x0000000000001ec2 0x70 kernel/math/math.a(math_emulate.o) + 0x392 (size before relaxing) + .debug_str 0x0000000000001f32 0x8d lib/lib.a(ctype.o) + 0xb6 (size before relaxing) + .debug_str 0x0000000000001fbf 0x8 lib/lib.a(_exit.o) + 0xe2 (size before relaxing) + .debug_str 0x0000000000000000 0x8 lib/lib.a(open.o) + 0xf2 (size before relaxing) + .debug_str 0x0000000000001fc7 0x8 lib/lib.a(close.o) + 0xe4 (size before relaxing) + .debug_str 0x0000000000001fcf 0x8 lib/lib.a(errno.o) + 0x93 (size before relaxing) + .debug_str 0x0000000000000000 0x8 lib/lib.a(write.o) + 0xf0 (size before relaxing) + .debug_str 0x0000000000001fd7 0x6 lib/lib.a(dup.o) + 0xdc (size before relaxing) + .debug_str 0x0000000000001fdd 0x9 lib/lib.a(setsid.o) + 0xec (size before relaxing) + .debug_str 0x0000000000001fe6 0x9 lib/lib.a(execve.o) + 0xf5 (size before relaxing) + .debug_str 0x0000000000001fef 0x11 lib/lib.a(wait.o) + 0x102 (size before relaxing) + .debug_str 0x0000000000002000 0x93 lib/lib.a(string.o) + 0x147 (size before relaxing) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_pubtypes + *(.debug_pubtypes) + +.debug_ranges 0x0000000000000000 0x18 + *(.debug_ranges) + .debug_ranges 0x0000000000000000 0x18 init/main.o + +.debug_macro + *(.debug_macro) + +.gnu.attributes + *(.gnu.attributes) + +/DISCARD/ + *(.note.GNU-stack) + *(.gnu_debuglink) + *(.gnu.lto_*) +OUTPUT(tools/system elf32-i386) diff --git a/linux-0.11-lab/cur/linux/boot/bootsect b/linux-0.11-lab/cur/linux/boot/bootsect new file mode 100644 index 0000000000000000000000000000000000000000..4fbb8f823afe23687f1887d48deeb19fdcf83049 GIT binary patch literal 544 zcmZQ%7GP0e00JfufdrZ$>>UT#`)=%Dn9z4%Cj+DAH_iW_m%fre~uHUSwNXN9*i=ymehGJ;Ln!ff#WtiVnQ zhTZH8d+ix_Fbba)*ufysci@E)!;7N~dJF$B+A=VditBaD0d;UNHUH)>;o2bsq=ibD zUjNfu{D<)s1B1c@RhzFW-(_8 zyWs)N8wX!-zAym_G6SXbtl4ZCONDkYGHA2SVkl+#&o+l)@hk?z1B+)cfHa*h-qdq| z733tt+pm`g1P2Cni_Kx^=9|Ib*m1R6Y!*YuwM`6-j~E!Y0DW7;8WkBGaTw@dps&vg zgE+6x1nv67yn*3e)L{k&UM`>f#FWgubcN!|;*!){1wB1IUM^lPq<|j0Og84wRRH+h BgWdoD literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/boot/bootsect.o b/linux-0.11-lab/cur/linux/boot/bootsect.o new file mode 100644 index 0000000000000000000000000000000000000000..e35422ec017a165928bfcbec5f9f0363b4a9e75c GIT binary patch literal 923 zcmYjPe@GKy7=FH+PB$=@gOrLGSb;@HGl?KZQ#V8qHK&qRjLn^EOg*`~_2a*bAQEj2 z`bR7R8DjO1Ax5YD;D!W64T2~X>5mFT9P~#*1c~eYW`BB3fn$y+MeVjqc)FB7D{5ZwQc zlnx;W9UDX^enV$llvLXoyfYO9Z}$=84ic;$V`O7tS=LmkPeZ`p+0`EKHzCjy2sHQl zw}lpeD-uHysXwTY5sDOw1Y=|-4_TXAn>%^rd%=iw84Yc11;O9ydW>fq~$ltjP-a7_y>584mLI>~!sq4M`D5Ly@qm@(>AWA%vwU zr%{<_+X|nde;^cvTBwf1Bxp*gFV1T;>8i$^g?NcKSG5q0@!xcE+`au;IbOSyoY+a~ z{!PR`f4ixx+SO^8CCMcNsiZj%R`aVSzcIBg=v7dW8hevmN}95U=#^i zr)no|09j{lb(WIStn(?vkzMq|I|{AlEXVU%$9xr@m*6E`j|&EKW*r6`Npr0hYp)?r zZZZ#$s1!#JP?cts3OD|gYj$Hl#R^TxZHehkwhp*b#dJ@BG4oNrJhA0o88bcbDr`}l zq`HQqR(%{jBbm%s8(UUwT8Z1NS<0;0*6J{lvGC1C@wAnkO^FJFf$S6TC5rM^{XXi` zL>k>@nq232gLmrem|4t+bg$&5+XH7iM)#1fVRRQc{Pnj!5uJed*5_GV{{}WkC!rMg z_MAVrNM}JOl67*Dd*89})A9sAdKZB*dkfv2*ih7^UQ;z`&?SnZugqR%-#z8CTDl%r F<1c(7E-?TA literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/boot/bootsect.s b/linux-0.11-lab/cur/linux/boot/bootsect.s new file mode 100644 index 0000000..711f103 --- /dev/null +++ b/linux-0.11-lab/cur/linux/boot/bootsect.s @@ -0,0 +1,260 @@ +! +! SYS_SIZE is the number of clicks (16 bytes) to be loaded. +! 0x3000 is 0x30000 bytes = 196kB, more than enough for current +! versions of linux +! +SYSSIZE = 0x3000 +! +! bootsect.s (C) 1991 Linus Torvalds +! +! bootsect.s is loaded at 0x7c00 by the bios-startup routines, and moves +! iself out of the way to address 0x90000, and jumps there. +! +! It then loads 'setup' directly after itself (0x90200), and the system +! at 0x10000, using BIOS interrupts. +! +! NOTE! currently system is at most 8*65536 bytes long. This should be no +! problem, even in the future. I want to keep it simple. This 512 kB +! kernel size should be enough, especially as this doesn't contain the +! buffer cache as in minix +! +! The loader has been made as simple as possible, and continuos +! read errors will result in a unbreakable loop. Reboot by hand. It +! loads pretty fast by getting whole sectors at a time whenever possible. + +.globl begtext, begdata, begbss, endtext, enddata, endbss +.text +begtext: +.data +begdata: +.bss +begbss: +.text + +SETUPLEN = 4 ! nr of setup-sectors +BOOTSEG = 0x07c0 ! original address of boot-sector +INITSEG = 0x9000 ! we move boot here - out of the way +SETUPSEG = 0x9020 ! setup starts here +SYSSEG = 0x1000 ! system loaded at 0x10000 (65536). +ENDSEG = SYSSEG + SYSSIZE ! where to stop loading + +! ROOT_DEV: 0x000 - same type of floppy as boot. +! 0x301 - first partition on first drive etc +ROOT_DEV = 0x306 + +entry start +start: + mov ax,#BOOTSEG + mov ds,ax + mov ax,#INITSEG + mov es,ax + mov cx,#256 + sub si,si + sub di,di + rep + movw + jmpi go,INITSEG +go: mov ax,cs + mov ds,ax + mov es,ax +! put stack at 0x9ff00. + mov ss,ax + mov sp,#0xFF00 ! arbitrary value >>512 + +! load the setup-sectors directly after the bootblock. +! Note that 'es' is already set up. + +load_setup: + mov dx,#0x0000 ! drive 0, head 0 + mov cx,#0x0002 ! sector 2, track 0 + mov bx,#0x0200 ! address = 512, in INITSEG + mov ax,#0x0200+SETUPLEN ! service 2, nr of sectors + int 0x13 ! read it + jnc ok_load_setup ! ok - continue + mov dx,#0x0000 + mov ax,#0x0000 ! reset the diskette + int 0x13 + j load_setup + +ok_load_setup: + +! Get disk drive parameters, specifically nr of sectors/track + + mov dl,#0x00 + mov ax,#0x0800 ! AH=8 is get drive parameters + int 0x13 + mov ch,#0x00 + seg cs + mov sectors,cx + mov ax,#INITSEG + mov es,ax + +! Print some inane message + + mov ah,#0x03 ! read cursor pos + xor bh,bh + int 0x10 + + mov cx,#24 + mov bx,#0x0007 ! page 0, attribute 7 (normal) + mov bp,#msg1 + mov ax,#0x1301 ! write string, move cursor + int 0x10 + +! ok, we've written the message, now +! we want to load the system (at 0x10000) + + mov ax,#SYSSEG + mov es,ax ! segment of 0x010000 + call read_it + call kill_motor + +! After that we check which root-device to use. If the device is +! defined (!= 0), nothing is done and the given device is used. +! Otherwise, either /dev/PS0 (2,28) or /dev/at0 (2,8), depending +! on the number of sectors that the BIOS reports currently. + + seg cs + mov ax,root_dev + cmp ax,#0 + jne root_defined + seg cs + mov bx,sectors + mov ax,#0x0208 ! /dev/ps0 - 1.2Mb + cmp bx,#15 + je root_defined + mov ax,#0x021c ! /dev/PS0 - 1.44Mb + cmp bx,#18 + je root_defined +undef_root: + jmp undef_root +root_defined: + seg cs + mov root_dev,ax + +! after that (everyting loaded), we jump to +! the setup-routine loaded directly after +! the bootblock: + + jmpi 0,SETUPSEG + +! This routine loads the system at address 0x10000, making sure +! no 64kB boundaries are crossed. We try to load it as fast as +! possible, loading whole tracks whenever we can. +! +! in: es - starting address segment (normally 0x1000) +! +sread: .word 1+SETUPLEN ! sectors read of current track +head: .word 0 ! current head +track: .word 0 ! current track + +read_it: + mov ax,es + test ax,#0x0fff +die: jne die ! es must be at 64kB boundary + xor bx,bx ! bx is starting address within segment +rp_read: + mov ax,es + cmp ax,#ENDSEG ! have we loaded all yet? + jb ok1_read + ret +ok1_read: + seg cs + mov ax,sectors + sub ax,sread + mov cx,ax + shl cx,#9 + add cx,bx + jnc ok2_read + je ok2_read + xor ax,ax + sub ax,bx + shr ax,#9 +ok2_read: + call read_track + mov cx,ax + add ax,sread + seg cs + cmp ax,sectors + jne ok3_read + mov ax,#1 + sub ax,head + jne ok4_read + inc track +ok4_read: + mov head,ax + xor ax,ax +ok3_read: + mov sread,ax + shl cx,#9 + add bx,cx + jnc rp_read + mov ax,es + add ax,#0x1000 + mov es,ax + xor bx,bx + jmp rp_read + +read_track: + push ax + push bx + push cx + push dx + mov dx,track + mov cx,sread + inc cx + mov ch,dl + mov dx,head + mov dh,dl + mov dl,#0 + and dx,#0x0100 + mov ah,#2 + int 0x13 + jc bad_rt + pop dx + pop cx + pop bx + pop ax + ret +bad_rt: mov ax,#0 + mov dx,#0 + int 0x13 + pop dx + pop cx + pop bx + pop ax + jmp read_track + +/* + * This procedure turns off the floppy drive motor, so + * that we enter the kernel in a known state, and + * don't have to worry about it later. + */ +kill_motor: + push dx + mov dx,#0x3f2 + mov al,#0 + outb + pop dx + ret + +sectors: + .word 0 + +msg1: + .byte 13,10 + .ascii "Loading system ..." + .byte 13,10,13,10 + +.org 508 +root_dev: + .word ROOT_DEV +boot_flag: + .word 0xAA55 + +.text +endtext: +.data +enddata: +.bss +endbss: diff --git a/linux-0.11-lab/cur/linux/boot/head.o b/linux-0.11-lab/cur/linux/boot/head.o new file mode 100644 index 0000000000000000000000000000000000000000..a4c55649c84336692e2f017e7d3b9dc5fd3082ba GIT binary patch literal 27012 zcmeI5O=ule7>2)-rn#v$OwS%uL!8 z6a%qn7P*Sc3jRisn&iB4& z&iUrdGdG*FIOn4m54>cIk-Qk$Ah(^!ke}VzorWRlmW`=8*Nf1++Dw|)n=8(lL2X<) zq}4H0_qtn3hEHg(eMrzN@gL4WGWd|l-26`+&h}(Q)Bb+)4UucVe)-Gw{Sx<}!~D%I z+*?{aEZ2TpTI?Ts6R8Drs4QHmT#)ACbDHqHPI#fPaIkZJx%=grzZ~<#59qk$nEtaG zwGRskkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@{I3YSFZx$|7#nQXbmBLjzwysojfuwek;Xv15&K~{ z6T}bn$jEE2Z|!ovS+gN%tq)^XR$HyssPk=M+o88dFJpht^U^0$N=mKOKTj>|UZ7II z4x`H(J5>#+>Q=Qw)n--0B9~TQ#eSfLn=SeK)YI5gR6e{_N}TOiv2kb*y3Aqg&{f?# zRHRiv)sBntlbK~r0wh2JBtQZrur3L-9K81NMAG<0vMw3$rAdGUNPq-LVBHWXMn|V& zZ%m3&9A>eWtI(e;#{O(9#j+QBQXGq-`^K^jJ@x#QE<0i`Vp6sSL02)fJdSHqsHM(blD3iP(3Pv78q7&_8 zM*5-k_?fI2(eEHwXv&I_5`-Qfll%P;pXV0YUx3zAW3po86$m{&CikN%^o7%6cM$*qTtc_Ysx=5yrWmz#Y0Wq@1&%*1%SXPY8K_u4qV*JPI(}(IbjC`7P zOl$R@sT#=|)qkDIv{wK99Ukv?m%n(Im&lK20=Hg{t*Sze*ZlDbcXsa{@hVv2a|5sH zyZGms^dqTP8`GihV(m}Dz>RbuF1PGQ!HL`fm@lJ4uYeu7y6z=u@~z6cI{M&Nu>=k<<%P!gh--%^>djmB1Ic# zG~x&OiAMa0zq0GKeRF1UbBAE`q28r)_-9Aob|_S NJgpJWKc}%z4Mb on a 4Mb machine). + * + * NOTE! Although all physical memory should be identity + * mapped by this routine, only the kernel page functions + * use the >1Mb addresses directly. All "normal" functions + * use just the lower 1Mb, or the local data space, which + * will be mapped to some other place - mm keeps track of + * that. + * + * For those with more memory than 16 Mb - tough luck. I've + * not got it, why should you :-) The source is here. Change + * it. (Seriously - it shouldn't be too difficult. Mostly + * change some constants etc. I left it at 16Mb, as my machine + * even cannot be extended past that (ok, but it was cheap :-) + * I've tried to show which constants to change by having + * some kind of marker at them (search for "16Mb"), but I + * won't guarantee that's all :-( ) + */ +.align 4 +setup_paging: + movl $1024*5,%ecx /* 5 pages - pg_dir+4 page tables */ + xorl %eax,%eax + xorl %edi,%edi /* pg_dir is at 0x000 */ + cld;rep;stosl + movl $pg0+7,pg_dir /* set present bit/user r/w */ + movl $pg1+7,pg_dir+4 /* --------- " " --------- */ + movl $pg2+7,pg_dir+8 /* --------- " " --------- */ + movl $pg3+7,pg_dir+12 /* --------- " " --------- */ + movl $pg3+4092,%edi + movl $0xfff007,%eax /* 16Mb - 4096 + 7 (r/w user,p) */ + std +1: stosl /* fill pages backwards - more efficient :-) */ + subl $0x1000,%eax + jge 1b + xorl %eax,%eax /* pg_dir is at 0x0000 */ + movl %eax,%cr3 /* cr3 - page directory start */ + movl %cr0,%eax + orl $0x80000000,%eax + movl %eax,%cr0 /* set paging (PG) bit */ + cld /* by wyj */ + ret /* this also flushes prefetch-queue */ + +.align 4 +.word 0 +idt_descr: + .word 256*8-1 # idt contains 256 entries + .long idt +.align 4 +.word 0 +gdt_descr: + .word 256*8-1 # so does gdt (not that that's any + .long gdt # magic number, but it works for me :^) + + .align 8 +idt: .fill 256,8,0 # idt is uninitialized + +gdt: .quad 0x0000000000000000 /* NULL descriptor */ + .quad 0x00c09a0000000fff /* 16Mb */ + .quad 0x00c0920000000fff /* 16Mb */ + .quad 0x0000000000000000 /* TEMPORARY - don't use */ + .fill 252,8,0 /* space for LDT's and TSS's etc */ diff --git a/linux-0.11-lab/cur/linux/boot/setup b/linux-0.11-lab/cur/linux/boot/setup new file mode 100644 index 0000000000000000000000000000000000000000..0e70f4846819f560fb2e22a8eb1e7186c7956ab0 GIT binary patch literal 344 zcmZQ%7GP0eU|_Id1QJNVq7lN`!7!ok#ujFS|7Qg{#TXd2bet7k%*3#TAIOzsVOY$@ zutjLIz*&LC91NXuTnwFjJPbP+82WA;HDh4}X+5yNfnlcr!{;SXQ3*l_<@!izwL4T8@UUNgLAc(wpUZcuop2&OfjEda<7{%Xg;=gL$t<~Tutazx3hbYqSrLZVca%ibUp9b?$HkVw;4TnF?Rz@46w`UObliF2LrIX1l zD$%Xa$Sgt^u2&7@|GQ@O1M(N{a&->*XRca94ek$5^Qt@KbHx4WGu-r2)9WkibQgy407%ZoGynhq literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/boot/setup.s b/linux-0.11-lab/cur/linux/boot/setup.s new file mode 100644 index 0000000..2329d00 --- /dev/null +++ b/linux-0.11-lab/cur/linux/boot/setup.s @@ -0,0 +1,231 @@ +! +! setup.s (C) 1991 Linus Torvalds +! +! setup.s is responsible for getting the system data from the BIOS, +! and putting them into the appropriate places in system memory. +! both setup.s and system has been loaded by the bootblock. +! +! This code asks the bios for memory/disk/other parameters, and +! puts them in a "safe" place: 0x90000-0x901FF, ie where the +! boot-block used to be. It is then up to the protected mode +! system to read them from there before the area is overwritten +! for buffer-blocks. +! + +! NOTE! These had better be the same as in bootsect.s! + +INITSEG = 0x9000 ! we move boot here - out of the way +SYSSEG = 0x1000 ! system loaded at 0x10000 (65536). +SETUPSEG = 0x9020 ! this is the current segment + +.globl begtext, begdata, begbss, endtext, enddata, endbss +.text +begtext: +.data +begdata: +.bss +begbss: +.text + +entry start +start: + +! ok, the read went well so we get current cursor position and save it for +! posterity. + + mov ax,#INITSEG ! this is done in bootsect already, but... + mov ds,ax + mov ah,#0x03 ! read cursor pos + xor bh,bh + int 0x10 ! save it in known place, con_init fetches + mov [0],dx ! it from 0x90000. + +! Get memory size (extended mem, kB) + + mov ah,#0x88 + int 0x15 + mov [2],ax + +! Get video-card data: + + mov ah,#0x0f + int 0x10 + mov [4],bx ! bh = display page + mov [6],ax ! al = video mode, ah = window width + +! check for EGA/VGA and some config parameters + + mov ah,#0x12 + mov bl,#0x10 + int 0x10 + mov [8],ax + mov [10],bx + mov [12],cx + +! Get hd0 data + + mov ax,#0x0000 + mov ds,ax + lds si,[4*0x41] + mov ax,#INITSEG + mov es,ax + mov di,#0x0080 + mov cx,#0x10 + rep + movsb + +! Get hd1 data + + mov ax,#0x0000 + mov ds,ax + lds si,[4*0x46] + mov ax,#INITSEG + mov es,ax + mov di,#0x0090 + mov cx,#0x10 + rep + movsb + +! Check that there IS a hd1 :-) + + mov ax,#0x01500 + mov dl,#0x81 + int 0x13 + jc no_disk1 + cmp ah,#3 + je is_disk1 +no_disk1: + mov ax,#INITSEG + mov es,ax + mov di,#0x0090 + mov cx,#0x10 + mov ax,#0x00 + rep + stosb +is_disk1: + +! now we want to move to protected mode ... + + cli ! no interrupts allowed ! + +! first we move the system to it's rightful place + + mov ax,#0x0000 + cld ! 'direction'=0, movs moves forward +do_move: + mov es,ax ! destination segment + add ax,#0x1000 + cmp ax,#0x9000 + jz end_move + mov ds,ax ! source segment + sub di,di + sub si,si + mov cx,#0x8000 + rep + movsw + jmp do_move + +! then we load the segment descriptors + +end_move: + mov ax,#SETUPSEG ! right, forgot this at first. didn't work :-) + mov ds,ax + lidt idt_48 ! load idt with 0,0 + lgdt gdt_48 ! load gdt with whatever appropriate + +! that was painless, now we enable A20 + + call empty_8042 + mov al,#0xD1 ! command write + out #0x64,al + call empty_8042 + mov al,#0xDF ! A20 on + out #0x60,al + call empty_8042 + +! well, that went ok, I hope. Now we have to reprogram the interrupts :-( +! we put them right after the intel-reserved hardware interrupts, at +! int 0x20-0x2F. There they won't mess up anything. Sadly IBM really +! messed this up with the original PC, and they haven't been able to +! rectify it afterwards. Thus the bios puts interrupts at 0x08-0x0f, +! which is used for the internal hardware interrupts as well. We just +! have to reprogram the 8259's, and it isn't fun. + + mov al,#0x11 ! initialization sequence + out #0x20,al ! send it to 8259A-1 + .word 0x00eb,0x00eb ! jmp $+2, jmp $+2 + out #0xA0,al ! and to 8259A-2 + .word 0x00eb,0x00eb + mov al,#0x20 ! start of hardware int's (0x20) + out #0x21,al + .word 0x00eb,0x00eb + mov al,#0x28 ! start of hardware int's 2 (0x28) + out #0xA1,al + .word 0x00eb,0x00eb + mov al,#0x04 ! 8259-1 is master + out #0x21,al + .word 0x00eb,0x00eb + mov al,#0x02 ! 8259-2 is slave + out #0xA1,al + .word 0x00eb,0x00eb + mov al,#0x01 ! 8086 mode for both + out #0x21,al + .word 0x00eb,0x00eb + out #0xA1,al + .word 0x00eb,0x00eb + mov al,#0xFF ! mask off all interrupts for now + out #0x21,al + .word 0x00eb,0x00eb + out #0xA1,al + +! well, that certainly wasn't fun :-(. Hopefully it works, and we don't +! need no steenking BIOS anyway (except for the initial loading :-). +! The BIOS-routine wants lots of unnecessary data, and it's less +! "interesting" anyway. This is how REAL programmers do it. +! +! Well, now's the time to actually move into protected mode. To make +! things as simple as possible, we do no register set-up or anything, +! we let the gnu-compiled 32-bit programs do that. We just jump to +! absolute address 0x00000, in 32-bit protected mode. + + mov ax,#0x0001 ! protected mode (PE) bit + lmsw ax ! This is it! + jmpi 0,8 ! jmp offset 0 of segment 8 (cs) + +! This routine checks that the keyboard command queue is empty +! No timeout is used - if this hangs there is something wrong with +! the machine, and we probably couldn't proceed anyway. +empty_8042: + .word 0x00eb,0x00eb + in al,#0x64 ! 8042 status port + test al,#2 ! is input buffer full? + jnz empty_8042 ! yes - loop + ret + +gdt: + .word 0,0,0,0 ! dummy + + .word 0x07FF ! 8Mb - limit=2047 (2048*4096=8Mb) + .word 0x0000 ! base address=0 + .word 0x9A00 ! code read/exec + .word 0x00C0 ! granularity=4096, 386 + + .word 0x07FF ! 8Mb - limit=2047 (2048*4096=8Mb) + .word 0x0000 ! base address=0 + .word 0x9200 ! data read/write + .word 0x00C0 ! granularity=4096, 386 + +idt_48: + .word 0 ! idt limit=0 + .word 0,0 ! idt base=0L + +gdt_48: + .word 0x800 ! gdt limit=2048, 256 GDT entries + .word 512+gdt,0x9 ! gdt base = 0X9xxxx + +.text +endtext: +.data +enddata: +.bss +endbss: diff --git a/linux-0.11-lab/cur/linux/fs/Makefile b/linux-0.11-lab/cur/linux/fs/Makefile new file mode 100644 index 0000000..970acd4 --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/Makefile @@ -0,0 +1,101 @@ +AR =ar +AS =as +LD =ld +LDFLAGS =-s -x +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -finline-functions -nostdinc -fno-stack-protector -I../include +CPP =gcc -E -nostdinc -I../include + +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< +.s.o: + $(AS) -o $*.o $< + +OBJS= open.o read_write.o inode.o file_table.o buffer.o super.o \ + block_dev.o char_dev.o file_dev.o stat.o exec.o pipe.o namei.o \ + bitmap.o fcntl.o ioctl.o truncate.o select.o + +fs.o: $(OBJS) + $(LD) -r -o fs.o $(OBJS) + +clean: + rm -f core *.o *.a tmp_make + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +bitmap.o : bitmap.c ../include/string.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h +block_dev.o : block_dev.c ../include/errno.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/segment.h ../include/asm/system.h +buffer.o : buffer.c ../include/stdarg.h ../include/linux/config.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/sys/types.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/system.h ../include/asm/io.h +char_dev.o : char_dev.c ../include/errno.h ../include/sys/types.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/segment.h ../include/asm/io.h +exec.o : exec.c ../include/errno.h ../include/string.h \ + ../include/sys/stat.h ../include/sys/types.h ../include/a.out.h \ + ../include/linux/fs.h ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/segment.h +fcntl.o : fcntl.c ../include/string.h ../include/errno.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/sys/types.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/segment.h ../include/fcntl.h \ + ../include/sys/stat.h +file_dev.o : file_dev.c ../include/errno.h ../include/fcntl.h \ + ../include/sys/types.h ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/segment.h +file_table.o : file_table.c ../include/linux/fs.h ../include/sys/types.h +inode.o : inode.c ../include/string.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/system.h +ioctl.o : ioctl.c ../include/string.h ../include/errno.h \ + ../include/sys/stat.h ../include/sys/types.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/linux/mm.h \ + ../include/signal.h +namei.o : namei.c ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \ + ../include/signal.h ../include/linux/kernel.h ../include/asm/segment.h \ + ../include/string.h ../include/fcntl.h ../include/errno.h \ + ../include/const.h ../include/sys/stat.h +open.o : open.c ../include/string.h ../include/errno.h ../include/fcntl.h \ + ../include/sys/types.h ../include/utime.h ../include/sys/stat.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/tty.h \ + ../include/termios.h ../include/linux/kernel.h ../include/asm/segment.h +pipe.o : pipe.c ../include/signal.h ../include/sys/types.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/linux/mm.h ../include/asm/segment.h +read_write.o : read_write.c ../include/sys/stat.h ../include/sys/types.h \ + ../include/errno.h ../include/linux/kernel.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/linux/mm.h \ + ../include/signal.h ../include/asm/segment.h +stat.o : stat.c ../include/errno.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/linux/fs.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/segment.h +super.o : super.c ../include/linux/config.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/system.h ../include/errno.h ../include/sys/stat.h +truncate.o : truncate.c ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \ + ../include/signal.h ../include/sys/stat.h diff --git a/linux-0.11-lab/cur/linux/fs/bitmap.c b/linux-0.11-lab/cur/linux/fs/bitmap.c new file mode 100644 index 0000000..73951a8 --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/bitmap.c @@ -0,0 +1,168 @@ +/* + * linux/fs/bitmap.c + * + * (C) 1991 Linus Torvalds + */ + +/* bitmap.c contains the code that handles the inode and block bitmaps */ +#include + +#include +#include + +#define clear_block(addr) \ +__asm__ __volatile__ ("cld\n\t" \ + "rep\n\t" \ + "stosl" \ + ::"a" (0),"c" (BLOCK_SIZE/4),"D" ((long) (addr))) + +#define set_bit(nr,addr) ({\ +register int res __asm__("ax"); \ +__asm__ __volatile__("btsl %2,%3\n\tsetb %%al": \ +"=a" (res):"0" (0),"r" (nr),"m" (*(addr))); \ +res;}) + +#define clear_bit(nr,addr) ({\ +register int res __asm__("ax"); \ +__asm__ __volatile__("btrl %2,%3\n\tsetnb %%al": \ +"=a" (res):"0" (0),"r" (nr),"m" (*(addr))); \ +res;}) + +#define find_first_zero(addr) ({ \ +int __res; \ +__asm__ __volatile__ ("cld\n" \ + "1:\tlodsl\n\t" \ + "notl %%eax\n\t" \ + "bsfl %%eax,%%edx\n\t" \ + "je 2f\n\t" \ + "addl %%edx,%%ecx\n\t" \ + "jmp 3f\n" \ + "2:\taddl $32,%%ecx\n\t" \ + "cmpl $8192,%%ecx\n\t" \ + "jl 1b\n" \ + "3:" \ + :"=c" (__res):"c" (0),"S" (addr)); \ +__res;}) + +void free_block(int dev, int block) +{ + struct super_block * sb; + struct buffer_head * bh; + + if (!(sb = get_super(dev))) + panic("trying to free block on nonexistent device"); + if (block < sb->s_firstdatazone || block >= sb->s_nzones) + panic("trying to free block not in datazone"); + bh = get_hash_table(dev,block); + if (bh) { + if (bh->b_count != 1) { + printk("trying to free block (%04x:%d), count=%d\n", + dev,block,bh->b_count); + return; + } + bh->b_dirt=0; + bh->b_uptodate=0; + brelse(bh); + } + block -= sb->s_firstdatazone - 1 ; + if (clear_bit(block&8191,sb->s_zmap[block/8192]->b_data)) { + printk("block (%04x:%d) ",dev,block+sb->s_firstdatazone-1); + panic("free_block: bit already cleared"); + } + sb->s_zmap[block/8192]->b_dirt = 1; +} + +int new_block(int dev) +{ + struct buffer_head * bh; + struct super_block * sb; + int i,j; + + if (!(sb = get_super(dev))) + panic("trying to get new block from nonexistant device"); + j = 8192; + for (i=0 ; i<8 ; i++) + if (bh=sb->s_zmap[i]) + if ((j=find_first_zero(bh->b_data))<8192) + break; + if (i>=8 || !bh || j>=8192) + return 0; + if (set_bit(j,bh->b_data)) + panic("new_block: bit already set"); + bh->b_dirt = 1; + j += i*8192 + sb->s_firstdatazone-1; + if (j >= sb->s_nzones) + return 0; + if (!(bh=getblk(dev,j))) + panic("new_block: cannot get block"); + if (bh->b_count != 1) + panic("new block: count is != 1"); + clear_block(bh->b_data); + bh->b_uptodate = 1; + bh->b_dirt = 1; + brelse(bh); + return j; +} + +void free_inode(struct m_inode * inode) +{ + struct super_block * sb; + struct buffer_head * bh; + + if (!inode) + return; + if (!inode->i_dev) { + memset(inode,0,sizeof(*inode)); + return; + } + if (inode->i_count>1) { + printk("trying to free inode with count=%d\n",inode->i_count); + panic("free_inode"); + } + if (inode->i_nlinks) + panic("trying to free inode with links"); + if (!(sb = get_super(inode->i_dev))) + panic("trying to free inode on nonexistent device"); + if (inode->i_num < 1 || inode->i_num > sb->s_ninodes) + panic("trying to free inode 0 or nonexistant inode"); + if (!(bh=sb->s_imap[inode->i_num>>13])) + panic("nonexistent imap in superblock"); + if (clear_bit(inode->i_num&8191,bh->b_data)) + printk("free_inode: bit already cleared.\n\r"); + bh->b_dirt = 1; + memset(inode,0,sizeof(*inode)); +} + +struct m_inode * new_inode(int dev) +{ + struct m_inode * inode; + struct super_block * sb; + struct buffer_head * bh; + int i,j; + + if (!(inode=get_empty_inode())) + return NULL; + if (!(sb = get_super(dev))) + panic("new_inode with unknown device"); + j = 8192; + for (i=0 ; i<8 ; i++) + if (bh=sb->s_imap[i]) + if ((j=find_first_zero(bh->b_data))<8192) + break; + if (!bh || j >= 8192 || j+i*8192 > sb->s_ninodes) { + iput(inode); + return NULL; + } + if (set_bit(j,bh->b_data)) + panic("new_inode: bit already set"); + bh->b_dirt = 1; + inode->i_count=1; + inode->i_nlinks=1; + inode->i_dev=dev; + inode->i_uid=current->euid; + inode->i_gid=current->egid; + inode->i_dirt=1; + inode->i_num = j + i*8192; + inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; + return inode; +} diff --git a/linux-0.11-lab/cur/linux/fs/bitmap.o b/linux-0.11-lab/cur/linux/fs/bitmap.o new file mode 100644 index 0000000000000000000000000000000000000000..501d3c5e3fb1a044792589a0bdde55cbb41cfaa2 GIT binary patch literal 10280 zcmbVS4R9RAmF}4xX_nQmE!mbqIR;pR4AN?C%OH#mvMs>BAi$X4u->0pX|4TZXV$ie zV;hzq%Q6>CfE-*nhlJcE;mnar5fTI`+ZY3PbrnOAgpf-hsk$7Fq3#lL2}!tc-`CT# zT00Jxx~bB9@4bHg-s{(|dwOQI{n9m;X__YdOA`Sx#R*|_dM$kty2K1IT~yxfo)`>A z$BpniAAa=FN8^Lx&dSzsrzkhRWQ3_F#Zc*-7znmJv;U&OaNqW6=-B5?SS15;jV|cW7k0AV$JPUWXm`AL%$Im`vqk`^oPxLzRjZtK~eqiK!d`N#Bmik z+Ej$ka>#QJjvvur58}Q#ADu45_yLl4?H{YFBYWV3rtyR9Q#lB~_Zbtd-$F0Z@{Lf- zXZPQ=-(6U>cZB`4BP&jbY#X#?Y7pgpKK-#S5V=-4)cwMB>#wQ28-?n?_*Bv@B**fS z{*-U+rNMAmSV921AQQ)8=wwZ-3wNoY5mGn$bqjYXTDsL3#t)2t|HFO1J<{^r5!cXO zJ=Rb;VBP*Z8rphv{AKj%gmNb^eEZgLn910#A8YssPGGCc-1dls?bAHVAzx`*NM`8h zn}|eu3rZg0gj=4N)^b0y#xi&t?S9R4bIefgI`FoaZp$koq!W`9MvFC7Md9tHw0P`O zkcSZ;3#c|n-dJT}{-M^1S4{Lh3sYb9Jt4+lkOrUSA{c*l{H+h)e*z{ERERBGYO}Kc@fB66t{N4g~cv zO9ZR#Y=3QR=aQ-xd03M>%Y;D2E|Jb-ap>G5UVkFgHZ6FZino092LHnC#`L^~OdwR4CYEcz}uZbgQ*BdSYe zqKS6Cb^2Y$uKMlK1HZ2ufBC=%r_VhoEon#Oc4>_dbu&)GWlW4Em-N2ZCiaf(x3^>**Ur0E%HEVo+T!H8`GRX@@>VMD#&1I( zhIUe$U2~#+TNcep&F!|5g>v3qGA9)hp1W$3h4dhbm=rIv5*gQuXG?ZGHD)EVcD!V# zYHSbNu9deptB}*BLarKgd@5*YoXnhKyP~Ek8P9VZG%07PMXf^VxPg0)Yv(VMix)XZPPu58 zyzzN?mZ~Ssb0pLx^HURVIX{{&Y{pD`)xhkXq(2k;>r-%sVIc@ZyBBxu#{nS*@yF}B zdJlEO{E8+-pciaVH`W4-xX|lJ2qU2=LqP8>=mGu~YeYBd`0%JR>N0s(=(@=*M%RKx zSg-#STdbSVU)Sp2fF$r$w1xwNXQRR7vpH}nNnyT-d*CwZ(>#;%%QLtK%{;;mtSEvG znSZ3tO41Exg!C%XjpiV123C`9GM^{CCJI-r=HJud+VgR5H-Aq03ep{BggRG}?lcRu zGep`FLE{eCIORIHd@f*IK_ligv>QVlfiSm0U|dDoFk`S`TunM?ew*@ZNH>~4qI}&~ zP52KzP5N5OTlLT`GS?-*wCkaDWUl9EJM_@MRGCgabP;4;i={UtN~4Mi>!F#|mM*=a zm`Mra2Ab~HLtEJ*nW!Gx&tN3er-%NBrX|y_hu*8UEY=&!G;kwxJfMfp=O87sObY?w@ zK$47$Tys1rGFy-x25K|cTlLUmbejG)re}xVkWIP582K)kBk?M^Rziay2~7)eulof&3&}Lk#xko zlzm4@M@^ox0$JLhZ~l=wInoPE9<>5_(tYNya1RtnFEo#lE|NaqTuuA8lDeK$tg?-b7kApC-MTv|;Y1<1JJVnxCcPvCWV-BA-lS;4-LY16yycgNb+P z=hL1!=!n2J&)h##al2&*vf`gYPm^Sg9;2kDS`5$OtZ(`Y`-zIRgIYMz37 z;BLBVH~*b>?jhZ0wo<;6I_u2GX>*+6UTijk7jCmL3pCP?bG;&9|9j;{2n4NW7bF$6ot`Ey3t4{QTjckTa9#~AdCpUblI}3~!oCru`A*SD5m$;F zT$>2Y!eC!F7I4=yAEaU*HH5hcBQ+M1HVns!3gdjzLGu#IFCg6r`8;9tlWsL{rRIgC z+aaGXj76k7jAUtnFfJn9Y1j;WF=@+uopzRx4jXoSi!d%G-DTKGpYAs7lut(uJK@uP zhV8)4CDiYS9P|L`#gJ!&v6S=x`hs3YdJuA9EGN0bV7dlLu0fQ-xRm6Okpg)c$#q5= z#yMf)X9l zjoc{oJsYH(3D3>Va`3x7H(8GNUayZFucA}4egWeg?>?CJ#`}<`cDrqQManj0DxHC)u7wV_Xw2n5NjZ0m2pxlJizLh5IVK(p6^2%x4Iss&qM zZzZ~)BCXZ=)^J>{s$o10HO9ds|^H)Cvl?J>VH)qY?}<0%TGG`S?xDgD$fOn^$Xkd zxoyt{-(Nclt;*iu9{rNG^Q88w`YjS&^x7M&Ojd$>f^FsC4<`3b1}l}y@COs!F*9Uti^*L>m`Z;arvv2Lt`+NVqY5nZB$uH3O-pXWfNpML8AuVrP zt=A!kPAtz?T}L=EzFGme`8jU9DMj*5ho;EuOqk+Pj6osDC^ zc1!Uj-gsq(MJAT_UJEm^xSPq@qAc%tddwH)T-+HI>9{*$mqgjIQ?VRqarqV3TFb4z zNPncy>dD1R$&n?Q1^wrPPG(b9&#={#F61(9Pr4M(**(Pq-ka0&0#no?W zT#TuXsZ0qm#7e1HA)g%+u^1m-nHb+*oRLDwwT|nYh!sorCNF$UWK`fb5AOM;1-;5e z6p2hBswc_36-${yDT5c0j8|8&+fZa)w2nw-3yuxHF%BK$&!|q07aXU9i%>X>CQ(kO zkz+1d?^BBnjBSo*Fq3k?vL2;V+p9(-EH3K-WN0?&Fjg=6TMMS z(2LVeHJ!2wC!PsfTlKC-%oGf6fTF;M0mVdu*^Z}e(U62;+C zQP^_20wv-WydsIS)UYlg#-_tEOe+UYES)Ji zZuK)9wkCY;5stU$RISOGFBJ-|5SK4szR2pjHi1=L_I8h+`DMw?+cvK+678GoNx9{> z^M*^i?P{TI4Qi(~8pcjM0Px_GPawAOfF_nVM+14S8HWuK#b3XY^WY|yHV5y~mo_)v z9a!4jS}~S44+I|3np>B?(A>E6aC30!OU(xDW%1{qv827EXU~FsC;t3n67Ais)5_}_ zdLNcfBhFY3yMc&ssw9s1RLRapTx=sEBKPD-0%z$+iD``k(U`ImZ8aipqJ9VX5|Lyfm*cvK;De$a!S3wssa_v@1p5H?VGQIiyzsLRpS1#q z33>J5Ui*Y+8?V#whcj9AI&y{(UqB;H7qUO+1ZOKTNAY+n%WJ|nta#tvdElx4f9Y|a z*~dGD2(cUX_`S)$=$F@G{Q0)YzYXIb)CBCev1V$-qIecQp1=sl!BG8itN`uz0V&>? zu4<4BF29YRJ$#z-RVZeQgu48;_26s${?|D;6hcP7l>2^jp#44|#YWg$UnB6z4BBe# zi7qdnw1@L&)!rCr_F*1*?Z;941wU!v*~Y&+75aLWQ-wGeGXL`R?uCG~f9-=_?d7*U z1|eyGs-A-0S85df5FUlBb{s*B!-9hk^8`ef4@6!_Z^ za*x4Fg0x4w^jT}K`wSr-gUr8Z=VVu{+z`LyOI!6i{#SO|uk}FQAGOydAn@)`a|Noa z&~Fdcw6cF~rpR-qr>=l#nqoi&M9T?0M?Q50kdcsLxxY@wjPXs)zo^aq!N16Jeft-A z?ic<={vw|Nl3#{D|K*zY*PPIP4S0V)X8SECv~w%-_hhygPH5kL0?#`3FZ$o@GeGhW zoWM^#k87Tt_?;#uf6NfYcplGt@*{C)B<39jae&IZID}(cckG%23e*x=9HIFWlXn)$ z**X80AWuL`cCP4-DTPe2>{gFD{$b;|;~?VYEbExcPXINP%$ejdm{p3uQt?S57Rui# z`IpFJ-#SFZg6hW{v;Ptx<%5b}Ngnog5aH*3CI6g~Uxh`?e(QnMqWaO)+gjm3T2&xpQHGB3NKc;O5u8i35ERCk#=rVc(1~T6@FRa*A+gm@D+vMQ}|Pb z?L*cy&A6EEfg|1pK5 z3O6hKjKY6V_ydJ|ux8osQH5_S{5cUd5WwS??dK7}uT=asivOa*e^T=ADE|A3|2M@S zQ+ylNKJA=Ggx!UTzgqG4D}JxypH%!|#lNQT#|qz5h~WqgH*8hX{^t~0Kpp;gHYOGo J@|j5fe*vQQ&y@fG literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/fs/block_dev.c b/linux-0.11-lab/cur/linux/fs/block_dev.c new file mode 100644 index 0000000..a50ae3f --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/block_dev.c @@ -0,0 +1,73 @@ +/* + * linux/fs/block_dev.c + * + * (C) 1991 Linus Torvalds + */ + +#include + +#include +#include +#include +#include + +int block_write(int dev, long * pos, char * buf, int count) +{ + int block = *pos >> BLOCK_SIZE_BITS; + int offset = *pos & (BLOCK_SIZE-1); + int chars; + int written = 0; + struct buffer_head * bh; + register char * p; + + while (count>0) { + chars = BLOCK_SIZE - offset; + if (chars > count) + chars=count; + if (chars == BLOCK_SIZE) + bh = getblk(dev,block); + else + bh = breada(dev,block,block+1,block+2,-1); + block++; + if (!bh) + return written?written:-EIO; + p = offset + bh->b_data; + offset = 0; + *pos += chars; + written += chars; + count -= chars; + while (chars-->0) + *(p++) = get_fs_byte(buf++); + bh->b_dirt = 1; + brelse(bh); + } + return written; +} + +int block_read(int dev, unsigned long * pos, char * buf, int count) +{ + int block = *pos >> BLOCK_SIZE_BITS; + int offset = *pos & (BLOCK_SIZE-1); + int chars; + int read = 0; + struct buffer_head * bh; + register char * p; + + while (count>0) { + chars = BLOCK_SIZE-offset; + if (chars > count) + chars = count; + if (!(bh = breada(dev,block,block+1,block+2,-1))) + return read?read:-EIO; + block++; + p = offset + bh->b_data; + offset = 0; + *pos += chars; + read += chars; + count -= chars; + while (chars-->0) + put_fs_byte(*(p++),buf++); + brelse(bh); + } + return read; +} diff --git a/linux-0.11-lab/cur/linux/fs/block_dev.o b/linux-0.11-lab/cur/linux/fs/block_dev.o new file mode 100644 index 0000000000000000000000000000000000000000..e5e9334ce9a4697061730271c4c9d92fcf4aa105 GIT binary patch literal 7296 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 + +#include +#include +#include +#include +#include + +extern void put_super(int dev); +extern void invalidate_inodes(int dev); + +extern int end; +struct buffer_head * start_buffer = (struct buffer_head *) &end; +struct buffer_head * hash_table[NR_HASH]; +static struct buffer_head * free_list; +static struct task_struct * buffer_wait = NULL; +int NR_BUFFERS = 0; + +static inline void wait_on_buffer(struct buffer_head * bh) +{ + cli(); + while (bh->b_lock) + sleep_on(&bh->b_wait); + sti(); +} + +int sys_sync(void) +{ + int i; + struct buffer_head * bh; + + sync_inodes(); /* write out inodes into buffers */ + bh = start_buffer; + for (i=0 ; ib_dirt) + ll_rw_block(WRITE,bh); + } + return 0; +} + +int sync_dev(int dev) +{ + int i; + struct buffer_head * bh; + + bh = start_buffer; + for (i=0 ; ib_dev != dev) + continue; + wait_on_buffer(bh); + if (bh->b_dev == dev && bh->b_dirt) + ll_rw_block(WRITE,bh); + } + sync_inodes(); + bh = start_buffer; + for (i=0 ; ib_dev != dev) + continue; + wait_on_buffer(bh); + if (bh->b_dev == dev && bh->b_dirt) + ll_rw_block(WRITE,bh); + } + return 0; +} + +void inline invalidate_buffers(int dev) +{ + int i; + struct buffer_head * bh; + + bh = start_buffer; + for (i=0 ; ib_dev != dev) + continue; + wait_on_buffer(bh); + if (bh->b_dev == dev) + bh->b_uptodate = bh->b_dirt = 0; + } +} + +/* + * This routine checks whether a floppy has been changed, and + * invalidates all buffer-cache-entries in that case. This + * is a relatively slow routine, so we have to try to minimize using + * it. Thus it is called only upon a 'mount' or 'open'. This + * is the best way of combining speed and utility, I think. + * People changing diskettes in the middle of an operation deserve + * to loose :-) + * + * NOTE! Although currently this is only for floppies, the idea is + * that any additional removable block-device will use this routine, + * and that mount/open needn't know that floppies/whatever are + * special. + */ +void check_disk_change(int dev) +{ + int i; + + if (MAJOR(dev) != 2) + return; + if (!floppy_change(dev & 0x03)) + return; + for (i=0 ; ib_next) + bh->b_next->b_prev = bh->b_prev; + if (bh->b_prev) + bh->b_prev->b_next = bh->b_next; + if (hash(bh->b_dev,bh->b_blocknr) == bh) + hash(bh->b_dev,bh->b_blocknr) = bh->b_next; +/* remove from free list */ + if (!(bh->b_prev_free) || !(bh->b_next_free)) + panic("Free block list corrupted"); + bh->b_prev_free->b_next_free = bh->b_next_free; + bh->b_next_free->b_prev_free = bh->b_prev_free; + if (free_list == bh) + free_list = bh->b_next_free; +} + +static inline void insert_into_queues(struct buffer_head * bh) +{ +/* put at end of free list */ + bh->b_next_free = free_list; + bh->b_prev_free = free_list->b_prev_free; + free_list->b_prev_free->b_next_free = bh; + free_list->b_prev_free = bh; +/* put the buffer in new hash-queue if it has a device */ + bh->b_prev = NULL; + bh->b_next = NULL; + if (!bh->b_dev) + return; + bh->b_next = hash(bh->b_dev,bh->b_blocknr); + hash(bh->b_dev,bh->b_blocknr) = bh; + bh->b_next->b_prev = bh; +} + +static struct buffer_head * find_buffer(int dev, int block) +{ + struct buffer_head * tmp; + + for (tmp = hash(dev,block) ; tmp != NULL ; tmp = tmp->b_next) + if (tmp->b_dev==dev && tmp->b_blocknr==block) + return tmp; + return NULL; +} + +/* + * Why like this, I hear you say... The reason is race-conditions. + * As we don't lock buffers (unless we are readint them, that is), + * something might happen to it while we sleep (ie a read-error + * will force it bad). This shouldn't really happen currently, but + * the code is ready. + */ +struct buffer_head * get_hash_table(int dev, int block) +{ + struct buffer_head * bh; + + for (;;) { + if (!(bh=find_buffer(dev,block))) + return NULL; + bh->b_count++; + wait_on_buffer(bh); + if (bh->b_dev == dev && bh->b_blocknr == block) + return bh; + bh->b_count--; + } +} + +/* + * Ok, this is getblk, and it isn't very clear, again to hinder + * race-conditions. Most of the code is seldom used, (ie repeating), + * so it should be much more efficient than it looks. + * + * The algoritm is changed: hopefully better, and an elusive bug removed. + */ +#define BADNESS(bh) (((bh)->b_dirt<<1)+(bh)->b_lock) +struct buffer_head * getblk(int dev,int block) +{ + struct buffer_head * tmp, * bh; + +repeat: + if (bh = get_hash_table(dev,block)) + return bh; + tmp = free_list; + do { + if (tmp->b_count) + continue; + if (!bh || BADNESS(tmp)b_next_free) != free_list); + if (!bh) { + sleep_on(&buffer_wait); + goto repeat; + } + wait_on_buffer(bh); + if (bh->b_count) + goto repeat; + while (bh->b_dirt) { + sync_dev(bh->b_dev); + wait_on_buffer(bh); + if (bh->b_count) + goto repeat; + } +/* NOTE!! While we slept waiting for this block, somebody else might */ +/* already have added "this" block to the cache. check it */ + if (find_buffer(dev,block)) + goto repeat; +/* OK, FINALLY we know that this buffer is the only one of it's kind, */ +/* and that it's unused (b_count=0), unlocked (b_lock=0), and clean */ + bh->b_count=1; + bh->b_dirt=0; + bh->b_uptodate=0; + remove_from_queues(bh); + bh->b_dev=dev; + bh->b_blocknr=block; + insert_into_queues(bh); + return bh; +} + +void brelse(struct buffer_head * buf) +{ + if (!buf) + return; + wait_on_buffer(buf); + if (!(buf->b_count--)) + panic("Trying to free free buffer"); + wake_up(&buffer_wait); +} + +/* + * bread() reads a specified block and returns the buffer that contains + * it. It returns NULL if the block was unreadable. + */ +struct buffer_head * bread(int dev,int block) +{ + struct buffer_head * bh; + + if (!(bh=getblk(dev,block))) + panic("bread: getblk returned NULL\n"); + if (bh->b_uptodate) + return bh; + ll_rw_block(READ,bh); + wait_on_buffer(bh); + if (bh->b_uptodate) + return bh; + brelse(bh); + return NULL; +} + +#define COPYBLK(from,to) \ +__asm__("cld\n\t" \ + "rep\n\t" \ + "movsl\n\t" \ + ::"c" (BLOCK_SIZE/4),"S" (from),"D" (to) \ + ) + +/* + * bread_page reads four buffers into memory at the desired address. It's + * a function of its own, as there is some speed to be got by reading them + * all at the same time, not waiting for one to be read, and then another + * etc. + */ +void bread_page(unsigned long address,int dev,int b[4]) +{ + struct buffer_head * bh[4]; + int i; + + for (i=0 ; i<4 ; i++) + if (b[i]) { + if (bh[i] = getblk(dev,b[i])) + if (!bh[i]->b_uptodate) + ll_rw_block(READ,bh[i]); + } else + bh[i] = NULL; + for (i=0 ; i<4 ; i++,address += BLOCK_SIZE) + if (bh[i]) { + wait_on_buffer(bh[i]); + if (bh[i]->b_uptodate) + COPYBLK((unsigned long) bh[i]->b_data,address); + brelse(bh[i]); + } +} + +/* + * Ok, breada can be used as bread, but additionally to mark other + * blocks for reading as well. End the argument list with a negative + * number. + */ +struct buffer_head * breada(int dev,int first, ...) +{ + va_list args; + struct buffer_head * bh, *tmp; + + va_start(args,first); + if (!(bh=getblk(dev,first))) + panic("bread: getblk returned NULL\n"); + if (!bh->b_uptodate) + ll_rw_block(READ,bh); + while ((first=va_arg(args,int))>=0) { + tmp=getblk(dev,first); + if (tmp) { + if (!tmp->b_uptodate) + ll_rw_block(READA,bh); + tmp->b_count--; + } + } + va_end(args); + wait_on_buffer(bh); + if (bh->b_uptodate) + return bh; + brelse(bh); + return (NULL); +} + +void buffer_init(long buffer_end) +{ + struct buffer_head * h = start_buffer; + void * b; + int i; + + if (buffer_end == 1<<20) + b = (void *) (640*1024); + else + b = (void *) buffer_end; + while ( (b -= BLOCK_SIZE) >= ((void *) (h+1)) ) { + h->b_dev = 0; + h->b_dirt = 0; + h->b_count = 0; + h->b_lock = 0; + h->b_uptodate = 0; + h->b_wait = NULL; + h->b_next = NULL; + h->b_prev = NULL; + h->b_data = (char *) b; + h->b_prev_free = h-1; + h->b_next_free = h+1; + h++; + NR_BUFFERS++; + if (b == (void *) 0x100000) + b = (void *) 0xA0000; + } + h--; + free_list = start_buffer; + free_list->b_prev_free = h; + h->b_next_free = free_list; + for (i=0;iQ6+~nZ1VPZCP{pdlWadpWGMO3Y4-glv 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 +#include + +#include +#include + +#include +#include + +extern int tty_read(unsigned minor,char * buf,int count); +extern int tty_write(unsigned minor,char * buf,int count); + +typedef (*crw_ptr)(int rw,unsigned minor,char * buf,int count,off_t * pos); + +static int rw_ttyx(int rw,unsigned minor,char * buf,int count,off_t * pos) +{ + return ((rw==READ)?tty_read(minor,buf,count): + tty_write(minor,buf,count)); +} + +static int rw_tty(int rw,unsigned minor,char * buf,int count, off_t * pos) +{ + if (current->tty<0) + return -EPERM; + return rw_ttyx(rw,current->tty,buf,count,pos); +} + +static int rw_ram(int rw,char * buf, int count, off_t *pos) +{ + return -EIO; +} + +static int rw_mem(int rw,char * buf, int count, off_t * pos) +{ + return -EIO; +} + +static int rw_kmem(int rw,char * buf, int count, off_t * pos) +{ + return -EIO; +} + +static int rw_port(int rw,char * buf, int count, off_t * pos) +{ + int i=*pos; + + while (count-->0 && i<65536) { + if (rw==READ) + put_fs_byte(inb(i),buf++); + else + outb(get_fs_byte(buf++),i); + i++; + } + i -= *pos; + *pos += i; + return i; +} + +static int rw_memory(int rw, unsigned minor, char * buf, int count, off_t * pos) +{ + switch(minor) { + case 0: + return rw_ram(rw,buf,count,pos); + case 1: + return rw_mem(rw,buf,count,pos); + case 2: + return rw_kmem(rw,buf,count,pos); + case 3: + return (rw==READ)?0:count; /* rw_null */ + case 4: + return rw_port(rw,buf,count,pos); + default: + return -EIO; + } +} + +#define NRDEVS ((sizeof (crw_table))/(sizeof (crw_ptr))) + +static crw_ptr crw_table[]={ + NULL, /* nodev */ + rw_memory, /* /dev/mem etc */ + NULL, /* /dev/fd */ + NULL, /* /dev/hd */ + rw_ttyx, /* /dev/ttyx */ + rw_tty, /* /dev/tty */ + NULL, /* /dev/lp */ + NULL}; /* unnamed pipes */ + +int rw_char(int rw,int dev, char * buf, int count, off_t * pos) +{ + crw_ptr call_addr; + + if (MAJOR(dev)>=NRDEVS) + return -ENODEV; + if (!(call_addr=crw_table[MAJOR(dev)])) + return -ENODEV; + return call_addr(rw,MINOR(dev),buf,count,pos); +} diff --git a/linux-0.11-lab/cur/linux/fs/char_dev.o b/linux-0.11-lab/cur/linux/fs/char_dev.o new file mode 100644 index 0000000000000000000000000000000000000000..2977060a7c0b215e10aa16a8395ed973d52837cd GIT binary patch literal 8288 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 O%Ys)0UlIH-!T$wZ8WjQn literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/fs/exec.c b/linux-0.11-lab/cur/linux/fs/exec.c new file mode 100644 index 0000000..2ff220e --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/exec.c @@ -0,0 +1,359 @@ +/* + * linux/fs/exec.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * #!-checking implemented by tytso. + */ + +/* + * Demand-loading implemented 01.12.91 - no need to read anything but + * the header into memory. The inode of the executable is put into + * "current->executable", and page faults do the actual loading. Clean. + * + * Once more I can proudly say that linux stood up to being changed: it + * was less than 2 hours work to get demand-loading completely implemented. + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +extern int sys_exit(int exit_code); +extern int sys_close(int fd); + +/* + * MAX_ARG_PAGES defines the number of pages allocated for arguments + * and envelope for the new program. 32 should suffice, this gives + * a maximum env+arg of 128kB ! + */ +#define MAX_ARG_PAGES 32 + + +int sys_uselib() +{ + return -ENOSYS; +} + +/* + * create_tables() parses the env- and arg-strings in new user + * memory and creates the pointer tables from them, and puts their + * addresses on the "stack", returning the new stack pointer value. + */ +static unsigned long * create_tables(char * p,int argc,int envc) +{ + unsigned long *argv,*envp; + unsigned long * sp; + + sp = (unsigned long *) (0xfffffffc & (unsigned long) p); + sp -= envc+1; + envp = sp; + sp -= argc+1; + argv = sp; + put_fs_long((unsigned long)envp,--sp); + put_fs_long((unsigned long)argv,--sp); + put_fs_long((unsigned long)argc,--sp); + while (argc-->0) { + put_fs_long((unsigned long) p,argv++); + while (get_fs_byte(p++)) /* nothing */ ; + } + put_fs_long(0,argv); + while (envc-->0) { + put_fs_long((unsigned long) p,envp++); + while (get_fs_byte(p++)) /* nothing */ ; + } + put_fs_long(0,envp); + return sp; +} + +/* + * count() counts the number of arguments/envelopes + */ +static int count(char ** argv) +{ + int i=0; + char ** tmp; + + if (tmp = argv) + while (get_fs_long((unsigned long *) (tmp++))) + i++; + + return i; +} + +/* + * 'copy_string()' copies argument/envelope strings from user + * memory to free pages in kernel mem. These are in a format ready + * to be put directly into the top of new user memory. + * + * Modified by TYT, 11/24/91 to add the from_kmem argument, which specifies + * whether the string and the string array are from user or kernel segments: + * + * from_kmem argv * argv ** + * 0 user space user space + * 1 kernel space user space + * 2 kernel space kernel space + * + * We do this by playing games with the fs segment register. Since it + * it is expensive to load a segment register, we try to avoid calling + * set_fs() unless we absolutely have to. + */ +static unsigned long copy_strings(int argc,char ** argv,unsigned long *page, + unsigned long p, int from_kmem) +{ + char *tmp, *pag; + int len, offset = 0; + unsigned long old_fs, new_fs; + + if (!p) + return 0; /* bullet-proofing */ + new_fs = get_ds(); + old_fs = get_fs(); + if (from_kmem==2) + set_fs(new_fs); + while (argc-- > 0) { + if (from_kmem == 1) + set_fs(new_fs); + if (!(tmp = (char *)get_fs_long(((unsigned long *)argv)+argc))) + panic("argc is wrong"); + if (from_kmem == 1) + set_fs(old_fs); + len=0; /* remember zero-padding */ + do { + len++; + } while (get_fs_byte(tmp++)); + if (p-len < 0) { /* this shouldn't happen - 128kB */ + set_fs(old_fs); + return 0; + } + while (len) { + --p; --tmp; --len; + if (--offset < 0) { + offset = p % PAGE_SIZE; + if (from_kmem==2) + set_fs(old_fs); + if (!(pag = (char *) page[p/PAGE_SIZE]) && + !(pag = (char *) (page[p/PAGE_SIZE] = + (unsigned long *) get_free_page()))) + return 0; + if (from_kmem==2) + set_fs(new_fs); + + } + *(pag + offset) = get_fs_byte(tmp); + } + } + if (from_kmem==2) + set_fs(old_fs); + return p; +} + +static unsigned long change_ldt(unsigned long text_size,unsigned long * page) +{ + unsigned long code_limit,data_limit,code_base,data_base; + int i; + + code_limit = text_size+PAGE_SIZE -1; + code_limit &= 0xFFFFF000; + data_limit = 0x4000000; + code_base = get_base(current->ldt[1]); + data_base = code_base; + set_base(current->ldt[1],code_base); + set_limit(current->ldt[1],code_limit); + set_base(current->ldt[2],data_base); + set_limit(current->ldt[2],data_limit); +/* make sure fs points to the NEW data segment */ + __asm__("pushl $0x17\n\tpop %%fs"::); + data_base += data_limit; + for (i=MAX_ARG_PAGES-1 ; i>=0 ; i--) { + data_base -= PAGE_SIZE; + if (page[i]) + put_page(page[i],data_base); + } + return data_limit; +} + +/* + * 'do_execve()' executes a new program. + */ +int do_execve(unsigned long * eip,long tmp,char * filename, + char ** argv, char ** envp) +{ + struct m_inode * inode; + struct buffer_head * bh; + struct exec ex; + unsigned long page[MAX_ARG_PAGES]; + int i,argc,envc; + int e_uid, e_gid; + int retval; + int sh_bang = 0; + unsigned long p=PAGE_SIZE*MAX_ARG_PAGES-4; + + if ((0xffff & eip[1]) != 0x000f) + panic("execve called from supervisor mode"); + for (i=0 ; ii_mode)) { /* must be regular file */ + retval = -EACCES; + goto exec_error2; + } + i = inode->i_mode; + e_uid = (i & S_ISUID) ? inode->i_uid : current->euid; + e_gid = (i & S_ISGID) ? inode->i_gid : current->egid; + if (current->euid == inode->i_uid) + i >>= 6; + else if (current->egid == inode->i_gid) + i >>= 3; + if (!(i & 1) && + !((inode->i_mode & 0111) && suser())) { + retval = -ENOEXEC; + goto exec_error2; + } + if (!(bh = bread(inode->i_dev,inode->i_zone[0]))) { + retval = -EACCES; + goto exec_error2; + } + ex = *((struct exec *) bh->b_data); /* read exec-header */ + if ((bh->b_data[0] == '#') && (bh->b_data[1] == '!') && (!sh_bang)) { + /* + * This section does the #! interpretation. + * Sorta complicated, but hopefully it will work. -TYT + */ + + char buf[1023], *cp, *interp, *i_name, *i_arg; + unsigned long old_fs; + + strncpy(buf, bh->b_data+2, 1022); + brelse(bh); + iput(inode); + buf[1022] = '\0'; + if (cp = strchr(buf, '\n')) { + *cp = '\0'; + for (cp = buf; (*cp == ' ') || (*cp == '\t'); cp++); + } + if (!cp || *cp == '\0') { + retval = -ENOEXEC; /* No interpreter name found */ + goto exec_error1; + } + interp = i_name = cp; + i_arg = 0; + for ( ; *cp && (*cp != ' ') && (*cp != '\t'); cp++) { + if (*cp == '/') + i_name = cp+1; + } + if (*cp) { + *cp++ = '\0'; + i_arg = cp; + } + /* + * OK, we've parsed out the interpreter name and + * (optional) argument. + */ + if (sh_bang++ == 0) { + p = copy_strings(envc, envp, page, p, 0); + p = copy_strings(--argc, argv+1, page, p, 0); + } + /* + * Splice in (1) the interpreter's name for argv[0] + * (2) (optional) argument to interpreter + * (3) filename of shell script + * + * This is done in reverse order, because of how the + * user environment and arguments are stored. + */ + p = copy_strings(1, &filename, page, p, 1); + argc++; + if (i_arg) { + p = copy_strings(1, &i_arg, page, p, 2); + argc++; + } + p = copy_strings(1, &i_name, page, p, 2); + argc++; + if (!p) { + retval = -ENOMEM; + goto exec_error1; + } + /* + * OK, now restart the process with the interpreter's inode. + */ + old_fs = get_fs(); + set_fs(get_ds()); + if (!(inode=namei(interp))) { /* get executables inode */ + set_fs(old_fs); + retval = -ENOENT; + goto exec_error1; + } + set_fs(old_fs); + goto restart_interp; + } + brelse(bh); + if (N_MAGIC(ex) != ZMAGIC || ex.a_trsize || ex.a_drsize || + ex.a_text+ex.a_data+ex.a_bss>0x3000000 || + inode->i_size < ex.a_text+ex.a_data+ex.a_syms+N_TXTOFF(ex)) { + retval = -ENOEXEC; + goto exec_error2; + } + if (N_TXTOFF(ex) != BLOCK_SIZE) { + printk("%s: N_TXTOFF != BLOCK_SIZE. See a.out.h.", filename); + retval = -ENOEXEC; + goto exec_error2; + } + if (!sh_bang) { + p = copy_strings(envc,envp,page,p,0); + p = copy_strings(argc,argv,page,p,0); + if (!p) { + retval = -ENOMEM; + goto exec_error2; + } + } +/* OK, This is the point of no return */ + if (current->executable) + iput(current->executable); + current->executable = inode; + for (i=0 ; i<32 ; i++) + current->sigaction[i].sa_handler = NULL; + for (i=0 ; iclose_on_exec>>i)&1) + sys_close(i); + current->close_on_exec = 0; + free_page_tables(get_base(current->ldt[1]),get_limit(0x0f)); + free_page_tables(get_base(current->ldt[2]),get_limit(0x17)); + if (last_task_used_math == current) + last_task_used_math = NULL; + current->used_math = 0; + p += change_ldt(ex.a_text,page)-MAX_ARG_PAGES*PAGE_SIZE; + p = (unsigned long) create_tables((char *)p,argc,envc); + current->brk = ex.a_bss + + (current->end_data = ex.a_data + + (current->end_code = ex.a_text)); + current->start_stack = p & 0xfffff000; + current->euid = e_uid; + current->egid = e_gid; + 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 */ + return 0; +exec_error2: + iput(inode); +exec_error1: + for (i=0 ; ifk_u6V*Yk91+DAroFcU|k2`}@7; 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/fs/fcntl.c b/linux-0.11-lab/cur/linux/fs/fcntl.c new file mode 100644 index 0000000..c201aa8 --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/fcntl.c @@ -0,0 +1,75 @@ +/* + * linux/fs/fcntl.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include +#include +#include +#include + +#include +#include + +extern int sys_close(int fd); + +static int dupfd(unsigned int fd, unsigned int arg) +{ + if (fd >= NR_OPEN || !current->filp[fd]) + return -EBADF; + if (arg >= NR_OPEN) + return -EINVAL; + while (arg < NR_OPEN) + if (current->filp[arg]) + arg++; + else + break; + if (arg >= NR_OPEN) + return -EMFILE; + current->close_on_exec &= ~(1<filp[arg] = current->filp[fd])->f_count++; + return arg; +} + +int sys_dup2(unsigned int oldfd, unsigned int newfd) +{ + sys_close(newfd); + return dupfd(oldfd,newfd); +} + +int sys_dup(unsigned int fildes) +{ + return dupfd(fildes,0); +} + +int sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg) +{ + struct file * filp; + + if (fd >= NR_OPEN || !(filp = current->filp[fd])) + return -EBADF; + switch (cmd) { + case F_DUPFD: + return dupfd(fd,arg); + case F_GETFD: + return (current->close_on_exec>>fd)&1; + case F_SETFD: + if (arg&1) + current->close_on_exec |= (1<close_on_exec &= ~(1<f_flags; + case F_SETFL: + filp->f_flags &= ~(O_APPEND | O_NONBLOCK); + filp->f_flags |= arg & (O_APPEND | O_NONBLOCK); + return 0; + case F_GETLK: case F_SETLK: case F_SETLKW: + return -1; + default: + return -1; + } +} diff --git a/linux-0.11-lab/cur/linux/fs/fcntl.o b/linux-0.11-lab/cur/linux/fs/fcntl.o new file mode 100644 index 0000000000000000000000000000000000000000..17a6ecacd50cb07b4337da65f94d880d02b367a8 GIT binary patch literal 6748 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/fs/file_dev.c b/linux-0.11-lab/cur/linux/fs/file_dev.c new file mode 100644 index 0000000..0c50eaa --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/file_dev.c @@ -0,0 +1,90 @@ +/* + * linux/fs/file_dev.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include + +#include +#include +#include + +#define MIN(a,b) (((a)<(b))?(a):(b)) +#define MAX(a,b) (((a)>(b))?(a):(b)) + +int file_read(struct m_inode * inode, struct file * filp, char * buf, int count) +{ + int left,chars,nr; + struct buffer_head * bh; + + if ((left=count)<=0) + return 0; + while (left) { + if (nr = bmap(inode,(filp->f_pos)/BLOCK_SIZE)) { + if (!(bh=bread(inode->i_dev,nr))) + break; + } else + bh = NULL; + nr = filp->f_pos % BLOCK_SIZE; + chars = MIN( BLOCK_SIZE-nr , left ); + filp->f_pos += chars; + left -= chars; + if (bh) { + char * p = nr + bh->b_data; + while (chars-->0) + put_fs_byte(*(p++),buf++); + brelse(bh); + } else { + while (chars-->0) + put_fs_byte(0,buf++); + } + } + inode->i_atime = CURRENT_TIME; + return (count-left)?(count-left):-ERROR; +} + +int file_write(struct m_inode * inode, struct file * filp, char * buf, int count) +{ + off_t pos; + int block,c; + struct buffer_head * bh; + char * p; + int i=0; + +/* + * ok, append may not work when many processes are writing at the same time + * but so what. That way leads to madness anyway. + */ + if (filp->f_flags & O_APPEND) + pos = inode->i_size; + else + pos = filp->f_pos; + while (ii_dev,block))) + break; + c = pos % BLOCK_SIZE; + p = c + bh->b_data; + bh->b_dirt = 1; + c = BLOCK_SIZE-c; + if (c > count-i) c = count-i; + pos += c; + if (pos > inode->i_size) { + inode->i_size = pos; + inode->i_dirt = 1; + } + i += c; + while (c-->0) + *(p++) = get_fs_byte(buf++); + brelse(bh); + } + inode->i_mtime = CURRENT_TIME; + if (!(filp->f_flags & O_APPEND)) { + filp->f_pos = pos; + inode->i_ctime = CURRENT_TIME; + } + return (i?i:-1); +} diff --git a/linux-0.11-lab/cur/linux/fs/file_dev.o b/linux-0.11-lab/cur/linux/fs/file_dev.o new file mode 100644 index 0000000000000000000000000000000000000000..e1ba8a5aa9f848cbe07cc40a116357db631d2c89 GIT binary patch literal 7828 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 SclH@D3RwcTDjZc + +struct file file_table[NR_FILE]; diff --git a/linux-0.11-lab/cur/linux/fs/file_table.o b/linux-0.11-lab/cur/linux/fs/file_table.o new file mode 100644 index 0000000000000000000000000000000000000000..422bcb331f1423abef699440aa5b0f0ff3a8b671 GIT binary patch literal 2644 zcma)8ONbmr7_OR`-P!Hgo!w=9BnF`a8xkecvzttkb&W;|x+aF`!4(DLY)?=3Ogq!v zV?VOl_&SK&K#0s-B=xPW^?j%FhrbeTlMCJwT9?XVawWCSbyVX|l2jSv>;r0{YaW6k_^T zz^c43M3{C3LO#m~p?wD-+vFv!O1}9tWJUXp+$5jUK4*OA9`G6MD!D~It9?Y?9e~%h zNpi;q*R@lSvd7#dtx0>I{E+r8?Jnm!to=&<9J!$#WXynkS-U~|kmDcG>f|2zQB7xz zPu|k*q&*-%ra=ffB0sKOX3X>CC&cs`U|z-_!=_!MBjE%>dy4!bc}e?}e2cuIh2)nQ zKBe73zWo5~GpHxaSY_e9qLcMJC2H@1m#062oG8PB_yu{OzE~^Q_tocb$KXq%R=Xc6 z!W5mtG`ERzeXVwH?aU$)7onWoi!GZ&EG<G-(`FDL5GCjLkzBG)c>s!O5Yd43kpIj0J zL$ni?^gGLma)}S#8gV?s>Amp;_i=x>NJiF;9-MAS< z4d33%KD)7OtgJMKW~aHF8JbRnjKu9i4g+f-0>^2`Q2fM$^wI?~uoxN5N}`rr)!X zkOgp0bB?ivVFjLNqo#(BEj4ghvMo+e;Qti+cm>cWRebh7?!!!*IMC1w&2`!#>Rb)&9ZYkHg8gkiQ-5obM!ho&zcta4TOYQ7!kK zhn{n~t|E>PMc#7XSs04*p2N$^c{neB7xH;8faf`&;yT9LBvCE*xzNe^-E4CxbDRBJaN~jlSq|VjswDS1$X0~#=Lq&ga zCz+rAOpXJ}=@*Vw_-pAt>oj4i1@Xtt-Oowk-9QNMj)Y*HB&K4`iTsa2WPK#+q${0w zg!W?!)3XcxL8Yf>6#9nJ`D4X+Q{jsW-%$9r!fOgYRQQR)FBEb=InIv?e^L0SLLMmk uXB6&HxTJ7d;Yo#$D11WUrb18Qw!+sGzNPRTh3_l;TH*IZ6fvzQ&gs8hV_9GT literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/fs/fs.o b/linux-0.11-lab/cur/linux/fs/fs.o new file mode 100644 index 0000000000000000000000000000000000000000..86ce3ba38e0ee4154487cb990d4dbcff00fb67a3 GIT binary patch literal 142937 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/fs/inode.c b/linux-0.11-lab/cur/linux/fs/inode.c new file mode 100644 index 0000000..9bb10b3 --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/inode.c @@ -0,0 +1,340 @@ +/* + * linux/fs/inode.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include + +#include +#include +#include +#include + +struct m_inode inode_table[NR_INODE]={{0,},}; + +static void read_inode(struct m_inode * inode); +static void write_inode(struct m_inode * inode); + +static inline void wait_on_inode(struct m_inode * inode) +{ + cli(); + while (inode->i_lock) + sleep_on(&inode->i_wait); + sti(); +} + +static inline void lock_inode(struct m_inode * inode) +{ + cli(); + while (inode->i_lock) + sleep_on(&inode->i_wait); + inode->i_lock=1; + sti(); +} + +static inline void unlock_inode(struct m_inode * inode) +{ + inode->i_lock=0; + wake_up(&inode->i_wait); +} + +void invalidate_inodes(int dev) +{ + int i; + struct m_inode * inode; + + inode = 0+inode_table; + for(i=0 ; ii_dev == dev) { + if (inode->i_count) + printk("inode in use on removed disk\n\r"); + inode->i_dev = inode->i_dirt = 0; + } + } +} + +void sync_inodes(void) +{ + int i; + struct m_inode * inode; + + inode = 0+inode_table; + for(i=0 ; ii_dirt && !inode->i_pipe) + write_inode(inode); + } +} + +static int _bmap(struct m_inode * inode,int block,int create) +{ + struct buffer_head * bh; + int i; + + if (block<0) + panic("_bmap: block<0"); + if (block >= 7+512+512*512) + panic("_bmap: block>big"); + if (block<7) { + if (create && !inode->i_zone[block]) + if (inode->i_zone[block]=new_block(inode->i_dev)) { + inode->i_ctime=CURRENT_TIME; + inode->i_dirt=1; + } + return inode->i_zone[block]; + } + block -= 7; + if (block<512) { + if (create && !inode->i_zone[7]) + if (inode->i_zone[7]=new_block(inode->i_dev)) { + inode->i_dirt=1; + inode->i_ctime=CURRENT_TIME; + } + if (!inode->i_zone[7]) + return 0; + if (!(bh = bread(inode->i_dev,inode->i_zone[7]))) + return 0; + i = ((unsigned short *) (bh->b_data))[block]; + if (create && !i) + if (i=new_block(inode->i_dev)) { + ((unsigned short *) (bh->b_data))[block]=i; + bh->b_dirt=1; + } + brelse(bh); + return i; + } + block -= 512; + if (create && !inode->i_zone[8]) + if (inode->i_zone[8]=new_block(inode->i_dev)) { + inode->i_dirt=1; + inode->i_ctime=CURRENT_TIME; + } + if (!inode->i_zone[8]) + return 0; + if (!(bh=bread(inode->i_dev,inode->i_zone[8]))) + return 0; + i = ((unsigned short *)bh->b_data)[block>>9]; + if (create && !i) + if (i=new_block(inode->i_dev)) { + ((unsigned short *) (bh->b_data))[block>>9]=i; + bh->b_dirt=1; + } + brelse(bh); + if (!i) + return 0; + if (!(bh=bread(inode->i_dev,i))) + return 0; + i = ((unsigned short *)bh->b_data)[block&511]; + if (create && !i) + if (i=new_block(inode->i_dev)) { + ((unsigned short *) (bh->b_data))[block&511]=i; + bh->b_dirt=1; + } + brelse(bh); + return i; +} + +int bmap(struct m_inode * inode,int block) +{ + return _bmap(inode,block,0); +} + +int create_block(struct m_inode * inode, int block) +{ + return _bmap(inode,block,1); +} + +void iput(struct m_inode * inode) +{ + if (!inode) + return; + wait_on_inode(inode); + if (!inode->i_count) + panic("iput: trying to free free inode"); + if (inode->i_pipe) { + wake_up(&inode->i_wait); + if (--inode->i_count) + return; + free_page(inode->i_size); + inode->i_count=0; + inode->i_dirt=0; + inode->i_pipe=0; + return; + } + if (!inode->i_dev) { + inode->i_count--; + return; + } + if (S_ISBLK(inode->i_mode)) { + sync_dev(inode->i_zone[0]); + wait_on_inode(inode); + } +repeat: + if (inode->i_count>1) { + inode->i_count--; + return; + } + if (!inode->i_nlinks) { + truncate(inode); + free_inode(inode); + return; + } + if (inode->i_dirt) { + write_inode(inode); /* we can sleep - so do again */ + wait_on_inode(inode); + goto repeat; + } + inode->i_count--; + return; +} + +struct m_inode * get_empty_inode(void) +{ + struct m_inode * inode; + static struct m_inode * last_inode = inode_table; + int i; + + do { + inode = NULL; + for (i = NR_INODE; i ; i--) { + if (++last_inode >= inode_table + NR_INODE) + last_inode = inode_table; + if (!last_inode->i_count) { + inode = last_inode; + if (!inode->i_dirt && !inode->i_lock) + break; + } + } + if (!inode) { + for (i=0 ; ii_dirt) { + write_inode(inode); + wait_on_inode(inode); + } + } while (inode->i_count); + memset(inode,0,sizeof(*inode)); + inode->i_count = 1; + return inode; +} + +struct m_inode * get_pipe_inode(void) +{ + struct m_inode * inode; + + if (!(inode = get_empty_inode())) + return NULL; + if (!(inode->i_size=get_free_page())) { + inode->i_count = 0; + return NULL; + } + inode->i_count = 2; /* sum of readers/writers */ + PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0; + inode->i_pipe = 1; + return inode; +} + +struct m_inode * iget(int dev,int nr) +{ + struct m_inode * inode, * empty; + + if (!dev) + panic("iget with dev==0"); + empty = get_empty_inode(); + inode = inode_table; + while (inode < NR_INODE+inode_table) { + if (inode->i_dev != dev || inode->i_num != nr) { + inode++; + continue; + } + wait_on_inode(inode); + if (inode->i_dev != dev || inode->i_num != nr) { + inode = inode_table; + continue; + } + inode->i_count++; + if (inode->i_mount) { + int i; + + for (i = 0 ; i= NR_SUPER) { + printk("Mounted inode hasn't got sb\n"); + if (empty) + iput(empty); + return inode; + } + iput(inode); + dev = super_block[i].s_dev; + nr = ROOT_INO; + inode = inode_table; + continue; + } + if (empty) + iput(empty); + return inode; + } + if (!empty) + return (NULL); + inode=empty; + inode->i_dev = dev; + inode->i_num = nr; + read_inode(inode); + return inode; +} + +static void read_inode(struct m_inode * inode) +{ + struct super_block * sb; + struct buffer_head * bh; + int block; + + lock_inode(inode); + if (!(sb=get_super(inode->i_dev))) + panic("trying to read inode without dev"); + block = 2 + sb->s_imap_blocks + sb->s_zmap_blocks + + (inode->i_num-1)/INODES_PER_BLOCK; + if (!(bh=bread(inode->i_dev,block))) + panic("unable to read i-node block"); + __asm__ volatile ("cld"); /* by wyj */ + *(struct d_inode *)inode = + ((struct d_inode *)bh->b_data) + [(inode->i_num-1)%INODES_PER_BLOCK]; + brelse(bh); + unlock_inode(inode); +} + +static void write_inode(struct m_inode * inode) +{ + struct super_block * sb; + struct buffer_head * bh; + int block; + + lock_inode(inode); + if (!inode->i_dirt || !inode->i_dev) { + unlock_inode(inode); + return; + } + if (!(sb=get_super(inode->i_dev))) + panic("trying to write inode without device"); + block = 2 + sb->s_imap_blocks + sb->s_zmap_blocks + + (inode->i_num-1)/INODES_PER_BLOCK; + if (!(bh=bread(inode->i_dev,block))) + panic("unable to read i-node block"); + __asm__ volatile ("cld"); /* by wyj */ + ((struct d_inode *)bh->b_data) + [(inode->i_num-1)%INODES_PER_BLOCK] = + *(struct d_inode *)inode; + bh->b_dirt=1; + inode->i_dirt=0; + brelse(bh); + unlock_inode(inode); +} diff --git a/linux-0.11-lab/cur/linux/fs/inode.o b/linux-0.11-lab/cur/linux/fs/inode.o new file mode 100644 index 0000000000000000000000000000000000000000..dd67bfa4d43e1073c47e0226043fc43f5f0e9153 GIT binary patch literal 14072 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 I1a}MmH>)TywEzGB literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/fs/ioctl.c b/linux-0.11-lab/cur/linux/fs/ioctl.c new file mode 100644 index 0000000..36fc976 --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/ioctl.c @@ -0,0 +1,46 @@ +/* + * linux/fs/ioctl.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include +#include + +#include + +extern int tty_ioctl(int dev, int cmd, int arg); + +typedef int (*ioctl_ptr)(int dev,int cmd,int arg); + +#define NRDEVS ((sizeof (ioctl_table))/(sizeof (ioctl_ptr))) + +static ioctl_ptr ioctl_table[]={ + NULL, /* nodev */ + NULL, /* /dev/mem */ + NULL, /* /dev/fd */ + NULL, /* /dev/hd */ + tty_ioctl, /* /dev/ttyx */ + tty_ioctl, /* /dev/tty */ + NULL, /* /dev/lp */ + NULL}; /* named pipes */ + + +int sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) +{ + struct file * filp; + int dev,mode; + + if (fd >= NR_OPEN || !(filp = current->filp[fd])) + return -EBADF; + mode=filp->f_inode->i_mode; + if (!S_ISCHR(mode) && !S_ISBLK(mode)) + return -EINVAL; + dev = filp->f_inode->i_zone[0]; + if (MAJOR(dev) >= NRDEVS) + return -ENODEV; + if (!ioctl_table[MAJOR(dev)]) + return -ENOTTY; + return ioctl_table[MAJOR(dev)](dev,cmd,arg); +} diff --git a/linux-0.11-lab/cur/linux/fs/ioctl.o b/linux-0.11-lab/cur/linux/fs/ioctl.o new file mode 100644 index 0000000000000000000000000000000000000000..1f1f33c5568ad7f154251149e1ecc40766da48c1 GIT binary patch literal 5828 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 +#include +#include + +#include +#include +#include +#include +#include + +#define ACC_MODE(x) ("\004\002\006\377"[(x)&O_ACCMODE]) + +/* + * comment out this line if you want names > NAME_LEN chars to be + * truncated. Else they will be disallowed. + */ +/* #define NO_TRUNCATE */ + +#define MAY_EXEC 1 +#define MAY_WRITE 2 +#define MAY_READ 4 + +/* + * permission() + * + * is used to check for read/write/execute permissions on a file. + * I don't know if we should look at just the euid or both euid and + * uid, but that should be easily changed. + */ +static int permission(struct m_inode * inode,int mask) +{ + int mode = inode->i_mode; + +/* special case: not even root can read/write a deleted file */ + if (inode->i_dev && !inode->i_nlinks) + return 0; + else if (current->euid==inode->i_uid) + mode >>= 6; + else if (current->egid==inode->i_gid) + mode >>= 3; + if (((mode & mask & 0007) == mask) || suser()) + return 1; + return 0; +} + +/* + * ok, we cannot use strncmp, as the name is not in our data space. + * Thus we'll have to use match. No big problem. Match also makes + * some sanity tests. + * + * NOTE! unlike strncmp, match returns 1 for success, 0 for failure. + */ +static int match(int len,const char * name,struct dir_entry * de) +{ + register int same __asm__("ax"); + + if (!de || !de->inode || len > NAME_LEN) + return 0; + if (len < NAME_LEN && de->name[len]) + return 0; + __asm__("cld\n\t" + "fs ; repe ; cmpsb\n\t" + "setz %%al" + :"=a" (same) + :"0" (0),"S" ((long) name),"D" ((long) de->name),"c" (len) + ); + return same; +} + +/* + * find_entry() + * + * finds an entry in the specified directory with the wanted name. It + * returns the cache buffer in which the entry was found, and the entry + * itself (as a parameter - res_dir). It does NOT read the inode of the + * entry - you'll have to do that yourself if you want to. + * + * This also takes care of the few special cases due to '..'-traversal + * over a pseudo-root and a mount point. + */ +static struct buffer_head * find_entry(struct m_inode ** dir, + const char * name, int namelen, struct dir_entry ** res_dir) +{ + int entries; + int block,i; + struct buffer_head * bh; + struct dir_entry * de; + struct super_block * sb; + +#ifdef NO_TRUNCATE + if (namelen > NAME_LEN) + return NULL; +#else + if (namelen > NAME_LEN) + namelen = NAME_LEN; +#endif + entries = (*dir)->i_size / (sizeof (struct dir_entry)); + *res_dir = NULL; + if (!namelen) + return NULL; +/* check for '..', as we might have to do some "magic" for it */ + if (namelen==2 && get_fs_byte(name)=='.' && get_fs_byte(name+1)=='.') { +/* '..' in a pseudo-root results in a faked '.' (just change namelen) */ + if ((*dir) == current->root) + namelen=1; + else if ((*dir)->i_num == ROOT_INO) { +/* '..' over a mount-point results in 'dir' being exchanged for the mounted + directory-inode. NOTE! We set mounted, so that we can iput the new dir */ + sb=get_super((*dir)->i_dev); + if (sb->s_imount) { + iput(*dir); + (*dir)=sb->s_imount; + (*dir)->i_count++; + } + } + } + if (!(block = (*dir)->i_zone[0])) + return NULL; + if (!(bh = bread((*dir)->i_dev,block))) + return NULL; + i = 0; + de = (struct dir_entry *) bh->b_data; + while (i < entries) { + if ((char *)de >= BLOCK_SIZE+bh->b_data) { + brelse(bh); + bh = NULL; + if (!(block = bmap(*dir,i/DIR_ENTRIES_PER_BLOCK)) || + !(bh = bread((*dir)->i_dev,block))) { + i += DIR_ENTRIES_PER_BLOCK; + continue; + } + de = (struct dir_entry *) bh->b_data; + } + if (match(namelen,name,de)) { + *res_dir = de; + return bh; + } + de++; + i++; + } + brelse(bh); + return NULL; +} + +/* + * add_entry() + * + * adds a file entry to the specified directory, using the same + * semantics as find_entry(). It returns NULL if it failed. + * + * NOTE!! The inode part of 'de' is left at 0 - which means you + * may not sleep between calling this and putting something into + * the entry, as someone else might have used it while you slept. + */ +static struct buffer_head * add_entry(struct m_inode * dir, + const char * name, int namelen, struct dir_entry ** res_dir) +{ + int block,i; + struct buffer_head * bh; + struct dir_entry * de; + + *res_dir = NULL; +#ifdef NO_TRUNCATE + if (namelen > NAME_LEN) + return NULL; +#else + if (namelen > NAME_LEN) + namelen = NAME_LEN; +#endif + if (!namelen) + return NULL; + if (!(block = dir->i_zone[0])) + return NULL; + if (!(bh = bread(dir->i_dev,block))) + return NULL; + i = 0; + de = (struct dir_entry *) bh->b_data; + while (1) { + if ((char *)de >= BLOCK_SIZE+bh->b_data) { + brelse(bh); + bh = NULL; + block = create_block(dir,i/DIR_ENTRIES_PER_BLOCK); + if (!block) + return NULL; + if (!(bh = bread(dir->i_dev,block))) { + i += DIR_ENTRIES_PER_BLOCK; + continue; + } + de = (struct dir_entry *) bh->b_data; + } + if (i*sizeof(struct dir_entry) >= dir->i_size) { + de->inode=0; + dir->i_size = (i+1)*sizeof(struct dir_entry); + dir->i_dirt = 1; + dir->i_ctime = CURRENT_TIME; + } + if (!de->inode) { + dir->i_mtime = CURRENT_TIME; + for (i=0; i < NAME_LEN ; i++) + de->name[i]=(ib_dirt = 1; + *res_dir = de; + return bh; + } + de++; + i++; + } + brelse(bh); + return NULL; +} + +/* + * get_dir() + * + * Getdir traverses the pathname until it hits the topmost directory. + * It returns NULL on failure. + */ +static struct m_inode * get_dir(const char * pathname) +{ + char c; + const char * thisname; + struct m_inode * inode; + struct buffer_head * bh; + int namelen,inr,idev; + struct dir_entry * de; + + if (!current->root || !current->root->i_count) + panic("No root inode"); + if (!current->pwd || !current->pwd->i_count) + panic("No cwd inode"); + if ((c=get_fs_byte(pathname))=='/') { + inode = current->root; + pathname++; + } else if (c) + inode = current->pwd; + else + return NULL; /* empty name is bad */ + inode->i_count++; + while (1) { + thisname = pathname; + if (!S_ISDIR(inode->i_mode) || !permission(inode,MAY_EXEC)) { + iput(inode); + return NULL; + } + for(namelen=0;(c=get_fs_byte(pathname++))&&(c!='/');namelen++) + /* nothing */ ; + if (!c) + return inode; + if (!(bh = find_entry(&inode,thisname,namelen,&de))) { + iput(inode); + return NULL; + } + inr = de->inode; + idev = inode->i_dev; + brelse(bh); + iput(inode); + if (!(inode = iget(idev,inr))) + return NULL; + } +} + +/* + * dir_namei() + * + * dir_namei() returns the inode of the directory of the + * specified name, and the name within that directory. + */ +static struct m_inode * dir_namei(const char * pathname, + int * namelen, const char ** name) +{ + char c; + const char * basename; + struct m_inode * dir; + + if (!(dir = get_dir(pathname))) + return NULL; + basename = pathname; + while (c=get_fs_byte(pathname++)) + if (c=='/') + basename=pathname; + *namelen = pathname-basename-1; + *name = basename; + return dir; +} + +/* + * namei() + * + * is used by most simple commands to get the inode of a specified name. + * Open, link etc use their own routines, but this is enough for things + * like 'chmod' etc. + */ +struct m_inode * namei(const char * pathname) +{ + const char * basename; + int inr,dev,namelen; + struct m_inode * dir; + struct buffer_head * bh; + struct dir_entry * de; + + if (!(dir = dir_namei(pathname,&namelen,&basename))) + return NULL; + if (!namelen) /* special case: '/usr/' etc */ + return dir; + bh = find_entry(&dir,basename,namelen,&de); + if (!bh) { + iput(dir); + return NULL; + } + inr = de->inode; + dev = dir->i_dev; + brelse(bh); + iput(dir); + dir=iget(dev,inr); + if (dir) { + dir->i_atime=CURRENT_TIME; + dir->i_dirt=1; + } + return dir; +} + +/* + * open_namei() + * + * namei for open - this is in fact almost the whole open-routine. + */ +int open_namei(const char * pathname, int flag, int mode, + struct m_inode ** res_inode) +{ + const char * basename; + int inr,dev,namelen; + struct m_inode * dir, *inode; + struct buffer_head * bh; + struct dir_entry * de; + + if ((flag & O_TRUNC) && !(flag & O_ACCMODE)) + flag |= O_WRONLY; + mode &= 0777 & ~current->umask; + mode |= I_REGULAR; + if (!(dir = dir_namei(pathname,&namelen,&basename))) + return -ENOENT; + if (!namelen) { /* special case: '/usr/' etc */ + if (!(flag & (O_ACCMODE|O_CREAT|O_TRUNC))) { + *res_inode=dir; + return 0; + } + iput(dir); + return -EISDIR; + } + bh = find_entry(&dir,basename,namelen,&de); + if (!bh) { + if (!(flag & O_CREAT)) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EACCES; + } + inode = new_inode(dir->i_dev); + if (!inode) { + iput(dir); + return -ENOSPC; + } + inode->i_uid = current->euid; + inode->i_mode = mode; + inode->i_dirt = 1; + bh = add_entry(dir,basename,namelen,&de); + if (!bh) { + inode->i_nlinks--; + iput(inode); + iput(dir); + return -ENOSPC; + } + de->inode = inode->i_num; + bh->b_dirt = 1; + brelse(bh); + iput(dir); + *res_inode = inode; + return 0; + } + inr = de->inode; + dev = dir->i_dev; + brelse(bh); + iput(dir); + if (flag & O_EXCL) + return -EEXIST; + if (!(inode=iget(dev,inr))) + return -EACCES; + if ((S_ISDIR(inode->i_mode) && (flag & O_ACCMODE)) || + !permission(inode,ACC_MODE(flag))) { + iput(inode); + return -EPERM; + } + inode->i_atime = CURRENT_TIME; + if (flag & O_TRUNC) + truncate(inode); + *res_inode = inode; + return 0; +} + +int sys_mknod(const char * filename, int mode, int dev) +{ + const char * basename; + int namelen; + struct m_inode * dir, * inode; + struct buffer_head * bh; + struct dir_entry * de; + + if (!suser()) + return -EPERM; + if (!(dir = dir_namei(filename,&namelen,&basename))) + return -ENOENT; + if (!namelen) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EPERM; + } + bh = find_entry(&dir,basename,namelen,&de); + if (bh) { + brelse(bh); + iput(dir); + return -EEXIST; + } + inode = new_inode(dir->i_dev); + if (!inode) { + iput(dir); + return -ENOSPC; + } + inode->i_mode = mode; + if (S_ISBLK(mode) || S_ISCHR(mode)) + inode->i_zone[0] = dev; + inode->i_mtime = inode->i_atime = CURRENT_TIME; + inode->i_dirt = 1; + bh = add_entry(dir,basename,namelen,&de); + if (!bh) { + iput(dir); + inode->i_nlinks=0; + iput(inode); + return -ENOSPC; + } + de->inode = inode->i_num; + bh->b_dirt = 1; + iput(dir); + iput(inode); + brelse(bh); + return 0; +} + +int sys_mkdir(const char * pathname, int mode) +{ + const char * basename; + int namelen; + struct m_inode * dir, * inode; + struct buffer_head * bh, *dir_block; + struct dir_entry * de; + + if (!suser()) + return -EPERM; + if (!(dir = dir_namei(pathname,&namelen,&basename))) + return -ENOENT; + if (!namelen) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EPERM; + } + bh = find_entry(&dir,basename,namelen,&de); + if (bh) { + brelse(bh); + iput(dir); + return -EEXIST; + } + inode = new_inode(dir->i_dev); + if (!inode) { + iput(dir); + return -ENOSPC; + } + inode->i_size = 32; + inode->i_dirt = 1; + inode->i_mtime = inode->i_atime = CURRENT_TIME; + if (!(inode->i_zone[0]=new_block(inode->i_dev))) { + iput(dir); + inode->i_nlinks--; + iput(inode); + return -ENOSPC; + } + inode->i_dirt = 1; + if (!(dir_block=bread(inode->i_dev,inode->i_zone[0]))) { + iput(dir); + free_block(inode->i_dev,inode->i_zone[0]); + inode->i_nlinks--; + iput(inode); + return -ERROR; + } + de = (struct dir_entry *) dir_block->b_data; + de->inode=inode->i_num; + strcpy(de->name,"."); + de++; + de->inode = dir->i_num; + strcpy(de->name,".."); + inode->i_nlinks = 2; + dir_block->b_dirt = 1; + brelse(dir_block); + inode->i_mode = I_DIRECTORY | (mode & 0777 & ~current->umask); + inode->i_dirt = 1; + bh = add_entry(dir,basename,namelen,&de); + if (!bh) { + iput(dir); + free_block(inode->i_dev,inode->i_zone[0]); + inode->i_nlinks=0; + iput(inode); + return -ENOSPC; + } + de->inode = inode->i_num; + bh->b_dirt = 1; + dir->i_nlinks++; + dir->i_dirt = 1; + iput(dir); + iput(inode); + brelse(bh); + return 0; +} + +/* + * routine to check that the specified directory is empty (for rmdir) + */ +static int empty_dir(struct m_inode * inode) +{ + int nr,block; + int len; + struct buffer_head * bh; + struct dir_entry * de; + + len = inode->i_size / sizeof (struct dir_entry); + if (len<2 || !inode->i_zone[0] || + !(bh=bread(inode->i_dev,inode->i_zone[0]))) { + printk("warning - bad directory on dev %04x\n",inode->i_dev); + return 0; + } + de = (struct dir_entry *) bh->b_data; + if (de[0].inode != inode->i_num || !de[1].inode || + strcmp(".",de[0].name) || strcmp("..",de[1].name)) { + printk("warning - bad directory on dev %04x\n",inode->i_dev); + return 0; + } + nr = 2; + de += 2; + while (nr= (void *) (bh->b_data+BLOCK_SIZE)) { + brelse(bh); + block=bmap(inode,nr/DIR_ENTRIES_PER_BLOCK); + if (!block) { + nr += DIR_ENTRIES_PER_BLOCK; + continue; + } + if (!(bh=bread(inode->i_dev,block))) + return 0; + de = (struct dir_entry *) bh->b_data; + } + if (de->inode) { + brelse(bh); + return 0; + } + de++; + nr++; + } + brelse(bh); + return 1; +} + +int sys_rmdir(const char * name) +{ + const char * basename; + int namelen; + struct m_inode * dir, * inode; + struct buffer_head * bh; + struct dir_entry * de; + + if (!suser()) + return -EPERM; + if (!(dir = dir_namei(name,&namelen,&basename))) + return -ENOENT; + if (!namelen) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EPERM; + } + bh = find_entry(&dir,basename,namelen,&de); + if (!bh) { + iput(dir); + return -ENOENT; + } + if (!(inode = iget(dir->i_dev, de->inode))) { + iput(dir); + brelse(bh); + return -EPERM; + } + if ((dir->i_mode & S_ISVTX) && current->euid && + inode->i_uid != current->euid) { + iput(dir); + iput(inode); + brelse(bh); + return -EPERM; + } + if (inode->i_dev != dir->i_dev || inode->i_count>1) { + iput(dir); + iput(inode); + brelse(bh); + return -EPERM; + } + if (inode == dir) { /* we may not delete ".", but "../dir" is ok */ + iput(inode); + iput(dir); + brelse(bh); + return -EPERM; + } + if (!S_ISDIR(inode->i_mode)) { + iput(inode); + iput(dir); + brelse(bh); + return -ENOTDIR; + } + if (!empty_dir(inode)) { + iput(inode); + iput(dir); + brelse(bh); + return -ENOTEMPTY; + } + if (inode->i_nlinks != 2) + printk("empty directory has nlink!=2 (%d)",inode->i_nlinks); + de->inode = 0; + bh->b_dirt = 1; + brelse(bh); + inode->i_nlinks=0; + inode->i_dirt=1; + dir->i_nlinks--; + dir->i_ctime = dir->i_mtime = CURRENT_TIME; + dir->i_dirt=1; + iput(dir); + iput(inode); + return 0; +} + +int sys_unlink(const char * name) +{ + const char * basename; + int namelen; + struct m_inode * dir, * inode; + struct buffer_head * bh; + struct dir_entry * de; + + if (!(dir = dir_namei(name,&namelen,&basename))) + return -ENOENT; + if (!namelen) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EPERM; + } + bh = find_entry(&dir,basename,namelen,&de); + if (!bh) { + iput(dir); + return -ENOENT; + } + if (!(inode = iget(dir->i_dev, de->inode))) { + iput(dir); + brelse(bh); + return -ENOENT; + } + if ((dir->i_mode & S_ISVTX) && !suser() && + current->euid != inode->i_uid && + current->euid != dir->i_uid) { + iput(dir); + iput(inode); + brelse(bh); + return -EPERM; + } + if (S_ISDIR(inode->i_mode)) { + iput(inode); + iput(dir); + brelse(bh); + return -EPERM; + } + if (!inode->i_nlinks) { + printk("Deleting nonexistent file (%04x:%d), %d\n", + inode->i_dev,inode->i_num,inode->i_nlinks); + inode->i_nlinks=1; + } + de->inode = 0; + bh->b_dirt = 1; + brelse(bh); + inode->i_nlinks--; + inode->i_dirt = 1; + inode->i_ctime = CURRENT_TIME; + iput(inode); + iput(dir); + return 0; +} + +int sys_symlink() +{ + return -ENOSYS; +} + +int sys_link(const char * oldname, const char * newname) +{ + struct dir_entry * de; + struct m_inode * oldinode, * dir; + struct buffer_head * bh; + const char * basename; + int namelen; + + oldinode=namei(oldname); + if (!oldinode) + return -ENOENT; + if (S_ISDIR(oldinode->i_mode)) { + iput(oldinode); + return -EPERM; + } + dir = dir_namei(newname,&namelen,&basename); + if (!dir) { + iput(oldinode); + return -EACCES; + } + if (!namelen) { + iput(oldinode); + iput(dir); + return -EPERM; + } + if (dir->i_dev != oldinode->i_dev) { + iput(dir); + iput(oldinode); + return -EXDEV; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + iput(oldinode); + return -EACCES; + } + bh = find_entry(&dir,basename,namelen,&de); + if (bh) { + brelse(bh); + iput(dir); + iput(oldinode); + return -EEXIST; + } + bh = add_entry(dir,basename,namelen,&de); + if (!bh) { + iput(dir); + iput(oldinode); + return -ENOSPC; + } + de->inode = oldinode->i_num; + bh->b_dirt = 1; + brelse(bh); + iput(dir); + oldinode->i_nlinks++; + oldinode->i_ctime = CURRENT_TIME; + oldinode->i_dirt = 1; + iput(oldinode); + return 0; +} diff --git a/linux-0.11-lab/cur/linux/fs/namei.o b/linux-0.11-lab/cur/linux/fs/namei.o new file mode 100644 index 0000000000000000000000000000000000000000..0514463113d5878e35d040844344865d47c7032e GIT binary patch literal 20756 zcmbt+4S1B*weFs8W-=d>Ur2xiMj13{&=7(|MFj~E`A37If<%T%G9jb+Gc&`V)D~(lKYOB^;?)&b&zL`lx@jQ2) zC-bhg_u6Z(z4qE`?{9wtU%q7Ne3#3moR3SnRfbclYo@8G(NLjAt5NET-nw$TdAqu8 z|82ioy+8R*5%`i`Rruu7sk-t!&D2)5Y8-U|F4&jw?Y*fyFK2LquJ65bp;T|L%`5!j(-iPhz>OxQy(`M|CLT_{>AMI_e57dX zp+p$#cbWuOR2aIMMVWSi&?eg^1n>gr4TA|9o}AR zZH1JvdLqh8*f{yLmD;b%dY6_LrCv_`_LJsgj}+eZ^y)PsIASK$EG)R$K2!&Q5ol7| zt9olad*AlJH9_!8577aNf-2$Hs*e602D88_+}4jeNY$l0d+opyrd~$B)CJ0LlZs zwGD8{WFz8K>WX@;C&l?iXT5W)YgI8F_MsBq9@dvJ zE`Fw|Jef)P5UWf+T?-2;2j_tiYe1Ew%m&s0J-~%23~1N?J$@X%ql1=Wpyk?C6@wK? z$QK=l5>!;e^kCub)$lmDwE24KlLuxZY$!D|9Tzi90L@?k!BI2Pj{2+dY<0%-MW`=I z*S{$B=|L8q&=*eBeG}sFVL*IXs{O8`yjM9cFDd*=59(oGX-eh~O-iLnfNnS5sCKHs z54CFM7qn_5Itdup2ktzYFy6`-71;ZxM^AAzmeU3Mx)(vbq=imnyV`VZs-BZmeXw@A zt2du^?wPP{aQQ!u?)})CdS>s36DIH5#ZuQ{qbyZlp%v+*P`K?DRDH2#T;tkxgVSgL z=6J@JN)Q5EQ8myGZ@u*K@#BNm;|i%l*SLOq+guAl5x}ek@^5|ylBEZ0b6vohOfWil zN(T!NJS7aCz|l@D_T+&|W)^LAuU_d0xZ*6fx3-#TFYl12oFmgqTdKQ|7qXkco%_`wG;KS7n?ZZXu3 z!L=wV!UkgU9;doQQYxkrTreeOvnGoUuosl27ZLap%INJ1mSMX(dRR}klMnQQ@}LN! zl3-;sx&{raQ5qO5!~n-mO>i8#fM}eeTVMI1cFI^vsl+c3V%3lcOx~9|yrZ7Es76QJ z3`VVqJ;vG<$#-VJAwl$D10B<~o5N<;;806px=i|SU_TY3guX64`coE|r4ZbK;7=_r z&%;dFP)T2FFFX(9z*oZ8l}gWf+Bs&@*9hB;J@rHK>*OdgoAT6+ad-6VyGmyBPReAA6Fdy`Ac z>s+!}+E9(?_{ZT%#}U>Ou}$2v6gz#74nF#lJ}njdv`_QR96RCQ-vj>m(O02|okRcm zy5D)a-vkp0MVF?EjGLY?g6U}6Gsx!OV5vFF1TX_d!)8EBFZ)N<3>0p=6!x;G0`10@UVWIu04i|a zuwd0fLzAq~^TJ6q5mvIJ0pn{xge^sc$wA}MA<;FR&2S7gQD1ReJ-7LaR3>;b-qVI$ zOINHYFQSw_LZ#SorR3`Ds7p6QJr4jC&a{j(-pnKmhEyh51gS4|0s~N9Hwn?g81wIW zk8XJ$9Ex?O0tTIC8DIMMXqP`?1aV|R1ZE}LTq-rON-Ici?->u_!k;`Xk*J+9{cn0Q znfKDp*#irX4_@{K_QZ-*z1Hrm5N6r58qnG9NiV7F>E@~2ulqZihv30F(MK*IbCCxs zYE$so>n2I-lPdz%Sue)lK?&UeCH4NHL-#3D8^{jbOW?ClNprME@1XPweOfQa;wc@r zc(m>!_zG5;^c6o1#$``urh7euv!wgaTML;cIt2ZuNgZRVMTZ|!kKQ`hDy7ex4j;r; zN?*$onOpG1=c=MtPZ?&;h5~0{1<@yGGJu6uI(%VW_CeOT6FgO?4L2(C8LR1e-^0NS z)Q_)5YBZo~QL{ zbfl^d)>`82d~OouvPqPuGO=8z&jKm);L+Q|Bf>upPdwc7Gp-9+-Ol0*peP7ErC59= z!x!I+*+G<8NU^MLI0ihCe~xDk)}Cl}UV$!4pexG<&Q@2ty*_`g*)G$^q3j;B=o2hh zJheb=ZRYxe=W5r@7qF1FGT~P`j4>R-`i5d?C`i~dDLDez5b(UiP|tcyh)9T;8w5y~ zx8T;o^j5_?B)Y5|b1HX0v;?e$DWoz3kV+l z4k+lv=IlIMmv6X%1*uG+=xdCutM^?%$_i--Rgw zC}sAQ{TsKAbkAq(-@h~2ZOHz;4F_Gx-sw%moF4w2(kI!!>)*-B$9fCMDA7lTPSYi? z3r%R^n(VVflLvsb0??V&pm&JV#C|!MfkWu89PYdYXoy8vZw;xqU|+mynD+E!e7Yx2 z57qS6b7j$H#=So8^2r}}f$RSp+O9L&0vAAIg6*<<{+#ii<5)5DB&r8;aut}G<44~^ zU^yNB;GcS`znB5PX6q-UHTI;LR(u>4fy7O+EcK!l};&77PmPlEwu z#Kp{r4RG#K{GAI;@+A2#pCsQO`Xp)h&aqSTDxfLgXh>xieA*Xs%BfkshIc)mb@crm zP6wY}I;|$SK4a-Dme4~sN8DA^J7YwTiI2HemRp2uweCoOCi^Zc(00&^M1R>sq%oeinhtH6L zNmWDl?X3F}>`Pr}>;x<0QQt~@ZqR<}DE7tAf(+GkSb|QkatYCy`}e$xAvqT!wJC{a z#HHNjNJg(Vfmb>FX_Uw9^a?Wx+Y3>|{P63MI_iGcBFtqB6H2L7W%Mho2W8`eT-I?VJ-U)K3sSRA`?3DjAXHoQrtV z7u4AyF+_x!+PpL~ggWa8-@nE#0vpGVpX+yIx z9xLa#+7RyUh<2Jtcl*i+{91#zw!Knw} z)|{8G?z|pvv?H!OmhWB`y6h{VJ%{%fIl>Ry z%YO@NG!wA=7op5BK`Xbh`+8x@E&rHwO@)=)6>V1DRa9MR`R`zjW~wd!K^mi(8q2?* zsx>pi@_(4FnQ7%FsNfpLCY)^udcve_-@jqvJ&h)8uR)2Y$%O4@>S>;d z?*iX`>Sdlwpga%$q#LabXx8Sr=>|yo9_6^dWYj@Md2Tl94zt;p zjk*u0x`%X*ub--KA#M9+v3v_@zpss^BFcGQ?W7xglPKRyoojtA>b#wE((HSR@;m68R^LY2a0ltAZzs#Y zO8PpL$Bc3d3Utu;l+}ddBF_VlpvYH5We>7*<=a68eJr+A-WHVn&}o#fa`wR*pKk?9 zE#{RXU-iG(zLQ_mM&z)473p)>$m6SH!SqIa+rDiquPK5|o+_YdA!;mL-{o2ok6#aFccj^&tKE@Chpur)V$d_2@-t8lx|Z}zlt-0!4(VF71wEH^ z9mvR+YCGbIP2iT{}VL{R=ez#MQQkxhiiG8kQj0=~4?@wRaFM9eFqETrP$! zKYX|Dy8kkWjXG6VkhFHH;?R2Ka#PB61)}Iml$LA(H?kUrSQU-ZbeC@aAe%GFtqLwB zG#~X`TFlz%8U1^fp2bGi&W&p1c1(#io9zF>U#r&fE_94(i*!f@b#Sd%vyDNXF*spa zvngfmv_~&v)f{SY)x$ilys=wYwweoZEIL0Qoa_F(kr2k<;Drj3X{`;SbyNXbS`AbL zwWG$+&W3Mj$-L2(G;@uqTRZySSr;U#Rp33Ehi$Hl=X)#+ELe!=8FgG zkEW)1w4VC6jkPPZJC2&3){fTx{gW}MtvK3&nGmjF^a%Q1xRu&*gT|(MEN6Bw#zmcL z5ZPbWF;bJORGBtvj7zL4(;bX;u?mq^rd>7Gb)jbMaj?0}WsF`o{%y|SIBD57PKU*K z-32BNQ$j0k4;2S?QFN-VdmY`6(LQ-0-ThRjd!uujuxrQZ0iNSB<82*>Q@*kswt2j^ z)nOZq0n^2RmE#yjH7?^gScf<|*Jb>%LIvLAR4mtukHNqz;2zig59T@kSne29wwIP0 zLHa|lJcqT*`Z#}=yUbe1GuE$=whhMmE5-U|W4*(!HP$=qN@M+1V*QHoItCoJRS)Ls zA%j^dgQ-`6_c^)u>we~A2-Ow`b1|OD%9fZKXL7amMi7HJMZ42sZDaj|V!e2`Ppn^S z?CTf%8jO7oYwX)K#J-2bzLhG_L?1q{HLXX2d_p_>4ce!J@AGYG3b|$LF0eJ>2_GogtA^r2Se#|^wI>2QFi7irQXodSr1Fg^ejxU zByo)6a+|2-tetJ+b#idnhH*OCo+hggWF43~y5^hyqB z7Thz`g8PPA@b#e& zB{<5vok!ORn-Ry}-jPK(2JsXzp&7<`ZznnNII8Somwp&`jdV>aD9&{kj4v4J8kJK7 z_gcj+cR_CMg}E2yx{7f^%vWxk%%b8MNP_qQUvBQjXaIFWA}8gHQSJgGgkv3A2*Vb3 zAzCbgrV(1P*HP@x5`znJv-$y>=W;D7X8-vU)uQ65&{Htlb!Hh$3cV=7ad5Oc6LT@L z3g%MhnPrQLIfmNOd**7nQQov2R;g0OHR*wnEjdGL8I4jgmZf-jaz;yb?5CA~%_uLG z8gHgssVS3gy^D&eVw`j&CCnl(^NZDs_s%VxqO z!E^PH_Zg4m{57OPY&vaTJMRaLDDiaNsWk!V#Dduxq^n^6dZT4DxcO|20r zif`(QuoR&ji>~Vkw}FOrv3NJ`zzmH5)PpHLedkn<s)!rr+` zvvyUEU7T3u_Aj2T`FM^!HQ`Xjn-19X+=YwXxib@6kM$+`b;b8`tVt#IlD-e@#O_y~ zebr9%S!WjaCHq#{#REx7SZCm&#^d^t-M_oK-#*gUs=IP`Eq0H3d0>^hVDX%9CblN} z>{Wf%BsA=|mkcEBKB$>gyxUz8ba$-mw`c9Ni<8!wCC8{+cl#i|Eqf-u-BtX`Ii!mh z=d4enhb61sBNo@`lD9B~fedA@JF+fem-IcQZOgG2=h%q>GZL-RI&D9ALs|Qd-p&;`?Oc_Yu0YoCg7}r{v*kOfj+J1**^OfGfsOk6j?dD`ECDx>A-q; z;Msw`RjZfV#eG_@(MBaup_NkDmGjq}V*}Q?a2soq1M8`M;PcxhArJinu%i?jy&N$pNce)Y-?h!rfZsnz^s&4&(a!S$^A#>{feczYKx1rGg6E_N3qES7~%FuZ>2Y`RHnvx5e7Y}prGgRx0PRnD_y`uK%d z!uK(L?Y4LBOb#TIyD_yedsTGaaPNJddg;OFdn`8VmRT{oe=8K~xP(=!mKCo$efcrO z@e*_kU-zSveuN&rI5B2^9Mn^7)7Qy?RhAdYBNpn|jLYhniiM)>;Vu9Vaj|%~J08M! z)Ag!Rm*6`b53A-#tO@1aiKe)UbTpg7SUA+u7REzzygS?!2{lIJ)D#Wr>+zVvp(2Fb z(!B{q;drz?q7wQW5AWxsb4{W>9J^k%gyXG|Zk32dnnUfNRd)n->D&7SmtGm17p$q8 zQB@P1(jM+^YMm9GKI1&lO>ND=DY(RM>1>b2r?hkgb%Jhc>0FyECq@{8bk^W7<OOsZ0m%BJ0crQ z*O&n<+#>E|hmNy5+nTjdV+d~+;-QxANJMqEw1nbJy|G9fg!W)$W27k&4>z_&wBJn+ zjhM%f9#Uslq$8yBJM0d{x-efV(ZTE;;hT}T3O6^)WYH74O^b{n8iEJmqDEsk&aM#X zTo+>e$f)Q+?TH~ebu=ZqLed)X0INgY&7sbYwoM8%DD}2liOR#G`&g z6=F$KqPrW$s&$A9^0-TP;)u=KuZJep6w~t&bF69CtXXVac5H}fz*k$iyIoCf?QD-s z?MO7or*_7sAZDi`I1(GDR98)#Hl;1xIJMdoOvSxfdfJ*=!>~_xsqJETV|~+8>bhu4 z3%%JA>cSNz*T%YN6RWzk-7T?D<0j0fnHe+p7<)&e-8fQ?9E$!@UF*8LR7A&(PGip0 z>i)I68pAP}9KC>48zu*qghF&oyc4UOd5@j(u?qpCgH)$M<0kVRhMCAyh&D`k)P!EU zWGJjVE)Ogdy^7-ybi9t$YaEMI*&6O>ZbR3Nh}d|iiP>-n9>=Rk6l=#bjYxw~OSC%{ zXY%DbLv=KkK$o2S)ORo6^5r3z1p z`s3PsxpLiPyT<2vJh$QShtse=gR&CO4@%7`u#?u({RKGLvCRxA-^IFl1tr!41s?u; zntJ>>w}ou;6>CmG-mUIA1w~1Z)wsVPZ_dF2d(I)M(S7s)oqIs&sdZ1c(slQv&be?y zUA22crfv`FoNF-M?x;(*qiw&$pK}|HJ!Jl(YWX8h|i(D{BkBc&VdUS4X zGBV5D*)lbdaV|tMGG|%YGJKokTuNkQzMIxV|K0={=VCyQ;Z-w+3e??;I_D9d?Qf+Y zlWrPZ?}iumqqBn;G4&jPtn;v~^*mtwga=CXChDBWV6ZBPzrUf(c?izfwjyo6s>0TX z%>#%acn)RN*@HO8gXl0)y?<~15w!=X-up`)V6d&MAPBMMkMU)+HiNc zV;$CfRs&>_h|>Ulsj8;Vc0P)zst#<d-7-I8~`23Hdm6SAoy&_a-C+n#X=w?)2LZ+Gzt)wL;%z&LFeu zqM)<&-41>9C-vc?A+2u{XzHuRA3sk{SL%7poAY5E|F#M`a<^Wf)LD*@)KPAS&`#Ck zkjws1hM!&dBkjx^h~dB;@1t zo82d?_RLo5ee}!x$DbrnAN8`&Y<-W;#d~K*3F@*)aG6hbxkvrwc&3K>vTMm__dwp0 z9xL|_3-Y6Zq<0A)1UmZ!>(2o1>;vSdfp>C0`RtDyzj=mR()pkD^T0bfpZqfLPHz2l zd#-@Y$E`h|&1cUP$HPd=eB3HO!+>(D!eKl;pZT~k@~bnfo|n)tK01u=7{_~Q-dL;fL$0g``o7{435vsaFSKYsw;*%!(GWSIOj!+8Fl%-JI;{~Pem zen|evF!}d}@gEQ4v;Ip7ZLf`xaP~*)8wK9k1IeEP-r4ua^S=>r_B`_GCr%!YokM2U zQ=K`6XFZf;o`{^|G|q zJ_xk1@qbgwzb|-5>VGEnZ%ercX@Ppy0crnxf~VruBJDhji1LexLF|=C*yMK*QGcKC zyNRgZ52W3{Cc^H~NGsHTFOcot5gZ3w$)86&U8!ZlHvlRBQ{i70bR!+Hzd|C~EfM}| z;kOXc{{bNV@JA{C8+q8{$ICq0Qw6lj(Vjf|`4)NTdr5E{(j5CagNX9EMA)}V_?vOgr2KLs^tBSPF1}8L-k(ePhl07-)M@8B zAnmzZ@Kr$%HdoH~cp~c0Btq{(AlronH%a|A!JS0N9TNT*g1?pW6{CYvY z>Lq`tAb-zK{yTzvt|qTv+ye)N|4@+cv{*kukpDc7{CvSH1lJ0-3vL$tir`&>y96H- zuu-r>knh2%Z-?N0f)5KmA^5)qpA~#b@V^BAEclV2 zm-{>Pjuhmtn#oTVJXdgz;4;Bgf)T+jf_DghU64P`roMfGKNoye@DGB26&#BNN%;+e zcM0|jeoyd#;A?_;ICrq!LBSUV$MSrE@_^tOM8wFs!t(w(eV&58G9*~) ztq{CYFecb1_#Gnj{7Cp`1pgrTfnYJuRnRwEa4`|>c>ZE}tKbH~TLu58;9kMs3jT?R z_8$p9hUYNoSuV(P8tbnYezRao@LPhv5PX9O`9BN)iC`|zXV5!Y@Jhk8MCuoQz3|(F zzf155!Pf=f5&T4uKNF|^v4W=wVworxYyhkK`MzKfXrbSkf-3~K3ib;=CHO1B_XSIk a@7aEaV1r +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +int sys_ustat(int dev, struct ustat * ubuf) +{ + return -ENOSYS; +} + +int sys_utime(char * filename, struct utimbuf * times) +{ + struct m_inode * inode; + long actime,modtime; + + if (!(inode=namei(filename))) + return -ENOENT; + if (times) { + actime = get_fs_long((unsigned long *) ×->actime); + modtime = get_fs_long((unsigned long *) ×->modtime); + } else + actime = modtime = CURRENT_TIME; + inode->i_atime = actime; + inode->i_mtime = modtime; + inode->i_dirt = 1; + iput(inode); + return 0; +} + +/* + * XXX should we use the real or effective uid? BSD uses the real uid, + * so as to make this call useful to setuid programs. + */ +int sys_access(const char * filename,int mode) +{ + struct m_inode * inode; + int res, i_mode; + + mode &= 0007; + if (!(inode=namei(filename))) + return -EACCES; + i_mode = res = inode->i_mode & 0777; + iput(inode); + if (current->uid == inode->i_uid) + res >>= 6; + else if (current->gid == inode->i_gid) + res >>= 6; + if ((res & 0007 & mode) == mode) + return 0; + /* + * XXX we are doing this test last because we really should be + * swapping the effective with the real user id (temporarily), + * and then calling suser() routine. If we do call the + * suser() routine, it needs to be called last. + */ + if ((!current->uid) && + (!(mode & 1) || (i_mode & 0111))) + return 0; + return -EACCES; +} + +int sys_chdir(const char * filename) +{ + struct m_inode * inode; + + if (!(inode = namei(filename))) + return -ENOENT; + if (!S_ISDIR(inode->i_mode)) { + iput(inode); + return -ENOTDIR; + } + iput(current->pwd); + current->pwd = inode; + return (0); +} + +int sys_chroot(const char * filename) +{ + struct m_inode * inode; + + if (!(inode=namei(filename))) + return -ENOENT; + if (!S_ISDIR(inode->i_mode)) { + iput(inode); + return -ENOTDIR; + } + iput(current->root); + current->root = inode; + return (0); +} + +int sys_chmod(const char * filename,int mode) +{ + struct m_inode * inode; + + if (!(inode=namei(filename))) + return -ENOENT; + if ((current->euid != inode->i_uid) && !suser()) { + iput(inode); + return -EACCES; + } + inode->i_mode = (mode & 07777) | (inode->i_mode & ~07777); + inode->i_dirt = 1; + iput(inode); + return 0; +} + +int sys_chown(const char * filename,int uid,int gid) +{ + struct m_inode * inode; + + if (!(inode=namei(filename))) + return -ENOENT; + if (!suser()) { + iput(inode); + return -EACCES; + } + inode->i_uid=uid; + inode->i_gid=gid; + inode->i_dirt=1; + iput(inode); + return 0; +} + +int sys_open(const char * filename,int flag,int mode) +{ + struct m_inode * inode; + struct file * f; + int i,fd; + + mode &= 0777 & ~current->umask; + for(fd=0 ; fdfilp[fd]) + break; + if (fd>=NR_OPEN) + return -EINVAL; + current->close_on_exec &= ~(1<f_count) break; + if (i>=NR_FILE) + return -EINVAL; + (current->filp[fd]=f)->f_count++; + if ((i=open_namei(filename,flag,mode,&inode))<0) { + current->filp[fd]=NULL; + f->f_count=0; + return i; + } +/* ttys are somewhat special (ttyxx major==4, tty major==5) */ + if (S_ISCHR(inode->i_mode)) + if (MAJOR(inode->i_zone[0])==4) { + if (current->leader && current->tty<0) { + current->tty = MINOR(inode->i_zone[0]); + tty_table[current->tty].pgrp = current->pgrp; + } + } else if (MAJOR(inode->i_zone[0])==5) + if (current->tty<0) { + iput(inode); + current->filp[fd]=NULL; + f->f_count=0; + return -EPERM; + } +/* Likewise with block-devices: check for floppy_change */ + if (S_ISBLK(inode->i_mode)) + check_disk_change(inode->i_zone[0]); + f->f_mode = inode->i_mode; + f->f_flags = flag; + f->f_count = 1; + f->f_inode = inode; + f->f_pos = 0; + return (fd); +} + +int sys_creat(const char * pathname, int mode) +{ + return sys_open(pathname, O_CREAT | O_TRUNC, mode); +} + +int sys_close(unsigned int fd) +{ + struct file * filp; + + if (fd >= NR_OPEN) + return -EINVAL; + current->close_on_exec &= ~(1<filp[fd])) + return -EINVAL; + current->filp[fd] = NULL; + if (filp->f_count == 0) + panic("Close: file count is 0"); + if (--filp->f_count) + return (0); + iput(filp->f_inode); + return (0); +} diff --git a/linux-0.11-lab/cur/linux/fs/open.o b/linux-0.11-lab/cur/linux/fs/open.o new file mode 100644 index 0000000000000000000000000000000000000000..aceb4b8d44365ee59ea3c9bb01413542e9cf0177 GIT binary patch literal 11184 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/fs/pipe.c b/linux-0.11-lab/cur/linux/fs/pipe.c new file mode 100644 index 0000000..dfc4480 --- /dev/null +++ b/linux-0.11-lab/cur/linux/fs/pipe.c @@ -0,0 +1,111 @@ +/* + * linux/fs/pipe.c + * + * (C) 1991 Linus Torvalds + */ + +#include + +#include +#include /* for get_free_page */ +#include + +int read_pipe(struct m_inode * inode, char * buf, int count) +{ + int chars, size, read = 0; + + while (count>0) { + while (!(size=PIPE_SIZE(*inode))) { + wake_up(&inode->i_wait); + if (inode->i_count != 2) /* are there any writers? */ + return read; + sleep_on(&inode->i_wait); + } + chars = PAGE_SIZE-PIPE_TAIL(*inode); + if (chars > count) + chars = count; + if (chars > size) + chars = size; + count -= chars; + read += chars; + size = PIPE_TAIL(*inode); + PIPE_TAIL(*inode) += chars; + PIPE_TAIL(*inode) &= (PAGE_SIZE-1); + while (chars-->0) + put_fs_byte(((char *)inode->i_size)[size++],buf++); + } + wake_up(&inode->i_wait); + return read; +} + +int write_pipe(struct m_inode * inode, char * buf, int count) +{ + int chars, size, written = 0; + + while (count>0) { + while (!(size=(PAGE_SIZE-1)-PIPE_SIZE(*inode))) { + wake_up(&inode->i_wait); + if (inode->i_count != 2) { /* no readers */ + current->signal |= (1<<(SIGPIPE-1)); + return written?written:-1; + } + sleep_on(&inode->i_wait); + } + chars = PAGE_SIZE-PIPE_HEAD(*inode); + if (chars > count) + chars = count; + if (chars > size) + chars = size; + count -= chars; + written += chars; + size = PIPE_HEAD(*inode); + PIPE_HEAD(*inode) += chars; + PIPE_HEAD(*inode) &= (PAGE_SIZE-1); + while (chars-->0) + ((char *)inode->i_size)[size++]=get_fs_byte(buf++); + } + wake_up(&inode->i_wait); + return written; +} + +int sys_pipe(unsigned long * fildes) +{ + struct m_inode * inode; + struct file * f[2]; + int fd[2]; + int i,j; + + j=0; + for(i=0;j<2 && if_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; +} diff --git a/linux-0.11-lab/cur/linux/fs/pipe.o b/linux-0.11-lab/cur/linux/fs/pipe.o new file mode 100644 index 0000000000000000000000000000000000000000..d5b5db26c38f6881a408d3b6291aeb9d28c67659 GIT binary patch literal 8104 zcmb_h3ve6Pb$z>7E|&rUQX(XSF&o1XEK?QYfoN*RP1EQ6x>9FZJzcCu3k4sUw zzdV4}{^`?^nh|~Xr*m_26laF})6@T^<~j61WnM|1$Eb*8>54VEwI4`O;~Eeo@OapX{#ZRtFF)* zmeOduY`lQM^`~p=DIxcEnS`giyaL*R{*t7W}$qJwI2O`du_B8K|;bY(Jgej=_O3W+@;9>q3}PsuJmn>KdL6vou||P zFZEZxya`Cpj0TZ#m*&j?rG6SUPC@W;FVtao3c|HBw3!(;vc)g>OX+`ceA3v9^&O;IO=)rM@ADR1WZ41y4nq0x0^{f=D+8) zi^gMT*j^idylaN{dSe(%$(Tc5MDEs(Gy{6p9)3|u)p^V=eSX*w!fl@C&Q%q2^wPAeG+7@eO*s86!JmvY}R(hNnZmq3vb*qVe&dpWmB&^3U zUOuCSHL>=Jd>@C8k8*Phd+KheU!tGsa|63}pWSN-fhoadXpi8j{kBhtr*x?iEpi12 zp&QL5&_&m8`UWC0lMsArt zbTD_2x0=k~9G`Du6oF;r_fX%i2j)?@kI9Afz+3En|3wI4J+PWBQs~kHpM=g8B6@J5 zJf(!F9)L?FbnC%VHYLoRblsx|_OL|?{fNV4q%fcdcG0yI2KB(=ddnI;SfzspR-@;z z9$3V5q_AEOglHy(je2mBX1i#%Ne{HKMG9N=z%S6X6t?Msb~<>F>1@{n<4orv3Zr^p z4f{x8To1g?K2o?}5A3ZA59)#Cb+bKsV3H1YGiXW=I?e%M?qS_BdVup|CfJfg4fY|o zi49nqB|Y#*bdaRr=z-grPKv^QJ@8Ws_C@qLqzB$+(DcoyKtb%X>aViyI zKKxzuc~{3u_%ZC;7^nq~+joFiqUk>H!RCiPVytm^YL-a~a~l-Raa!xog*SJT`~!vR_d^HuWO$qj#{(l5+A$Sw06^{dER zp2_o( z%+HXH`ct5rNXPwY(9NXx`zJxSkUr>_@5EN}J!U_i<~H(_`H$oyTT#!9Xv;z1J0wec zlW1EG&Rdnb#o!y#_8P1vMWV=4Q-*wb^NlJ!T_<8nNyaZya?D0?a9*ZwZ z8x?vn8}wNN;i$ji2(s4$+;UdnzL#E}+1-pppFpB|fXf?+E}E#OA*pEm#HddCtQFow zsf{l5*Z z3Vpi@+wpLnV})=v&`7QbO~}#iXpp%;lAgR)biR-1&Ck)IGl`tcC%Fj znzH*6mAq&WD+ekKVgv2VWee5)LR9R@yj^f&89FLuOLi>DV9tS(U4aq_RkD+XL=GHF zC1WR2U`Vi%%-D*iX()4UlKFQmp6&B>#7>+T>-c>`_hlkOkMHbz=XEbtMy#PeYV{TK3BKanzR>TzGxFIH*})p3(!}xA(6RCj-~HwT((K^ddfz9k zs_W$)Yo|5hdg*n&D$=GF4t=Oq} z9$aj``<}>#$Utl`HW2B}C(6mpPLa9Xsh1%L3~n&e=vT72BQyeY3c98uNxkNcHY#v|JYRK&C6{MI>$5EF3cCzXuCUUk&XLBf+m_X&?tc565 zop`zur+Y+-S4yats1~@|?34=V7CjrsNKh`B$u$<)IM2myvYBGpiCojFB1{~>DDVOA z=VLh^D=>&^3G*e#hzU({V5M@lSkB^}L zsJLlNR%{2Op2!uGQ+5h|4i*atjkO^I*zU@}2orK@U?3}6u`3nKlt@;~WxR?4Ct$CP z$%-5~3|%ZR(L^d$7JZpw-tH?@Q%+y8(p#|ixi55Ye{A{k-dtj$uisVl;doK63YQRtw8Mw0|A9cV?i?FX`)ot<$~@ z!C~J=TCf#{*1GS~W2|x@j|B{L$}VO+R>`YwlS{TUx^12Cj zmpFQe zWN-hZ{n&Nw`~%h7JK3JRuDx)b?45`kKZ=dVipE3C)lbyE#FUK#hN$FhyM%K?I1T_3l zZIi-hiLgJV@aGCwV`1v}t8N6y_Hl*WZ#BFi^6z#$_#S9L{#%F0zgslKx|xVSv$~bO zPa%I`quoY@TNU1`@F9g03iApND3tFz`p+u)Hx-^y_>RJVRroW7{DDp8sqkiny$V0A zaFfCv3il|?EBvCuXBB=+;kOn3sY3n=&3Hdn*n*l+UZilb!hVHA3i&HF?e0^UQuv5M z`HKwNzoFz86~3zQ4Tb!%S;kZNDTOhGs};(10Dogj-mUOqg?knLqQYNR_*I49RQRI8 zR}{Xk@NX1eRQN9nuPAKhx@PcwXUOD*U0spD1i=a{aDV_@Tlk zEMUglqHv6enkAI{MTN(e{&^+;iNaTv{_m9hzQQX?KMz|V{V!2Cpm4pyQH61ZSt8=^ zSMt*ezozg7g|8_5Glg#v(eEFW{BH_V_~}2#~)qtx-6xFr)Bs Jg} +#include +#include + +#include +#include +#include + +extern int rw_char(int rw,int dev, char * buf, int count, off_t * pos); +extern int read_pipe(struct m_inode * inode, char * buf, int count); +extern int write_pipe(struct m_inode * inode, char * buf, int count); +extern int block_read(int dev, off_t * pos, char * buf, int count); +extern int block_write(int dev, off_t * pos, char * buf, int count); +extern int file_read(struct m_inode * inode, struct file * filp, + char * buf, int count); +extern int file_write(struct m_inode * inode, struct file * filp, + char * buf, int count); + +int sys_lseek(unsigned int fd,off_t offset, int origin) +{ + struct file * file; + int tmp; + + if (fd >= NR_OPEN || !(file=current->filp[fd]) || !(file->f_inode) + || !IS_SEEKABLE(MAJOR(file->f_inode->i_dev))) + return -EBADF; + if (file->f_inode->i_pipe) + return -ESPIPE; + switch (origin) { + case 0: + if (offset<0) return -EINVAL; + file->f_pos=offset; + break; + case 1: + if (file->f_pos+offset<0) return -EINVAL; + file->f_pos += offset; + break; + case 2: + if ((tmp=file->f_inode->i_size+offset) < 0) + return -EINVAL; + file->f_pos = tmp; + break; + default: + return -EINVAL; + } + return file->f_pos; +} + +int sys_read(unsigned int fd,char * buf,int count) +{ + struct file * file; + struct m_inode * inode; + + if (fd>=NR_OPEN || count<0 || !(file=current->filp[fd])) + return -EINVAL; + if (!count) + return 0; + verify_area(buf,count); + inode = file->f_inode; + if (inode->i_pipe) + return (file->f_mode&1)?read_pipe(inode,buf,count):-EIO; + if (S_ISCHR(inode->i_mode)) + return rw_char(READ,inode->i_zone[0],buf,count,&file->f_pos); + if (S_ISBLK(inode->i_mode)) + return block_read(inode->i_zone[0],&file->f_pos,buf,count); + if (S_ISDIR(inode->i_mode) || S_ISREG(inode->i_mode)) { + if (count+file->f_pos > inode->i_size) + count = inode->i_size - file->f_pos; + if (count<=0) + return 0; + return file_read(inode,file,buf,count); + } + printk("(Read)inode->i_mode=%06o\n\r",inode->i_mode); + return -EINVAL; +} + +int sys_write(unsigned int fd,char * buf,int count) +{ + struct file * file; + struct m_inode * inode; + + if (fd>=NR_OPEN || count <0 || !(file=current->filp[fd])) + return -EINVAL; + if (!count) + return 0; + inode=file->f_inode; + if (inode->i_pipe) + return (file->f_mode&2)?write_pipe(inode,buf,count):-EIO; + if (S_ISCHR(inode->i_mode)) + return rw_char(WRITE,inode->i_zone[0],buf,count,&file->f_pos); + if (S_ISBLK(inode->i_mode)) + return block_write(inode->i_zone[0],&file->f_pos,buf,count); + if (S_ISREG(inode->i_mode)) + return file_write(inode,file,buf,count); + printk("(Write)inode->i_mode=%06o\n\r",inode->i_mode); + return -EINVAL; +} diff --git a/linux-0.11-lab/cur/linux/fs/read_write.o b/linux-0.11-lab/cur/linux/fs/read_write.o new file mode 100644 index 0000000000000000000000000000000000000000..998aad95c9e243e4bfcae9647b34d9235f717844 GIT binary patch literal 7520 zcmbVQYiu0Xb-wf1;mmSLQCvzEBRN?cD{Ezw%cVq1v`kvGMN5?Yh^&V#Id)e2nB}gu zukOx@q+v9+7!{=nR}lg_n!NhJNvN*AKtHNnh1&}46z~!@%^Y@GbSM+Hi&+) z_;%mobMb-b+=o9$?eekszzdgui_HAQ(sVq6%82lGEQ2mj+2<~K+Z0`%8Y+DCs$GC; zV2x_=J>yLH^>=UFxN+@EjO6>iI5qb1OJ4Z(A5i~kU%zGXJdej%Du+ZXEIWMdE6BC9h62MA z*FFygV$Ps-_G5ajP3=Mn;$%Hxqn(z}dF12FaS1v7nUqezq2$`NXa9Tx3EU5_B zL$CjYX`J?3NG#KDtN2$TCPhq$*1Zh&l1x{kusqd^+NERhKFsb6Fan$gvIpkZ%{V(N zJ9h0yU~pX(?-b(gl<{Vm{vh7}iuG{ZTvFY;_QjjTnG(X=ur~Pf2%cx~W!c#o?aC5o zF|j;l-gEiPMoHx)B4Ls3mzS=f%QG^`AM27yzCH~b=81h{o|vy84vfA_LB5zxe^jjM z9J8Fe#WyB?t|@!ilpGHtFFl zG?T&>J^VrFd?BWHXB(%L5ZA*9sf2{yT`%Q@agw2j^l+UuQb_6H?=qSc#`N%HTNp>8+rvEJx4)o5!!}`*qrI4X_Fzhoh5X`%-#!?RyM(FD@9{_~zL|4j2;x%w9$JMc&t58@?@;k{*%Ok&w+_nm(x-f>wBUT}Y`5z|l zvkJAEFp}g0;LwkdZ*m?(d?Us1TSSB^E*H5tq9XJNM)WtvPHuhY01d}zA)MbPznk2& zn$46jc9Gl8%hc~Ck3c^vjB)Zl=ZnmvPvfOOI$1JyrID2V74n6o3`2_SOVcbtX1z+$7$fuzf z#y-*+i|LvseHgtI#)G7Xtvu*{(qmQu^Z@AzYZi2d^eId3xr5}VoD`nMA@aP#H>UB> zLFBV2B0s`pbC1f@en><{!TD3E?lQRpBN@0H2(-Fb|3^riHYk?`YIr1RpZPrM`wMyK zx$5)_BKi)}r44df>KDxDH>E@${enHf<*sdJOZtWR4PK=#v@L#}CpJ#PNZU=3q2H0= zLwI$`@Viy`{%orNt0fg4pnTfl@A1Qz2WHvW9_|(WLQ!n|1Byo(J`5F43+*%cApFr) z;g7BgFMZnKkFN^H=1fZEM%|d~h12YwZX1EEo#gGu) z9YG*QH0@xN!Fz5K2csjf@7D7k2pa5;4Px7%5bKlL-a$Xmw!wo@j$&%lryh`& z{h@Zp^i4uUA*v2g92i?AZh)vp!P<>Ci~Fm7+*?*W_YO{=6F38qIQ)<(`Q#(Gu8<$X z9O~jMn5O-tw+B!8iN~2uCPzxuT)CBZN6MvYYhH9HnhVViQHTaERp~iipOQI-EkaHf z1;R9QMOV>6(^q*5b(a+VYL;fJnKC$*6Q)o0)ELyJaNE%=&(af7$?T+MPhR}?Mf-MD z(RwxISM*ygdopETgyKx=k+xqvda-rUo_zIHY4t-qb^9B58Yiri_Cxx;Q9O34*oQ3p zA^U=TvenY>7_b*lu8Hz9W26}9jwrlz6S>RPTDb8wy-dSP(njZDr>XG>lsQy0i-nt2qZbQK9d-2};arHU(B^0_LwP87g;d-OyxjC=aK!2L9dm2!Y<3!}$)RmrfIcCol zrke6DakVbaq-CWDdWXrC|B6De`0AbV3 zI&vghRW21bucG^jE~U|1-O>dyJwbU2k99UU%bvLh*9F@l#|I|sR9rXghZux<(^B%33bI~Q|P$2|hd zI=WPCRRjhAP>qn_(w-a3FZ#M!xarHmwlsj9X z9E{rcG6Zg*9mQzx!l0frx>Af)nPNQ7^hz-V7E4Dl1SY$q7&4 + +int sys_select() +{ + return -ENOSYS; +} + diff --git a/linux-0.11-lab/cur/linux/fs/select.o b/linux-0.11-lab/cur/linux/fs/select.o new file mode 100644 index 0000000000000000000000000000000000000000..d61f73a39bf58c107d845f3825c695fe69663502 GIT binary patch literal 1776 zcma)7&ubG=5T2J!Yc*|X8^x9irr?h%?k3TorD`oLDvI>~7iJXeveV zCY}@#J&1bs?8UqPfKX4Kdi3hqL;YsoPO~}bz`U9HX5P%3>16x#`kfm}DH2j-P~Rf@ zl+m7QEas>{P2kmV>r<>uh}!akeCds_eOT8?M2Wg)X97y zXXIz{6KZmJ{3ubzqHEJeej#@`cdNkQ($w4KX(HnU<#LNTV+09~f%U6&dCo2MSm&o^ z=r~TL{^ZAS#{HoyMWNGi>XB9FIHI9A%~auDMj@)y@?EFobsJI14^7W`RO+<7ZqF=R zm5SN1Yo)RVO3jdNuC5hVidAdgsuoSx4(hF|?F;i4q1QW&qPbBto4(tQ%w}M_j=AZh zUncKQJrYawEG&Ru~0ZwnU4Z zUPM;Ij%>1OVMtcsbgYI`>u#*Ky`~RWtlPC(;57dvg*F;I@kis zL)RAOsi&aRIIZ<~a{8_RbIu@$_g4DiB@mtO%TCWGy1^hwHd9;uxYGc5+5Qz*MvUa< z9Gq{Nm4w8{zmS6hLcYY~mLMmkQ0ApQ$Ac%gz;MoiD`Am=g*R7#1j7tNTI!1mRP(~3C{b&IOkWGJ +#include + +#include +#include +#include +#include + +static void cp_stat(struct m_inode * inode, struct stat * statbuf) +{ + struct stat tmp; + int i; + + verify_area(statbuf,sizeof (* statbuf)); + tmp.st_dev = inode->i_dev; + tmp.st_ino = inode->i_num; + tmp.st_mode = inode->i_mode; + tmp.st_nlink = inode->i_nlinks; + tmp.st_uid = inode->i_uid; + tmp.st_gid = inode->i_gid; + tmp.st_rdev = inode->i_zone[0]; + tmp.st_size = inode->i_size; + tmp.st_atime = inode->i_atime; + tmp.st_mtime = inode->i_mtime; + tmp.st_ctime = inode->i_ctime; + for (i=0 ; i= NR_OPEN || !(f=current->filp[fd]) || !(inode=f->f_inode)) + return -EBADF; + cp_stat(inode,statbuf); + return 0; +} + +int sys_readlink() +{ + return -ENOSYS; +} diff --git a/linux-0.11-lab/cur/linux/fs/stat.o b/linux-0.11-lab/cur/linux/fs/stat.o new file mode 100644 index 0000000000000000000000000000000000000000..fdb41d331a01a0b46c2a069b24d4be4631d5abd0 GIT binary patch literal 7212 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 +#include +#include +#include + +#include +#include + +int sync_dev(int dev); +void wait_for_keypress(void); + +/* set_bit uses setb, as gas doesn't recognize setc */ +#define set_bit(bitnr,addr) ({ \ +register int __res __asm__("ax"); \ +__asm__("bt %2,%3;setb %%al":"=a" (__res):"a" (0),"r" (bitnr),"m" (*(addr))); \ +__res; }) + +struct super_block super_block[NR_SUPER]; +/* this is initialized in init/main.c */ +int ROOT_DEV = 0; + +static void lock_super(struct super_block * sb) +{ + cli(); + while (sb->s_lock) + sleep_on(&(sb->s_wait)); + sb->s_lock = 1; + sti(); +} + +static void free_super(struct super_block * sb) +{ + cli(); + sb->s_lock = 0; + wake_up(&(sb->s_wait)); + sti(); +} + +static void wait_on_super(struct super_block * sb) +{ + cli(); + while (sb->s_lock) + sleep_on(&(sb->s_wait)); + sti(); +} + +struct super_block * get_super(int dev) +{ + struct super_block * s; + + if (!dev) + return NULL; + s = 0+super_block; + while (s < NR_SUPER+super_block) + if (s->s_dev == dev) { + wait_on_super(s); + if (s->s_dev == dev) + return s; + s = 0+super_block; + } else + s++; + return NULL; +} + +void put_super(int dev) +{ + struct super_block * sb; +/* struct m_inode * inode; */ + int i; + + if (dev == ROOT_DEV) { + printk("root diskette changed: prepare for armageddon\n\r"); + return; + } + if (!(sb = get_super(dev))) + return; + if (sb->s_imount) { + printk("Mounted disk changed - tssk, tssk\n\r"); + return; + } + lock_super(sb); + sb->s_dev = 0; + for(i=0;is_imap[i]); + for(i=0;is_zmap[i]); + free_super(sb); + return; +} + +static struct super_block * read_super(int dev) +{ + struct super_block * s; + struct buffer_head * bh; + int i,block; + + if (!dev) + return NULL; + check_disk_change(dev); + if (s = get_super(dev)) + return s; + for (s = 0+super_block ;; s++) { + if (s >= NR_SUPER+super_block) + return NULL; + if (!s->s_dev) + break; + } + s->s_dev = dev; + s->s_isup = NULL; + s->s_imount = NULL; + s->s_time = 0; + s->s_rd_only = 0; + s->s_dirt = 0; + lock_super(s); + if (!(bh = bread(dev,1))) { + s->s_dev=0; + free_super(s); + return NULL; + } + __asm__ volatile ("cld"); /* by wyj */ + *((struct d_super_block *) s) = + *((struct d_super_block *) bh->b_data); + brelse(bh); + if (s->s_magic != SUPER_MAGIC) { + s->s_dev = 0; + free_super(s); + return NULL; + } + for (i=0;is_imap[i] = NULL; + for (i=0;is_zmap[i] = NULL; + block=2; + for (i=0 ; i < s->s_imap_blocks ; i++) + if (s->s_imap[i]=bread(dev,block)) + block++; + else + break; + for (i=0 ; i < s->s_zmap_blocks ; i++) + if (s->s_zmap[i]=bread(dev,block)) + block++; + else + break; + if (block != 2+s->s_imap_blocks+s->s_zmap_blocks) { + for(i=0;is_imap[i]); + for(i=0;is_zmap[i]); + s->s_dev=0; + free_super(s); + return NULL; + } + s->s_imap[0]->b_data[0] |= 1; + s->s_zmap[0]->b_data[0] |= 1; + free_super(s); + return s; +} + +int sys_umount(char * dev_name) +{ + struct m_inode * inode; + struct super_block * sb; + int dev; + + if (!(inode=namei(dev_name))) + return -ENOENT; + dev = inode->i_zone[0]; + if (!S_ISBLK(inode->i_mode)) { + iput(inode); + return -ENOTBLK; + } + iput(inode); + if (dev==ROOT_DEV) + return -EBUSY; + if (!(sb=get_super(dev)) || !(sb->s_imount)) + return -ENOENT; + if (!sb->s_imount->i_mount) + printk("Mounted inode has i_mount=0\n"); + for (inode=inode_table+0 ; inodei_dev==dev && inode->i_count) + return -EBUSY; + sb->s_imount->i_mount=0; + iput(sb->s_imount); + sb->s_imount = NULL; + iput(sb->s_isup); + sb->s_isup = NULL; + put_super(dev); + sync_dev(dev); + return 0; +} + +int sys_mount(char * dev_name, char * dir_name, int rw_flag) +{ + struct m_inode * dev_i, * dir_i; + struct super_block * sb; + int dev; + + if (!(dev_i=namei(dev_name))) + return -ENOENT; + dev = dev_i->i_zone[0]; + if (!S_ISBLK(dev_i->i_mode)) { + iput(dev_i); + return -EPERM; + } + iput(dev_i); + if (!(dir_i=namei(dir_name))) + return -ENOENT; + if (dir_i->i_count != 1 || dir_i->i_num == ROOT_INO) { + iput(dir_i); + return -EBUSY; + } + if (!S_ISDIR(dir_i->i_mode)) { + iput(dir_i); + return -EPERM; + } + if (!(sb=read_super(dev))) { + iput(dir_i); + return -EBUSY; + } + if (sb->s_imount) { + iput(dir_i); + return -EBUSY; + } + if (dir_i->i_mount) { + iput(dir_i); + return -EPERM; + } + sb->s_imount=dir_i; + dir_i->i_mount=1; + dir_i->i_dirt=1; /* NOTE! we don't iput(dir_i) */ + return 0; /* we do that in umount */ +} + +void mount_root(void) +{ + int i,free; + struct super_block * p; + struct m_inode * mi; + + if (32 != sizeof (struct d_inode)) + panic("bad i-node size"); + for(i=0;is_dev = 0; + p->s_lock = 0; + p->s_wait = NULL; + } + if (!(p=read_super(ROOT_DEV))) + panic("Unable to mount root"); + if (!(mi=iget(ROOT_DEV,ROOT_INO))) + panic("Unable to read root i-node"); + mi->i_count += 3 ; /* NOTE! it is logically used 4 times, not 1 */ + p->s_isup = p->s_imount = mi; + current->pwd = mi; + current->root = mi; + free=0; + i=p->s_nzones; + while (-- i >= 0) + if (!set_bit(i&8191,p->s_zmap[i>>13]->b_data)) + free++; + printk("%d/%d free blocks\n\r",free,p->s_nzones); + free=0; + i=p->s_ninodes+1; + while (-- i >= 0) + if (!set_bit(i&8191,p->s_imap[i>>13]->b_data)) + free++; + printk("%d/%d free inodes\n\r",free,p->s_ninodes); +} diff --git a/linux-0.11-lab/cur/linux/fs/super.o b/linux-0.11-lab/cur/linux/fs/super.o new file mode 100644 index 0000000000000000000000000000000000000000..b551798da16bfa699c2dc2848c061720be0e1b2a GIT binary patch literal 12284 zcmbVS4|r77mA~`e%e-L{hCl`g66#=sQks8AL`0E9f&v0kL_RqFo?WWs8aiLnfbz8TzU%Pz%Df>y&U0YeJR$BJ=yYIZo zkhR@@`*hy#oO91T=iGDeJ@393ZdBku3^5KuBNHdZyNqE zHf5x%F;Y617`7T;JALNN8M1pj`aW{7_#Y&XboBY&Ej`n4n93qh#ELHE_P=CIl$uJr z8{1UTewuNN-FURCu|ZRvu-P!uv1!UT4_?~U*j8*JKa80E-i@iU&Cj;6_m%rrmB6R( z*xlIBZ7P-fhPGXLrU@}OJx1%7(BjmiRwEfb%9CFK1v71Q!C?<~HP$1vdR44C`Hm2RaI!<1Pu*mn`|wcd<|hCx_XXaY$i2fxgL{u6q83G zCQdI5d(SKHrC0ObdSOI5Zubh<4Pz#-BF4wh5sa*b@k7>d*IqVxuDKSl@Pcq1ru#8t ztX4O7Snl?yzwN1VEdPh?nzL=|bvD8FRN79Cbof2v2gaSsd&bitv zqaK#@k0*_*-A!(V?!?tD2|lh}>HS2C#_oDo=6;Oh#FU2JsUO)G9+|dxTIo68J(8Ms zuc7^{1{&#v5%w-U6S?V@D60av%5~`OkYey@?6NZ_FTs+aI#LosN>~}ljwmqm)Nhqq zrn;3X%%E^s2K@Bz*z*h~y;ABGpL&@7EftQt3c7&E9tdL(gjJy${ldE7cwv0a)unK6 z$3>{eH7G<%0_+s7jbo@<03{& z2g5Q9vg11&Et}77@wR_?0O(Mr^&XY73;CZ<@aq3hf|0&6C#Oiyim2K>8uR4l(o5hg zwCjK!-Kr6N4Mfo8&(G@px$e3c0=uLr#>54~iuGAdL( z6fx{Zy~3C8c~!5-L$3u&ZyWl7Sb&l)nED1IVRjokk1on36Hfc|N;%q*U^A9en2+1A ze%!vOZ4P4vb-$w%A+x~c`blVO%UTEK^;3YlXFma``=qA}-^f;5>7a>m*W%gJ#%M@O z4o2Km3~$)1&FYr>2T^e=*aBGi)1`;qG4F=EnH$F1A!wL)=3G2F4v{?c_T=I3QK|Gj zU71E|b!MkL9-Q*vK|Ba8ma{W!tX#iobyO>*AJxk8eF>rXzK*#c#+iuMu}Ll(OMwByx)NZT%Cc+| z{Q$pk;dvjqss(^5t16W#D9f-fWScMW4OsU-%$CSaFk|`r3lM>E60MD9*ZF9$=hOU3 zlFB}byLlx&TK0LAUzNf=V84V;=Bh!^L3=v-nyX1y+nv;3L%PPkiSnySPqzO^dTkq= z*V=F6ZmwI5d)RKJo%N*a?UmHIhIE6ymv%Ogj;MfjCu~gmE>yp5TI*@VZbZAafg@1% zk07u(pw571B1Uyju3uUjjo=JuyK3`|>cLb(SzBnj$q3%f7R|I7!D$ReGwnuj zElq1?i4j~}Zn?~;F4Dk_%yEYiSo^hjNlz?iLoV(9PB`BJ$Iq!pb>0i)NwKe_~CdGWOf?CZ!=JbdEIRUPtj@e zd`!>nMs+%Y1>1KSm>1wDpI6qlANWy?4XlJFmLf11J!F3XLot(F zeGxlDonH2Bv|pypKGO5;y|j~}uO|Bp`)(uMVt&2#D07c%u7M_QbItu7W4WEQ-}W;% zcaRR)r|9xd(m{JY=@N5OW4}V1AECU~o`k!37hQ$z7Rv7?jd4?c4|O)#GiY;|;cm7E zXlF0!t@exbJ3^b?c7}aF#yLsY=TZM&=BCeXpw4}yQ}$bo`EN;YQ#Gt8cR*1u8XJoS z;;{MPe?jC9`r~xY!zMaCMB1?Rpg%#{vh|=JCM|>hBxxD+Bcx@}pQ;%2rzx*h{(TsQ z-{wKsU_Gk!w=MR=*S{e^|H4j?%D$8Ig$&2CuYth7s0a6eJw|!^D(KXx5LKs8j;W)C z+JJQxz}N%(X>0x{Xfw`T_yO*AW#&mQAZ?ii(jO!pFq5f4Wi^qmF_UrZvu4t@W-^;q zRtxDcXvkYh*V~6--)f`z23125x24Wxoies!L@!#4SYqvOQL&vG%Ki|h!n%mGW#;p3 z%34f1U|&!9#iVN>U#P4lq-*Wn)Vzdr81f61wUl(d8P6?J)}^EyOoxGAMml1L;n!M5 zy3urEJC$`g>G`G;_vj|mNqBUd>GXJXyXoX%XF2tkKn}Wt^ktBzl+{VP1AReXLAnca zWvw8&%4E8_NUlYc%34WsgP8z%CCN=@6694RH=Dg6SCQOm>e{xNbho`3cWVvlgk8^! zUA-Rp>{B)GVES1Lb!yMWq6N*Lq&i@+#?{P2$F-i+P*d+mLVY+HD%FgiZ(kN|)ABu# zkuo0OYWWyCPHkoLd@4n>;v=5od{1#I9r)TmNy>grm;R(sc&W#Z3&l9b^Qj|FR+otf`!nx z?`JSwKbu~@z@rexGV{aazQ`(MJdh4EwO?{QCBk~pPl|a}cOC6NOLjA+^j2-~TAVgr zgU^b=`d`zaa8~^ms_9O~1A&b@FljzM#wM=H88`~-UbdQ}Ct$W8 zk}C99YR*@fnK|_C3K}*+ZtZ2=XIS$>b=78Qc4(?^n!k1?W~a_)hN`QVR$p4}tAm%x z$_$WMUAKe>?nYHzeK|V7nvfW(e}*zct`dqCdI-ZFfhp**8kQz$!&RPPoZ!o9*s|3X ze!$lFe5>o|fAU&=LeqU0%%WsU6(lHj)71sDupwIzE^S^gizDc$fA|WmHLa=~ zw}H38x)$H^S)StRy0cWn?PsY@uT(utamKi>2_|O3gp8Tq>fyYComGuIPxCYQb40Of zbsZIFyDcco;|7+`x(wr*Qz@V-9vhe({4fdn&f77pCGT2;MnioVtk3suXfp0T%)H|4 zx3sjTGVydV;k2exnc_}WA;=HqD_EuS#X%?65~tNZyqdM33gCl6-o<>p&k<2!Xwab) zUh}EmOe_srFSsflqy6KETK7Q}ex=KpQ4EGq3c7T2xXMvVn;RnUQ%ffM5v{!&EyN4Ez` zfzs&JJ30fs`%eU}9({E500-jp2a^5+`;Y0N`TTGAM{`=b+5gyq6Zmg*6bUGI0ij#J z?>{#BD2)VqN4Fnv|1XuctXnZ2&AD0;`FVEq#ksdV!WW7Ou}u?$D+w}4A1gHE*5v9J*fhXrlJ|F$NoHsSRpmw zsG`2(WO1P?4#e{PDj6&EIXP9#JBjE3XzfTPTvt*3eL!8c{<_GDNPEkYmi9>VKr9#U zTb5e1WHIP?IuU8^jWj2-1F1rDG8Y?gng_FZr+0D?rs&*hP8KuqLMofdLzKxj>%lb- z=CTDRUdZMUTHbN`0s8BOg5`@TOYL%)je?`n*-USQ-wBdX!S{<)bTBpOAU$z@Cs7XH zO7jSQr`svFLubO>XEFljSSu$bOZ4L9uqT>vb{3+{u*xQr(E|5d-YI}^b~^E5fuC2@ z#%r$G6zy7hz3Rc-M445D7tIeM+p3u14#k%qH%d3IR1~8|%6r@xGC2g9&h|z*>u#ia zU}yEkWT$fQAI&AA*-Uy!MWgu8gAwzUI^UPYm!Jvy_z<++4IPu(rf^#bkNm8IUd2JI z9i(w6A1%7$ch^^(X&lU@vbhvqlv8@0v5PFQd~_EUj~jMgB~xi9>gK>JUGa1_?;yY^ z^MfR%3YZI+%t!TzId`mHD$lTcipivti?Y@!y`CIkbVn>zfM+H{FJj%_ahEVQLNtS= z#CeG6r31?h2}^%F-j%U++>cZ+pjSj5AH%S~RJ@qWIam^SE%zojo_9m?91dt!cUQ4A zKG&(%zU+Y0nkgm`*IhlN+XN# z!t62sZb9h9T6HPTv^&xI9_434&aYlny0p02aPKh$h!Vi~QqbZ)O1VpCAnIlai=RuF zpAf|ZR<+(p1@!cCJXkFIk45oSG?7M#Jy?B(th@eVT*cVy5Tnd7n4~z!N0X^szQ7Wv zmjX5_MuNSo_p~fyy;k&4)Kx21ERD>+t_K^x=vJiW3yYdtxMyK|OI!N~T&dFE+xc|f zwNd$Y2Yj<@EbAUTXerl!-~sX_L#+r!QXxyr+eH=;`Bssy1@FCWP(LQ}1mxc91>|i; zf5@VJz9hbk-%s$<@*jn)HjoeD=e-@M&QRcPqcc=Z9zl#Q!V+S0qkaAA?ISB zN9CM!O97=&wdhAqOAp>1TXLMk7!ZvKr>EG9nM-D&qUl&q4_9+VYb?jl;_O)Nz^8!M z0lrjAJUcMJecF=2L!bqZ7x$sy_Hp`9&$#>l>Wii*0t4%_ZqB~YKXfYo>nsJuLTAB2$lo?Z>~Xv4cansd)S`rHPj-s_$c z(9^pNv}c>md?D$=$=tiVwj~f$j$`Wrr8;n?=Qx-HZyc*YdwoEv<@g%>WQD*ZZ=9ev zhPRXmJILkfT@Sv}?>@Y%*Fr|WlzV;$Kzn^as%k9O_1@qs+ESn^?L7&5%qQ(}*q*&1 z(6q-q^4f9^zC2>Q-o-ZlJ|gJp-G_yN)RZqz?_SaK8lKkQB|L6C_Qyoe3!QrW6yjZs zj~74FRgUB97zcCDaWFsLIHrR3)(S}VLPV)Ak&w$XP4s-S>6u1_FVAl6ng*WsXqP@K z?R8y%{CP&uRzZRrzbfUH`rVoF7TT+9C12@*yj316>!$&I);!V?;hD~L_{|d@P`*r6 zrFFeJ$o`d=S>DC2)YL0tT*EAT_u4Bq2t=luJg%(yDHC{RZu~M;NO3Zy3 zbV)PwJQd^RSiFn9xevUH{4Mx-&w*(ePapV~@%ssW=&eyAybrC|?{;`IWcg zj9KwMbM|4T;;f<1G;)G3AHVZy#~H-g2WOyu2WJd5e)<_dhv00RDc}tX&!D`c@J@}h zE&p&Eb^mC~2AoDK&c!@#;tT`}XPxTuLz%eyUiMxGtBRAc9s~XW9PM|8^xtOHU@U{P zUkcHckEPuI1~v=VmoeR4H{|)JI3G4P=Y{xV!4pIjkvE7ajBf$?rGk6hKrQE=P$_RE z4|yLEpEe#6e36J+`4SQOr-8I@p_UML0S!D9j}g&tm+A696}%oBfbu&94b)s?j#5_< z->1~gf;~XSxraRb`~!K!#eYS{xDJv>QFuczgohOS&lg-y#53n=VnnGp5q`cP?cWi6 zPUL=kK4kxeg0~3n7W}l}aiH)0O8qwx@tKH;aRu;WT$727N=>I6`REi}MTCA25x-vi zjCuI$g~)f4KVPZ)$m92M@@PLy{sPRO;6@Z^w%-7xzvqPik?w}1; zp%JN9KFrNrBFY+EYWZrx4T3iavJSC-S}-rTQ}CmLdj%gB{H!4B2K%#K5RVA{Sn#;u zuLXZEXmDLYKO}gLV6!0qcF6WC1vd)bBDhVEe;TA-N$`Hb&j@}|@EO75f@6Yj3-SXQ z?VKyfzn^OVg4YUm3l0c!KTz*(!G{DN6MRbW`+~0szAkuLa1!{r^GEI3PWp5Q{k%LUg6a=)`*k6=b{ zm*BmEpA!6>;8z9zN$^=g{^^kRUKadM!FL3!SP#%XRgnLPfIR<}P2?Gm*eSS9aEqWL zc&Ffff}a-ryx`Xaza#jZ;7 + +#include + +static void free_ind(int dev,int block) +{ + struct buffer_head * bh; + unsigned short * p; + int i; + + if (!block) + return; + if (bh=bread(dev,block)) { + p = (unsigned short *) bh->b_data; + for (i=0;i<512;i++,p++) + if (*p) + free_block(dev,*p); + brelse(bh); + } + free_block(dev,block); +} + +static void free_dind(int dev,int block) +{ + struct buffer_head * bh; + unsigned short * p; + int i; + + if (!block) + return; + if (bh=bread(dev,block)) { + p = (unsigned short *) bh->b_data; + for (i=0;i<512;i++,p++) + if (*p) + free_ind(dev,*p); + brelse(bh); + } + free_block(dev,block); +} + +void truncate(struct m_inode * inode) +{ + int i; + + if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))) + return; + for (i=0;i<7;i++) + if (inode->i_zone[i]) { + free_block(inode->i_dev,inode->i_zone[i]); + inode->i_zone[i]=0; + } + free_ind(inode->i_dev,inode->i_zone[7]); + free_dind(inode->i_dev,inode->i_zone[8]); + inode->i_zone[7] = inode->i_zone[8] = 0; + inode->i_size = 0; + inode->i_dirt = 1; + inode->i_mtime = inode->i_ctime = CURRENT_TIME; +} + diff --git a/linux-0.11-lab/cur/linux/fs/truncate.o b/linux-0.11-lab/cur/linux/fs/truncate.o new file mode 100644 index 0000000000000000000000000000000000000000..8975b924958105c719b40601717933b390dce7b0 GIT binary patch literal 6848 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 T&knY~U11EUL+(?^{YLp;_3Udb literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/include/a.out.h b/linux-0.11-lab/cur/linux/include/a.out.h new file mode 100644 index 0000000..3e67974 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/a.out.h @@ -0,0 +1,220 @@ +#ifndef _A_OUT_H +#define _A_OUT_H + +#define __GNU_EXEC_MACROS__ + +struct exec { + unsigned long a_magic; /* Use macros N_MAGIC, etc for access */ + unsigned a_text; /* length of text, in bytes */ + unsigned a_data; /* length of data, in bytes */ + unsigned a_bss; /* length of uninitialized data area for file, in bytes */ + unsigned a_syms; /* length of symbol table data in file, in bytes */ + unsigned a_entry; /* start address */ + unsigned a_trsize; /* length of relocation info for text, in bytes */ + unsigned a_drsize; /* length of relocation info for data, in bytes */ +}; + +#ifndef N_MAGIC +#define N_MAGIC(exec) ((exec).a_magic) +#endif + +#ifndef OMAGIC +/* Code indicating object file or impure executable. */ +#define OMAGIC 0407 +/* Code indicating pure executable. */ +#define NMAGIC 0410 +/* Code indicating demand-paged executable. */ +#define ZMAGIC 0413 +#endif /* not OMAGIC */ + +#ifndef N_BADMAG +#define N_BADMAG(x) \ + (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \ + && N_MAGIC(x) != ZMAGIC) +#endif + +#define _N_BADMAG(x) \ + (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \ + && N_MAGIC(x) != ZMAGIC) + +#define _N_HDROFF(x) (SEGMENT_SIZE - sizeof (struct exec)) + +#ifndef N_TXTOFF +#define N_TXTOFF(x) \ + (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : sizeof (struct exec)) +#endif + +#ifndef N_DATOFF +#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text) +#endif + +#ifndef N_TRELOFF +#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data) +#endif + +#ifndef N_DRELOFF +#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize) +#endif + +#ifndef N_SYMOFF +#define N_SYMOFF(x) (N_DRELOFF(x) + (x).a_drsize) +#endif + +#ifndef N_STROFF +#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms) +#endif + +/* Address of text segment in memory after it is loaded. */ +#ifndef N_TXTADDR +#define N_TXTADDR(x) 0 +#endif + +/* Address of data segment in memory after it is loaded. + Note that it is up to you to define SEGMENT_SIZE + on machines not listed here. */ +#if defined(vax) || defined(hp300) || defined(pyr) +#define SEGMENT_SIZE PAGE_SIZE +#endif +#ifdef hp300 +#define PAGE_SIZE 4096 +#endif +#ifdef sony +#define SEGMENT_SIZE 0x2000 +#endif /* Sony. */ +#ifdef is68k +#define SEGMENT_SIZE 0x20000 +#endif +#if defined(m68k) && defined(PORTAR) +#define PAGE_SIZE 0x400 +#define SEGMENT_SIZE PAGE_SIZE +#endif + +#define PAGE_SIZE 4096 +#define SEGMENT_SIZE 1024 + +#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1)) + +#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text) + +#ifndef N_DATADDR +#define N_DATADDR(x) \ + (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \ + : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x)))) +#endif + +/* Address of bss segment in memory after it is loaded. */ +#ifndef N_BSSADDR +#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) +#endif + +#ifndef N_NLIST_DECLARED +struct nlist { + union { + char *n_name; + struct nlist *n_next; + long n_strx; + } n_un; + unsigned char n_type; + char n_other; + short n_desc; + unsigned long n_value; +}; +#endif + +#ifndef N_UNDF +#define N_UNDF 0 +#endif +#ifndef N_ABS +#define N_ABS 2 +#endif +#ifndef N_TEXT +#define N_TEXT 4 +#endif +#ifndef N_DATA +#define N_DATA 6 +#endif +#ifndef N_BSS +#define N_BSS 8 +#endif +#ifndef N_COMM +#define N_COMM 18 +#endif +#ifndef N_FN +#define N_FN 15 +#endif + +#ifndef N_EXT +#define N_EXT 1 +#endif +#ifndef N_TYPE +#define N_TYPE 036 +#endif +#ifndef N_STAB +#define N_STAB 0340 +#endif + +/* The following type indicates the definition of a symbol as being + an indirect reference to another symbol. The other symbol + appears as an undefined reference, immediately following this symbol. + + Indirection is asymmetrical. The other symbol's value will be used + to satisfy requests for the indirect symbol, but not vice versa. + If the other symbol does not have a definition, libraries will + be searched to find a definition. */ +#define N_INDR 0xa + +/* The following symbols refer to set elements. + All the N_SET[ATDB] symbols with the same name form one set. + Space is allocated for the set in the text section, and each set + element's value is stored into one word of the space. + The first word of the space is the length of the set (number of elements). + + The address of the set is made into an N_SETV symbol + whose name is the same as the name of the set. + This symbol acts like a N_DATA global symbol + in that it can satisfy undefined external references. */ + +/* These appear as input to LD, in a .o file. */ +#define N_SETA 0x14 /* Absolute set element symbol */ +#define N_SETT 0x16 /* Text set element symbol */ +#define N_SETD 0x18 /* Data set element symbol */ +#define N_SETB 0x1A /* Bss set element symbol */ + +/* This is output from LD. */ +#define N_SETV 0x1C /* Pointer to set vector in data area. */ + +#ifndef N_RELOCATION_INFO_DECLARED + +/* This structure describes a single relocation to be performed. + The text-relocation section of the file is a vector of these structures, + all of which apply to the text section. + Likewise, the data-relocation section applies to the data section. */ + +struct relocation_info +{ + /* Address (within segment) to be relocated. */ + int r_address; + /* The meaning of r_symbolnum depends on r_extern. */ + unsigned int r_symbolnum:24; + /* Nonzero means value is a pc-relative offset + and it should be relocated for changes in its own address + as well as for changes in the symbol or section specified. */ + unsigned int r_pcrel:1; + /* Length (as exponent of 2) of the field to be relocated. + Thus, a value of 2 indicates 1<<2 bytes. */ + unsigned int r_length:2; + /* 1 => relocate with value of symbol. + r_symbolnum is the index of the symbol + in file's the symbol table. + 0 => relocate with the address of a segment. + r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS + (the N_EXT bit may be set also, but signifies nothing). */ + unsigned int r_extern:1; + /* Four bits that aren't used, but when writing an object file + it is desirable to clear them. */ + unsigned int r_pad:4; +}; +#endif /* no N_RELOCATION_INFO_DECLARED. */ + + +#endif /* __A_OUT_GNU_H__ */ diff --git a/linux-0.11-lab/cur/linux/include/asm/io.h b/linux-0.11-lab/cur/linux/include/asm/io.h new file mode 100644 index 0000000..d5cc42a --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/asm/io.h @@ -0,0 +1,24 @@ +#define outb(value,port) \ +__asm__ ("outb %%al,%%dx"::"a" (value),"d" (port)) + + +#define inb(port) ({ \ +unsigned char _v; \ +__asm__ volatile ("inb %%dx,%%al":"=a" (_v):"d" (port)); \ +_v; \ +}) + +#define outb_p(value,port) \ +__asm__ ("outb %%al,%%dx\n" \ + "\tjmp 1f\n" \ + "1:\tjmp 1f\n" \ + "1:"::"a" (value),"d" (port)) + +#define inb_p(port) ({ \ +unsigned char _v; \ +__asm__ volatile ("inb %%dx,%%al\n" \ + "\tjmp 1f\n" \ + "1:\tjmp 1f\n" \ + "1:":"=a" (_v):"d" (port)); \ +_v; \ +}) diff --git a/linux-0.11-lab/cur/linux/include/asm/memory.h b/linux-0.11-lab/cur/linux/include/asm/memory.h new file mode 100644 index 0000000..51b69e7 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/asm/memory.h @@ -0,0 +1,15 @@ +/* + * NOTE!!! memcpy(dest,src,n) assumes ds=es=normal data segment. This + * goes for all kernel functions (ds=es=kernel space, fs=local data, + * gs=null), as well as for all well-behaving user programs (ds=es= + * user data space). This is NOT a bug, as any user program that changes + * es deserves to die if it isn't careful. + */ +#define memcpy(dest,src,n) ({ \ +void * _res = dest; \ +__asm__ ("cld;rep;movsb" \ + ::"D" ((long)(_res)),"S" ((long)(src)),"c" ((long) (n)) \ + ); \ +_res; \ +}) + diff --git a/linux-0.11-lab/cur/linux/include/asm/segment.h b/linux-0.11-lab/cur/linux/include/asm/segment.h new file mode 100644 index 0000000..94dd102 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/asm/segment.h @@ -0,0 +1,65 @@ +static inline unsigned char get_fs_byte(const char * addr) +{ + unsigned register char _v; + + __asm__ ("movb %%fs:%1,%0":"=r" (_v):"m" (*addr)); + return _v; +} + +static inline unsigned short get_fs_word(const unsigned short *addr) +{ + unsigned short _v; + + __asm__ ("movw %%fs:%1,%0":"=r" (_v):"m" (*addr)); + return _v; +} + +static inline unsigned long get_fs_long(const unsigned long *addr) +{ + unsigned long _v; + + __asm__ ("movl %%fs:%1,%0":"=r" (_v):"m" (*addr)); \ + return _v; +} + +static inline void put_fs_byte(char val,char *addr) +{ +__asm__ ("movb %0,%%fs:%1"::"r" (val),"m" (*addr)); +} + +static inline void put_fs_word(short val,short * addr) +{ +__asm__ ("movw %0,%%fs:%1"::"r" (val),"m" (*addr)); +} + +static inline void put_fs_long(unsigned long val,unsigned long * addr) +{ +__asm__ ("movl %0,%%fs:%1"::"r" (val),"m" (*addr)); +} + +/* + * Someone who knows GNU asm better than I should double check the followig. + * It seems to work, but I don't know if I'm doing something subtly wrong. + * --- TYT, 11/24/91 + * [ nothing wrong here, Linus ] + */ + +static inline unsigned long get_fs() +{ + unsigned short _v; + __asm__("mov %%fs,%%ax":"=a" (_v):); + return _v; +} + +static inline unsigned long get_ds() +{ + unsigned short _v; + __asm__("mov %%ds,%%ax":"=a" (_v):); + return _v; +} + +static inline void set_fs(unsigned long val) +{ + __asm__("mov %0,%%fs"::"a" ((unsigned short) val)); +} + diff --git a/linux-0.11-lab/cur/linux/include/asm/system.h b/linux-0.11-lab/cur/linux/include/asm/system.h new file mode 100644 index 0000000..0b5a21d --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/asm/system.h @@ -0,0 +1,66 @@ +#define move_to_user_mode() \ +__asm__ ("movl %%esp,%%eax\n\t" \ + "pushl $0x17\n\t" \ + "pushl %%eax\n\t" \ + "pushfl\n\t" \ + "pushl $0x0f\n\t" \ + "pushl $1f\n\t" \ + "iret\n" \ + "1:\tmovl $0x17,%%eax\n\t" \ + "movw %%ax,%%ds\n\t" \ + "movw %%ax,%%es\n\t" \ + "movw %%ax,%%fs\n\t" \ + "movw %%ax,%%gs" \ + :::"ax") + +#define sti() __asm__ ("sti"::) +#define cli() __asm__ ("cli"::) +#define nop() __asm__ ("nop"::) + +#define iret() __asm__ ("iret"::) + +#define _set_gate(gate_addr,type,dpl,addr) \ +__asm__ ("movw %%dx,%%ax\n\t" \ + "movw %0,%%dx\n\t" \ + "movl %%eax,%1\n\t" \ + "movl %%edx,%2" \ + : \ + : "i" ((short) (0x8000+(dpl<<13)+(type<<8))), \ + "o" (*((char *) (gate_addr))), \ + "o" (*(4+(char *) (gate_addr))), \ + "d" ((char *) (addr)),"a" (0x00080000)) + +#define set_intr_gate(n,addr) \ + _set_gate(&idt[n],14,0,addr) + +#define set_trap_gate(n,addr) \ + _set_gate(&idt[n],15,0,addr) + +#define set_system_gate(n,addr) \ + _set_gate(&idt[n],15,3,addr) + +#define _set_seg_desc(gate_addr,type,dpl,base,limit) {\ + *(gate_addr) = ((base) & 0xff000000) | \ + (((base) & 0x00ff0000)>>16) | \ + ((limit) & 0xf0000) | \ + ((dpl)<<13) | \ + (0x00408000) | \ + ((type)<<8); \ + *((gate_addr)+1) = (((base) & 0x0000ffff)<<16) | \ + ((limit) & 0x0ffff); } + +#define _set_tssldt_desc(n,addr,type) \ +__asm__ ("movw $104,%1\n\t" \ + "movw %%ax,%2\n\t" \ + "rorl $16,%%eax\n\t" \ + "movb %%al,%3\n\t" \ + "movb $" type ",%4\n\t" \ + "movb $0x00,%5\n\t" \ + "movb %%ah,%6\n\t" \ + "rorl $16,%%eax" \ + ::"a" (addr), "m" (*(n)), "m" (*(n+2)), "m" (*(n+4)), \ + "m" (*(n+5)), "m" (*(n+6)), "m" (*(n+7)) \ + ) + +#define set_tss_desc(n,addr) _set_tssldt_desc(((char *) (n)),addr,"0x89") +#define set_ldt_desc(n,addr) _set_tssldt_desc(((char *) (n)),addr,"0x82") diff --git a/linux-0.11-lab/cur/linux/include/const.h b/linux-0.11-lab/cur/linux/include/const.h new file mode 100644 index 0000000..7828e61 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/const.h @@ -0,0 +1,15 @@ +#ifndef _CONST_H +#define _CONST_H + +#define BUFFER_END 0x200000 + +#define I_TYPE 0170000 +#define I_DIRECTORY 0040000 +#define I_REGULAR 0100000 +#define I_BLOCK_SPECIAL 0060000 +#define I_CHAR_SPECIAL 0020000 +#define I_NAMED_PIPE 0010000 +#define I_SET_UID_BIT 0004000 +#define I_SET_GID_BIT 0002000 + +#endif diff --git a/linux-0.11-lab/cur/linux/include/ctype.h b/linux-0.11-lab/cur/linux/include/ctype.h new file mode 100644 index 0000000..7acf55d --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/ctype.h @@ -0,0 +1,34 @@ +#ifndef _CTYPE_H +#define _CTYPE_H + +#define _U 0x01 /* upper */ +#define _L 0x02 /* lower */ +#define _D 0x04 /* digit */ +#define _C 0x08 /* cntrl */ +#define _P 0x10 /* punct */ +#define _S 0x20 /* white space (space/lf/tab) */ +#define _X 0x40 /* hex digit */ +#define _SP 0x80 /* hard space (0x20) */ + +extern unsigned char _ctype[]; +extern char _ctmp; + +#define isalnum(c) ((_ctype+1)[c]&(_U|_L|_D)) +#define isalpha(c) ((_ctype+1)[c]&(_U|_L)) +#define iscntrl(c) ((_ctype+1)[c]&(_C)) +#define isdigit(c) ((_ctype+1)[c]&(_D)) +#define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_D)) +#define islower(c) ((_ctype+1)[c]&(_L)) +#define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_D|_SP)) +#define ispunct(c) ((_ctype+1)[c]&(_P)) +#define isspace(c) ((_ctype+1)[c]&(_S)) +#define isupper(c) ((_ctype+1)[c]&(_U)) +#define isxdigit(c) ((_ctype+1)[c]&(_D|_X)) + +#define isascii(c) (((unsigned) c)<=0x7f) +#define toascii(c) (((unsigned) c)&0x7f) + +#define tolower(c) (_ctmp=c,isupper(_ctmp)?_ctmp-('A'-'a'):_ctmp) +#define toupper(c) (_ctmp=c,islower(_ctmp)?_ctmp-('a'-'A'):_ctmp) + +#endif diff --git a/linux-0.11-lab/cur/linux/include/errno.h b/linux-0.11-lab/cur/linux/include/errno.h new file mode 100644 index 0000000..c282f69 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/errno.h @@ -0,0 +1,60 @@ +#ifndef _ERRNO_H +#define _ERRNO_H + +/* + * ok, as I hadn't got any other source of information about + * possible error numbers, I was forced to use the same numbers + * as minix. + * Hopefully these are posix or something. I wouldn't know (and posix + * isn't telling me - they want $$$ for their f***ing standard). + * + * We don't use the _SIGN cludge of minix, so kernel returns must + * see to the sign by themselves. + * + * NOTE! Remember to change strerror() if you change this file! + */ + +extern int errno; + +#define ERROR 99 +#define EPERM 1 +#define ENOENT 2 +#define ESRCH 3 +#define EINTR 4 +#define EIO 5 +#define ENXIO 6 +#define E2BIG 7 +#define ENOEXEC 8 +#define EBADF 9 +#define ECHILD 10 +#define EAGAIN 11 +#define ENOMEM 12 +#define EACCES 13 +#define EFAULT 14 +#define ENOTBLK 15 +#define EBUSY 16 +#define EEXIST 17 +#define EXDEV 18 +#define ENODEV 19 +#define ENOTDIR 20 +#define EISDIR 21 +#define EINVAL 22 +#define ENFILE 23 +#define EMFILE 24 +#define ENOTTY 25 +#define ETXTBSY 26 +#define EFBIG 27 +#define ENOSPC 28 +#define ESPIPE 29 +#define EROFS 30 +#define EMLINK 31 +#define EPIPE 32 +#define EDOM 33 +#define ERANGE 34 +#define EDEADLK 35 +#define ENAMETOOLONG 36 +#define ENOLCK 37 +#define ENOSYS 38 +#define ENOTEMPTY 39 + +#endif diff --git a/linux-0.11-lab/cur/linux/include/fcntl.h b/linux-0.11-lab/cur/linux/include/fcntl.h new file mode 100644 index 0000000..a5bf9af --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/fcntl.h @@ -0,0 +1,55 @@ +#ifndef _FCNTL_H +#define _FCNTL_H + +#include + +/* open/fcntl - NOCTTY, NDELAY isn't implemented yet */ +#define O_ACCMODE 00003 +#define O_RDONLY 00 +#define O_WRONLY 01 +#define O_RDWR 02 +#define O_CREAT 00100 /* not fcntl */ +#define O_EXCL 00200 /* not fcntl */ +#define O_NOCTTY 00400 /* not fcntl */ +#define O_TRUNC 01000 /* not fcntl */ +#define O_APPEND 02000 +#define O_NONBLOCK 04000 /* not fcntl */ +#define O_NDELAY O_NONBLOCK + +/* Defines for fcntl-commands. Note that currently + * locking isn't supported, and other things aren't really + * tested. + */ +#define F_DUPFD 0 /* dup */ +#define F_GETFD 1 /* get f_flags */ +#define F_SETFD 2 /* set f_flags */ +#define F_GETFL 3 /* more flags (cloexec) */ +#define F_SETFL 4 +#define F_GETLK 5 /* not implemented */ +#define F_SETLK 6 +#define F_SETLKW 7 + +/* for F_[GET|SET]FL */ +#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ + +/* Ok, these are locking features, and aren't implemented at any + * level. POSIX wants them. + */ +#define F_RDLCK 0 +#define F_WRLCK 1 +#define F_UNLCK 2 + +/* Once again - not implemented, but ... */ +struct flock { + short l_type; + short l_whence; + off_t l_start; + off_t l_len; + pid_t l_pid; +}; + +extern int creat(const char * filename,mode_t mode); +extern int fcntl(int fildes,int cmd, ...); +extern int open(const char * filename, int flags, ...); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/linux/config.h b/linux-0.11-lab/cur/linux/include/linux/config.h new file mode 100644 index 0000000..c979fb3 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/config.h @@ -0,0 +1,48 @@ +#ifndef _CONFIG_H +#define _CONFIG_H + +/* + * The root-device is no longer hard-coded. You can change the default + * root-device by changing the line ROOT_DEV = XXX in boot/bootsect.s + */ + +/* + * define your keyboard here - + * KBD_FINNISH for Finnish keyboards + * KBD_US for US-type + * KBD_GR for German keyboards + * KBD_FR for Frech keyboard + */ +#define KBD_US +/*#define KBD_GR */ +/*#define KBD_FR */ +/*#define KBD_FINNISH */ + +/* + * Normally, Linux can get the drive parameters from the BIOS at + * startup, but if this for some unfathomable reason fails, you'd + * be left stranded. For this case, you can define HD_TYPE, which + * contains all necessary info on your harddisk. + * + * The HD_TYPE macro should look like this: + * + * #define HD_TYPE { head, sect, cyl, wpcom, lzone, ctl} + * + * In case of two harddisks, the info should be sepatated by + * commas: + * + * #define HD_TYPE { h,s,c,wpcom,lz,ctl },{ h,s,c,wpcom,lz,ctl } + */ +/* + This is an example, two drives, first is type 2, second is type 3: + +#define HD_TYPE { 4,17,615,300,615,8 }, { 6,17,615,300,615,0 } + + NOTE: ctl is 0 for all drives with heads<=8, and ctl=8 for drives + with more than 8 heads. + + If you want the BIOS to tell what kind of drive you have, just + leave HD_TYPE undefined. This is the normal thing to do. +*/ + +#endif diff --git a/linux-0.11-lab/cur/linux/include/linux/fdreg.h b/linux-0.11-lab/cur/linux/include/linux/fdreg.h new file mode 100644 index 0000000..01355af --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/fdreg.h @@ -0,0 +1,71 @@ +/* + * This file contains some defines for the floppy disk controller. + * Various sources. Mostly "IBM Microcomputers: A Programmers + * Handbook", Sanches and Canton. + */ +#ifndef _FDREG_H +#define _FDREG_H + +extern int ticks_to_floppy_on(unsigned int nr); +extern void floppy_on(unsigned int nr); +extern void floppy_off(unsigned int nr); +extern void floppy_select(unsigned int nr); +extern void floppy_deselect(unsigned int nr); + +/* Fd controller regs. S&C, about page 340 */ +#define FD_STATUS 0x3f4 +#define FD_DATA 0x3f5 +#define FD_DOR 0x3f2 /* Digital Output Register */ +#define FD_DIR 0x3f7 /* Digital Input Register (read) */ +#define FD_DCR 0x3f7 /* Diskette Control Register (write)*/ + +/* Bits of main status register */ +#define STATUS_BUSYMASK 0x0F /* drive busy mask */ +#define STATUS_BUSY 0x10 /* FDC busy */ +#define STATUS_DMA 0x20 /* 0- DMA mode */ +#define STATUS_DIR 0x40 /* 0- cpu->fdc */ +#define STATUS_READY 0x80 /* Data reg ready */ + +/* Bits of FD_ST0 */ +#define ST0_DS 0x03 /* drive select mask */ +#define ST0_HA 0x04 /* Head (Address) */ +#define ST0_NR 0x08 /* Not Ready */ +#define ST0_ECE 0x10 /* Equipment chech error */ +#define ST0_SE 0x20 /* Seek end */ +#define ST0_INTR 0xC0 /* Interrupt code mask */ + +/* Bits of FD_ST1 */ +#define ST1_MAM 0x01 /* Missing Address Mark */ +#define ST1_WP 0x02 /* Write Protect */ +#define ST1_ND 0x04 /* No Data - unreadable */ +#define ST1_OR 0x10 /* OverRun */ +#define ST1_CRC 0x20 /* CRC error in data or addr */ +#define ST1_EOC 0x80 /* End Of Cylinder */ + +/* Bits of FD_ST2 */ +#define ST2_MAM 0x01 /* Missing Addess Mark (again) */ +#define ST2_BC 0x02 /* Bad Cylinder */ +#define ST2_SNS 0x04 /* Scan Not Satisfied */ +#define ST2_SEH 0x08 /* Scan Equal Hit */ +#define ST2_WC 0x10 /* Wrong Cylinder */ +#define ST2_CRC 0x20 /* CRC error in data field */ +#define ST2_CM 0x40 /* Control Mark = deleted */ + +/* Bits of FD_ST3 */ +#define ST3_HA 0x04 /* Head (Address) */ +#define ST3_TZ 0x10 /* Track Zero signal (1=track 0) */ +#define ST3_WP 0x40 /* Write Protect */ + +/* Values for FD_COMMAND */ +#define FD_RECALIBRATE 0x07 /* move to track 0 */ +#define FD_SEEK 0x0F /* seek track */ +#define FD_READ 0xE6 /* read with MT, MFM, SKip deleted */ +#define FD_WRITE 0xC5 /* write with MT, MFM */ +#define FD_SENSEI 0x08 /* Sense Interrupt Status */ +#define FD_SPECIFY 0x03 /* specify HUT etc */ + +/* DMA commands */ +#define DMA_READ 0x46 +#define DMA_WRITE 0x4A + +#endif diff --git a/linux-0.11-lab/cur/linux/include/linux/fs.h b/linux-0.11-lab/cur/linux/include/linux/fs.h new file mode 100644 index 0000000..7a90b10 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/fs.h @@ -0,0 +1,202 @@ +/* + * This file has definitions for some important file table + * structures etc. + */ + +#ifndef _FS_H +#define _FS_H + +#include + +/* devices are as follows: (same as minix, so we can use the minix + * file system. These are major numbers.) + * + * 0 - unused (nodev) + * 1 - /dev/mem + * 2 - /dev/fd + * 3 - /dev/hd + * 4 - /dev/ttyx + * 5 - /dev/tty + * 6 - /dev/lp + * 7 - unnamed pipes + */ + +#define IS_SEEKABLE(x) ((x)>=1 && (x)<=3) + +#define READ 0 +#define WRITE 1 +#define READA 2 /* read-ahead - don't pause */ +#define WRITEA 3 /* "write-ahead" - silly, but somewhat useful */ + +void buffer_init(long buffer_end); + +#define MAJOR(a) (((unsigned)(a))>>8) +#define MINOR(a) ((a)&0xff) + +#define NAME_LEN 14 +#define ROOT_INO 1 + +#define I_MAP_SLOTS 8 +#define Z_MAP_SLOTS 8 +#define SUPER_MAGIC 0x137F + +#define NR_OPEN 20 +#define NR_INODE 32 +#define NR_FILE 64 +#define NR_SUPER 8 +#define NR_HASH 307 +#define NR_BUFFERS nr_buffers +#define BLOCK_SIZE 1024 +#define BLOCK_SIZE_BITS 10 +#ifndef NULL +#define NULL ((void *) 0) +#endif + +#define INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct d_inode))) +#define DIR_ENTRIES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct dir_entry))) + +#define PIPE_HEAD(inode) ((inode).i_zone[0]) +#define PIPE_TAIL(inode) ((inode).i_zone[1]) +#define PIPE_SIZE(inode) ((PIPE_HEAD(inode)-PIPE_TAIL(inode))&(PAGE_SIZE-1)) +#define PIPE_EMPTY(inode) (PIPE_HEAD(inode)==PIPE_TAIL(inode)) +#define PIPE_FULL(inode) (PIPE_SIZE(inode)==(PAGE_SIZE-1)) +#define INC_PIPE(head) \ +__asm__("incl %0\n\tandl $4095,%0"::"m" (head)) + +typedef char buffer_block[BLOCK_SIZE]; + +struct buffer_head { + char * b_data; /* pointer to data block (1024 bytes) */ + unsigned long b_blocknr; /* block number */ + unsigned short b_dev; /* device (0 = free) */ + unsigned char b_uptodate; + unsigned char b_dirt; /* 0-clean,1-dirty */ + unsigned char b_count; /* users using this block */ + unsigned char b_lock; /* 0 - ok, 1 -locked */ + struct task_struct * b_wait; + struct buffer_head * b_prev; + struct buffer_head * b_next; + struct buffer_head * b_prev_free; + struct buffer_head * b_next_free; +}; + +struct d_inode { + unsigned short i_mode; + unsigned short i_uid; + unsigned long i_size; + unsigned long i_time; + unsigned char i_gid; + unsigned char i_nlinks; + unsigned short i_zone[9]; +}; + +struct m_inode { + unsigned short i_mode; + unsigned short i_uid; + unsigned long i_size; + unsigned long i_mtime; + unsigned char i_gid; + unsigned char i_nlinks; + unsigned short i_zone[9]; +/* these are in memory also */ + struct task_struct * i_wait; + unsigned long i_atime; + unsigned long i_ctime; + unsigned short i_dev; + unsigned short i_num; + unsigned short i_count; + unsigned char i_lock; + unsigned char i_dirt; + unsigned char i_pipe; + unsigned char i_mount; + unsigned char i_seek; + unsigned char i_update; +}; + +struct file { + unsigned short f_mode; + unsigned short f_flags; + unsigned short f_count; + struct m_inode * f_inode; + off_t f_pos; +}; + +struct super_block { + unsigned short s_ninodes; + unsigned short s_nzones; + unsigned short s_imap_blocks; + unsigned short s_zmap_blocks; + unsigned short s_firstdatazone; + unsigned short s_log_zone_size; + unsigned long s_max_size; + unsigned short s_magic; +/* These are only in memory */ + struct buffer_head * s_imap[8]; + struct buffer_head * s_zmap[8]; + unsigned short s_dev; + struct m_inode * s_isup; + struct m_inode * s_imount; + unsigned long s_time; + struct task_struct * s_wait; + unsigned char s_lock; + unsigned char s_rd_only; + unsigned char s_dirt; +}; + +struct d_super_block { + unsigned short s_ninodes; + unsigned short s_nzones; + unsigned short s_imap_blocks; + unsigned short s_zmap_blocks; + unsigned short s_firstdatazone; + unsigned short s_log_zone_size; + unsigned long s_max_size; + unsigned short s_magic; +}; + +struct dir_entry { + unsigned short inode; + char name[NAME_LEN]; +}; + +extern struct m_inode inode_table[NR_INODE]; +extern struct file file_table[NR_FILE]; +extern struct super_block super_block[NR_SUPER]; +extern struct buffer_head * start_buffer; +extern int nr_buffers; + +extern void check_disk_change(int dev); +extern int floppy_change(unsigned int nr); +extern int ticks_to_floppy_on(unsigned int dev); +extern void floppy_on(unsigned int dev); +extern void floppy_off(unsigned int dev); +extern void truncate(struct m_inode * inode); +extern void sync_inodes(void); +extern void wait_on(struct m_inode * inode); +extern int bmap(struct m_inode * inode,int block); +extern int create_block(struct m_inode * inode,int block); +extern struct m_inode * namei(const char * pathname); +extern int open_namei(const char * pathname, int flag, int mode, + struct m_inode ** res_inode); +extern void iput(struct m_inode * inode); +extern struct m_inode * iget(int dev,int nr); +extern struct m_inode * get_empty_inode(void); +extern struct m_inode * get_pipe_inode(void); +extern struct buffer_head * get_hash_table(int dev, int block); +extern struct buffer_head * getblk(int dev, int block); +extern void ll_rw_block(int rw, struct buffer_head * bh); +extern void brelse(struct buffer_head * buf); +extern struct buffer_head * bread(int dev,int block); +extern void bread_page(unsigned long addr,int dev,int b[4]); +extern struct buffer_head * breada(int dev,int block,...); +extern int new_block(int dev); +extern void free_block(int dev, int block); +extern struct m_inode * new_inode(int dev); +extern void free_inode(struct m_inode * inode); +extern int sync_dev(int dev); +extern struct super_block * get_super(int dev); +extern int ROOT_DEV; + +extern void mount_root(void); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/linux/hdreg.h b/linux-0.11-lab/cur/linux/include/linux/hdreg.h new file mode 100644 index 0000000..e6c593f --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/hdreg.h @@ -0,0 +1,65 @@ +/* + * This file contains some defines for the AT-hd-controller. + * Various sources. Check out some definitions (see comments with + * a ques). + */ +#ifndef _HDREG_H +#define _HDREG_H + +/* Hd controller regs. Ref: IBM AT Bios-listing */ +#define HD_DATA 0x1f0 /* _CTL when writing */ +#define HD_ERROR 0x1f1 /* see err-bits */ +#define HD_NSECTOR 0x1f2 /* nr of sectors to read/write */ +#define HD_SECTOR 0x1f3 /* starting sector */ +#define HD_LCYL 0x1f4 /* starting cylinder */ +#define HD_HCYL 0x1f5 /* high byte of starting cyl */ +#define HD_CURRENT 0x1f6 /* 101dhhhh , d=drive, hhhh=head */ +#define HD_STATUS 0x1f7 /* see status-bits */ +#define HD_PRECOMP HD_ERROR /* same io address, read=error, write=precomp */ +#define HD_COMMAND HD_STATUS /* same io address, read=status, write=cmd */ + +#define HD_CMD 0x3f6 + +/* Bits of HD_STATUS */ +#define ERR_STAT 0x01 +#define INDEX_STAT 0x02 +#define ECC_STAT 0x04 /* Corrected error */ +#define DRQ_STAT 0x08 +#define SEEK_STAT 0x10 +#define WRERR_STAT 0x20 +#define READY_STAT 0x40 +#define BUSY_STAT 0x80 + +/* Values for HD_COMMAND */ +#define WIN_RESTORE 0x10 +#define WIN_READ 0x20 +#define WIN_WRITE 0x30 +#define WIN_VERIFY 0x40 +#define WIN_FORMAT 0x50 +#define WIN_INIT 0x60 +#define WIN_SEEK 0x70 +#define WIN_DIAGNOSE 0x90 +#define WIN_SPECIFY 0x91 + +/* Bits for HD_ERROR */ +#define MARK_ERR 0x01 /* Bad address mark ? */ +#define TRK0_ERR 0x02 /* couldn't find track 0 */ +#define ABRT_ERR 0x04 /* ? */ +#define ID_ERR 0x10 /* ? */ +#define ECC_ERR 0x40 /* ? */ +#define BBD_ERR 0x80 /* ? */ + +struct partition { + unsigned char boot_ind; /* 0x80 - active (unused) */ + unsigned char head; /* ? */ + unsigned char sector; /* ? */ + unsigned char cyl; /* ? */ + unsigned char sys_ind; /* ? */ + unsigned char end_head; /* ? */ + unsigned char end_sector; /* ? */ + unsigned char end_cyl; /* ? */ + unsigned int start_sect; /* starting sector counting from 0 */ + unsigned int nr_sects; /* nr of sectors in partition */ +}; + +#endif diff --git a/linux-0.11-lab/cur/linux/include/linux/head.h b/linux-0.11-lab/cur/linux/include/linux/head.h new file mode 100644 index 0000000..db3dda2 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/head.h @@ -0,0 +1,20 @@ +#ifndef _HEAD_H +#define _HEAD_H + +typedef struct desc_struct { + unsigned long a,b; +} desc_table[256]; + +extern unsigned long pg_dir[1024]; +extern desc_table idt,gdt; + +#define GDT_NUL 0 +#define GDT_CODE 1 +#define GDT_DATA 2 +#define GDT_TMP 3 + +#define LDT_NUL 0 +#define LDT_CODE 1 +#define LDT_DATA 2 + +#endif diff --git a/linux-0.11-lab/cur/linux/include/linux/kernel.h b/linux-0.11-lab/cur/linux/include/linux/kernel.h new file mode 100644 index 0000000..cb40dd5 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/kernel.h @@ -0,0 +1,22 @@ +/* + * 'kernel.h' contains some often-used function prototypes etc + */ +void verify_area(void * addr,int count); +volatile void panic(const char * str); +int printf(const char * fmt, ...); +int printk(const char * fmt, ...); +int tty_write(unsigned ch,char * buf,int count); +void * malloc(unsigned int size); +void free_s(void * obj, int size); + +#define free(x) free_s((x), 0) + +/* + * This is defined as a macro, but at some point this might become a + * real subroutine that sets a flag if it returns true (to do + * BSD-style accounting where the process is flagged if it uses root + * privs). The implication of this is that you should do normal + * permissions checks first, and check suser() last. + */ +#define suser() (current->euid == 0) + diff --git a/linux-0.11-lab/cur/linux/include/linux/mm.h b/linux-0.11-lab/cur/linux/include/linux/mm.h new file mode 100644 index 0000000..5a160f3 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/mm.h @@ -0,0 +1,10 @@ +#ifndef _MM_H +#define _MM_H + +#define PAGE_SIZE 4096 + +extern unsigned long get_free_page(void); +extern unsigned long put_page(unsigned long page,unsigned long address); +extern void free_page(unsigned long addr); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/linux/sched.h b/linux-0.11-lab/cur/linux/include/linux/sched.h new file mode 100644 index 0000000..772646a --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/sched.h @@ -0,0 +1,239 @@ +#ifndef _SCHED_H +#define _SCHED_H + +#define NR_TASKS 64 +#define HZ 100 + +#define FIRST_TASK task[0] +#define LAST_TASK task[NR_TASKS-1] + +#include +#include +#include +#include + +#if (NR_OPEN > 32) +#error "Currently the close-on-exec-flags are in one word, max 32 files/proc" +#endif + +#define TASK_RUNNING 0 +#define TASK_INTERRUPTIBLE 1 +#define TASK_UNINTERRUPTIBLE 2 +#define TASK_ZOMBIE 3 +#define TASK_STOPPED 4 + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +extern int copy_page_tables(unsigned long from, unsigned long to, long size); +extern int free_page_tables(unsigned long from, unsigned long size); + +extern void sched_init(void); +extern void schedule(void); +extern void trap_init(void); +extern void panic(const char * str); +extern int tty_write(unsigned minor,char * buf,int count); + +typedef int (*fn_ptr)(); + +struct i387_struct { + long cwd; + long swd; + long twd; + long fip; + long fcs; + long foo; + long fos; + long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ +}; + +struct tss_struct { + long back_link; /* 16 high bits zero */ + long esp0; + long ss0; /* 16 high bits zero */ + long esp1; + long ss1; /* 16 high bits zero */ + long esp2; + long ss2; /* 16 high bits zero */ + long cr3; + long eip; + long eflags; + long eax,ecx,edx,ebx; + long esp; + long ebp; + long esi; + long edi; + long es; /* 16 high bits zero */ + long cs; /* 16 high bits zero */ + long ss; /* 16 high bits zero */ + long ds; /* 16 high bits zero */ + long fs; /* 16 high bits zero */ + long gs; /* 16 high bits zero */ + long ldt; /* 16 high bits zero */ + long trace_bitmap; /* bits: trace 0, bitmap 16-31 */ + struct i387_struct i387; +}; + +struct task_struct { +/* these are hardcoded - don't touch */ + long state; /* -1 unrunnable, 0 runnable, >0 stopped */ + long counter; + long priority; + long signal; + struct sigaction sigaction[32]; + long blocked; /* bitmap of masked signals */ +/* various fields */ + int exit_code; + unsigned long start_code,end_code,end_data,brk,start_stack; + long pid,father,pgrp,session,leader; + unsigned short uid,euid,suid; + unsigned short gid,egid,sgid; + long alarm; + long utime,stime,cutime,cstime,start_time; + unsigned short used_math; +/* file system info */ + int tty; /* -1 if no tty, so it must be signed */ + unsigned short umask; + struct m_inode * pwd; + struct m_inode * root; + struct m_inode * executable; + unsigned long close_on_exec; + struct file * filp[NR_OPEN]; +/* ldt for this task 0 - zero 1 - cs 2 - ds&ss */ + struct desc_struct ldt[3]; +/* tss for this task */ + struct tss_struct tss; +}; + +/* + * INIT_TASK is used to set up the first task table, touch at + * your own risk!. Base=0, limit=0x9ffff (=640kB) + */ +#define INIT_TASK \ +/* state etc */ { 0,15,15, \ +/* signals */ 0,{{},},0, \ +/* ec,brk... */ 0,0,0,0,0,0, \ +/* pid etc.. */ 0,-1,0,0,0, \ +/* uid etc */ 0,0,0,0,0,0, \ +/* alarm */ 0,0,0,0,0,0, \ +/* math */ 0, \ +/* fs info */ -1,0022,NULL,NULL,NULL,0, \ +/* filp */ {NULL,}, \ + { \ + {0,0}, \ +/* ldt */ {0x9f,0xc0fa00}, \ + {0x9f,0xc0f200}, \ + }, \ +/*tss*/ {0,PAGE_SIZE+(long)&init_task,0x10,0,0,0,0,(long)&pg_dir,\ + 0,0,0,0,0,0,0,0, \ + 0,0,0x17,0x17,0x17,0x17,0x17,0x17, \ + _LDT(0),0x80000000, \ + {} \ + }, \ +} + +extern struct task_struct *task[NR_TASKS]; +extern struct task_struct *last_task_used_math; +extern struct task_struct *current; +extern long volatile jiffies; +extern long startup_time; + +#define CURRENT_TIME (startup_time+jiffies/HZ) + +extern void add_timer(long jiffies, void (*fn)(void)); +extern void sleep_on(struct task_struct ** p); +extern void interruptible_sleep_on(struct task_struct ** p); +extern void wake_up(struct task_struct ** p); + +/* + * Entry into gdt where to find first TSS. 0-nul, 1-cs, 2-ds, 3-syscall + * 4-TSS0, 5-LDT0, 6-TSS1 etc ... + */ +#define FIRST_TSS_ENTRY 4 +#define FIRST_LDT_ENTRY (FIRST_TSS_ENTRY+1) +#define _TSS(n) ((((unsigned long) n)<<4)+(FIRST_TSS_ENTRY<<3)) +#define _LDT(n) ((((unsigned long) n)<<4)+(FIRST_LDT_ENTRY<<3)) +#define ltr(n) __asm__("ltr %%ax"::"a" (_TSS(n))) +#define lldt(n) __asm__("lldt %%ax"::"a" (_LDT(n))) +#define str(n) \ +__asm__("str %%ax\n\t" \ + "subl %2,%%eax\n\t" \ + "shrl $4,%%eax" \ + :"=a" (n) \ + :"a" (0),"i" (FIRST_TSS_ENTRY<<3)) +/* + * switch_to(n) should switch tasks to task nr n, first + * checking that n isn't the current task, in which case it does nothing. + * This also clears the TS-flag if the task we switched to has used + * tha math co-processor latest. + */ +#define switch_to(n) {\ +struct {long a,b;} __tmp; \ +__asm__("cmpl %%ecx,current\n\t" \ + "je 1f\n\t" \ + "movw %%dx,%1\n\t" \ + "xchgl %%ecx,current\n\t" \ + "ljmp *%0\n\t" \ + "cmpl %%ecx,last_task_used_math\n\t" \ + "jne 1f\n\t" \ + "clts\n" \ + "1:" \ + ::"m" (*&__tmp.a),"m" (*&__tmp.b), \ + "d" (_TSS(n)),"c" ((long) task[n])); \ +} + +#define PAGE_ALIGN(n) (((n)+0xfff)&0xfffff000) + +#define _set_base(addr,base) \ +__asm__ ("push %%edx\n\t" \ + "movw %%dx,%0\n\t" \ + "rorl $16,%%edx\n\t" \ + "movb %%dl,%1\n\t" \ + "movb %%dh,%2\n\t" \ + "pop %%edx" \ + ::"m" (*((addr)+2)), \ + "m" (*((addr)+4)), \ + "m" (*((addr)+7)), \ + "d" (base) \ + ) + +#define _set_limit(addr,limit) \ +__asm__ ("push %%edx\n\t" \ + "movw %%dx,%0\n\t" \ + "rorl $16,%%edx\n\t" \ + "movb %1,%%dh\n\t" \ + "andb $0xf0,%%dh\n\t" \ + "orb %%dh,%%dl\n\t" \ + "movb %%dl,%1\n\t" \ + "pop %%edx" \ + ::"m" (*(addr)), \ + "m" (*((addr)+6)), \ + "d" (limit) \ + ) + +#define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) ) +#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , (limit-1)>>12 ) + +static inline unsigned long _get_base(char * addr) +{ + unsigned long __base; + __asm__("movb %3,%%dh\n\t" + "movb %2,%%dl\n\t" + "shll $16,%%edx\n\t" + "movw %1,%%dx" + :"=&d" (__base) + :"m" (*((addr)+2)), + "m" (*((addr)+4)), + "m" (*((addr)+7))); + return __base; +} + +#define get_base(ldt) _get_base( ((char *)&(ldt)) ) + +#define get_limit(segment) ({ \ +unsigned long __limit; \ +__asm__("lsll %1,%0\n\tincl %0":"=r" (__limit):"r" (segment)); \ +__limit;}) + +#endif diff --git a/linux-0.11-lab/cur/linux/include/linux/sys.h b/linux-0.11-lab/cur/linux/include/linux/sys.h new file mode 100644 index 0000000..2d652d5 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/sys.h @@ -0,0 +1,115 @@ +/* + * Why isn't this a .c file? Enquiring minds.... + */ + +extern int sys_setup(); +extern int sys_exit(); +extern int sys_fork(); +extern int sys_read(); +extern int sys_write(); +extern int sys_open(); +extern int sys_close(); +extern int sys_waitpid(); +extern int sys_creat(); +extern int sys_link(); +extern int sys_unlink(); +extern int sys_execve(); +extern int sys_chdir(); +extern int sys_time(); +extern int sys_mknod(); +extern int sys_chmod(); +extern int sys_chown(); +extern int sys_break(); +extern int sys_stat(); +extern int sys_lseek(); +extern int sys_getpid(); +extern int sys_mount(); +extern int sys_umount(); +extern int sys_setuid(); +extern int sys_getuid(); +extern int sys_stime(); +extern int sys_ptrace(); +extern int sys_alarm(); +extern int sys_fstat(); +extern int sys_pause(); +extern int sys_utime(); +extern int sys_stty(); +extern int sys_gtty(); +extern int sys_access(); +extern int sys_nice(); +extern int sys_ftime(); +extern int sys_sync(); +extern int sys_kill(); +extern int sys_rename(); +extern int sys_mkdir(); +extern int sys_rmdir(); +extern int sys_dup(); +extern int sys_pipe(); +extern int sys_times(); +extern int sys_prof(); +extern int sys_brk(); +extern int sys_setgid(); +extern int sys_getgid(); +extern int sys_signal(); +extern int sys_geteuid(); +extern int sys_getegid(); +extern int sys_acct(); +extern int sys_phys(); +extern int sys_lock(); +extern int sys_ioctl(); +extern int sys_fcntl(); +extern int sys_mpx(); +extern int sys_setpgid(); +extern int sys_ulimit(); +extern int sys_uname(); +extern int sys_umask(); +extern int sys_chroot(); +extern int sys_ustat(); +extern int sys_dup2(); +extern int sys_getppid(); +extern int sys_getpgrp(); +extern int sys_setsid(); +extern int sys_sigaction(); +extern int sys_sgetmask(); +extern int sys_ssetmask(); +extern int sys_setreuid(); +extern int sys_setregid(); +extern int sys_sigpending(); +extern int sys_sigsuspend(); +extern int sys_sethostname(); +extern int sys_setrlimit(); +extern int sys_getrlimit(); +extern int sys_getrusage(); +extern int sys_gettimeofday(); +extern int sys_settimeofday(); +extern int sys_getgroups(); +extern int sys_setgroups(); +extern int sys_select(); +extern int sys_symlink(); +extern int sys_lstat(); +extern int sys_readlink(); +extern int sys_uselib(); +extern int sys_execve2(); +extern int sys_getdents(); +extern int sys_sleep(); +extern int sys_getcwd(); + +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, +sys_unlink, sys_execve, sys_chdir, sys_time, sys_mknod, sys_chmod, +sys_chown, sys_break, sys_stat, sys_lseek, sys_getpid, sys_mount, +sys_umount, sys_setuid, sys_getuid, sys_stime, sys_ptrace, sys_alarm, +sys_fstat, sys_pause, sys_utime, sys_stty, sys_gtty, sys_access, +sys_nice, sys_ftime, sys_sync, sys_kill, sys_rename, sys_mkdir, +sys_rmdir, sys_dup, sys_pipe, sys_times, sys_prof, sys_brk, sys_setgid, +sys_getgid, sys_signal, sys_geteuid, sys_getegid, sys_acct, sys_phys, +sys_lock, sys_ioctl, sys_fcntl, sys_mpx, sys_setpgid, sys_ulimit, +sys_uname, sys_umask, sys_chroot, sys_ustat, sys_dup2, sys_getppid, +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, +sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, sys_sleep, sys_getcwd}; + +/* 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/cur/linux/include/linux/tty.h b/linux-0.11-lab/cur/linux/include/linux/tty.h new file mode 100644 index 0000000..ad846b3 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/linux/tty.h @@ -0,0 +1,77 @@ +/* + * 'tty.h' defines some structures used by tty_io.c and some defines. + * + * NOTE! Don't touch this without checking that nothing in rs_io.s or + * con_io.s breaks. Some constants are hardwired into the system (mainly + * offsets into 'tty_queue' + */ + +#ifndef _TTY_H +#define _TTY_H + +#include + +#define TTY_BUF_SIZE 1024 + +struct tty_queue { + unsigned long data; + unsigned long head; + unsigned long tail; + struct task_struct * proc_list; + char buf[TTY_BUF_SIZE]; +}; + +#define INC(a) ((a) = ((a)+1) & (TTY_BUF_SIZE-1)) +#define DEC(a) ((a) = ((a)-1) & (TTY_BUF_SIZE-1)) +#define EMPTY(a) ((a).head == (a).tail) +#define LEFT(a) (((a).tail-(a).head-1)&(TTY_BUF_SIZE-1)) +#define LAST(a) ((a).buf[(TTY_BUF_SIZE-1)&((a).head-1)]) +#define FULL(a) (!LEFT(a)) +#define CHARS(a) (((a).head-(a).tail)&(TTY_BUF_SIZE-1)) +#define GETCH(queue,c) \ +(void)({c=(queue).buf[(queue).tail];INC((queue).tail);}) +#define PUTCH(c,queue) \ +(void)({(queue).buf[(queue).head]=(c);INC((queue).head);}) + +#define INTR_CHAR(tty) ((tty)->termios.c_cc[VINTR]) +#define QUIT_CHAR(tty) ((tty)->termios.c_cc[VQUIT]) +#define ERASE_CHAR(tty) ((tty)->termios.c_cc[VERASE]) +#define KILL_CHAR(tty) ((tty)->termios.c_cc[VKILL]) +#define EOF_CHAR(tty) ((tty)->termios.c_cc[VEOF]) +#define START_CHAR(tty) ((tty)->termios.c_cc[VSTART]) +#define STOP_CHAR(tty) ((tty)->termios.c_cc[VSTOP]) +#define SUSPEND_CHAR(tty) ((tty)->termios.c_cc[VSUSP]) + +struct tty_struct { + struct termios termios; + int pgrp; + int stopped; + void (*write)(struct tty_struct * tty); + struct tty_queue read_q; + struct tty_queue write_q; + struct tty_queue secondary; + }; + +extern struct tty_struct tty_table[]; + +/* intr=^C quit=^| erase=del kill=^U + eof=^D vtime=\0 vmin=\1 sxtc=\0 + start=^Q stop=^S susp=^Z eol=\0 + reprint=^R discard=^U werase=^W lnext=^V + eol2=\0 +*/ +#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" + +void rs_init(void); +void con_init(void); +void tty_init(void); + +int tty_read(unsigned c, char * buf, int n); +int tty_write(unsigned c, char * buf, int n); + +void rs_write(struct tty_struct * tty); +void con_write(struct tty_struct * tty); + +void copy_to_cooked(struct tty_struct * tty); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/signal.h b/linux-0.11-lab/cur/linux/include/signal.h new file mode 100644 index 0000000..0eea9a3 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/signal.h @@ -0,0 +1,68 @@ +#ifndef _SIGNAL_H +#define _SIGNAL_H + +#include + +typedef int sig_atomic_t; +typedef unsigned int sigset_t; /* 32 bits */ + +#define _NSIG 32 +#define NSIG _NSIG + +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT 6 +#define SIGUNUSED 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGUSR1 10 +#define SIGSEGV 11 +#define SIGUSR2 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGSTKFLT 16 +#define SIGCHLD 17 +#define SIGCONT 18 +#define SIGSTOP 19 +#define SIGTSTP 20 +#define SIGTTIN 21 +#define SIGTTOU 22 + +/* Ok, I haven't implemented sigactions, but trying to keep headers POSIX */ +#define SA_NOCLDSTOP 1 +#define SA_NOMASK 0x40000000 +#define SA_ONESHOT 0x80000000 + +#define SIG_BLOCK 0 /* for blocking signals */ +#define SIG_UNBLOCK 1 /* for unblocking signals */ +#define SIG_SETMASK 2 /* for setting the signal mask */ + +#define SIG_DFL ((void (*)(int))0) /* default signal handling */ +#define SIG_IGN ((void (*)(int))1) /* ignore signal */ + +struct sigaction { + void (*sa_handler)(int); + sigset_t sa_mask; + int sa_flags; + void (*sa_restorer)(void); +}; + +void (*signal(int _sig, void (*_func)(int)))(int); +int raise(int sig); +int kill(pid_t pid, int sig); +int sigaddset(sigset_t *mask, int signo); +int sigdelset(sigset_t *mask, int signo); +int sigemptyset(sigset_t *mask); +int sigfillset(sigset_t *mask); +int sigismember(sigset_t *mask, int signo); /* 1 - is, 0 - not, -1 error */ +int sigpending(sigset_t *set); +int sigprocmask(int how, sigset_t *set, sigset_t *oldset); +int sigsuspend(sigset_t *sigmask); +int sigaction(int sig, struct sigaction *act, struct sigaction *oldact); + +#endif /* _SIGNAL_H */ diff --git a/linux-0.11-lab/cur/linux/include/stdarg.h b/linux-0.11-lab/cur/linux/include/stdarg.h new file mode 100644 index 0000000..fd79ec0 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/stdarg.h @@ -0,0 +1,28 @@ +#ifndef _STDARG_H +#define _STDARG_H + +typedef char *va_list; + +/* Amount of space required in an argument list for an arg of type TYPE. + TYPE may alternatively be an expression whose type is used. */ + +#define __va_rounded_size(TYPE) \ + (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) + +#ifndef __sparc__ +#define va_start(AP, LASTARG) \ + (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG))) +#else +#define va_start(AP, LASTARG) \ + (__builtin_saveregs (), \ + AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG))) +#endif + +void va_end (va_list); /* Defined in gnulib */ +#define va_end(AP) + +#define va_arg(AP, TYPE) \ + (AP += __va_rounded_size (TYPE), \ + *((TYPE *) (AP - __va_rounded_size (TYPE)))) + +#endif /* _STDARG_H */ diff --git a/linux-0.11-lab/cur/linux/include/stddef.h b/linux-0.11-lab/cur/linux/include/stddef.h new file mode 100644 index 0000000..97f72ff --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/stddef.h @@ -0,0 +1,19 @@ +#ifndef _STDDEF_H +#define _STDDEF_H + +#ifndef _PTRDIFF_T +#define _PTRDIFF_T +typedef long ptrdiff_t; +#endif + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned long size_t; +#endif + +#undef NULL +#define NULL ((void *)0) + +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) + +#endif diff --git a/linux-0.11-lab/cur/linux/include/string.h b/linux-0.11-lab/cur/linux/include/string.h new file mode 100644 index 0000000..48b91e5 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/string.h @@ -0,0 +1,405 @@ +#ifndef _STRING_H_ +#define _STRING_H_ + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; +#endif + +extern char * strerror(int errno); + +/* + * This string-include defines all string functions as inline + * functions. Use gcc. It also assumes ds=es=data space, this should be + * normal. Most of the string-functions are rather heavily hand-optimized, + * see especially strtok,strstr,str[c]spn. They should work, but are not + * very easy to understand. Everything is done entirely within the register + * set, making the functions fast and clean. String instructions have been + * used through-out, making for "slightly" unclear code :-) + * + * (C) 1991 Linus Torvalds + */ + +extern inline char * strcpy(char * dest,const char *src) +{ +__asm__("cld\n" + "1:\tlodsb\n\t" + "stosb\n\t" + "testb %%al,%%al\n\t" + "jne 1b" + ::"S" (src),"D" (dest)); +return dest; +} + +extern inline char * strncpy(char * dest,const char *src,int count) +{ +__asm__("cld\n" + "1:\tdecl %2\n\t" + "js 2f\n\t" + "lodsb\n\t" + "stosb\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n\t" + "rep\n\t" + "stosb\n" + "2:" + ::"S" (src),"D" (dest),"c" (count)); +return dest; +} + +extern inline char * strcat(char * dest,const char * src) +{ +__asm__("cld\n\t" + "repne\n\t" + "scasb\n\t" + "decl %1\n" + "1:\tlodsb\n\t" + "stosb\n\t" + "testb %%al,%%al\n\t" + "jne 1b" + ::"S" (src),"D" (dest),"a" (0),"c" (0xffffffff)); +return dest; +} + +extern inline char * strncat(char * dest,const char * src,int count) +{ +__asm__("cld\n\t" + "repne\n\t" + "scasb\n\t" + "decl %1\n\t" + "movl %4,%3\n" + "1:\tdecl %3\n\t" + "js 2f\n\t" + "lodsb\n\t" + "stosb\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n" + "2:\txorl %2,%2\n\t" + "stosb" + ::"S" (src),"D" (dest),"a" (0),"c" (0xffffffff),"g" (count) + ); +return dest; +} + +extern inline int strcmp(const char * cs,const char * ct) +{ +register int __res __asm__("ax"); +__asm__("cld\n" + "1:\tlodsb\n\t" + "scasb\n\t" + "jne 2f\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n\t" + "xorl %%eax,%%eax\n\t" + "jmp 3f\n" + "2:\tmovl $1,%%eax\n\t" + "jl 3f\n\t" + "negl %%eax\n" + "3:" + :"=a" (__res):"D" (cs),"S" (ct)); +return __res; +} + +extern inline int strncmp(const char * cs,const char * ct,int count) +{ +register int __res __asm__("ax"); +__asm__("cld\n" + "1:\tdecl %3\n\t" + "js 2f\n\t" + "lodsb\n\t" + "scasb\n\t" + "jne 3f\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n" + "2:\txorl %%eax,%%eax\n\t" + "jmp 4f\n" + "3:\tmovl $1,%%eax\n\t" + "jl 4f\n\t" + "negl %%eax\n" + "4:" + :"=a" (__res):"D" (cs),"S" (ct),"c" (count)); +return __res; +} + +extern inline char * strchr(const char * s,char c) +{ +register char * __res __asm__("ax"); +__asm__("cld\n\t" + "movb %%al,%%ah\n" + "1:\tlodsb\n\t" + "cmpb %%ah,%%al\n\t" + "je 2f\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n\t" + "movl $1,%1\n" + "2:\tmovl %1,%0\n\t" + "decl %0" + :"=a" (__res):"S" (s),"0" (c)); +return __res; +} + +extern inline char * strrchr(const char * s,char c) +{ +register char * __res __asm__("dx"); +__asm__("cld\n\t" + "movb %%al,%%ah\n" + "1:\tlodsb\n\t" + "cmpb %%ah,%%al\n\t" + "jne 2f\n\t" + "movl %%esi,%0\n\t" + "decl %0\n" + "2:\ttestb %%al,%%al\n\t" + "jne 1b" + :"=d" (__res):"0" (0),"S" (s),"a" (c)); +return __res; +} + +extern inline int strspn(const char * cs, const char * ct) +{ +register char * __res __asm__("si"); +__asm__("cld\n\t" + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" + "movl %%ecx,%%edx\n" + "1:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 2f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "je 1b\n" + "2:\tdecl %0" + :"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct) + ); +return __res-cs; +} + +extern inline int strcspn(const char * cs, const char * ct) +{ +register char * __res __asm__("si"); +__asm__("cld\n\t" + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" + "movl %%ecx,%%edx\n" + "1:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 2f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "jne 1b\n" + "2:\tdecl %0" + :"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct) + ); +return __res-cs; +} + +extern inline char * strpbrk(const char * cs,const char * ct) +{ +register char * __res __asm__("si"); +__asm__("cld\n\t" + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" + "movl %%ecx,%%edx\n" + "1:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 2f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "jne 1b\n\t" + "decl %0\n\t" + "jmp 3f\n" + "2:\txorl %0,%0\n" + "3:" + :"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct) + ); +return __res; +} + +extern inline char * strstr(const char * cs,const char * ct) +{ +register char * __res __asm__("ax"); +__asm__("cld\n\t" \ + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" /* NOTE! This also sets Z if searchstring='' */ + "movl %%ecx,%%edx\n" + "1:\tmovl %4,%%edi\n\t" + "movl %%esi,%%eax\n\t" + "movl %%edx,%%ecx\n\t" + "repe\n\t" + "cmpsb\n\t" + "je 2f\n\t" /* also works for empty string, see above */ + "xchgl %%eax,%%esi\n\t" + "incl %%esi\n\t" + "cmpb $0,-1(%%eax)\n\t" + "jne 1b\n\t" + "xorl %%eax,%%eax\n\t" + "2:" + :"=a" (__res):"0" (0),"c" (0xffffffff),"S" (cs),"g" (ct) + ); +return __res; +} + +extern inline int strlen(const char * s) +{ +register int __res ; +__asm__("cld\n\t" + "repne\n\t" + "scasb\n\t" + "notl %0\n\t" + "decl %0" + :"=c" (__res):"D" (s),"a" (0),"0" (0xffffffff)); +return __res; +} + +extern char * ___strtok; + +extern inline char * strtok(char * s,const char * ct) +{ +register char * __res __asm__("si"); +__asm__("testl %1,%1\n\t" + "jne 1f\n\t" + "testl %0,%0\n\t" + "je 8f\n\t" + "movl %0,%1\n" + "1:\txorl %0,%0\n\t" + "movl $-1,%%ecx\n\t" + "xorl %%eax,%%eax\n\t" + "cld\n\t" + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" + "je 7f\n\t" /* empty delimeter-string */ + "movl %%ecx,%%edx\n" + "2:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 7f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "je 2b\n\t" + "decl %1\n\t" + "cmpb $0,(%1)\n\t" + "je 7f\n\t" + "movl %1,%0\n" + "3:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 5f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "jne 3b\n\t" + "decl %1\n\t" + "cmpb $0,(%1)\n\t" + "je 5f\n\t" + "movb $0,(%1)\n\t" + "incl %1\n\t" + "jmp 6f\n" + "5:\txorl %1,%1\n" + "6:\tcmpb $0,(%0)\n\t" + "jne 7f\n\t" + "xorl %0,%0\n" + "7:\ttestl %0,%0\n\t" + "jne 8f\n\t" + "movl %0,%1\n" + "8:" + :"=b" (__res),"=S" (___strtok) + :"0" (___strtok),"1" (s),"g" (ct) + ); +return __res; +} + +extern inline void * memcpy(void * dest,const void * src, int n) +{ +__asm__("cld\n\t" + "rep\n\t" + "movsb" + ::"c" (n),"S" (src),"D" (dest) + ); +return dest; +} + +extern inline void * memmove(void * dest,const void * src, int n) +{ +if (dest + +struct stat { + dev_t st_dev; + ino_t st_ino; + umode_t st_mode; + nlink_t st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + off_t st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; +}; + +#define S_IFMT 00170000 +#define S_IFLNK 0120000 +#define S_IFREG 0100000 +#define S_IFBLK 0060000 +#define S_IFDIR 0040000 +#define S_IFCHR 0020000 +#define S_IFIFO 0010000 +#define S_ISUID 0004000 +#define S_ISGID 0002000 +#define S_ISVTX 0001000 + +#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) + +#define S_IRWXU 00700 +#define S_IRUSR 00400 +#define S_IWUSR 00200 +#define S_IXUSR 00100 + +#define S_IRWXG 00070 +#define S_IRGRP 00040 +#define S_IWGRP 00020 +#define S_IXGRP 00010 + +#define S_IRWXO 00007 +#define S_IROTH 00004 +#define S_IWOTH 00002 +#define S_IXOTH 00001 + +extern int chmod(const char *_path, mode_t mode); +extern int fstat(int fildes, struct stat *stat_buf); +extern int mkdir(const char *_path, mode_t mode); +extern int mkfifo(const char *_path, mode_t mode); +extern int stat(const char *filename, struct stat *stat_buf); +extern mode_t umask(mode_t mask); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/sys/times.h b/linux-0.11-lab/cur/linux/include/sys/times.h new file mode 100644 index 0000000..68d5bfb --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/sys/times.h @@ -0,0 +1,15 @@ +#ifndef _TIMES_H +#define _TIMES_H + +#include + +struct tms { + time_t tms_utime; + time_t tms_stime; + time_t tms_cutime; + time_t tms_cstime; +}; + +extern time_t times(struct tms * tp); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/sys/types.h b/linux-0.11-lab/cur/linux/include/sys/types.h new file mode 100644 index 0000000..557aa31 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/sys/types.h @@ -0,0 +1,46 @@ +#ifndef _SYS_TYPES_H +#define _SYS_TYPES_H + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; +#endif + +#ifndef _TIME_T +#define _TIME_T +typedef long time_t; +#endif + +#ifndef _PTRDIFF_T +#define _PTRDIFF_T +typedef long ptrdiff_t; +#endif + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +typedef int pid_t; +typedef unsigned short uid_t; +typedef unsigned char gid_t; +typedef unsigned short dev_t; +typedef unsigned short ino_t; +typedef unsigned short mode_t; +typedef unsigned short umode_t; +typedef unsigned char nlink_t; +typedef int daddr_t; +typedef long off_t; +typedef unsigned char u_char; +typedef unsigned short ushort; + +typedef struct { int quot,rem; } div_t; +typedef struct { long quot,rem; } ldiv_t; + +struct ustat { + daddr_t f_tfree; + ino_t f_tinode; + char f_fname[6]; + char f_fpack[6]; +}; + +#endif diff --git a/linux-0.11-lab/cur/linux/include/sys/utsname.h b/linux-0.11-lab/cur/linux/include/sys/utsname.h new file mode 100644 index 0000000..0a1c5a0 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/sys/utsname.h @@ -0,0 +1,16 @@ +#ifndef _SYS_UTSNAME_H +#define _SYS_UTSNAME_H + +#include + +struct utsname { + char sysname[9]; + char nodename[9]; + char release[9]; + char version[9]; + char machine[9]; +}; + +extern int uname(struct utsname * utsbuf); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/sys/wait.h b/linux-0.11-lab/cur/linux/include/sys/wait.h new file mode 100644 index 0000000..53190c2 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/sys/wait.h @@ -0,0 +1,23 @@ +#ifndef _SYS_WAIT_H +#define _SYS_WAIT_H + +#include + +#define _LOW(v) ( (v) & 0377) +#define _HIGH(v) ( ((v) >> 8) & 0377) + +/* options for waitpid, WUNTRACED not supported */ +#define WNOHANG 1 +#define WUNTRACED 2 + +#define WIFEXITED(s) (!((s)&0xFF) +#define WIFSTOPPED(s) (((s)&0xFF)==0x7F) +#define WEXITSTATUS(s) (((s)>>8)&0xFF) +#define WTERMSIG(s) ((s)&0x7F) +#define WSTOPSIG(s) (((s)>>8)&0xFF) +#define WIFSIGNALED(s) (((unsigned int)(s)-1 & 0xFFFF) < 0xFF) + +pid_t wait(int *stat_loc); +pid_t waitpid(pid_t pid, int *stat_loc, int options); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/termios.h b/linux-0.11-lab/cur/linux/include/termios.h new file mode 100644 index 0000000..2b7b913 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/termios.h @@ -0,0 +1,228 @@ +#ifndef _TERMIOS_H +#define _TERMIOS_H + +#define TTY_BUF_SIZE 1024 + +/* 0x54 is just a magic number to make these relatively uniqe ('T') */ + +#define TCGETS 0x5401 +#define TCSETS 0x5402 +#define TCSETSW 0x5403 +#define TCSETSF 0x5404 +#define TCGETA 0x5405 +#define TCSETA 0x5406 +#define TCSETAW 0x5407 +#define TCSETAF 0x5408 +#define TCSBRK 0x5409 +#define TCXONC 0x540A +#define TCFLSH 0x540B +#define TIOCEXCL 0x540C +#define TIOCNXCL 0x540D +#define TIOCSCTTY 0x540E +#define TIOCGPGRP 0x540F +#define TIOCSPGRP 0x5410 +#define TIOCOUTQ 0x5411 +#define TIOCSTI 0x5412 +#define TIOCGWINSZ 0x5413 +#define TIOCSWINSZ 0x5414 +#define TIOCMGET 0x5415 +#define TIOCMBIS 0x5416 +#define TIOCMBIC 0x5417 +#define TIOCMSET 0x5418 +#define TIOCGSOFTCAR 0x5419 +#define TIOCSSOFTCAR 0x541A +#define TIOCINQ 0x541B + +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; +}; + +#define NCC 8 +struct termio { + unsigned short c_iflag; /* input mode flags */ + unsigned short c_oflag; /* output mode flags */ + unsigned short c_cflag; /* control mode flags */ + unsigned short c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCC]; /* control characters */ +}; + +#define NCCS 17 +struct termios { + unsigned long c_iflag; /* input mode flags */ + unsigned long c_oflag; /* output mode flags */ + unsigned long c_cflag; /* control mode flags */ + unsigned long c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCCS]; /* control characters */ +}; + +/* c_cc characters */ +#define VINTR 0 +#define VQUIT 1 +#define VERASE 2 +#define VKILL 3 +#define VEOF 4 +#define VTIME 5 +#define VMIN 6 +#define VSWTC 7 +#define VSTART 8 +#define VSTOP 9 +#define VSUSP 10 +#define VEOL 11 +#define VREPRINT 12 +#define VDISCARD 13 +#define VWERASE 14 +#define VLNEXT 15 +#define VEOL2 16 + +/* c_iflag bits */ +#define IGNBRK 0000001 +#define BRKINT 0000002 +#define IGNPAR 0000004 +#define PARMRK 0000010 +#define INPCK 0000020 +#define ISTRIP 0000040 +#define INLCR 0000100 +#define IGNCR 0000200 +#define ICRNL 0000400 +#define IUCLC 0001000 +#define IXON 0002000 +#define IXANY 0004000 +#define IXOFF 0010000 +#define IMAXBEL 0020000 + +/* c_oflag bits */ +#define OPOST 0000001 +#define OLCUC 0000002 +#define ONLCR 0000004 +#define OCRNL 0000010 +#define ONOCR 0000020 +#define ONLRET 0000040 +#define OFILL 0000100 +#define OFDEL 0000200 +#define NLDLY 0000400 +#define NL0 0000000 +#define NL1 0000400 +#define CRDLY 0003000 +#define CR0 0000000 +#define CR1 0001000 +#define CR2 0002000 +#define CR3 0003000 +#define TABDLY 0014000 +#define TAB0 0000000 +#define TAB1 0004000 +#define TAB2 0010000 +#define TAB3 0014000 +#define XTABS 0014000 +#define BSDLY 0020000 +#define BS0 0000000 +#define BS1 0020000 +#define VTDLY 0040000 +#define VT0 0000000 +#define VT1 0040000 +#define FFDLY 0040000 +#define FF0 0000000 +#define FF1 0040000 + +/* c_cflag bit meaning */ +#define CBAUD 0000017 +#define B0 0000000 /* hang up */ +#define B50 0000001 +#define B75 0000002 +#define B110 0000003 +#define B134 0000004 +#define B150 0000005 +#define B200 0000006 +#define B300 0000007 +#define B600 0000010 +#define B1200 0000011 +#define B1800 0000012 +#define B2400 0000013 +#define B4800 0000014 +#define B9600 0000015 +#define B19200 0000016 +#define B38400 0000017 +#define EXTA B19200 +#define EXTB B38400 +#define CSIZE 0000060 +#define CS5 0000000 +#define CS6 0000020 +#define CS7 0000040 +#define CS8 0000060 +#define CSTOPB 0000100 +#define CREAD 0000200 +#define CPARENB 0000400 +#define CPARODD 0001000 +#define HUPCL 0002000 +#define CLOCAL 0004000 +#define CIBAUD 03600000 /* input baud rate (not used) */ +#define CRTSCTS 020000000000 /* flow control */ + +#define PARENB CPARENB +#define PARODD CPARODD + +/* c_lflag bits */ +#define ISIG 0000001 +#define ICANON 0000002 +#define XCASE 0000004 +#define ECHO 0000010 +#define ECHOE 0000020 +#define ECHOK 0000040 +#define ECHONL 0000100 +#define NOFLSH 0000200 +#define TOSTOP 0000400 +#define ECHOCTL 0001000 +#define ECHOPRT 0002000 +#define ECHOKE 0004000 +#define FLUSHO 0010000 +#define PENDIN 0040000 +#define IEXTEN 0100000 + +/* modem lines */ +#define TIOCM_LE 0x001 +#define TIOCM_DTR 0x002 +#define TIOCM_RTS 0x004 +#define TIOCM_ST 0x008 +#define TIOCM_SR 0x010 +#define TIOCM_CTS 0x020 +#define TIOCM_CAR 0x040 +#define TIOCM_RNG 0x080 +#define TIOCM_DSR 0x100 +#define TIOCM_CD TIOCM_CAR +#define TIOCM_RI TIOCM_RNG + +/* tcflow() and TCXONC use these */ +#define TCOOFF 0 +#define TCOON 1 +#define TCIOFF 2 +#define TCION 3 + +/* tcflush() and TCFLSH use these */ +#define TCIFLUSH 0 +#define TCOFLUSH 1 +#define TCIOFLUSH 2 + +/* tcsetattr uses these */ +#define TCSANOW 0 +#define TCSADRAIN 1 +#define TCSAFLUSH 2 + +typedef int speed_t; + +extern speed_t cfgetispeed(struct termios *termios_p); +extern speed_t cfgetospeed(struct termios *termios_p); +extern int cfsetispeed(struct termios *termios_p, speed_t speed); +extern int cfsetospeed(struct termios *termios_p, speed_t speed); +extern int tcdrain(int fildes); +extern int tcflow(int fildes, int action); +extern int tcflush(int fildes, int queue_selector); +extern int tcgetattr(int fildes, struct termios *termios_p); +extern int tcsendbreak(int fildes, int duration); +extern int tcsetattr(int fildes, int optional_actions, + struct termios *termios_p); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/time.h b/linux-0.11-lab/cur/linux/include/time.h new file mode 100644 index 0000000..d0a765d --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/time.h @@ -0,0 +1,42 @@ +#ifndef _TIME_H +#define _TIME_H + +#ifndef _TIME_T +#define _TIME_T +typedef long time_t; +#endif + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; +#endif + +#define CLOCKS_PER_SEC 100 + +typedef long clock_t; + +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + +clock_t clock(void); +time_t time(time_t * tp); +double difftime(time_t time2, time_t time1); +time_t mktime(struct tm * tp); + +char * asctime(const struct tm * tp); +char * ctime(const time_t * tp); +struct tm * gmtime(const time_t *tp); +struct tm *localtime(const time_t * tp); +size_t strftime(char * s, size_t smax, const char * fmt, const struct tm * tp); +void tzset(void); + +#endif diff --git a/linux-0.11-lab/cur/linux/include/unistd.h b/linux-0.11-lab/cur/linux/include/unistd.h new file mode 100644 index 0000000..8da839c --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/unistd.h @@ -0,0 +1,273 @@ +#ifndef _UNISTD_H +#define _UNISTD_H + +/* ok, this may be a joke, but I'm working on it */ +#define _POSIX_VERSION 198808L + +#define _POSIX_CHOWN_RESTRICTED /* only root can do a chown (I think..) */ +#define _POSIX_NO_TRUNC /* no pathname truncation (but see in kernel) */ +#define _POSIX_VDISABLE '\0' /* character to disable things like ^C */ +/*#define _POSIX_SAVED_IDS */ /* we'll get to this yet */ +/*#define _POSIX_JOB_CONTROL */ /* we aren't there quite yet. Soon hopefully */ + +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 + +#ifndef NULL +#define NULL ((void *)0) +#endif + +/* access */ +#define F_OK 0 +#define X_OK 1 +#define W_OK 2 +#define R_OK 4 + +/* lseek */ +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 + +/* _SC stands for System Configuration. We don't use them much */ +#define _SC_ARG_MAX 1 +#define _SC_CHILD_MAX 2 +#define _SC_CLOCKS_PER_SEC 3 +#define _SC_NGROUPS_MAX 4 +#define _SC_OPEN_MAX 5 +#define _SC_JOB_CONTROL 6 +#define _SC_SAVED_IDS 7 +#define _SC_VERSION 8 + +/* more (possibly) configurable things - now pathnames */ +#define _PC_LINK_MAX 1 +#define _PC_MAX_CANON 2 +#define _PC_MAX_INPUT 3 +#define _PC_NAME_MAX 4 +#define _PC_PATH_MAX 5 +#define _PC_PIPE_BUF 6 +#define _PC_NO_TRUNC 7 +#define _PC_VDISABLE 8 +#define _PC_CHOWN_RESTRICTED 9 + +#include +#include +#include +#include + +#ifdef __LIBRARY__ + +#define __NR_setup 0 /* used only by init, to get system going */ +#define _exit 1 +#define _fork 2 +#define __NR_read 3 +#define __NR_write 4 +#define __NR_open 5 +#define __NR_close 6 +#define __NR_waitpid 7 +#define __NR_creat 8 +#define __NR_link 9 +#define __NR_unlink 10 +#define __NR_execve 11 +#define __NR_chdir 12 +#define __NR_time 13 +#define __NR_mknod 14 +#define __NR_chmod 15 +#define __NR_chown 16 +#define __NR_break 17 +#define __NR_stat 18 +#define __NR_lseek 19 +#define __NR_getpid 20 +#define __NR_mount 21 +#define __NR_umount 22 +#define __NR_setuid 23 +#define __NR_getuid 24 +#define __NR_stime 25 +#define __NR_ptrace 26 +#define __NR_alarm 27 +#define __NR_fstat 28 +#define __NR_pause 29 +#define __NR_utime 30 +#define __NR_stty 31 +#define __NR_gtty 32 +#define __NR_access 33 +#define __NR_nice 34 +#define __NR_ftime 35 +#define __NR_sync 36 +#define __NR_kill 37 +#define __NR_rename 38 +#define __NR_mkdir 39 +#define __NR_rmdir 40 +#define __NR_dup 41 +#define __NR_pipe 42 +#define __NR_times 43 +#define __NR_prof 44 +#define __NR_brk 45 +#define __NR_setgid 46 +#define __NR_getgid 47 +#define __NR_signal 48 +#define __NR_geteuid 49 +#define __NR_getegid 50 +#define __NR_acct 51 +#define __NR_phys 52 +#define __NR_lock 53 +#define __NR_ioctl 54 +#define __NR_fcntl 55 +#define __NR_mpx 56 +#define __NR_setpgid 57 +#define __NR_ulimit 58 +#define __NR_uname 59 +#define __NR_umask 60 +#define __NR_chroot 61 +#define __NR_ustat 62 +#define __NR_dup2 63 +#define __NR_getppid 64 +#define __NR_getpgrp 65 +#define __NR_setsid 66 +#define __NR_sigaction 67 +#define __NR_sgetmask 68 +#define __NR_ssetmask 69 +#define __NR_setreuid 70 +#define __NR_setregid 71 +#define __NR_sigsuspend 72 +#define __NR_sigpending 73 +#define __NR_sethostname 74 +#define __NR_setrlimit 75 +#define __NR_getrlimit 76 +#define __NR_getrusage 77 +#define __NR_gettimeofday 78 +#define __NR_settimeofday 79 +#define __NR_getgroups 80 +#define __NR_setgroups 81 +#define __NR_select 82 +#define __NR_symlink 83 +#define __NR_lstat 84 +#define __NR_readlink 85 +#define __NR_uselib 86 +#define __NR_execve2 87 +#define __NR_getdents 88 +#define __NR_sleep 90 +#define __NR_getcwd 91 +#define _syscall0(type,name) \ +type name(void) \ +{ \ +long __res; \ +__asm__ volatile ("int $0x80" \ + : "=a" (__res) \ + : "0" (__NR_##name)); \ +if (__res >= 0) \ + return (type) __res; \ +errno = -__res; \ +return -1; \ +} + +#define _syscall1(type,name,atype,a) \ +type name(atype a) \ +{ \ +long __res; \ +__asm__ volatile ("int $0x80" \ + : "=a" (__res) \ + : "0" (__NR_##name),"b" ((long)(a))); \ +if (__res >= 0) \ + return (type) __res; \ +errno = -__res; \ +return -1; \ +} + +#define _syscall2(type,name,atype,a,btype,b) \ +type name(atype a,btype b) \ +{ \ +long __res; \ +__asm__ volatile ("int $0x80" \ + : "=a" (__res) \ + : "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b))); \ +if (__res >= 0) \ + return (type) __res; \ +errno = -__res; \ +return -1; \ +} + +#define _syscall3(type,name,atype,a,btype,b,ctype,c) \ +type name(atype a,btype b,ctype c) \ +{ \ +long __res; \ +__asm__ volatile ("int $0x80" \ + : "=a" (__res) \ + : "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b)),"d" ((long)(c))); \ +if (__res>=0) \ + return (type) __res; \ +errno=-__res; \ +return -1; \ +} + +#endif /* __LIBRARY__ */ + +extern int errno; + +int access(const char * filename, mode_t mode); +int acct(const char * filename); +int alarm(int sec); +int brk(void * end_data_segment); +void * sbrk(ptrdiff_t increment); +int chdir(const char * filename); +int chmod(const char * filename, mode_t mode); +int chown(const char * filename, uid_t owner, gid_t group); +int chroot(const char * filename); +int close(int fildes); +int creat(const char * filename, mode_t mode); +int dup(int fildes); +int execve(const char * filename, char ** argv, char ** envp); +int execv(const char * pathname, char ** argv); +int execvp(const char * file, char ** argv); +int execl(const char * pathname, char * arg0, ...); +int execlp(const char * file, char * arg0, ...); +int execle(const char * pathname, char * arg0, ...); +volatile void exit(int status); +volatile void _exit(int status); +int fcntl(int fildes, int cmd, ...); +int fork(void); +int getpid(void); +int getuid(void); +int geteuid(void); +int getgid(void); +int getegid(void); +int ioctl(int fildes, int cmd, ...); +int kill(pid_t pid, int signal); +int link(const char * filename1, const char * filename2); +int lseek(int fildes, off_t offset, int origin); +int mknod(const char * filename, mode_t mode, dev_t dev); +int mount(const char * specialfile, const char * dir, int rwflag); +int nice(int val); +int open(const char * filename, int flag, ...); +int pause(void); +int pipe(int * fildes); +int read(int fildes, char * buf, off_t count); +int setpgrp(void); +int setpgid(pid_t pid,pid_t pgid); +int setuid(uid_t uid); +int setgid(gid_t gid); +void (*signal(int sig, void (*fn)(int)))(int); +int stat(const char * filename, struct stat * stat_buf); +int fstat(int fildes, struct stat * stat_buf); +int stime(time_t * tptr); +int sync(void); +time_t time(time_t * tloc); +time_t times(struct tms * tbuf); +int ulimit(int cmd, long limit); +mode_t umask(mode_t mask); +int umount(const char * specialfile); +int uname(struct utsname * name); +int unlink(const char * filename); +int ustat(dev_t dev, struct ustat * ubuf); +int utime(const char * filename, struct utimbuf * times); +pid_t waitpid(pid_t pid,int * wait_stat,int options); +pid_t wait(int * wait_stat); +int write(int fildes, const char * buf, off_t count); +int dup2(int oldfd, int newfd); +int getppid(void); +pid_t getpgrp(void); +pid_t setsid(void); + +#define __always_inline inline __attribute__((always_inline)) + +#endif diff --git a/linux-0.11-lab/cur/linux/include/utime.h b/linux-0.11-lab/cur/linux/include/utime.h new file mode 100644 index 0000000..83f07c7 --- /dev/null +++ b/linux-0.11-lab/cur/linux/include/utime.h @@ -0,0 +1,13 @@ +#ifndef _UTIME_H +#define _UTIME_H + +#include /* I know - shouldn't do this, but .. */ + +struct utimbuf { + time_t actime; + time_t modtime; +}; + +extern int utime(const char *filename, struct utimbuf *times); + +#endif diff --git a/linux-0.11-lab/cur/linux/init/main.c b/linux-0.11-lab/cur/linux/init/main.c new file mode 100644 index 0000000..0892fdc --- /dev/null +++ b/linux-0.11-lab/cur/linux/init/main.c @@ -0,0 +1,210 @@ +/* + * linux/init/main.c + * + * (C) 1991 Linus Torvalds + */ + +#define __LIBRARY__ +#include +#include + +/* + * we need this inline - forking from kernel space will result + * in NO COPY ON WRITE (!!!), until an execve is executed. This + * is no problem, but for the stack. This is handled by not letting + * main() use the stack at all after fork(). Thus, no function + * calls - which means inline code for fork too, as otherwise we + * would use the stack upon exit from 'fork()'. + * + * Actually only pause and fork are needed inline, so that there + * won't be any messing with the stack from main(), but we define + * some others too. + */ + +__always_inline _syscall0(int,fork) +__always_inline _syscall0(int,pause) +__always_inline _syscall1(int,setup,void *,BIOS) +__always_inline _syscall0(int,sync) + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +static char printbuf[1024]; + +extern int vsprintf(); +extern void init(void); +extern void blk_dev_init(void); +extern void chr_dev_init(void); +extern void hd_init(void); +extern void floppy_init(void); +extern void mem_init(long start, long end); +extern long rd_init(long mem_start, int length); +extern long kernel_mktime(struct tm * tm); +extern long startup_time; + +/* + * This is set up by the setup-routine at boot-time + */ +#define EXT_MEM_K (*(unsigned short *)0x90002) +#define DRIVE_INFO (*(struct drive_info *)0x90080) +#define ORIG_ROOT_DEV (*(unsigned short *)0x901FC) + +/* + * Yeah, yeah, it's ugly, but I cannot find how to do this correctly + * and this seems to work. I anybody has more info on the real-time + * clock I'd be interested. Most of this was trial and error, and some + * bios-listing reading. Urghh. + */ + +#define CMOS_READ(addr) ({ \ +outb_p(0x80|addr,0x70); \ +inb_p(0x71); \ +}) + +#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) + +static void time_init(void) +{ + struct tm time; + + do { + time.tm_sec = CMOS_READ(0); + time.tm_min = CMOS_READ(2); + time.tm_hour = CMOS_READ(4); + time.tm_mday = CMOS_READ(7); + time.tm_mon = CMOS_READ(8); + time.tm_year = CMOS_READ(9); + } while (time.tm_sec != CMOS_READ(0)); + BCD_TO_BIN(time.tm_sec); + BCD_TO_BIN(time.tm_min); + BCD_TO_BIN(time.tm_hour); + BCD_TO_BIN(time.tm_mday); + BCD_TO_BIN(time.tm_mon); + BCD_TO_BIN(time.tm_year); + time.tm_mon--; + startup_time = kernel_mktime(&time); +} + +static long memory_end = 0; +static long buffer_memory_end = 0; +static long main_memory_start = 0; + +struct drive_info { char dummy[32]; } drive_info; + +void main(void) /* This really IS void, no error here. */ +{ /* The startup routine assumes (well, ...) this */ +/* + * Interrupts are still disabled. Do necessary setups, then + * enable them + */ + ROOT_DEV = ORIG_ROOT_DEV; + __asm__ volatile ("cld"); /* by wyj */ + drive_info = DRIVE_INFO; + memory_end = (1<<20) + (EXT_MEM_K<<10); + memory_end &= 0xfffff000; + if (memory_end > 16*1024*1024) + memory_end = 16*1024*1024; + if (memory_end > 12*1024*1024) + buffer_memory_end = 4*1024*1024; + else if (memory_end > 6*1024*1024) + buffer_memory_end = 2*1024*1024; + else + buffer_memory_end = 1*1024*1024; + main_memory_start = buffer_memory_end; +#ifdef RAMDISK + main_memory_start += rd_init(main_memory_start, RAMDISK*1024); +#endif + mem_init(main_memory_start,memory_end); + trap_init(); + blk_dev_init(); + chr_dev_init(); + tty_init(); + time_init(); + sched_init(); + buffer_init(buffer_memory_end); + hd_init(); + floppy_init(); + sti(); + move_to_user_mode(); + if (!fork()) { /* we count on this going ok */ + init(); + } +/* + * NOTE!! For any other task 'pause()' would mean we have to get a + * signal to awaken, but task0 is the sole exception (see 'schedule()') + * as task 0 gets activated at every idle moment (when no other tasks + * can run). For task0 'pause()' just means we go check if some other + * task can run, and if not we return here. + */ + for(;;) pause(); +} + +static int printf(const char *fmt, ...) +{ + va_list args; + int i; + + va_start(args, fmt); + write(1,printbuf,i=vsprintf(printbuf, fmt, args)); + va_end(args); + return i; +} + +static char * argv_rc[] = { "/bin/sh", NULL }; +static char * envp_rc[] = { "HOME=/", NULL, NULL }; + +static char * argv[] = { "-/bin/sh",NULL }; +static char * envp[] = { "HOME=/usr/root", NULL, NULL }; + +void init(void) +{ + int pid,i; + + setup((void *) &drive_info); + (void) open("/dev/tty0",O_RDWR,0); + (void) dup(0); + (void) dup(0); + printf("%d buffers = %d bytes buffer space\n\r",NR_BUFFERS, + NR_BUFFERS*BLOCK_SIZE); + printf("Free mem: %d bytes\n\r",memory_end-main_memory_start); + if (!(pid=fork())) { + close(0); + if (open("/etc/rc",O_RDONLY,0)) + _exit(1); + execve("/bin/sh",argv_rc,envp_rc); + _exit(2); + } + if (pid>0) + while (pid != wait(&i)) + /* nothing */; + while (1) { + if ((pid=fork())<0) { + printf("Fork failed in init\r\n"); + continue; + } + if (!pid) { + close(0);close(1);close(2); + setsid(); + (void) open("/dev/tty0",O_RDWR,0); + (void) dup(0); + (void) dup(0); + _exit(execve("/bin/sh",argv,envp)); + } + while (1) + if (pid == wait(&i)) + break; + printf("\n\rchild %d died with code %04x\n\r",pid,i); + sync(); + } + _exit(0); /* NOTE! _exit, not exit() */ +} diff --git a/linux-0.11-lab/cur/linux/init/main.o b/linux-0.11-lab/cur/linux/init/main.o new file mode 100644 index 0000000000000000000000000000000000000000..20bade066c6c637fb950d7858a4e12b8dcd54564 GIT binary patch literal 9040 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 UIUey|!5+cgf` tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + (cd chr_drv; make dep) + (cd blk_drv; make dep) + +### Dependencies: +exit.s exit.o : exit.c ../include/errno.h ../include/signal.h \ + ../include/sys/types.h ../include/sys/wait.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/linux/mm.h \ + ../include/linux/kernel.h ../include/linux/tty.h ../include/termios.h \ + ../include/asm/segment.h +fork.s fork.o : fork.c ../include/errno.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/segment.h ../include/asm/system.h +mktime.s mktime.o : mktime.c ../include/time.h +panic.s panic.o : panic.c ../include/linux/kernel.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h +printk.s printk.o : printk.c ../include/stdarg.h ../include/stddef.h \ + ../include/linux/kernel.h +sched.s sched.o : sched.c ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \ + ../include/signal.h ../include/linux/kernel.h ../include/linux/sys.h \ + ../include/linux/fdreg.h ../include/asm/system.h ../include/asm/io.h \ + ../include/asm/segment.h +signal.s signal.o : signal.c ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \ + ../include/signal.h ../include/linux/kernel.h ../include/asm/segment.h +sys.s sys.o : sys.c ../include/errno.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/tty.h \ + ../include/termios.h ../include/linux/kernel.h ../include/asm/segment.h \ + ../include/sys/times.h ../include/sys/utsname.h +traps.s traps.o : traps.c ../include/string.h ../include/linux/head.h \ + ../include/linux/sched.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/system.h ../include/asm/segment.h ../include/asm/io.h +vsprintf.s vsprintf.o : vsprintf.c ../include/stdarg.h ../include/string.h diff --git a/linux-0.11-lab/cur/linux/kernel/asm.o b/linux-0.11-lab/cur/linux/kernel/asm.o new file mode 100644 index 0000000000000000000000000000000000000000..a89ec75e6e7dea54ae5b8d9b94ba28158b48a77f GIT binary patch literal 1740 zcma)+O=uHQ5XWcRv}sSZ2!7VKN<_gLTB@F^9;`i75B*Zxid{F^*K{@67k4+Yil|sH zrv|)<7wbhmD2RBl?IjkWde90*5b+=$0#XkiyeY()eY^2xiRgpv|Nnb$W-{}d&9$S) z`xHe1e<@H4e+Zz*gMDtmZfJlym?EDGMTQ55PMti_THiEx4rWIp9YYK2@F4#&zm)${ zdN=d3q3K?@?aYKaK6ZL^#Z6j!Eo4c^qL61o9t*iIN>a0?YOGAXEIm;+mxxDna!+$#}~zPg>(|qFzDh#3ziNdZhm7_Gt$HGtt5$ zJb2(2L6$5XS6!9gLaHZMBo4WC>dM&)G@;K)yrt}^F9miX@AvkI_oDBSxC{Lei4UOf zm-sOHL5cg&k4j8uHzb}wuS$Fw{k+6C(HA7XgML}!hv?r*yy$rny5~3eqzG`)Jgcaa zE(!kRc@m2M7T_NN{u$t~^pB$a<^Z<^_)viR13VsJBf!@Kd@I0Ua+O&Yx70Y-8Aw() zvWCvYA?PfYNr0I$z%ZR|;8|u(Ciz8(@r %eax + xchgl %ebx,(%esp) # &function <-> %ebx + pushl %ecx + pushl %edx + pushl %edi + pushl %esi + pushl %ebp + push %ds + push %es + push %fs + pushl %eax # error code + lea 44(%esp),%eax # offset + pushl %eax + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + mov %ax,%fs + call *%ebx + addl $8,%esp + pop %fs + pop %es + pop %ds + popl %ebp + popl %esi + popl %edi + popl %edx + popl %ecx + popl %ebx + popl %eax + iret + +invalid_TSS: + pushl $do_invalid_TSS + jmp error_code + +segment_not_present: + pushl $do_segment_not_present + jmp error_code + +stack_segment: + pushl $do_stack_segment + jmp error_code + +general_protection: + pushl $do_general_protection + jmp error_code + diff --git a/linux-0.11-lab/cur/linux/kernel/blk_drv/Makefile b/linux-0.11-lab/cur/linux/kernel/blk_drv/Makefile new file mode 100644 index 0000000..1fb57f9 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/blk_drv/Makefile @@ -0,0 +1,58 @@ +# +# Makefile for the FREAX-kernel block device drivers. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# + +AR =ar +AS =as +LD =ld +LDFLAGS =-s -x +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -finline-functions -nostdinc -fno-stack-protector -I../../include +CPP =gcc -E -nostdinc -I../../include + +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< + +OBJS = ll_rw_blk.o floppy.o hd.o ramdisk.o + +blk_drv.a: $(OBJS) + $(AR) rcs blk_drv.a $(OBJS) + sync + +clean: + rm -f core *.o *.a tmp_make + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +floppy.s floppy.o : floppy.c ../../include/linux/sched.h ../../include/linux/head.h \ + ../../include/linux/fs.h ../../include/sys/types.h ../../include/linux/mm.h \ + ../../include/signal.h ../../include/linux/kernel.h \ + ../../include/linux/fdreg.h ../../include/asm/system.h \ + ../../include/asm/io.h ../../include/asm/segment.h blk.h +hd.s hd.o : hd.c ../../include/linux/config.h ../../include/linux/sched.h \ + ../../include/linux/head.h ../../include/linux/fs.h \ + ../../include/sys/types.h ../../include/linux/mm.h ../../include/signal.h \ + ../../include/linux/kernel.h ../../include/linux/hdreg.h \ + ../../include/asm/system.h ../../include/asm/io.h \ + ../../include/asm/segment.h blk.h +ll_rw_blk.s ll_rw_blk.o : ll_rw_blk.c ../../include/errno.h ../../include/linux/sched.h \ + ../../include/linux/head.h ../../include/linux/fs.h \ + ../../include/sys/types.h ../../include/linux/mm.h ../../include/signal.h \ + ../../include/linux/kernel.h ../../include/asm/system.h blk.h diff --git a/linux-0.11-lab/cur/linux/kernel/blk_drv/blk.h b/linux-0.11-lab/cur/linux/kernel/blk_drv/blk.h new file mode 100644 index 0000000..7a69b71 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/blk_drv/blk.h @@ -0,0 +1,140 @@ +#ifndef _BLK_H +#define _BLK_H + +#define NR_BLK_DEV 7 +/* + * NR_REQUEST is the number of entries in the request-queue. + * NOTE that writes may use only the low 2/3 of these: reads + * take precedence. + * + * 32 seems to be a reasonable number: enough to get some benefit + * from the elevator-mechanism, but not so much as to lock a lot of + * buffers when they are in the queue. 64 seems to be too many (easily + * long pauses in reading when heavy writing/syncing is going on) + */ +#define NR_REQUEST 32 + +/* + * Ok, this is an expanded form so that we can use the same + * request for paging requests when that is implemented. In + * paging, 'bh' is NULL, and 'waiting' is used to wait for + * read/write completion. + */ +struct request { + int dev; /* -1 if no request */ + int cmd; /* READ or WRITE */ + int errors; + unsigned long sector; + unsigned long nr_sectors; + char * buffer; + struct task_struct * waiting; + struct buffer_head * bh; + struct request * next; +}; + +/* + * This is used in the elevator algorithm: Note that + * reads always go before writes. This is natural: reads + * are much more time-critical than writes. + */ +#define IN_ORDER(s1,s2) \ +((s1)->cmd<(s2)->cmd || (s1)->cmd==(s2)->cmd && \ +((s1)->dev < (s2)->dev || ((s1)->dev == (s2)->dev && \ +(s1)->sector < (s2)->sector))) + +struct blk_dev_struct { + void (*request_fn)(void); + struct request * current_request; +}; + +extern struct blk_dev_struct blk_dev[NR_BLK_DEV]; +extern struct request request[NR_REQUEST]; +extern struct task_struct * wait_for_request; + +#ifdef MAJOR_NR + +/* + * Add entries as needed. Currently the only block devices + * supported are hard-disks and floppies. + */ + +#if (MAJOR_NR == 1) +/* ram disk */ +#define DEVICE_NAME "ramdisk" +#define DEVICE_REQUEST do_rd_request +#define DEVICE_NR(device) ((device) & 7) +#define DEVICE_ON(device) +#define DEVICE_OFF(device) + +#elif (MAJOR_NR == 2) +/* floppy */ +#define DEVICE_NAME "floppy" +#define DEVICE_INTR do_floppy +#define DEVICE_REQUEST do_fd_request +#define DEVICE_NR(device) ((device) & 3) +#define DEVICE_ON(device) floppy_on(DEVICE_NR(device)) +#define DEVICE_OFF(device) floppy_off(DEVICE_NR(device)) + +#elif (MAJOR_NR == 3) +/* harddisk */ +#define DEVICE_NAME "harddisk" +#define DEVICE_INTR do_hd +#define DEVICE_REQUEST do_hd_request +#define DEVICE_NR(device) (MINOR(device)/5) +#define DEVICE_ON(device) +#define DEVICE_OFF(device) + +#elif (MAJOR_NR > 3) +/* unknown blk device */ +#error "unknown blk device" + +#endif + +#define CURRENT (blk_dev[MAJOR_NR].current_request) +#define CURRENT_DEV DEVICE_NR(CURRENT->dev) + +#ifdef DEVICE_INTR +void (*DEVICE_INTR)(void) = NULL; +#endif +static void (DEVICE_REQUEST)(void); + +static inline void unlock_buffer(struct buffer_head * bh) +{ + if (!bh->b_lock) + printk(DEVICE_NAME ": free buffer being unlocked\n"); + bh->b_lock=0; + wake_up(&bh->b_wait); +} + +static inline void end_request(int uptodate) +{ + DEVICE_OFF(CURRENT->dev); + if (CURRENT->bh) { + CURRENT->bh->b_uptodate = uptodate; + unlock_buffer(CURRENT->bh); + } + if (!uptodate) { + printk(DEVICE_NAME " I/O error\n\r"); + printk("dev %04x, block %d\n\r",CURRENT->dev, + CURRENT->bh->b_blocknr); + } + wake_up(&CURRENT->waiting); + wake_up(&wait_for_request); + CURRENT->dev = -1; + CURRENT = CURRENT->next; +} + +#define INIT_REQUEST \ +repeat: \ + if (!CURRENT) \ + return; \ + if (MAJOR(CURRENT->dev) != MAJOR_NR) \ + panic(DEVICE_NAME ": request list destroyed"); \ + if (CURRENT->bh) { \ + if (!CURRENT->bh->b_lock) \ + panic(DEVICE_NAME ": block not locked"); \ + } + +#endif + +#endif diff --git a/linux-0.11-lab/cur/linux/kernel/blk_drv/blk_drv.a b/linux-0.11-lab/cur/linux/kernel/blk_drv/blk_drv.a new file mode 100644 index 0000000000000000000000000000000000000000..02751f123aa0c72fe90e820ca24599de825468be GIT binary patch literal 52212 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 +#include +#include +#include +#include +#include +#include + +#define MAJOR_NR 2 +#include "blk.h" + +static int recalibrate = 0; +static int reset = 0; +static int seek = 0; + +extern unsigned char current_DOR; + +#define immoutb_p(val,port) \ +__asm__("outb %0,%1\n\tjmp 1f\n1:\tjmp 1f\n1:"::"a" ((char) (val)),"i" (port)) + +#define TYPE(x) ((x)>>2) +#define DRIVE(x) ((x)&0x03) +/* + * Note that MAX_ERRORS=8 doesn't imply that we retry every bad read + * max 8 times - some types of errors increase the errorcount by 2, + * so we might actually retry only 5-6 times before giving up. + */ +#define MAX_ERRORS 8 + +/* + * globals used by 'result()' + */ +#define MAX_REPLIES 7 +static unsigned char reply_buffer[MAX_REPLIES]; +#define ST0 (reply_buffer[0]) +#define ST1 (reply_buffer[1]) +#define ST2 (reply_buffer[2]) +#define ST3 (reply_buffer[3]) + +/* + * This struct defines the different floppy types. Unlike minix + * linux doesn't have a "search for right type"-type, as the code + * for that is convoluted and weird. I've got enough problems with + * this driver as it is. + * + * The 'stretch' tells if the tracks need to be boubled for some + * types (ie 360kB diskette in 1.2MB drive etc). Others should + * be self-explanatory. + */ +static struct floppy_struct { + unsigned int size, sect, head, track, stretch; + unsigned char gap,rate,spec1; +} floppy_type[] = { + { 0, 0,0, 0,0,0x00,0x00,0x00 }, /* no testing */ + { 720, 9,2,40,0,0x2A,0x02,0xDF }, /* 360kB PC diskettes */ + { 2400,15,2,80,0,0x1B,0x00,0xDF }, /* 1.2 MB AT-diskettes */ + { 720, 9,2,40,1,0x2A,0x02,0xDF }, /* 360kB in 720kB drive */ + { 1440, 9,2,80,0,0x2A,0x02,0xDF }, /* 3.5" 720kB diskette */ + { 720, 9,2,40,1,0x23,0x01,0xDF }, /* 360kB in 1.2MB drive */ + { 1440, 9,2,80,0,0x23,0x01,0xDF }, /* 720kB in 1.2MB drive */ + { 2880,18,2,80,0,0x1B,0x00,0xCF }, /* 1.44MB diskette */ +}; +/* + * Rate is 0 for 500kb/s, 2 for 300kbps, 1 for 250kbps + * Spec1 is 0xSH, where S is stepping rate (F=1ms, E=2ms, D=3ms etc), + * H is head unload time (1=16ms, 2=32ms, etc) + * + * Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms etc) + * and ND is set means no DMA. Hardcoded to 6 (HLD=6ms, use DMA). + */ + +extern void floppy_interrupt(void); +extern char tmp_floppy_area[1024]; + +/* + * These are global variables, as that's the easiest way to give + * information to interrupts. They are the data used for the current + * request. + */ +static int cur_spec1 = -1; +static int cur_rate = -1; +static struct floppy_struct * floppy = floppy_type; +static unsigned char current_drive = 0; +static unsigned char sector = 0; +static unsigned char head = 0; +static unsigned char track = 0; +static unsigned char seek_track = 0; +static unsigned char current_track = 255; +static unsigned char command = 0; +unsigned char selected = 0; +struct task_struct * wait_on_floppy_select = NULL; + +void floppy_deselect(unsigned int nr) +{ + if (nr != (current_DOR & 3)) + printk("floppy_deselect: drive not selected\n\r"); + selected = 0; + wake_up(&wait_on_floppy_select); +} + +/* + * floppy-change is never called from an interrupt, so we can relax a bit + * here, sleep etc. Note that floppy-on tries to set current_DOR to point + * to the desired drive, but it will probably not survive the sleep if + * several floppies are used at the same time: thus the loop. + */ +int floppy_change(unsigned int nr) +{ +repeat: + floppy_on(nr); + while ((current_DOR & 3) != nr && selected) + interruptible_sleep_on(&wait_on_floppy_select); + if ((current_DOR & 3) != nr) + goto repeat; + if (inb(FD_DIR) & 0x80) { + floppy_off(nr); + return 1; + } + floppy_off(nr); + return 0; +} + +#define copy_buffer(from,to) \ +__asm__("cld ; rep ; movsl" \ + ::"c" (BLOCK_SIZE/4),"S" ((long)(from)),"D" ((long)(to)) \ + ) + +static void setup_DMA(void) +{ + long addr = (long) CURRENT->buffer; + + cli(); + if (addr >= 0x100000) { + addr = (long) tmp_floppy_area; + if (command == FD_WRITE) + copy_buffer(CURRENT->buffer,tmp_floppy_area); + } +/* mask DMA 2 */ + immoutb_p(4|2,10); +/* output command byte. I don't know why, but everyone (minix, */ +/* sanches & canton) output this twice, first to 12 then to 11 */ + __asm__("outb %%al,$12\n\tjmp 1f\n1:\tjmp 1f\n1:\t" + "outb %%al,$11\n\tjmp 1f\n1:\tjmp 1f\n1:":: + "a" ((char) ((command == FD_READ)?DMA_READ:DMA_WRITE))); +/* 8 low bits of addr */ + immoutb_p(addr,4); + addr >>= 8; +/* bits 8-15 of addr */ + immoutb_p(addr,4); + addr >>= 8; +/* bits 16-19 of addr */ + immoutb_p(addr,0x81); +/* low 8 bits of count-1 (1024-1=0x3ff) */ + immoutb_p(0xff,5); +/* high 8 bits of count-1 */ + immoutb_p(3,5); +/* activate DMA 2 */ + immoutb_p(0|2,10); + sti(); +} + +static void output_byte(char byte) +{ + int counter; + unsigned char status; + + if (reset) + return; + for(counter = 0 ; counter < 10000 ; counter++) { + status = inb_p(FD_STATUS) & (STATUS_READY | STATUS_DIR); + if (status == STATUS_READY) { + outb(byte,FD_DATA); + return; + } + } + reset = 1; + printk("Unable to send byte to FDC\n\r"); +} + +static int result(void) +{ + int i = 0, counter, status; + + if (reset) + return -1; + for (counter = 0 ; counter < 10000 ; counter++) { + status = inb_p(FD_STATUS)&(STATUS_DIR|STATUS_READY|STATUS_BUSY); + if (status == STATUS_READY) + return i; + if (status == (STATUS_DIR|STATUS_READY|STATUS_BUSY)) { + if (i >= MAX_REPLIES) + break; + reply_buffer[i++] = inb_p(FD_DATA); + } + } + reset = 1; + printk("Getstatus times out\n\r"); + return -1; +} + +static void bad_flp_intr(void) +{ + CURRENT->errors++; + if (CURRENT->errors > MAX_ERRORS) { + floppy_deselect(current_drive); + end_request(0); + } + if (CURRENT->errors > MAX_ERRORS/2) + reset = 1; + else + recalibrate = 1; +} + +/* + * Ok, this interrupt is called after a DMA read/write has succeeded, + * so we check the results, and copy any buffers. + */ +static void rw_interrupt(void) +{ + if (result() != 7 || (ST0 & 0xf8) || (ST1 & 0xbf) || (ST2 & 0x73)) { + if (ST1 & 0x02) { + printk("Drive %d is write protected\n\r",current_drive); + floppy_deselect(current_drive); + end_request(0); + } else + bad_flp_intr(); + do_fd_request(); + return; + } + if (command == FD_READ && (unsigned long)(CURRENT->buffer) >= 0x100000) + copy_buffer(tmp_floppy_area,CURRENT->buffer); + floppy_deselect(current_drive); + end_request(1); + do_fd_request(); +} + +inline void setup_rw_floppy(void) +{ + setup_DMA(); + do_floppy = rw_interrupt; + output_byte(command); + output_byte(head<<2 | current_drive); + output_byte(track); + output_byte(head); + output_byte(sector); + output_byte(2); /* sector size = 512 */ + output_byte(floppy->sect); + output_byte(floppy->gap); + output_byte(0xFF); /* sector size (0xff when n!=0 ?) */ + if (reset) + do_fd_request(); +} + +/* + * This is the routine called after every seek (or recalibrate) interrupt + * from the floppy controller. Note that the "unexpected interrupt" routine + * also does a recalibrate, but doesn't come here. + */ +static void seek_interrupt(void) +{ +/* sense drive status */ + output_byte(FD_SENSEI); + if (result() != 2 || (ST0 & 0xF8) != 0x20 || ST1 != seek_track) { + bad_flp_intr(); + do_fd_request(); + return; + } + current_track = ST1; + setup_rw_floppy(); +} + +/* + * This routine is called when everything should be correctly set up + * for the transfer (ie floppy motor is on and the correct floppy is + * selected). + */ +static void transfer(void) +{ + if (cur_spec1 != floppy->spec1) { + cur_spec1 = floppy->spec1; + output_byte(FD_SPECIFY); + output_byte(cur_spec1); /* hut etc */ + output_byte(6); /* Head load time =6ms, DMA */ + } + if (cur_rate != floppy->rate) + outb_p(cur_rate = floppy->rate,FD_DCR); + if (reset) { + do_fd_request(); + return; + } + if (!seek) { + setup_rw_floppy(); + return; + } + do_floppy = seek_interrupt; + if (seek_track) { + output_byte(FD_SEEK); + output_byte(head<<2 | current_drive); + output_byte(seek_track); + } else { + output_byte(FD_RECALIBRATE); + output_byte(head<<2 | current_drive); + } + if (reset) + do_fd_request(); +} + +/* + * Special case - used after a unexpected interrupt (or reset) + */ +static void recal_interrupt(void) +{ + output_byte(FD_SENSEI); + if (result()!=2 || (ST0 & 0xE0) == 0x60) + reset = 1; + else + recalibrate = 0; + do_fd_request(); +} + +void unexpected_floppy_interrupt(void) +{ + output_byte(FD_SENSEI); + if (result()!=2 || (ST0 & 0xE0) == 0x60) + reset = 1; + else + recalibrate = 1; +} + +static void recalibrate_floppy(void) +{ + recalibrate = 0; + current_track = 0; + current_drive = 1; /* by wyj, ?? */ + do_floppy = recal_interrupt; + output_byte(FD_RECALIBRATE); + output_byte(head<<2 | current_drive); + if (reset) + do_fd_request(); +} + +static void reset_interrupt(void) +{ + output_byte(FD_SENSEI); + (void) result(); + output_byte(FD_SPECIFY); + output_byte(cur_spec1); /* hut etc */ + output_byte(6); /* Head load time =6ms, DMA */ + do_fd_request(); +} + +/* + * reset is done by pulling bit 2 of DOR low for a while. + */ +static void reset_floppy(void) +{ + int i; + + reset = 0; + cur_spec1 = -1; + cur_rate = -1; + recalibrate = 1; + printk("Reset-floppy called\n\r"); + cli(); + do_floppy = reset_interrupt; + outb_p(current_DOR & ~0x04,FD_DOR); + for (i=0 ; i<100 ; i++) + __asm__("nop"); + outb(current_DOR,FD_DOR); + sti(); +} + +static void floppy_on_interrupt(void) +{ +/* We cannot do a floppy-select, as that might sleep. We just force it */ + selected = 1; + if (current_drive != (current_DOR & 3)) { + current_DOR &= 0xFC; + current_DOR |= current_drive; + outb(current_DOR,FD_DOR); + add_timer(2,&transfer); + } else + transfer(); +} + +void do_fd_request(void) +{ + unsigned int block; + + seek = 0; + if (reset) { + reset_floppy(); + return; + } + if (recalibrate) { + recalibrate_floppy(); + return; + } + INIT_REQUEST; + floppy = (MINOR(CURRENT->dev)>>2) + floppy_type; + if (current_drive != CURRENT_DEV) + seek = 1; + current_drive = CURRENT_DEV; + block = CURRENT->sector; + if (block+2 > floppy->size) { + end_request(0); + goto repeat; + } + sector = block % floppy->sect; + block /= floppy->sect; + head = block % floppy->head; + track = block / floppy->head; + seek_track = track << floppy->stretch; + if (seek_track != current_track) + seek = 1; + sector++; + if (CURRENT->cmd == READ) + command = FD_READ; + else if (CURRENT->cmd == WRITE) + command = FD_WRITE; + else + panic("do_fd_request: unknown command"); + add_timer(ticks_to_floppy_on(current_drive),&floppy_on_interrupt); +} + +void floppy_init(void) +{ + blk_dev[MAJOR_NR].request_fn = DEVICE_REQUEST; + set_trap_gate(0x26,&floppy_interrupt); + outb(inb_p(0x21)&~0x40,0x21); +} diff --git a/linux-0.11-lab/cur/linux/kernel/blk_drv/floppy.o b/linux-0.11-lab/cur/linux/kernel/blk_drv/floppy.o new file mode 100644 index 0000000000000000000000000000000000000000..33235bcdcc660371f0cfe6077089e24f2a1c3a96 GIT binary patch literal 16612 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/blk_drv/hd.c b/linux-0.11-lab/cur/linux/kernel/blk_drv/hd.c new file mode 100644 index 0000000..c0e908f --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/blk_drv/hd.c @@ -0,0 +1,351 @@ +/* + * linux/kernel/hd.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * This is the low-level hd interrupt support. It traverses the + * request-list, using interrupts to jump between functions. As + * all the functions are called within interrupts, we may not + * sleep. Special care is recommended. + * + * modified by Drew Eckhardt to check nr of hd's from the CMOS. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAJOR_NR 3 +#include "blk.h" + +#define CMOS_READ(addr) ({ \ +outb_p(0x80|addr,0x70); \ +inb_p(0x71); \ +}) + +/* Max read/write errors/sector */ +#define MAX_ERRORS 7 +#define MAX_HD 2 + +static void recal_intr(void); + +static int recalibrate = 0; /* 1, wen */ +static int reset = 0; + +/* + * This struct defines the HD's and their types. + */ +struct hd_i_struct { + int head,sect,cyl,wpcom,lzone,ctl; + }; +#ifdef HD_TYPE +struct hd_i_struct hd_info[] = { HD_TYPE }; +#define NR_HD ((sizeof (hd_info))/(sizeof (struct hd_i_struct))) +#else +struct hd_i_struct hd_info[] = { {0,0,0,0,0,0},{0,0,0,0,0,0} }; +static int NR_HD = 0; +#endif + +static struct hd_struct { + long start_sect; + long nr_sects; +} hd[5*MAX_HD]={{0,0},}; + +#define port_read(port,buf,nr) \ +__asm__("cld;rep;insw"::"d" (port),"D" (buf),"c" (nr)) + +#define port_write(port,buf,nr) \ +__asm__("cld;rep;outsw"::"d" (port),"S" (buf),"c" (nr)) + +extern void hd_interrupt(void); +extern void rd_load(void); + +/* This may be used only once, enforced by 'static int callable' */ +int sys_setup(void * BIOS) +{ + static int callable = 1; + int i,drive; + unsigned char cmos_disks; + struct partition *p; + struct buffer_head * bh; + + if (!callable) + return -1; + callable = 0; +#ifndef HD_TYPE + for (drive=0 ; drive<2 ; drive++) { + hd_info[drive].cyl = *(unsigned short *) BIOS; + hd_info[drive].head = *(unsigned char *) (2+BIOS); + hd_info[drive].wpcom = *(unsigned short *) (5+BIOS); + hd_info[drive].ctl = *(unsigned char *) (8+BIOS); + hd_info[drive].lzone = *(unsigned short *) (12+BIOS); + hd_info[drive].sect = *(unsigned char *) (14+BIOS); + BIOS += 16; + } + if (hd_info[1].cyl) + NR_HD=2; + else + NR_HD=1; +#endif + for (i=0 ; i are the primary drives in the system, and + the ones reflected as drive 1 or 2. + + The first drive is stored in the high nibble of CMOS + byte 0x12, the second in the low nibble. This will be + either a 4 bit drive type or 0xf indicating use byte 0x19 + for an 8 bit type, drive 1, 0x1a for drive 2 in CMOS. + + Needless to say, a non-zero value means we have + an AT controller hard disk for that drive. + + + */ + + if ((cmos_disks = CMOS_READ(0x12)) & 0xf0) + if (cmos_disks & 0x0f) + NR_HD = 2; + else + NR_HD = 1; + else + NR_HD = 0; + for (i = NR_HD ; i < 2 ; i++) { + hd[i*5].start_sect = 0; + hd[i*5].nr_sects = 0; + } + for (drive=0 ; driveb_data[510] != 0x55 || (unsigned char) + bh->b_data[511] != 0xAA) { + printk("Bad partition table on drive %d\n\r",drive); + panic(""); + } + p = 0x1BE + (void *)bh->b_data; + for (i=1;i<5;i++,p++) { + hd[i+5*drive].start_sect = p->start_sect; + hd[i+5*drive].nr_sects = p->nr_sects; + } + brelse(bh); + } + if (NR_HD) + printk("Partition table%s ok.\n\r",(NR_HD>1)?"s":""); + rd_load(); + mount_root(); + return (0); +} + +static int controller_ready(void) +{ + /* int retries=10000; */ + int retries=100000; + + /* while (--retries && (inb_p(HD_STATUS)&0xc0)!=0x40); */ + while (--retries && (inb_p(HD_STATUS)&0x80)); + return (retries); +} + +static int win_result(void) +{ + int i=inb_p(HD_STATUS); + + if ((i & (BUSY_STAT | READY_STAT | WRERR_STAT | SEEK_STAT | ERR_STAT)) + == (READY_STAT | SEEK_STAT)) + return(0); /* ok */ + if (i&1) i=inb(HD_ERROR); + return (1); +} + +static void hd_out(unsigned int drive,unsigned int nsect,unsigned int sect, + unsigned int head,unsigned int cyl,unsigned int cmd, + void (*intr_addr)(void)) +{ + register int port asm("dx"); + + if (drive>1 || head>15) + panic("Trying to write bad sector"); + if (!controller_ready()) + panic("HD controller not ready"); + do_hd = intr_addr; + outb_p(hd_info[drive].ctl,HD_CMD); + port=HD_DATA; + outb_p(hd_info[drive].wpcom>>2,++port); + outb_p(nsect,++port); + outb_p(sect,++port); + outb_p(cyl,++port); + outb_p(cyl>>8,++port); + outb_p(0xA0|(drive<<4)|head,++port); + outb(cmd,++port); +} + +static int drive_busy(void) +{ + unsigned int i; + + for (i = 0; i < 10000; i++) + if (READY_STAT == (inb_p(HD_STATUS) & (BUSY_STAT|READY_STAT))) + break; + i = inb(HD_STATUS); + i &= BUSY_STAT | READY_STAT | SEEK_STAT; + if (i == READY_STAT | SEEK_STAT) + return(0); + printk("HD controller times out\n\r"); + return(1); +} + +static void reset_controller(void) +{ + int i; + + outb(4,HD_CMD); + for(i = 0; i < 100; i++) nop(); + outb(hd_info[0].ctl & 0x0f ,HD_CMD); + if (drive_busy()) + printk("HD-controller still busy\n\r"); + if ((i = inb(HD_ERROR)) != 1) + printk("HD-controller reset failed: %02x\n\r",i); +} + +static void reset_hd(int nr) +{ + reset_controller(); + hd_out(nr,hd_info[nr].sect,hd_info[nr].sect,hd_info[nr].head-1, + hd_info[nr].cyl,WIN_SPECIFY,&recal_intr); +} + +void unexpected_hd_interrupt(void) +{ + printk("Unexpected HD interrupt\n\r"); +} + +static void bad_rw_intr(void) +{ + if (++CURRENT->errors >= MAX_ERRORS) + end_request(0); + if (CURRENT->errors > MAX_ERRORS/2) + reset = 1; +} + +static void read_intr(void) +{ + if (win_result()) { + bad_rw_intr(); + do_hd_request(); + return; + } + port_read(HD_DATA,CURRENT->buffer,256); + CURRENT->errors = 0; + CURRENT->buffer += 512; + CURRENT->sector++; + if (--CURRENT->nr_sectors) { + do_hd = &read_intr; + return; + } + end_request(1); + do_hd_request(); +} + +static void write_intr(void) +{ + if (win_result()) { + bad_rw_intr(); + do_hd_request(); + return; + } + if (--CURRENT->nr_sectors) { + CURRENT->sector++; + CURRENT->buffer += 512; + do_hd = &write_intr; + port_write(HD_DATA,CURRENT->buffer,256); + return; + } + end_request(1); + do_hd_request(); +} + +static void recal_intr(void) +{ + if (win_result()) + bad_rw_intr(); + do_hd_request(); +} + +void do_hd_request(void) +{ + int i,r; + unsigned int block,dev; + unsigned int sec,head,cyl; + unsigned int nsect; + + INIT_REQUEST; + dev = MINOR(CURRENT->dev); + block = CURRENT->sector; + if (dev >= 5*NR_HD || block+2 > hd[dev].nr_sects) { + end_request(0); + goto repeat; + } + block += hd[dev].start_sect; + dev /= 5; + __asm__("divl %4":"=a" (block),"=d" (sec):"0" (block),"1" (0), + "r" (hd_info[dev].sect)); + __asm__("divl %4":"=a" (cyl),"=d" (head):"0" (block),"1" (0), + "r" (hd_info[dev].head)); + sec++; + nsect = CURRENT->nr_sectors; + if (reset) { + reset = 0; + recalibrate = 1; + reset_hd(CURRENT_DEV); + return; + } + if (recalibrate) { + recalibrate = 0; + hd_out(dev,hd_info[CURRENT_DEV].sect,0,0,0, + WIN_RESTORE,&recal_intr); + return; + } + if (CURRENT->cmd == WRITE) { + hd_out(dev,nsect,sec,head,cyl,WIN_WRITE,&write_intr); + for(i=0 ; i<3000 && !(r=inb_p(HD_STATUS)&DRQ_STAT) ; i++) + /* nothing */ ; + if (!r) { + bad_rw_intr(); + goto repeat; + } + port_write(HD_DATA,CURRENT->buffer,256); + } else if (CURRENT->cmd == READ) { + hd_out(dev,nsect,sec,head,cyl,WIN_READ,&read_intr); + } else + panic("unknown hd-command"); +} + +void hd_init(void) +{ + blk_dev[MAJOR_NR].request_fn = DEVICE_REQUEST; + set_intr_gate(0x2E,&hd_interrupt); + outb_p(inb_p(0x21)&0xfb,0x21); + outb(inb_p(0xA1)&0xbf,0xA1); +} diff --git a/linux-0.11-lab/cur/linux/kernel/blk_drv/hd.o b/linux-0.11-lab/cur/linux/kernel/blk_drv/hd.o new file mode 100644 index 0000000000000000000000000000000000000000..bf2b0d10bc58477ea1758f63f765ba3eab8d6225 GIT binary patch literal 15520 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/blk_drv/ll_rw_blk.c b/linux-0.11-lab/cur/linux/kernel/blk_drv/ll_rw_blk.c new file mode 100644 index 0000000..f57d998 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/blk_drv/ll_rw_blk.c @@ -0,0 +1,165 @@ +/* + * linux/kernel/blk_dev/ll_rw.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * This handles all read/write requests to block devices + */ +#include +#include +#include +#include + +#include "blk.h" + +/* + * The request-struct contains all necessary data + * to load a nr of sectors into memory + */ +struct request request[NR_REQUEST]; + +/* + * used to wait on when there are no free requests + */ +struct task_struct * wait_for_request = NULL; + +/* blk_dev_struct is: + * do_request-address + * next-request + */ +struct blk_dev_struct blk_dev[NR_BLK_DEV] = { + { NULL, NULL }, /* no_dev */ + { NULL, NULL }, /* dev mem */ + { NULL, NULL }, /* dev fd */ + { NULL, NULL }, /* dev hd */ + { NULL, NULL }, /* dev ttyx */ + { NULL, NULL }, /* dev tty */ + { NULL, NULL } /* dev lp */ +}; + +static inline void lock_buffer(struct buffer_head * bh) +{ + cli(); + while (bh->b_lock) + sleep_on(&bh->b_wait); + bh->b_lock=1; + sti(); +} + +static inline void unlock_buffer(struct buffer_head * bh) +{ + if (!bh->b_lock) + printk("ll_rw_block.c: buffer not locked\n\r"); + bh->b_lock = 0; + wake_up(&bh->b_wait); +} + +/* + * add-request adds a request to the linked list. + * It disables interrupts so that it can muck with the + * request-lists in peace. + */ +static void add_request(struct blk_dev_struct * dev, struct request * req) +{ + struct request * tmp; + + req->next = NULL; + cli(); + if (req->bh) + req->bh->b_dirt = 0; + if (!(tmp = dev->current_request)) { + dev->current_request = req; + sti(); + (dev->request_fn)(); + return; + } + for ( ; tmp->next ; tmp=tmp->next) + if ((IN_ORDER(tmp,req) || + !IN_ORDER(tmp,tmp->next)) && + IN_ORDER(req,tmp->next)) + break; + req->next=tmp->next; + tmp->next=req; + sti(); +} + +static void make_request(int major,int rw, struct buffer_head * bh) +{ + struct request * req; + int rw_ahead; + +/* WRITEA/READA is special case - it is not really needed, so if the */ +/* buffer is locked, we just forget about it, else it's a normal read */ + if (rw_ahead = (rw == READA || rw == WRITEA)) { + if (bh->b_lock) + return; + if (rw == READA) + rw = READ; + else + rw = WRITE; + } + if (rw!=READ && rw!=WRITE) + panic("Bad block dev command, must be R/W/RA/WA"); + lock_buffer(bh); + if ((rw == WRITE && !bh->b_dirt) || (rw == READ && bh->b_uptodate)) { + unlock_buffer(bh); + return; + } +repeat: +/* we don't allow the write-requests to fill up the queue completely: + * we want some room for reads: they take precedence. The last third + * of the requests are only for reads. + */ + if (rw == READ) + req = request+NR_REQUEST; + else + req = request+((NR_REQUEST*2)/3); +/* find an empty request */ + while (--req >= request) + if (req->dev<0) + break; +/* if none found, sleep on new requests: check for rw_ahead */ + if (req < request) { + if (rw_ahead) { + unlock_buffer(bh); + return; + } + sleep_on(&wait_for_request); + goto repeat; + } +/* fill up the request-info, and add it to the queue */ + req->dev = bh->b_dev; + req->cmd = rw; + req->errors=0; + req->sector = bh->b_blocknr<<1; + req->nr_sectors = 2; + req->buffer = bh->b_data; + req->waiting = NULL; + req->bh = bh; + req->next = NULL; + add_request(major+blk_dev,req); +} + +void ll_rw_block(int rw, struct buffer_head * bh) +{ + unsigned int major; + + if ((major=MAJOR(bh->b_dev)) >= NR_BLK_DEV || + !(blk_dev[major].request_fn)) { + printk("Trying to read nonexistent block-device\n\r"); + return; + } + make_request(major,rw,bh); +} + +void blk_dev_init(void) +{ + int i; + + for (i=0 ; iYkGs}N`|^F* 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 + +#include +#include +#include +#include +#include +#include +#include + +#define MAJOR_NR 1 +#include "blk.h" + +char *rd_start; +int rd_length = 0; + +void do_rd_request(void) +{ + int len; + char *addr; + + INIT_REQUEST; + addr = rd_start + (CURRENT->sector << 9); + len = CURRENT->nr_sectors << 9; + if ((MINOR(CURRENT->dev) != 1) || (addr+len > rd_start+rd_length)) { + end_request(0); + goto repeat; + } + if (CURRENT-> cmd == WRITE) { + (void ) memcpy(addr, + CURRENT->buffer, + len); + } else if (CURRENT->cmd == READ) { + (void) memcpy(CURRENT->buffer, + addr, + len); + } else + panic("unknown ramdisk-command"); + end_request(1); + goto repeat; +} + +/* + * Returns amount of memory which needs to be reserved. + */ +long rd_init(long mem_start, int length) +{ + int i; + char *cp; + + blk_dev[MAJOR_NR].request_fn = DEVICE_REQUEST; + rd_start = (char *) mem_start; + rd_length = length; + cp = rd_start; + for (i=0; i < length; i++) + *cp++ = '\0'; + return(length); +} + +/* + * If the root device is the ram disk, try to load it. + * In order to do this, the root device is originally set to the + * floppy, and we later change it to be ram disk. + */ +void rd_load(void) +{ + struct buffer_head *bh; + struct super_block s; + int block = 256; /* Start at block 256 */ + int i = 1; + int nblocks; + char *cp; /* Move pointer */ + + if (!rd_length) + return; + printk("Ram disk: %d bytes, starting at 0x%x\n", rd_length, + (int) rd_start); + if (MAJOR(ROOT_DEV) != 2) + return; + bh = breada(ROOT_DEV,block+1,block,block+2,-1); + if (!bh) { + printk("Disk error while looking for ramdisk!\n"); + return; + } + __asm__ volatile ("cld"); /* by wyj */ + *((struct d_super_block *) &s) = *((struct d_super_block *) bh->b_data); + brelse(bh); + if (s.s_magic != SUPER_MAGIC) + /* No ram disk image present, assume normal floppy boot */ + return; + nblocks = s.s_nzones << s.s_log_zone_size; + if (nblocks > (rd_length >> BLOCK_SIZE_BITS)) { + printk("Ram disk image too big! (%d blocks, %d avail)\n", + nblocks, rd_length >> BLOCK_SIZE_BITS); + return; + } + printk("Loading %d bytes into ram disk... 0000k", + nblocks << BLOCK_SIZE_BITS); + cp = rd_start; + while (nblocks) { + if (nblocks > 2) + bh = breada(ROOT_DEV, block, block+1, block+2, -1); + else + bh = bread(ROOT_DEV, block); + if (!bh) { + printk("I/O error on block %d, aborting load\n", + block); + return; + } + (void) memcpy(cp, bh->b_data, BLOCK_SIZE); + brelse(bh); + printk("\010\010\010\010\010%4dk",i); + cp += BLOCK_SIZE; + block++; + nblocks--; + i++; + } + printk("\010\010\010\010\010done \n"); + ROOT_DEV=0x0101; +} diff --git a/linux-0.11-lab/cur/linux/kernel/blk_drv/ramdisk.o b/linux-0.11-lab/cur/linux/kernel/blk_drv/ramdisk.o new file mode 100644 index 0000000000000000000000000000000000000000..d37a922496b20c46741e78e22466958ee16e9dcd GIT binary patch literal 10664 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 azd^gt2s%I$JikGRTt|uA(-65=A^s1$?rygL literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/Makefile b/linux-0.11-lab/cur/linux/kernel/chr_drv/Makefile new file mode 100644 index 0000000..9d4d8d1 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/chr_drv/Makefile @@ -0,0 +1,68 @@ +# +# Makefile for the FREAX-kernel character device drivers. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# + +AR =ar +AS =as +LD =ld +LDFLAGS =-s -x +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -finline-functions -nostdinc -fno-stack-protector -I../../include +CPP =gcc -E -nostdinc -I../../include + +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< + +OBJS = tty_io.o console.o keyboard.2.o serial.o rs_io.o \ + tty_ioctl.o + +chr_drv.a: $(OBJS) + $(AR) rcs chr_drv.a $(OBJS) + sync + +keyboard.2.s: keyboard.S ../../include/linux/config.h + $(CPP) -traditional keyboard.S -o keyboard.2.s + +clean: + rm -f core *.o *.a tmp_make keyboard.2.s + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +console.s console.o : console.c ../../include/linux/sched.h \ + ../../include/linux/head.h ../../include/linux/fs.h \ + ../../include/sys/types.h ../../include/linux/mm.h ../../include/signal.h \ + ../../include/linux/tty.h ../../include/termios.h ../../include/asm/io.h \ + ../../include/asm/system.h +serial.s serial.o : serial.c ../../include/linux/tty.h ../../include/termios.h \ + ../../include/linux/sched.h ../../include/linux/head.h \ + ../../include/linux/fs.h ../../include/sys/types.h ../../include/linux/mm.h \ + ../../include/signal.h ../../include/asm/system.h ../../include/asm/io.h +tty_io.s tty_io.o : tty_io.c ../../include/ctype.h ../../include/errno.h \ + ../../include/signal.h ../../include/sys/types.h \ + ../../include/linux/sched.h ../../include/linux/head.h \ + ../../include/linux/fs.h ../../include/linux/mm.h ../../include/linux/tty.h \ + ../../include/termios.h ../../include/asm/segment.h \ + ../../include/asm/system.h +tty_ioctl.s tty_ioctl.o : tty_ioctl.c ../../include/errno.h ../../include/termios.h \ + ../../include/linux/sched.h ../../include/linux/head.h \ + ../../include/linux/fs.h ../../include/sys/types.h ../../include/linux/mm.h \ + ../../include/signal.h ../../include/linux/kernel.h \ + ../../include/linux/tty.h ../../include/asm/io.h \ + ../../include/asm/segment.h ../../include/asm/system.h diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/chr_drv.a b/linux-0.11-lab/cur/linux/kernel/chr_drv/chr_drv.a new file mode 100644 index 0000000000000000000000000000000000000000..d2f3869a9d5cd226117476be64275b50d1cf4aa7 GIT binary patch literal 68902 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ਞ(_ z25G!GPx?&Kj)!YV?Htm657&^|BT1)uxQ5iuC7l5p@;uW0{nJngJD=t=4If2pE~;_h z&HBetqUY?)5A5S_9W6l|9YfrPbQu1;Tlr=EYib0Ttlkq91qu!YC7M;HKdv@ z^l%NSJ%##3kb@49o&X@F9={CRaH9}%fdl( zm#R*(*#p(3pxKpLhQ*bI*$HD0LgfDkDluW)*)VPRe*x18MWk*2?@5m*?f4f^X98)z z|3Sn}n8;S2=KmAvNi@?7E6yN#5u{2w%}D0*@if~>8-j6${}xzqdeMU6uS1@l-lT2+ zELd>TNjv^G5W&e%*Afrc<~e=tfEpEHn-x%_@Ge?XP6v*SX+_VsnnZm?n9Ic6=f}=Frj&F zLZ|X2b@M`Vy^2zQDqj8XVpr1Ke3Ow-6FAP)3f{)tUuF(Nip9$4LkQ1Y!)jXMn$3(d zvo0Gk24c#9BWu|iQamr*f4WMW^Djh;$K- zig}&M7YWW%smws6L0GK{p|n9Gcp8JR1<4S4rZ68d$3b!fj+MD> zK(c#iABi1W7US1a^x9J^_(=N}M7OpsH-@~->aMXK58wjJ^tRmq1E-dw$}OI2%nLKu zvOu+#ZW@uy&6L&&+cUn z+a5ve?9O=g2Sxo#yj8TFI=ii57^mwd@DA07gJsIf`lDUy18iEKz}$O1$h$G%ZI)o- z*-C&KHwFx%#w0DkRKysN&svzQ1?mpMzgQP%X&X#rz;zT%(Hi|J$Y9Nfw1C}qz+b2_ zbv;P0CrCjljZV{oArxHCd`#DZYzoe!V1~9aoPs6_&enn)2!?U>ig}I}RvvrJHDafITIl8jI8=1rKWBydNIIrgpN=8z0pGfWkb6O2XyH?^H zkf&eFz+YKB2kOPrpSc#g`$A_=+|pyT2D@vev^Rcvw9j49oZzlacDfc)C%UVgliX#| z$=#Pb`{R~7BN0rQ-37lzXhB#C>n=wo8*tZJr|GrUz4Q|6xV6x+CAxe^vFA$YT(RA4 zC2yaeQmiMY*91w})m74dJ*8Omj4M?4HPZvSR{vUP#_odX`1QkTL3H;8%9#>NRwSQt z;)-NhV0|hSxk6hM2TS(j&Eq;CtFU8IStOm+Q(F~l$cc%G{?KGBneXjWE1@-s9v~UO zB6pULi=bu2xGaM1D#?@q)cDNR&+Z)o1RFm>Kevn@fck>f&sZpfwaj0%{uwI@^*c}% zG%gF7(I?|qI#=j5&5)`!%|N~OOfO&ljP=dXK-WPp#N^^dz5&ZMt@rwN=55`IwYEdk zv#=KT81^@_hE7&tTYSG!c#x}uv-tOBoo9`+z?1CU>$Es65C8hvO`ggHo>LdpIZryv zurPUxXX*Q%k-1&0|NS|xtsCp1wAHiHdB_uRW_2+sPVOA6^xf%X<(Cdke-mquiB9SE zq3K(n-1))K#hz3r=!xVy=Wfkcd)C%$=dzl`o-~M?7QC6~&_eVcJEdzlIJ^@&6%=w>-O!XTer?R>&7?p zw&tmo!WTPzpX>@q-?=l|axRTu^48EV$DEeFef!YKPIOMlIaZ2A%?_5Ut0l$JH=W7O z**4d@`DyN=~Yl5DeO((b1lQL`e250i_?N8q5 z#xuU7EVO6~>ztqdHo6A>X;q+>(ye6*cwk*4*zB$a*wOrE~ zTcW)bt3b8oue4aZvZlGQwtP)lBNi(})e=uQL!hk_7jR>$5srj)vj0nqxhtBm(qUyy zWw?QhVAbl}W~_N`Zp6Co6PI^u#YQYxE~9UrZmYd9?qAvvi8R!yg%kg+b>CcQ@i{BL zV+%k&d+E32fXB29t3PB7c--=DEQrOi=JI9)H)A<_c?8Ghgyr7<-Syq|94zVDstebl zFj)SN>f&w7&s+43I{%6bz2lBXQ+Qcyy|;+VmvPy3qzp^Lm(|qAWd;qJ7av*5@|9PI zS2Wj@&H2)6#Hn3JZCMyD>%paisWqivdTsc!hDgKeH7I9A*Aj8*GRjc*_2H^uYUO_1 za&Ts6mcie1)$eRs7*5GtgNACtFCzvu-uRLS8 zJ)S2ZsrPVGIac4tuMz*e1>s%80(V8YUJTx28Mv%|*TvNP2QH%QH zmxpUH*ZY?>HLNoJtE#V7%{;zwcrlz&np0~~Yss5=? zq&ia%q+*ss{RnpVHd0T0>u5K1l_sYEd&G6?78c;s1}Bs5Eh1&3Ov~?r+`Y@A)wHJW&I&@Z@9QJPDG6SvdnZGc z6?O3C*7WyS&)?Lb1!}4P|2u2@9_yX< z{Mg;&#ydNV!+PX46ep`+vf^Z88262WuHJv*w$T})LvZ!B3hf5jxh|!Vdfe{BPTH+9 z>hVdrySc}A2L$ouIEZq*2pP+Po073|kdCVc;}vA|r;xdun{IrX4Ev-I&p(hDZ{tqJ z&UDkTGtGE=v&S38QP&8<;z)2^TfF?M`v9;FbS;$!+A%@(1@gEtU*vIkV#kj>-*sVr z-EcJjSl?v$Jn%ecy5UPf^Lp&^ji7_rS@qQC!{i}x{0*S9<9OciWggu4KLni<$NvO0 zsy-I}bI_>b7=J(LqB#CR(Cl-rJ-&++isSc!E{@|5fG&ySp8~xEdk8!8e+YOhcGuqX zpt^pAbFbax8^GUz47>Hc3jAGhJfDKP*LCV| z1n*wc$$tyHd(9;uzj+Lval5t?eN^zw*tL07&xq$!yBJU&)l<4e9(4wZ=L5zzWWgPK z^+tYfi^~%G+0VecV-JS&g&23dLH@BG`UiXPe5m7&J*fW|31|KFVl8&fHsa*cf;?Bz4$n!%T0!L_0X*kIl=GZJ+#t9~aI4^V1#b~#AE*A01@9AlP>`>% zGyD&NuL!;-_*X&oL=Sqna47vm!Cr#O2Lr-~3O`D4vfy+7X&B1o`NbdXoib3(ga)6s!?kE!ZOXGr>oQ!*HD=qOP71d_nNA zV7uUPBGPp*ZzA>=JVh{9aDw10!Se;n1eH&WVR(5PyoJ{~o)GyV!T%H-fMEjD86h}I zaH3#HaE9P4!3Bclf^~wc1nGpIcCQosiQq25-wHk__(#Fl1pgxVj-c|50ec=t+w}|f z6PzV@k>EzbZwfvkNSE}?myJmZF;Os8FkLWHaH!z71%F6Hy*@1bUcuiA9uj;>@Xvy8 z2)--$PeJ7q1MMOi!!hP3U9i94se<`}HwtbSyi@SUfg8vdsz=fM~x-KC07Nn~K@}~<< z6buPoBv>XG7Q9BVMR1eg4+VcFNMDS!{{j)m^H0M6Metq0V}i#8@pgoY*H7>i!J&e~ z1@i=F2%aZ6UvQydnP8RRRe~D?+XS}=ep_&x;QfM+2<{g=DEN%vbAs;){!{Q%K|14S zeK>;If+Gb-3yv2&OK`DZSa7-E3c;0v*9+bx_G4+$O;d`<8JK_Bi{ zGT;3L&k!6Bv~W`*B>YUl^9AP%UMjd$uv)NAaFyUyf*S-k34TNHTY^s$(Vkuv{w=|G z1&;~xrZn@NEO?q=f#3weiv$-7Ruf^rQTSDYEh29d{@a4v1s@XJEBG`KcAgjh6~QAS ze^2;hf@k6;5%ZfbI970?;B>)Rf^!8+1uqk9Ax_0TF~QBmX@;??H?SDvKWrw(Oh`&0 zPS*<2{S+cQ3Nr+Ge}?+JFGCCpW(y7%%n{5NEEMGZ6vpFy6k;T9P8N@bOgD!j`B3Y3_&#y zf;?0BpkTJ(aKRkGd_groLcAj3CkciGiv>#rXA7$N6XMMmeu3a(!6kwiP8sG{nTKMM ziDqq>K=q0%aDbFIi&&(6b25CU=$$9HT(C)Sjo@{HHwb=H@K!-}JYnxi;d$?l_Folz zSMWnYFY}G?-hygg30~D3aJw9u4kC{6FNEJKcu4RM68@_2 zYF+{T_k}+$;f|y2^cPe<_n@bIg93{wN50iO1N<`Kqk`)N+lUCiTligq2L*p8;qM54 zO!$8Z@8!Gz@e7DZuSoc>3%^enKKKy-fbh>q_)Eec7JeYd`$#{F2>nUIpDVafZaw5(-4Z^$gj%$U#frxzmK=^xz#W;`h`Y}d7H{)@SYS@xJkmxudju$1n2jI5vM&Aw4^O8Q+d2==0oIXM8e<@0%hs#@q`pn0KmgR~lqD zym-T&{5@|hnRGZZdD5$qX`LAxc%$wK{ZjNB<#aIMU&r6K6rH{Ht@8VVZv`(ml&_1H z$Lxf`3riO*_??bnc08pCt7HEK^V&EzG1_L?8;g_Dre6Ch-Mdbl#fvyYl*~P zyI)5!J6_U+)p022oTlPQ{#Bu9Uv1kTNzp`pU_&)5=-iu;;6FGHGOS2H9qfsw7QDP^ z-Q5tjzYMoi`!}uQjqFL|S6TO8v-faX)viH{3SMsCgP?Im>9nzvb7j@C>dTkcPCR{yvG|JB6)Tt4*X88q;gy3R%Gzxk3GPghOo|H`locA9J?yg6 z&KN$T?98=^7hE!9-u%*wW}ZLy%Bxe1sTUTXeNM@&b7xN&a*c7-!UfYWo_5}xNoP&@ zq6BakGHweQ+3=RI=+dhf#|c4RqZ&(h*_Y(5>eAbM3O@s_4{9*lXY(l=Vyq|X+k8qk zSbXu&*%O(pm1akhCY3k&CSASC%0a83B|k(Vh?X>4IUy}di&*}3!#WXI@bZy|=(xM6XeAT*mR7WTgHlea26{`FPgibP$1$!#$7a75G?jZrwR;PVuBV;Hxd?XD-Vy66zp3i?l2{zPrv!RQ9FJ*$!C|4^Ok+BT z9G8XVnV@Up_zOYva-la4!xP`+cSM*6`;R8^LVV?ng-vS)6hP6&(q!5PPxL{-N;w=;IV21pTAV!2~^)(>{`4;*Bj~!iM3()C<*7Q zB|9z@@Wmea0%AD7EL>plb31xzRYjz!7T?T_;H!v=jN+rX5u>)bx~7UUA(~uXh>G&Y zW|f3WZuwIE9Y2^*@`|Pge6LV_3{fwR!WyYjSPiyRzVpW*$qqt-^~xwdEm;%(te2Wj_}ot1w}P6h8&+|l zRRr~)h26w4I9-ta*}_SnRQRQWb;Qwl7f1L91osL4PVf(ce-eC4@IAqQ2zrnv(@hfW zC8*v#0-Y=TSivcRbacdciv&4`C$HW$0;+q+K=qChP`z6ORvJAGliccsO}v@ev$B{f^_!8e3uJ`1#1NB1Xl<~1=k2(EqJZq2EkUr&4OD6 zZxXy&@D{-xf_DnuEx1$gXMzt1{z~u>!M%cy3qC3MwBWOX&kMdJ_(#E41>Y2G7kpRn zsNmlPKNS2_(8M%S9e+Xf?h)!WMfhHVeFO&xo+6kfI81Pa;7Gv&!7+m41=TxCNN1|> zGX!S}&Jnyo@FKxd!Ak|p1;c_hf^~u`1fzm$1g{pnR&ax0tKeqAt%5fR-Yj^F;10n% z1@9KzDflzN2Lyj5_=w^r3Yr*mspBu0 zD3~JHOHh4h3dcjeiw8VK4i&IKfLLG`X5?5z+!D!4}QYQbv-Hwd;0ZWi1sc$47Gg0~3n5WG|HZo!>` zKNEaF@K=J52<{bx_k)`9+Suorf?s$Kf83Z+LA8DH_nEHZq!t^7E!c)*{ZKDMe?ui> z^IXrabr5Q2zxkl(t5|XLPz?XYoS4YRJCwk)3nPbkfxU}!%WhG4do(71k74>3rbk}* zlg{{65JzP7rbK&CataT!#xQ%Eq45^zh?5l?8-u- zUH**I;i;J40vPreh#z7Yd=qCV-^3rWWU((SWazIbjNcc@QSx;mTp2@MhLr2#mV*{- zv1;0GWcalAK4y9NaWin(Y;!$+%?nXC-(vk>n}ITLv#bR5;Ky|6`O>lzW&=D|Atc)x z`wf7dMfo_Aa21JIR*@3p83yR_q#gT5lusb-w}be#CUW+iWGkUqpGD zmBgnt_9e`ChLw~+W&!ij-%4tVF_~7<=}bt41g&K47nf?;R#HYRWVn^A{o>Mej+Iow zkWw=FR#G2;W(uvO?KG`IimasUSjZ$RS^LEuhL|BMX%Y*$kjykIiSI*brr1i>esLLc zwv{xHA&bbASV#St$7xy|ahmel)i^~rj9W(ENKHdFI_4KWMIoxs1f6LgCBq ziQv7yJqY)*uO7m#dP*ld(D#tGWqbPp(k{o3FUZ5>9fmlZIw?iR@T>q`lyE8C+u3}* zCqW$yR4L>MWz@E8PDvA%FnQbFPn~koj{Pj|a6qe1s+}W87@}myBCYdbmA^`ZY`|$M#VFa?-i>I?~HY=i8T)uBH7^_Gr>|q(|GQ z(@s6=vqVq#GXkAAtW~p5p9v zR4k;1Ve|bmdkkqiQTzWT?by7}W{)H7hn)U@NvGK#Qa+w^2ITbrOS*re_Ww&dGg15h zB^|V{M7s85(%FgH|1as`iQ4}!>6}FE|Ce-rqW1qwx-e1u|0P`nIsN~Vo&-7l|B?$ zdlu9Dj>%#edsuI2phSz^-3JZ3CM#vjL}-Ko7*}OHRD;3ytpXk zGqv(6_~M5MFPa?3?;KLwCSW|!UpaRj!}Ai;$v~>iiHbTtmX4PvtQk-rU<~{%a_bq# zxP!Q|(3{9pmjMTR!&1|eJ*k6I>1rw3}Wx?W7^a=qwu zceI!o=SmS#@y<@Xqs8R7P#g-s>#Z@x_1~E4x?Y5@{F&)!wec<>zoH*T*OMT=ndiC= zq@TdPF*k(Cab6ecd$8Y$A>s|Or|-oq)aXEQKnMqg+9Tnhu5`3Oy`hbxflUwVNV(%U z($8bJj9c*g?>!Rs@J0A}{t0nkSdIECXuHd~Aesys5nK);E6w7O5Ttl41m$`xL_1M# z3aO`@Bq0tWqX9sIMm5l!?4-W{FL&y1=bUq$7n~QKd=lQgRQDOQXPgvwr2Q#s{;+!a1D)(;YzpQ#yRI* z6r3I`%q_|-434ZTZ>p%CTr;|8Ea-~b%HYUl!I4!Bbv2QZRZZn};gO9EYUM42HTBHf zNZ$C4)WF3fMD-0LRlY~!wtpmC5rNmS<}lXpR+cxdfxo8aaCkYOt^t0k45Tsc|B3^( zu15|`!ga6KP*qhHG2;BAac%bhygRi2Y0qaBWi?f`<;#q(?7R#OlMB32#M*|6#q$Ta?sDts1m|V0!!ot}8skt`v7$LrQy1>;pNy{Tv=741@lIA& zp-KX$V`1?{ru>g-*JJ95(Fq>M;@yZTXJ2T@;!X@bN99U+-YQes(V2?%?Jwh1%=IA_ z?>Ov#*i%@{MHnYGHTp4B6CX2uc_&~vr|>e!t*0L_$}?4nzUV6dN-I+BAY_Hu-7Bi= zvnkWM+I88aY%YL~dm&YEXZ{y`Ggbb-u~UcFC5#k| zVZw8$z-^6dK(qQX0QyYq)c+zq9;0{@w6~ZMWpl$g66XZU-KvqlgD}qgVSo_JUkJ1t z2c+>lB1Pi_E;+A<-Ykqkf{Y-Wt9Ksw_;m9zsN!>9rps))^%4f{#sO(u4tp<=kj)J% z2On=Q1behYdw3l@W^V;(#$ma+P4{Dch+CQ98OEJ++<3hy$lMu_xtpuE0RqzQR>MNX zZEo1jkdamwa$qg=YUA|W@ySh)#h0T5<-nLpl_LOj>xH)f_bG0RLd-rg&HuSj|BC-49vf~vpPcAVhApsbJJG*P zT!V%hzVpe;{(U z3lj}y7ZDxeaY0OR4HNSr){=>;W1Ax4&?_83M1##DqJaz-d7j`{!HI(B2wo^yCb(R1 zm0*kDjeCu$d4gqvwSsE|zbUv=klzoY zJ>~BMsQi5Zd9RIf-jyVtF31}}nZiBawEl5!@vBZNb|FeTpH zK&~?>5?n0ElTJg|qp2@^HdQcsRK9vN75w67Q;X3zxN-c!GX~d}R3o28hi?nlksI?a zxNxrT)XUQbU!InL2QdBHdbjm%*=H5(dFL)O+INy~RqwXh+5P9Wylr)6%s3wr7IwVO zfi7(mZ2aX z9;B5zn_%ZXG1OY>Of0n{9>$MXo2I_NnVs_9{{L$)-3~@>Sj{-(YGYmhQ)mLZgW7tI zJr5(G1R;#a_|)T}8790cCTPCP7r(h|&#~v{>Gd3&P%l5uplgqa<{8`gY2|egqS>oC z1oOux({pT+iGasqv2;0&5q;YO2U{L$CGA{(3@$T3u1|IG`s-xt#Nz>Xm%34 znMNH5b{M_scV-W}EaG1uqnU5h_#Sw-eB|%y7LN6=J$U_&CeAM9m6c7O`>v*%Si_H; z8v0<=6K>=7I))l+dk{H|;> z@a~~=YVljYjM)~-uR_$+s+OzZl_hF* zlxwNeayU@cwjPDVtxDSdDDX?Db$jiA5s6uodqLV6{^xWU3ZAMj(|;hM4ScsU%q!=dP$;GX^9nkI4{f8m1}ZXSlV*NGZ6Sv=KQ0a0 zPdZ3?Qz#8DSqy=-9A>s73polQAO|0$-jlW|WNw}fWAnlPX5+L(WGx2=DktHZ7h^G4 zFMI={81;f+>i4LZcRyA2LZzIR-yULL7ump+p?p z92gIpziHW*wsD$?A_r0AAd1Y0t*Gj$$c`L~Y<2+_EFZ0|<+wMRy@O?GTUU)s4C*)^ zQS*&8eGjO1r5CPtIM-HY=XX+Ves+HAA$;2H(B8w|)_r?l^O}dej4wy6aHKgO4e0p5 zz;$h~hn1BX2<$wJ^opRu6063+47Jx&gDr1Qek(FL5HdG>u%^4ksbQQ6I!?EMTN#km z-PqG;U9PeJ&~&#rg=n4a@8WEQ;uaav{;uv1^5+s}<9JT*p*i%}y% z!DbN}hK=-8f-uvGqg2GS+CtfGPaplUTbAQcWTaN)?ynzpcDAw;WVX)D)+zE15`#~$ z2^s8Wwrwg#Qi{5<1k{LUF{FHr<3}Ff){N{U2Vqp(+WdvK=Hnu&ZSe)86K!4P+Uh7) zRnsw9!&nV@8is4g(lAg%x(2@nuYwkw*^sAyyCoXFes-zH@Pw>&<{o2-5yA+qKSnP; z+(qHd26gS45UdQZoRm*X>rr;TDRwXRTd?yzb}wp%PygS>&N<;Z*e}4o2m5cZKZl)j zwRCizQP>Y)r!PXj`}zv@*Rj8io$s{L2Vp1nYp_qpJw8OkW}6%EYx3oLI&I_@kWnvQ z!{QrB9v^;sdvdNtkj>YRJR^ru&7Oc}X%~Qarj?Hhd zdPZ#oort$yoD#5JhI|*hk3R`8l<+O4a5cDW&)5$DI>~V)CCMTs)=7>htzQuFOd##o zNlv8UG@az6k3p+)7^aggE7f?NtdnONFwTHFjUT>B5^K ziC5t#A;>Dg3p{-M?B#nMTvL<8qM#ust2aITqfx65d%Wk>L&xSzGTyn2W!TR!(gmb# zdp;8P&Li#E+bO@0wBLT0^7-%JfTX3|L;51h@kR8tWG-Pb@I`cbNA)gXhVe!8XJZV$ zh|ck|4hiZnqH6|UL`Q&x$QRMQr8JE%qL(s6G58|-51ARo;EU)O246(Kg}GJ?zKC8(1B;m*d=Y&PvvVmK zd=dQ!<0uASL?1-cioqArhs8qhMf5+$m?c)q5*m;^PUQOy3BL=BO|VB+_4?sIP6c7uRu zLcGm=zt8iWbDneWx#ymH?!DjMC))g+d@3S3&q<;#6h%b8i_PgqQABjUSQPcp){2OJ zFZFDBSBGbR5)nPxI#ah+77;zV^|8n?ze+=RQH~MCN$xtH7*XZ&*pl5eEC}C`+pIC7 z{y`pNM3t#vwu9=zunBu7avbi#zWGkc`EZ$jvt7v39l0^v&A-l^5k4Zv*)8o$N!@6x8xZ>UL11S$Zkh&4)K=VfqYT; z7v!DD7l*C*--Rqj6kk~?%MQ_!A^+W$HAWO)-^v;z>QBhVhy>N`)c!hVfz!y}Xg9`E2D;M0B#2 zVV7e(%qR`d5=`Tu^+$Chl4BTA(fRbkAcheYU4R_MFruOhk>eOfRI~s&AH#@>79y9$ zFruP*f2*M`qX><{C7{iE) zE=G>Si?LsVoR_^Rh+2@#!ll@kAXmt~NEIPh#W13xrO0z*7*WwOZRk8=s<%nxz znrjteo3=8DRwJ&D#fXZoK)fLqBPv>hxFOc7?`SRJ#u!FabR}{}$TRckD&+3)UF554 z)t+KRy{v=HIqI5LjHtX$QC4f}(vUMS;*)9Tc&pf&S?OhAu8dDqh11n4xfyiwAp9PE zZzggWehGUyavXN3K(2z*Eg!@E&CR+V7eRiVpd+7K$j7Tfu57vb!}<+E2G?8zJ+C(8 z?l#wmT<2(wxu!oT`-1QXvg8)AVU5#2NB+ggt>N@PQlJ@yVCAn1%lJ_rW{XQhYMXh# zN|cn`DKiUCS4s|@sTorFRY2+%oUL|W}oyFB`=6vm5iQ8?8>fT$$Z%&KP zK=j33BVX3l#_iS8B6p=OmYUqhbr5LI3^(b%(jm6@p@rxsV!Eon{lR#PzhH3}|% zHO+HZnrE@kQ++>qS~%cLl{Y$HN7H;Qmam-tl4&79dt1>bMmt3adtMsSi>hHCXI5go zNb7p%C$C4@$=YirPt*bxJidF?Fn+GX37cw*>HV3A4V{Anli7%qwTAcMCiV{WY#&M} zh3PF`eHXP)a23^ajhCp79WPPnsfy~2DMe9bcTElWpY_+I<|04iZ;qeNgZy7Q_U7=bcgJJ# zXnf$$N8$s?@9@}>(b3_!d^m1UK;p*3qgoV~xOX(ZTBxAG?zdu3y4;i@mTtl%)9-0` zm+5g(WRv!UI5)Jrv#Y0lbKemE>Ms(T4(K+5Qg%8n+HmsgqTrs&z=W9BvwNU#$H$6{ zxocRgH1_l(g|tly<7P@=+tc$h6T;*v?9AS@i3WoyOijKFv1PEmf5-M-y_L{=hFxmK z_Q9Px9Qqsty}hTqz^e+8XC32k5YFRfW!)y;VG=V`ygzq+>wKR!5ZdIo7EQ(W5#D(J+KE@p*VJG=cz7^0_;Lmg!_ zdB>z)AZDoK?Y(;0w6mv&xW7p--1mw;JDDANTW8-;y9)I6i=+%WS=~#+z<^$P!IiZb zw4N=>iPGm9rgLzc@8%yr+Gqs>yq2k)QKr#c=UAAMC*07sG>&JB*_o=t3BB%&B#tN3 zLO%_cJyu9m_uh1??8~$=*=C{MJGAnCaLch3UBZUXz zy5&iiweu!oTGpTh_KhlE@j^b9 zZ)ipK$CrE^K2dhR36DuG-j7D@$5z?c4{pHyejxikCD9Fj-*rOr<6RfmNlKxhA8mwo z+wn>9SEiLZi~SYU?~lpm7w^yO9*gb&2?y6bZkIF0Y&f{pCNoZ>bDq^|Wz0fv68do& zeYtd&f>uS)46YEa)yl&T(s`2ol2+OaooD!dTt@Gc?#E>GA?bcRM&B>pkHhF+lG>1OeO~Cq6zNAY%2NsncXqE>isQ8I<*e==>Ooh z>}&7T+<0PR(`nz%&h33&&Yt{V&kpSpUm`du%xLg`NQV%tk*(w`eGebhSa+!~bGE(_ zh5l*vFSEa;6NvmPb*RAy3^`xnL(*@-xrPNp`ZV@B!v%(nH`tpETMX&**jo)(8PeCW zw;8TCyuomT;YPy_!)`;y7RvV!2^bm7>*i#$M9LhqlU)}-!MF3_>N(@jxT=QH{67L zM-iP@bKtdx+YI*_9x(i};UPo!SXSkD8cq2Z41aCNwF>(QLpZVMe5W1cTLmC*DZtAO zdHsZbtKk8|5yM9fdG|@aXARwhW$CY&?&35`KWVy)3nINh{}nDY{EXom!-Iw+hP-zt z|F;c!v5U^*W$;&quNl5+_&39U8Ro(y|185A!-a-R3|AZSP9Oi94EqfC81lY~^al*T zX829R?;E~oc+Bt(!xM&Y8!}|$Z@%F{!^aJuHvF;SD~50hC^ttZ2zcD^_l7S1hwP1- zRFUrDe+XUt521_yAsn#u+YRqAe9+MGx0UZn(|>6AGegJQR=SJ#!7-1M`pz?K0%dPC z-Np5wUbEk4_J<7*oBfFCE}o$BkDL8%vuAWEW4~q?R)VVMT+^2tUS{@o(|b(6+jJlA z<4Mz9oI&~Jf4=bdce78|rIPw8LD`#4zs9i3aKO^ieZ(LC87H_zW`cf{dr&e#3_h8Mm-MZ+P7Bq#>`hNv|_>Z-b=& E8yu$yWB>pF literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/console.c b/linux-0.11-lab/cur/linux/kernel/chr_drv/console.c new file mode 100644 index 0000000..a12ffbf --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/chr_drv/console.c @@ -0,0 +1,710 @@ +/* + * linux/kernel/console.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * console.c + * + * This module implements the console io functions + * 'void con_init(void)' + * 'void con_write(struct tty_queue * queue)' + * Hopefully this will be a rather complete VT102 implementation. + * + * Beeping thanks to John T Kohl. + */ + +/* + * NOTE!!! We sometimes disable and enable interrupts for a short while + * (to put a word in video IO), but this will work even for keyboard + * interrupts. We know interrupts aren't enabled when getting a keyboard + * interrupt, as we use trap-gates. Hopefully all is well. + */ + +/* + * Code to check for different video-cards mostly by Galen Hunt, + * + */ + +#include +#include +#include +#include + +/* + * These are set up by the setup-routine at boot-time: + */ + +#define ORIG_X (*(unsigned char *)0x90000) +#define ORIG_Y (*(unsigned char *)0x90001) +#define ORIG_VIDEO_PAGE (*(unsigned short *)0x90004) +#define ORIG_VIDEO_MODE ((*(unsigned short *)0x90006) & 0xff) +#define ORIG_VIDEO_COLS (((*(unsigned short *)0x90006) & 0xff00) >> 8) +#define ORIG_VIDEO_LINES (25) +#define ORIG_VIDEO_EGA_AX (*(unsigned short *)0x90008) +#define ORIG_VIDEO_EGA_BX (*(unsigned short *)0x9000a) +#define ORIG_VIDEO_EGA_CX (*(unsigned short *)0x9000c) + +#define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ +#define VIDEO_TYPE_CGA 0x11 /* CGA Display */ +#define VIDEO_TYPE_EGAM 0x20 /* EGA/VGA in Monochrome Mode */ +#define VIDEO_TYPE_EGAC 0x21 /* EGA/VGA in Color Mode */ + +#define NPAR 16 + +extern void keyboard_interrupt(void); + +static unsigned char video_type; /* Type of display being used */ +static unsigned long video_num_columns; /* Number of text columns */ +static unsigned long video_size_row; /* Bytes per row */ +static unsigned long video_num_lines; /* Number of test lines */ +static unsigned char video_page; /* Initial video page */ +static unsigned long video_mem_start; /* Start of video RAM */ +static unsigned long video_mem_end; /* End of video RAM (sort of) */ +static unsigned short video_port_reg; /* Video register select port */ +static unsigned short video_port_val; /* Video register value port */ +static unsigned short video_erase_char; /* Char+Attrib to erase with */ + +static unsigned long origin; /* Used for EGA/VGA fast scroll */ +static unsigned long scr_end; /* Used for EGA/VGA fast scroll */ +static unsigned long pos; +static unsigned long x,y; +static unsigned long top,bottom; +static unsigned long state=0; +static unsigned long npar,par[NPAR]; +static unsigned long ques=0; +static unsigned char attr=0x07; + +static void sysbeep(void); + +/* + * this is what the terminal answers to a ESC-Z or csi0c + * query (= vt100 response). + */ +#define RESPONSE "\033[?1;2c" + +/* NOTE! gotoxy thinks x==video_num_columns is ok */ +static inline void gotoxy(unsigned int new_x,unsigned int new_y) +{ + if (new_x > video_num_columns || new_y >= video_num_lines) + return; + x=new_x; + y=new_y; + pos=origin + y*video_size_row + (x<<1); +} + +static inline void set_origin(void) +{ + cli(); + outb_p(12, video_port_reg); + outb_p(0xff&((origin-video_mem_start)>>9), video_port_val); + outb_p(13, video_port_reg); + outb_p(0xff&((origin-video_mem_start)>>1), video_port_val); + sti(); +} + +static void scrup(void) +{ + if (video_type == VIDEO_TYPE_EGAC || video_type == VIDEO_TYPE_EGAM) + { + if (!top && bottom == video_num_lines) { + origin += video_size_row; + pos += video_size_row; + scr_end += video_size_row; + if (scr_end > video_mem_end) { + __asm__("cld\n\t" + "rep\n\t" + "movsl\n\t" + "movl video_num_columns,%1\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((video_num_lines-1)*video_num_columns>>1), + "D" (video_mem_start), + "S" (origin) + ); + scr_end -= origin-video_mem_start; + pos -= origin-video_mem_start; + origin = video_mem_start; + } else { + __asm__("cld\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" (video_num_columns), + "D" (scr_end-video_size_row) + ); + } + set_origin(); + } else { + __asm__("cld\n\t" + "rep\n\t" + "movsl\n\t" + "movl video_num_columns,%%ecx\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((bottom-top-1)*video_num_columns>>1), + "D" (origin+video_size_row*top), + "S" (origin+video_size_row*(top+1)) + ); + } + } + else /* Not EGA/VGA */ + { + __asm__("cld\n\t" + "rep\n\t" + "movsl\n\t" + "movl video_num_columns,%%ecx\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((bottom-top-1)*video_num_columns>>1), + "D" (origin+video_size_row*top), + "S" (origin+video_size_row*(top+1)) + ); + } +} + +static void scrdown(void) +{ + if (video_type == VIDEO_TYPE_EGAC || video_type == VIDEO_TYPE_EGAM) + { + __asm__("std\n\t" + "rep\n\t" + "movsl\n\t" + "addl $2,%%edi\n\t" /* %edi has been decremented by 4 */ + "movl video_num_columns,%%ecx\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((bottom-top-1)*video_num_columns>>1), + "D" (origin+video_size_row*bottom-4), + "S" (origin+video_size_row*(bottom-1)-4) + ); + } + else /* Not EGA/VGA */ + { + __asm__("std\n\t" + "rep\n\t" + "movsl\n\t" + "addl $2,%%edi\n\t" /* %edi has been decremented by 4 */ + "movl video_num_columns,%%ecx\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((bottom-top-1)*video_num_columns>>1), + "D" (origin+video_size_row*bottom-4), + "S" (origin+video_size_row*(bottom-1)-4) + ); + } +} + +static void lf(void) +{ + if (y+1top) { + y--; + pos -= video_size_row; + return; + } + scrdown(); +} + +static void cr(void) +{ + pos -= x<<1; + x=0; +} + +static void del(void) +{ + if (x) { + pos -= 2; + x--; + *(unsigned short *)pos = video_erase_char; + } +} + +static void csi_J(int par) +{ + long count __asm__("cx"); + long start __asm__("di"); + + switch (par) { + case 0: /* erase from cursor to end of display */ + count = (scr_end-pos)>>1; + start = pos; + break; + case 1: /* erase from start to cursor */ + count = (pos-origin)>>1; + start = origin; + break; + case 2: /* erase whole display */ + count = video_num_columns * video_num_lines; + start = origin; + break; + default: + return; + } + __asm__("cld\n\t" + "rep\n\t" + "stosw\n\t" + ::"c" (count), + "D" (start),"a" (video_erase_char) + ); +} + +static void csi_K(int par) +{ + long count __asm__("cx"); + long start __asm__("di"); + + switch (par) { + case 0: /* erase from cursor to end of line */ + if (x>=video_num_columns) + return; + count = video_num_columns-x; + start = pos; + break; + case 1: /* erase from start of line to cursor */ + start = pos - (x<<1); + count = (x>9), video_port_val); + outb_p(15, video_port_reg); + outb_p(0xff&((pos-video_mem_start)>>1), video_port_val); + sti(); +} + +static void respond(struct tty_struct * tty) +{ + char * p = RESPONSE; + + cli(); + while (*p) { + PUTCH(*p,tty->read_q); + p++; + } + sti(); + copy_to_cooked(tty); +} + +static void insert_char(void) +{ + int i=x; + unsigned short tmp, old = video_erase_char; + unsigned short * p = (unsigned short *) pos; + + while (i++=video_num_columns) + return; + i = x; + while (++i < video_num_columns) { + *p = *(p+1); + p++; + } + *p = video_erase_char; +} + +static void delete_line(void) +{ + int oldtop,oldbottom; + + oldtop=top; + oldbottom=bottom; + top=y; + bottom = video_num_lines; + scrup(); + top=oldtop; + bottom=oldbottom; +} + +static void csi_at(unsigned int nr) +{ + if (nr > video_num_columns) + nr = video_num_columns; + else if (!nr) + nr = 1; + while (nr--) + insert_char(); +} + +static void csi_L(unsigned int nr) +{ + if (nr > video_num_lines) + nr = video_num_lines; + else if (!nr) + nr = 1; + while (nr--) + insert_line(); +} + +static void csi_P(unsigned int nr) +{ + if (nr > video_num_columns) + nr = video_num_columns; + else if (!nr) + nr = 1; + while (nr--) + delete_char(); +} + +static void csi_M(unsigned int nr) +{ + if (nr > video_num_lines) + nr = video_num_lines; + else if (!nr) + nr=1; + while (nr--) + delete_line(); +} + +static int saved_x=0; +static int saved_y=0; + +static void save_cur(void) +{ + saved_x=x; + saved_y=y; +} + +static void restore_cur(void) +{ + gotoxy(saved_x, saved_y); +} + +void con_write(struct tty_struct * tty) +{ + int nr; + char c; + + nr = CHARS(tty->write_q); + while (nr--) { + GETCH(tty->write_q,c); + switch(state) { + case 0: + if (c>31 && c<127) { + if (x>=video_num_columns) { + x -= video_num_columns; + pos -= video_size_row; + lf(); + } + __asm__("movb attr,%%ah\n\t" + "movw %%ax,%1\n\t" + ::"a" (c),"m" (*(short *)pos) + ); + pos += 2; + x++; + } else if (c==27) + state=1; + else if (c==10 || c==11 || c==12) + lf(); + else if (c==13) + cr(); + else if (c==ERASE_CHAR(tty)) + del(); + else if (c==8) { + if (x) { + x--; + pos -= 2; + } + } else if (c==9) { + c=8-(x&7); + x += c; + pos += c<<1; + if (x>video_num_columns) { + x -= video_num_columns; + pos -= video_size_row; + lf(); + } + c=9; + } else if (c==7) + sysbeep(); + break; + case 1: + state=0; + if (c=='[') + state=2; + else if (c=='E') + gotoxy(0,y+1); + else if (c=='M') + ri(); + else if (c=='D') + lf(); + else if (c=='Z') + respond(tty); + else if (x=='7') + save_cur(); + else if (x=='8') + restore_cur(); + break; + case 2: + for(npar=0;npar='0' && c<='9') { + par[npar]=10*par[npar]+c-'0'; + break; + } else state=4; + case 4: + state=0; + switch(c) { + case 'G': case '`': + if (par[0]) par[0]--; + gotoxy(par[0],y); + break; + case 'A': + if (!par[0]) par[0]++; + gotoxy(x,y-par[0]); + break; + case 'B': case 'e': + if (!par[0]) par[0]++; + gotoxy(x,y+par[0]); + break; + case 'C': case 'a': + if (!par[0]) par[0]++; + gotoxy(x+par[0],y); + break; + case 'D': + if (!par[0]) par[0]++; + gotoxy(x-par[0],y); + break; + case 'E': + if (!par[0]) par[0]++; + gotoxy(0,y+par[0]); + break; + case 'F': + if (!par[0]) par[0]++; + gotoxy(0,y-par[0]); + break; + case 'd': + if (par[0]) par[0]--; + gotoxy(x,par[0]); + break; + case 'H': case 'f': + if (par[0]) par[0]--; + if (par[1]) par[1]--; + gotoxy(par[1],par[0]); + break; + case 'J': + csi_J(par[0]); + break; + case 'K': + csi_K(par[0]); + break; + case 'L': + csi_L(par[0]); + break; + case 'M': + csi_M(par[0]); + break; + case 'P': + csi_P(par[0]); + break; + case '@': + csi_at(par[0]); + break; + case 'm': + csi_m(); + break; + case 'r': + if (par[0]) par[0]--; + if (!par[1]) par[1] = video_num_lines; + if (par[0] < par[1] && + par[1] <= video_num_lines) { + top=par[0]; + bottom=par[1]; + } + break; + case 's': + save_cur(); + break; + case 'u': + restore_cur(); + break; + } + } + } + set_cursor(); +} + +/* + * void con_init(void); + * + * This routine initalizes console interrupts, and does nothing + * else. If you want the screen to clear, call tty_write with + * the appropriate escape-sequece. + * + * Reads the information preserved by setup.s to determine the current display + * type and sets everything accordingly. + */ +void con_init(void) +{ + register unsigned char a; + char *display_desc = "????"; + char *display_ptr; + + video_num_columns = ORIG_VIDEO_COLS; + video_size_row = video_num_columns * 2; + video_num_lines = ORIG_VIDEO_LINES; + video_page = ORIG_VIDEO_PAGE; + video_erase_char = 0x0720; + + if (ORIG_VIDEO_MODE == 7) /* Is this a monochrome display? */ + { + video_mem_start = 0xb0000; + video_port_reg = 0x3b4; + video_port_val = 0x3b5; + if ((ORIG_VIDEO_EGA_BX & 0xff) != 0x10) + { + video_type = VIDEO_TYPE_EGAM; + video_mem_end = 0xb8000; + display_desc = "EGAm"; + } + else + { + video_type = VIDEO_TYPE_MDA; + video_mem_end = 0xb2000; + display_desc = "*MDA"; + } + } + else /* If not, it is color. */ + { + video_mem_start = 0xb8000; + video_port_reg = 0x3d4; + video_port_val = 0x3d5; + if ((ORIG_VIDEO_EGA_BX & 0xff) != 0x10) + { + video_type = VIDEO_TYPE_EGAC; + video_mem_end = 0xbc000; + display_desc = "EGAc"; + } + else + { + video_type = VIDEO_TYPE_CGA; + video_mem_end = 0xba000; + display_desc = "*CGA"; + } + } + + /* Let the user known what kind of display driver we are using */ + + display_ptr = ((char *)video_mem_start) + video_size_row - 8; + while (*display_desc) + { + *display_ptr++ = *display_desc++; + display_ptr++; + } + + /* Initialize the variables used for scrolling (mostly EGA/VGA) */ + + origin = video_mem_start; + scr_end = video_mem_start + video_num_lines * video_size_row; + top = 0; + bottom = video_num_lines; + + gotoxy(ORIG_X,ORIG_Y); + set_trap_gate(0x21,&keyboard_interrupt); + outb_p(inb_p(0x21)&0xfd,0x21); + a=inb_p(0x61); + outb_p(a|0x80,0x61); + outb(a,0x61); +} +/* from bsd-net-2: */ + +void sysbeepstop(void) +{ + /* disable counter 2 */ + outb(inb_p(0x61)&0xFC, 0x61); +} + +int beepcount = 0; + +static void sysbeep(void) +{ + /* enable counter 2 */ + outb_p(inb_p(0x61)|3, 0x61); + /* set command for counter 2, 2 byte write */ + outb_p(0xB6, 0x43); + /* send 0x637 for 750 HZ */ + outb_p(0x37, 0x42); + outb(0x06, 0x42); + /* 1/8 second */ + beepcount = HZ/8; +} diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/console.o b/linux-0.11-lab/cur/linux/kernel/chr_drv/console.o new file mode 100644 index 0000000000000000000000000000000000000000..cdb09cf249a683c556a1bd6a57bcc3dbe96270a4 GIT binary patch literal 20896 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" +# 1 "" +# 1 "keyboard.S" + + + + + + + + + + + + + +# 1 "../../include/linux/config.h" 1 + + + + + + + + + + + + + + + + + + + + + +# 36 "../../include/linux/config.h" + +# 47 "../../include/linux/config.h" + +# 14 "keyboard.S" 2 + +.text +.globl keyboard_interrupt + + + + +size = 1024 + +head = 4 +tail = 8 +proc_list = 12 +buf = 16 + +mode: .byte 0 +leds: .byte 2 +e0: .byte 0 + + + + + + +keyboard_interrupt: + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + push %ds + push %es + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + xor %al,%al + inb $0x60,%al + cmpb $0xe0,%al + je set_e0 + cmpb $0xe1,%al + je set_e1 + call key_table(,%eax,4) + movb $0,e0 +e0_e1: inb $0x61,%al + jmp 1f +1: jmp 1f +1: orb $0x80,%al + jmp 1f +1: jmp 1f +1: outb %al,$0x61 + jmp 1f +1: jmp 1f +1: andb $0x7F,%al + outb %al,$0x61 + movb $0x20,%al + outb %al,$0x20 + pushl $0 + call do_tty_interrupt + addl $4,%esp + pop %es + pop %ds + popl %edx + popl %ecx + popl %ebx + popl %eax + iret +set_e0: movb $1,e0 + jmp e0_e1 +set_e1: movb $2,e0 + jmp e0_e1 + + + + + + +put_queue: + pushl %ecx + pushl %edx + movl table_list,%edx # read-queue for console + movl head(%edx),%ecx +1: movb %al,buf(%edx,%ecx) + incl %ecx + andl $size-1,%ecx + cmpl tail(%edx),%ecx # buffer full - discard everything + je 3f + shrdl $8,%ebx,%eax + je 2f + shrl $8,%ebx + jmp 1b +2: movl %ecx,head(%edx) + movl proc_list(%edx),%ecx + testl %ecx,%ecx + je 3f + movl $0,(%ecx) +3: popl %edx + popl %ecx + ret + +ctrl: movb $0x04,%al + jmp 1f +alt: movb $0x10,%al +1: cmpb $0,e0 + je 2f + addb %al,%al +2: orb %al,mode + ret +unctrl: movb $0x04,%al + jmp 1f +unalt: movb $0x10,%al +1: cmpb $0,e0 + je 2f + addb %al,%al +2: notb %al + andb %al,mode + ret + +lshift: + orb $0x01,mode + ret +unlshift: + andb $0xfe,mode + ret +rshift: + orb $0x02,mode + ret +unrshift: + andb $0xfd,mode + ret + +caps: testb $0x80,mode + jne 1f + xorb $4,leds + xorb $0x40,mode + orb $0x80,mode +set_leds: + call kb_wait + movb $0xed,%al + outb %al,$0x60 + call kb_wait + movb leds,%al + outb %al,$0x60 + ret +uncaps: andb $0x7f,mode + ret +scroll: + xorb $1,leds + jmp set_leds +num: xorb $2,leds + jmp set_leds + + + + + +cursor: + subb $0x47,%al + jb 1f + cmpb $12,%al + ja 1f + jne cur2 + testb $0x0c,mode + je cur2 + testb $0x30,mode + jne reboot +cur2: cmpb $0x01,e0 + je cur + testb $0x02,leds + je cur + testb $0x03,mode + jne cur + xorl %ebx,%ebx + movb num_table(%eax),%al + jmp put_queue +1: ret + +cur: movb cur_table(%eax),%al + cmpb $'9,%al + ja ok_cur + movb $'~,%ah +ok_cur: shll $16,%eax + movw $0x5b1b,%ax + xorl %ebx,%ebx + jmp put_queue + + + + + +num_table: + .ascii "789 456 1230," + +cur_table: + .ascii "HA5 DGC YB623" + + + + +func: + pushl %eax + pushl %ecx + pushl %edx + call show_stat + popl %edx + popl %ecx + popl %eax + subb $0x3B,%al + jb end_func + cmpb $9,%al + jbe ok_func + subb $18,%al + cmpb $10,%al + jb end_func + cmpb $11,%al + ja end_func +ok_func: + cmpl $4,%ecx + jl end_func + movl func_table(,%eax,4),%eax + xorl %ebx,%ebx + jmp put_queue +end_func: + ret + + + + +func_table: + .long 0x415b5b1b,0x425b5b1b,0x435b5b1b,0x445b5b1b + .long 0x455b5b1b,0x465b5b1b,0x475b5b1b,0x485b5b1b + .long 0x495b5b1b,0x4a5b5b1b,0x4b5b5b1b,0x4c5b5b1b + +# 294 "keyboard.S" + +key_map: + .byte 0,27 + .ascii "1234567890-=" + .byte 127,9 + .ascii "qwertyuiop[]" + .byte 13,0 + .ascii "asdfghjkl;'" + .byte '`,0 + .ascii "\\zxcvbnm,./" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 + .byte '-,0,0,0,'+ + .byte 0,0,0,0,0,0,0 + .byte '< + .fill 10,1,0 + + +shift_map: + .byte 0,27 + .ascii "!@#$%^&*()_+" + .byte 127,9 + .ascii "QWERTYUIOP{}" + .byte 13,0 + .ascii "ASDFGHJKL:\"" + .byte '~,0 + .ascii "|ZXCVBNM<>?" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 + .byte '-,0,0,0,'+ + .byte 0,0,0,0,0,0,0 + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0@\0$\0\0{[]}\\\0" + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 + .fill 16,1,0 + .byte 0,0,0,0,0 + .byte 0,0,0,0,0,0,0 + .byte '| + .fill 10,1,0 + +# 449 "keyboard.S" + + + + +do_self: + lea alt_map,%ebx + testb $0x20,mode + jne 1f + lea shift_map,%ebx + testb $0x03,mode + jne 1f + lea key_map,%ebx +1: movb (%ebx,%eax),%al + orb %al,%al + je none + testb $0x4c,mode + je 2f + cmpb $'a,%al + jb 2f + cmpb $'},%al + ja 2f + subb $32,%al +2: testb $0x0c,mode + je 3f + cmpb $64,%al + jb 3f + cmpb $64+32,%al + jae 3f + subb $64,%al +3: testb $0x10,mode + je 4f + orb $0x80,%al +4: andl $0xff,%eax + xorl %ebx,%ebx + call put_queue +none: ret + + + + + + +minus: cmpb $1,e0 + jne do_self + movl $'/,%eax + xorl %ebx,%ebx + jmp put_queue + + + + + + +key_table: + .long none,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,ctrl,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,lshift,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,minus,rshift,do_self + .long alt,do_self,caps,func + .long func,func,func,func + .long func,func,func,func + .long func,num,scroll,cursor + .long cursor,cursor,do_self,cursor + .long cursor,cursor,do_self,cursor + .long cursor,cursor,cursor,cursor + .long none,none,do_self,func + .long func,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,unctrl,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,unlshift,none + .long none,none,none,none + .long none,none,none,none + .long none,none,unrshift,none + .long unalt,none,uncaps,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + + + + + +kb_wait: + pushl %eax +1: inb $0x64,%al + testb $0x02,%al + jne 1b + popl %eax + ret + + + + +reboot: + call kb_wait + movw $0x1234,0x472 + movb $0xfc,%al + outb %al,$0x64 +die: jmp die diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/keyboard.S b/linux-0.11-lab/cur/linux/kernel/chr_drv/keyboard.S new file mode 100644 index 0000000..25210b4 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/chr_drv/keyboard.S @@ -0,0 +1,588 @@ +/* + * linux/kernel/keyboard.S + * + * (C) 1991 Linus Torvalds + */ + +/* + * Thanks to Alfred Leung for US keyboard patches + * Wolfgang Thiel for German keyboard patches + * Marc Corsini for the French keyboard + */ + +#include + +.text +.globl keyboard_interrupt + +/* + * these are for the keyboard read functions + */ +size = 1024 /* must be a power of two ! And MUST be the same + as in tty_io.c !!!! */ +head = 4 +tail = 8 +proc_list = 12 +buf = 16 + +mode: .byte 0 /* caps, alt, ctrl and shift mode */ +leds: .byte 2 /* num-lock, caps, scroll-lock mode (nom-lock on) */ +e0: .byte 0 + +/* + * con_int is the real interrupt routine that reads the + * keyboard scan-code and converts it into the appropriate + * ascii character(s). + */ +keyboard_interrupt: + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + push %ds + push %es + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + xor %al,%al /* %eax is scan code */ + inb $0x60,%al + cmpb $0xe0,%al + je set_e0 + cmpb $0xe1,%al + je set_e1 + call key_table(,%eax,4) + movb $0,e0 +e0_e1: inb $0x61,%al + jmp 1f +1: jmp 1f +1: orb $0x80,%al + jmp 1f +1: jmp 1f +1: outb %al,$0x61 + jmp 1f +1: jmp 1f +1: andb $0x7F,%al + outb %al,$0x61 + movb $0x20,%al + outb %al,$0x20 + pushl $0 + call do_tty_interrupt + addl $4,%esp + pop %es + pop %ds + popl %edx + popl %ecx + popl %ebx + popl %eax + iret +set_e0: movb $1,e0 + jmp e0_e1 +set_e1: movb $2,e0 + jmp e0_e1 + +/* + * This routine fills the buffer with max 8 bytes, taken from + * %ebx:%eax. (%edx is high). The bytes are written in the + * order %al,%ah,%eal,%eah,%bl,%bh ... until %eax is zero. + */ +put_queue: + pushl %ecx + pushl %edx + movl table_list,%edx # read-queue for console + movl head(%edx),%ecx +1: movb %al,buf(%edx,%ecx) + incl %ecx + andl $size-1,%ecx + cmpl tail(%edx),%ecx # buffer full - discard everything + je 3f + shrdl $8,%ebx,%eax + je 2f + shrl $8,%ebx + jmp 1b +2: movl %ecx,head(%edx) + movl proc_list(%edx),%ecx + testl %ecx,%ecx + je 3f + movl $0,(%ecx) +3: popl %edx + popl %ecx + ret + +ctrl: movb $0x04,%al + jmp 1f +alt: movb $0x10,%al +1: cmpb $0,e0 + je 2f + addb %al,%al +2: orb %al,mode + ret +unctrl: movb $0x04,%al + jmp 1f +unalt: movb $0x10,%al +1: cmpb $0,e0 + je 2f + addb %al,%al +2: notb %al + andb %al,mode + ret + +lshift: + orb $0x01,mode + ret +unlshift: + andb $0xfe,mode + ret +rshift: + orb $0x02,mode + ret +unrshift: + andb $0xfd,mode + ret + +caps: testb $0x80,mode + jne 1f + xorb $4,leds + xorb $0x40,mode + orb $0x80,mode +set_leds: + call kb_wait + movb $0xed,%al /* set leds command */ + outb %al,$0x60 + call kb_wait + movb leds,%al + outb %al,$0x60 + ret +uncaps: andb $0x7f,mode + ret +scroll: + xorb $1,leds + jmp set_leds +num: xorb $2,leds + jmp set_leds + +/* + * curosr-key/numeric keypad cursor keys are handled here. + * checking for numeric keypad etc. + */ +cursor: + subb $0x47,%al + jb 1f + cmpb $12,%al + ja 1f + jne cur2 /* check for ctrl-alt-del */ + testb $0x0c,mode + je cur2 + testb $0x30,mode + jne reboot +cur2: cmpb $0x01,e0 /* e0 forces cursor movement */ + je cur + testb $0x02,leds /* not num-lock forces cursor */ + je cur + testb $0x03,mode /* shift forces cursor */ + jne cur + xorl %ebx,%ebx + movb num_table(%eax),%al + jmp put_queue +1: ret + +cur: movb cur_table(%eax),%al + cmpb $'9,%al + ja ok_cur + movb $'~,%ah +ok_cur: shll $16,%eax + movw $0x5b1b,%ax + xorl %ebx,%ebx + jmp put_queue + +#if defined(KBD_FR) +num_table: + .ascii "789 456 1230." +#else +num_table: + .ascii "789 456 1230," +#endif +cur_table: + .ascii "HA5 DGC YB623" + +/* + * this routine handles function keys + */ +func: + pushl %eax + pushl %ecx + pushl %edx + call show_stat + popl %edx + popl %ecx + popl %eax + subb $0x3B,%al + jb end_func + cmpb $9,%al + jbe ok_func + subb $18,%al + cmpb $10,%al + jb end_func + cmpb $11,%al + ja end_func +ok_func: + cmpl $4,%ecx /* check that there is enough room */ + jl end_func + movl func_table(,%eax,4),%eax + xorl %ebx,%ebx + jmp put_queue +end_func: + ret + +/* + * function keys send F1:'esc [ [ A' F2:'esc [ [ B' etc. + */ +func_table: + .long 0x415b5b1b,0x425b5b1b,0x435b5b1b,0x445b5b1b + .long 0x455b5b1b,0x465b5b1b,0x475b5b1b,0x485b5b1b + .long 0x495b5b1b,0x4a5b5b1b,0x4b5b5b1b,0x4c5b5b1b + +#if defined(KBD_FINNISH) +key_map: + .byte 0,27 + .ascii "1234567890+'" + .byte 127,9 + .ascii "qwertyuiop}" + .byte 0,13,0 + .ascii "asdfghjkl|{" + .byte 0,0 + .ascii "'zxcvbnm,.-" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '< + .fill 10,1,0 + +shift_map: + .byte 0,27 + .ascii "!\"#$%&/()=?`" + .byte 127,9 + .ascii "QWERTYUIOP]^" + .byte 13,0 + .ascii "ASDFGHJKL\\[" + .byte 0,0 + .ascii "*ZXCVBNM;:_" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0@\0$\0\0{[]}\\\0" + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte 0,0,0,0,0 /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '| + .fill 10,1,0 + +#elif defined(KBD_US) + +key_map: + .byte 0,27 + .ascii "1234567890-=" + .byte 127,9 + .ascii "qwertyuiop[]" + .byte 13,0 + .ascii "asdfghjkl;'" + .byte '`,0 + .ascii "\\zxcvbnm,./" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '< + .fill 10,1,0 + + +shift_map: + .byte 0,27 + .ascii "!@#$%^&*()_+" + .byte 127,9 + .ascii "QWERTYUIOP{}" + .byte 13,0 + .ascii "ASDFGHJKL:\"" + .byte '~,0 + .ascii "|ZXCVBNM<>?" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0@\0$\0\0{[]}\\\0" + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte 0,0,0,0,0 /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '| + .fill 10,1,0 + +#elif defined(KBD_GR) + +key_map: + .byte 0,27 + .ascii "1234567890\\'" + .byte 127,9 + .ascii "qwertzuiop@+" + .byte 13,0 + .ascii "asdfghjkl[]^" + .byte 0,'# + .ascii "yxcvbnm,.-" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '< + .fill 10,1,0 + + +shift_map: + .byte 0,27 + .ascii "!\"#$%&/()=?`" + .byte 127,9 + .ascii "QWERTZUIOP\\*" + .byte 13,0 + .ascii "ASDFGHJKL{}~" + .byte 0,'' + .ascii "YXCVBNM;:_" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0@\0$\0\0{[]}\\\0" + .byte 0,0 + .byte '@,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte 0,0,0,0,0 /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '| + .fill 10,1,0 + + +#elif defined(KBD_FR) + +key_map: + .byte 0,27 + .ascii "&{\"'(-}_/@)=" + .byte 127,9 + .ascii "azertyuiop^$" + .byte 13,0 + .ascii "qsdfghjklm|" + .byte '`,0,42 /* coin sup gauche, don't know, [*|mu] */ + .ascii "wxcvbn,;:!" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '< + .fill 10,1,0 + +shift_map: + .byte 0,27 + .ascii "1234567890]+" + .byte 127,9 + .ascii "AZERTYUIOP<>" + .byte 13,0 + .ascii "QSDFGHJKLM%" + .byte '~,0,'# + .ascii "WXCVBN?./\\" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0~#{[|`\\^@]}" + .byte 0,0 + .byte '@,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte 0,0,0,0,0 /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '| + .fill 10,1,0 + +#else +#error "KBD-type not defined" +#endif +/* + * do_self handles "normal" keys, ie keys that don't change meaning + * and which have just one character returns. + */ +do_self: + lea alt_map,%ebx + testb $0x20,mode /* alt-gr */ + jne 1f + lea shift_map,%ebx + testb $0x03,mode + jne 1f + lea key_map,%ebx +1: movb (%ebx,%eax),%al + orb %al,%al + je none + testb $0x4c,mode /* ctrl or caps */ + je 2f + cmpb $'a,%al + jb 2f + cmpb $'},%al + ja 2f + subb $32,%al +2: testb $0x0c,mode /* ctrl */ + je 3f + cmpb $64,%al + jb 3f + cmpb $64+32,%al + jae 3f + subb $64,%al +3: testb $0x10,mode /* left alt */ + je 4f + orb $0x80,%al +4: andl $0xff,%eax + xorl %ebx,%ebx + call put_queue +none: ret + +/* + * minus has a routine of it's own, as a 'E0h' before + * the scan code for minus means that the numeric keypad + * slash was pushed. + */ +minus: cmpb $1,e0 + jne do_self + movl $'/,%eax + xorl %ebx,%ebx + jmp put_queue + +/* + * This table decides which routine to call when a scan-code has been + * gotten. Most routines just call do_self, or none, depending if + * they are make or break. + */ +key_table: + .long none,do_self,do_self,do_self /* 00-03 s0 esc 1 2 */ + .long do_self,do_self,do_self,do_self /* 04-07 3 4 5 6 */ + .long do_self,do_self,do_self,do_self /* 08-0B 7 8 9 0 */ + .long do_self,do_self,do_self,do_self /* 0C-0F + ' bs tab */ + .long do_self,do_self,do_self,do_self /* 10-13 q w e r */ + .long do_self,do_self,do_self,do_self /* 14-17 t y u i */ + .long do_self,do_self,do_self,do_self /* 18-1B o p } ^ */ + .long do_self,ctrl,do_self,do_self /* 1C-1F enter ctrl a s */ + .long do_self,do_self,do_self,do_self /* 20-23 d f g h */ + .long do_self,do_self,do_self,do_self /* 24-27 j k l | */ + .long do_self,do_self,lshift,do_self /* 28-2B { para lshift , */ + .long do_self,do_self,do_self,do_self /* 2C-2F z x c v */ + .long do_self,do_self,do_self,do_self /* 30-33 b n m , */ + .long do_self,minus,rshift,do_self /* 34-37 . - rshift * */ + .long alt,do_self,caps,func /* 38-3B alt sp caps f1 */ + .long func,func,func,func /* 3C-3F f2 f3 f4 f5 */ + .long func,func,func,func /* 40-43 f6 f7 f8 f9 */ + .long func,num,scroll,cursor /* 44-47 f10 num scr home */ + .long cursor,cursor,do_self,cursor /* 48-4B up pgup - left */ + .long cursor,cursor,do_self,cursor /* 4C-4F n5 right + end */ + .long cursor,cursor,cursor,cursor /* 50-53 dn pgdn ins del */ + .long none,none,do_self,func /* 54-57 sysreq ? < f11 */ + .long func,none,none,none /* 58-5B f12 ? ? ? */ + .long none,none,none,none /* 5C-5F ? ? ? ? */ + .long none,none,none,none /* 60-63 ? ? ? ? */ + .long none,none,none,none /* 64-67 ? ? ? ? */ + .long none,none,none,none /* 68-6B ? ? ? ? */ + .long none,none,none,none /* 6C-6F ? ? ? ? */ + .long none,none,none,none /* 70-73 ? ? ? ? */ + .long none,none,none,none /* 74-77 ? ? ? ? */ + .long none,none,none,none /* 78-7B ? ? ? ? */ + .long none,none,none,none /* 7C-7F ? ? ? ? */ + .long none,none,none,none /* 80-83 ? br br br */ + .long none,none,none,none /* 84-87 br br br br */ + .long none,none,none,none /* 88-8B br br br br */ + .long none,none,none,none /* 8C-8F br br br br */ + .long none,none,none,none /* 90-93 br br br br */ + .long none,none,none,none /* 94-97 br br br br */ + .long none,none,none,none /* 98-9B br br br br */ + .long none,unctrl,none,none /* 9C-9F br unctrl br br */ + .long none,none,none,none /* A0-A3 br br br br */ + .long none,none,none,none /* A4-A7 br br br br */ + .long none,none,unlshift,none /* A8-AB br br unlshift br */ + .long none,none,none,none /* AC-AF br br br br */ + .long none,none,none,none /* B0-B3 br br br br */ + .long none,none,unrshift,none /* B4-B7 br br unrshift br */ + .long unalt,none,uncaps,none /* B8-BB unalt br uncaps br */ + .long none,none,none,none /* BC-BF br br br br */ + .long none,none,none,none /* C0-C3 br br br br */ + .long none,none,none,none /* C4-C7 br br br br */ + .long none,none,none,none /* C8-CB br br br br */ + .long none,none,none,none /* CC-CF br br br br */ + .long none,none,none,none /* D0-D3 br br br br */ + .long none,none,none,none /* D4-D7 br br br br */ + .long none,none,none,none /* D8-DB br ? ? ? */ + .long none,none,none,none /* DC-DF ? ? ? ? */ + .long none,none,none,none /* E0-E3 e0 e1 ? ? */ + .long none,none,none,none /* E4-E7 ? ? ? ? */ + .long none,none,none,none /* E8-EB ? ? ? ? */ + .long none,none,none,none /* EC-EF ? ? ? ? */ + .long none,none,none,none /* F0-F3 ? ? ? ? */ + .long none,none,none,none /* F4-F7 ? ? ? ? */ + .long none,none,none,none /* F8-FB ? ? ? ? */ + .long none,none,none,none /* FC-FF ? ? ? ? */ + +/* + * kb_wait waits for the keyboard controller buffer to empty. + * there is no timeout - if the buffer doesn't empty, we hang. + */ +kb_wait: + pushl %eax +1: inb $0x64,%al + testb $0x02,%al + jne 1b + popl %eax + ret +/* + * This routine reboots the machine by asking the keyboard + * controller to pulse the reset-line low. + */ +reboot: + call kb_wait + movw $0x1234,0x472 /* don't do memory check */ + movb $0xfc,%al /* pulse reset and A20 low */ + outb %al,$0x64 +die: jmp die diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/rs_io.o b/linux-0.11-lab/cur/linux/kernel/chr_drv/rs_io.o new file mode 100644 index 0000000000000000000000000000000000000000..9d7d5b3a22aa1a7d33dea95b723af176ee68e951 GIT binary patch literal 1320 zcma)5O=}ZT6upy7lN1_>vDAuUi$oC$(TZ-YF8rt{7SvR*(+bl`=7mYg$1w9^jTe}J1pL8J+VS-DUc@11#5ry}TuH|L!9&O7g8W*$#YU6UjU z!jd2kzZJlJAu zYUu}^X)*0615dy3#7CS5;3%o*n6o2-mX*|mBJ()SkJ>Kxy3mDOdS@N-cB{sLjja`nuw?{k1!T?BECWK1Ur++2eHxq=#!x{gli&& zBRH@@L{yj;>c8RMuaxqliKJ!!PW(mv0M`reH^_6neMo3eLAl-mBy=A^x!y36flz|$ z9Yaq056bmU5ZT?V>*Z0VgF%1b96oaqeG&Pkh$c>dL{JjkL^3ZF1^Vqn>-rt20MOw)mDl`5E4qoh_V zHiu%f3^vy+-ZaTqsdKQH=_9M_uuwBq{86e5Y7L#$RJ8J@4U1NVGqq%B7P>V(VAV>U z?KNO{nOQ2UnY@MR;}pv*t7+mQ_L+$Cmk2hbH&o7BkuiEb(opct5uPWFopkSn(*o}a PoD +#include +#include +#include + +#define WAKEUP_CHARS (TTY_BUF_SIZE/4) + +extern void rs1_interrupt(void); +extern void rs2_interrupt(void); + +static void init(int port) +{ + outb_p(0x80,port+3); /* set DLAB of line control reg */ + outb_p(0x30,port); /* LS of divisor (48 -> 2400 bps */ + outb_p(0x00,port+1); /* MS of divisor */ + outb_p(0x03,port+3); /* reset DLAB */ + outb_p(0x0b,port+4); /* set DTR,RTS, OUT_2 */ + outb_p(0x0d,port+1); /* enable all intrs but writes */ + (void)inb(port); /* read data port to reset things (?) */ +} + +void rs_init(void) +{ + set_intr_gate(0x24,rs1_interrupt); + set_intr_gate(0x23,rs2_interrupt); + init(tty_table[1].read_q.data); + init(tty_table[2].read_q.data); + outb(inb_p(0x21)&0xE7,0x21); +} + +/* + * This routine gets called when tty_write has put something into + * the write_queue. It must check wheter the queue is empty, and + * set the interrupt register accordingly + * + * void _rs_write(struct tty_struct * tty); + */ +void rs_write(struct tty_struct * tty) +{ + cli(); + if (!EMPTY(tty->write_q)) + outb(inb_p(tty->write_q.data+1)|0x02,tty->write_q.data+1); + sti(); +} diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/serial.o b/linux-0.11-lab/cur/linux/kernel/chr_drv/serial.o new file mode 100644 index 0000000000000000000000000000000000000000..bf80e08be94a19c3982f10989e20a6e929a1d240 GIT binary patch literal 6752 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 +#include +#include + +#define ALRMMASK (1<<(SIGALRM-1)) +#define KILLMASK (1<<(SIGKILL-1)) +#define INTMASK (1<<(SIGINT-1)) +#define QUITMASK (1<<(SIGQUIT-1)) +#define TSTPMASK (1<<(SIGTSTP-1)) + +#include +#include +#include +#include + +#define _L_FLAG(tty,f) ((tty)->termios.c_lflag & f) +#define _I_FLAG(tty,f) ((tty)->termios.c_iflag & f) +#define _O_FLAG(tty,f) ((tty)->termios.c_oflag & f) + +#define L_CANON(tty) _L_FLAG((tty),ICANON) +#define L_ISIG(tty) _L_FLAG((tty),ISIG) +#define L_ECHO(tty) _L_FLAG((tty),ECHO) +#define L_ECHOE(tty) _L_FLAG((tty),ECHOE) +#define L_ECHOK(tty) _L_FLAG((tty),ECHOK) +#define L_ECHOCTL(tty) _L_FLAG((tty),ECHOCTL) +#define L_ECHOKE(tty) _L_FLAG((tty),ECHOKE) + +#define I_UCLC(tty) _I_FLAG((tty),IUCLC) +#define I_NLCR(tty) _I_FLAG((tty),INLCR) +#define I_CRNL(tty) _I_FLAG((tty),ICRNL) +#define I_NOCR(tty) _I_FLAG((tty),IGNCR) + +#define O_POST(tty) _O_FLAG((tty),OPOST) +#define O_NLCR(tty) _O_FLAG((tty),ONLCR) +#define O_CRNL(tty) _O_FLAG((tty),OCRNL) +#define O_NLRET(tty) _O_FLAG((tty),ONLRET) +#define O_LCUC(tty) _O_FLAG((tty),OLCUC) + +struct tty_struct tty_table[] = { + { + {ICRNL, /* change incoming CR to NL */ + OPOST|ONLCR, /* change outgoing NL to CRNL */ + 0, + ISIG | ICANON | ECHO | ECHOCTL | ECHOKE, + 0, /* console termio */ + INIT_C_CC}, + 0, /* initial pgrp */ + 0, /* initial stopped */ + con_write, + {0,0,0,0,""}, /* console read-queue */ + {0,0,0,0,""}, /* console write-queue */ + {0,0,0,0,""} /* console secondary queue */ + },{ + {0, /* no translation */ + 0, /* no translation */ + B2400 | CS8, + 0, + 0, + INIT_C_CC}, + 0, + 0, + rs_write, + {0x3f8,0,0,0,""}, /* rs 1 */ + {0x3f8,0,0,0,""}, + {0,0,0,0,""} + },{ + {0, /* no translation */ + 0, /* no translation */ + B2400 | CS8, + 0, + 0, + INIT_C_CC}, + 0, + 0, + rs_write, + {0x2f8,0,0,0,""}, /* rs 2 */ + {0x2f8,0,0,0,""}, + {0,0,0,0,""} + } +}; + +/* + * these are the tables used by the machine code handlers. + * you can implement pseudo-tty's or something by changing + * them. Currently not done. + */ +struct tty_queue * table_list[]={ + &tty_table[0].read_q, &tty_table[0].write_q, + &tty_table[1].read_q, &tty_table[1].write_q, + &tty_table[2].read_q, &tty_table[2].write_q + }; + +void tty_init(void) +{ + rs_init(); + con_init(); +} + +void tty_intr(struct tty_struct * tty, int mask) +{ + int i; + + if (tty->pgrp <= 0) + return; + for (i=0;ipgrp==tty->pgrp) + task[i]->signal |= mask; +} + +static void sleep_if_empty(struct tty_queue * queue) +{ + cli(); + while (!current->signal && EMPTY(*queue)) + interruptible_sleep_on(&queue->proc_list); + sti(); +} + +static void sleep_if_full(struct tty_queue * queue) +{ + if (!FULL(*queue)) + return; + cli(); + while (!current->signal && LEFT(*queue)<128) + interruptible_sleep_on(&queue->proc_list); + sti(); +} + +void wait_for_keypress(void) +{ + sleep_if_empty(&tty_table[0].secondary); +} + +void copy_to_cooked(struct tty_struct * tty) +{ + signed char c; + + while (!EMPTY(tty->read_q) && !FULL(tty->secondary)) { + GETCH(tty->read_q,c); + if (c==13) + if (I_CRNL(tty)) + c=10; + else if (I_NOCR(tty)) + continue; + else ; + else if (c==10 && I_NLCR(tty)) + c=13; + if (I_UCLC(tty)) + c=tolower(c); + if (L_CANON(tty)) { + if (c==KILL_CHAR(tty)) { + /* deal with killing the input line */ + while(!(EMPTY(tty->secondary) || + (c=LAST(tty->secondary))==10 || + c==EOF_CHAR(tty))) { + if (L_ECHO(tty)) { + if (c<32) + PUTCH(127,tty->write_q); + PUTCH(127,tty->write_q); + tty->write(tty); + } + DEC(tty->secondary.head); + } + continue; + } + if (c==ERASE_CHAR(tty)) { + if (EMPTY(tty->secondary) || + (c=LAST(tty->secondary))==10 || + c==EOF_CHAR(tty)) + continue; + if (L_ECHO(tty)) { + if (c<32) + PUTCH(127,tty->write_q); + PUTCH(127,tty->write_q); + tty->write(tty); + } + DEC(tty->secondary.head); + continue; + } + if (c==STOP_CHAR(tty)) { + tty->stopped=1; + continue; + } + if (c==START_CHAR(tty)) { + tty->stopped=0; + continue; + } + } + if (L_ISIG(tty)) { + if (c==INTR_CHAR(tty)) { + tty_intr(tty,INTMASK); + continue; + } + if (c==QUIT_CHAR(tty)) { + tty_intr(tty,QUITMASK); + continue; + } + } + if (c==10 || c==EOF_CHAR(tty)) + tty->secondary.data++; + if (L_ECHO(tty)) { + if (c==10) { + PUTCH(10,tty->write_q); + PUTCH(13,tty->write_q); + } else if (c<32) { + if (L_ECHOCTL(tty)) { + PUTCH('^',tty->write_q); + PUTCH(c+64,tty->write_q); + } + } else + PUTCH(c,tty->write_q); + tty->write(tty); + } + PUTCH(c,tty->secondary); + } + wake_up(&tty->secondary.proc_list); +} + +int tty_read(unsigned channel, char * buf, int nr) +{ + struct tty_struct * tty; + char c, * b=buf; + int minimum,time,flag=0; + long oldalarm; + + if (channel>2 || nr<0) return -1; + tty = &tty_table[channel]; + oldalarm = current->alarm; + time = 10L*tty->termios.c_cc[VTIME]; + minimum = tty->termios.c_cc[VMIN]; + if (time && !minimum) { + minimum=1; + if (flag=(!oldalarm || time+jiffiesalarm = time+jiffies; + } + if (minimum>nr) + minimum=nr; + while (nr>0) { + if (flag && (current->signal & ALRMMASK)) { + current->signal &= ~ALRMMASK; + break; + } + if (current->signal) + break; + if (EMPTY(tty->secondary) || (L_CANON(tty) && + !tty->secondary.data && LEFT(tty->secondary)>20)) { + sleep_if_empty(&tty->secondary); + continue; + } + do { + GETCH(tty->secondary,c); + if (c==EOF_CHAR(tty) || c==10) + tty->secondary.data--; + if (c==EOF_CHAR(tty) && L_CANON(tty)) + return (b-buf); + else { + put_fs_byte(c,b++); + if (!--nr) + break; + } + } while (nr>0 && !EMPTY(tty->secondary)); + if (time && !L_CANON(tty)) + if (flag=(!oldalarm || time+jiffiesalarm = time+jiffies; + else + current->alarm = oldalarm; + if (L_CANON(tty)) { + if (b-buf) + break; + } else if (b-buf >= minimum) + break; + } + current->alarm = oldalarm; + if (current->signal && !(b-buf)) + return -EINTR; + return (b-buf); +} + +int tty_write(unsigned channel, char * buf, int nr) +{ + static cr_flag=0; + struct tty_struct * tty; + char c, *b=buf; + + if (channel>2 || nr<0) return -1; + tty = channel + tty_table; + while (nr>0) { + sleep_if_full(&tty->write_q); + if (current->signal) + break; + while (nr>0 && !FULL(tty->write_q)) { + c=get_fs_byte(b); + if (O_POST(tty)) { + if (c=='\r' && O_CRNL(tty)) + c='\n'; + else if (c=='\n' && O_NLRET(tty)) + c='\r'; + if (c=='\n' && !cr_flag && O_NLCR(tty)) { + cr_flag = 1; + PUTCH(13,tty->write_q); + continue; + } + if (O_LCUC(tty)) + c=toupper(c); + } + b++; nr--; + cr_flag = 0; + PUTCH(c,tty->write_q); + } + tty->write(tty); + if (nr>0) + schedule(); + } + return (b-buf); +} + +/* + * Jeh, sometimes I really like the 386. + * This routine is called from an interrupt, + * and there should be absolutely no problem + * with sleeping even in an interrupt (I hope). + * Of course, if somebody proves me wrong, I'll + * hate intel for all time :-). We'll have to + * be careful and see to reinstating the interrupt + * chips before calling this, though. + * + * I don't think we sleep here under normal circumstances + * anyway, which is good, as the task sleeping might be + * totally innocent. + */ +void do_tty_interrupt(int tty) +{ + copy_to_cooked(tty_table+tty); +} + +void chr_dev_init(void) +{ +} diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/tty_io.o b/linux-0.11-lab/cur/linux/kernel/chr_drv/tty_io.o new file mode 100644 index 0000000000000000000000000000000000000000..37e2b15961ebc5713d826d6c25e53571ac6fbb83 GIT binary patch literal 22504 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 O^kQA0pRj`M3jQCx0hyNo literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/tty_ioctl.c b/linux-0.11-lab/cur/linux/kernel/chr_drv/tty_ioctl.c new file mode 100644 index 0000000..e4e3745 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/chr_drv/tty_ioctl.c @@ -0,0 +1,204 @@ +/* + * linux/kernel/chr_drv/tty_ioctl.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include + +#include +#include +#include + +#include +#include +#include + +static unsigned short quotient[] = { + 0, 2304, 1536, 1047, 857, + 768, 576, 384, 192, 96, + 64, 48, 24, 12, 6, 3 +}; + +static void change_speed(struct tty_struct * tty) +{ + unsigned short port,quot; + + if (!(port = tty->read_q.data)) + return; + quot = quotient[tty->termios.c_cflag & CBAUD]; + cli(); + outb_p(0x80,port+3); /* set DLAB */ + outb_p(quot & 0xff,port); /* LS of divisor */ + outb_p(quot >> 8,port+1); /* MS of divisor */ + outb(0x03,port+3); /* reset DLAB */ + sti(); +} + +static void flush(struct tty_queue * queue) +{ + cli(); + queue->head = queue->tail; + sti(); +} + +static void wait_until_sent(struct tty_struct * tty) +{ + /* do nothing - not implemented */ +} + +static void send_break(struct tty_struct * tty) +{ + /* do nothing - not implemented */ +} + +static int get_termios(struct tty_struct * tty, struct termios * termios) +{ + int i; + + verify_area(termios, sizeof (*termios)); + for (i=0 ; i< (sizeof (*termios)) ; i++) + put_fs_byte( ((char *)&tty->termios)[i] , i+(char *)termios ); + return 0; +} + +static int set_termios(struct tty_struct * tty, struct termios * termios) +{ + int i; + + for (i=0 ; i< (sizeof (*termios)) ; i++) + ((char *)&tty->termios)[i]=get_fs_byte(i+(char *)termios); + change_speed(tty); + return 0; +} + +static int get_termio(struct tty_struct * tty, struct termio * termio) +{ + int i; + struct termio tmp_termio; + + verify_area(termio, sizeof (*termio)); + tmp_termio.c_iflag = tty->termios.c_iflag; + tmp_termio.c_oflag = tty->termios.c_oflag; + tmp_termio.c_cflag = tty->termios.c_cflag; + tmp_termio.c_lflag = tty->termios.c_lflag; + tmp_termio.c_line = tty->termios.c_line; + for(i=0 ; i < NCC ; i++) + tmp_termio.c_cc[i] = tty->termios.c_cc[i]; + for (i=0 ; i< (sizeof (*termio)) ; i++) + put_fs_byte( ((char *)&tmp_termio)[i] , i+(char *)termio ); + return 0; +} + +/* + * This only works as the 386 is low-byt-first + */ +static int set_termio(struct tty_struct * tty, struct termio * termio) +{ + int i; + struct termio tmp_termio; + + for (i=0 ; i< (sizeof (*termio)) ; i++) + ((char *)&tmp_termio)[i]=get_fs_byte(i+(char *)termio); + *(unsigned short *)&tty->termios.c_iflag = tmp_termio.c_iflag; + *(unsigned short *)&tty->termios.c_oflag = tmp_termio.c_oflag; + *(unsigned short *)&tty->termios.c_cflag = tmp_termio.c_cflag; + *(unsigned short *)&tty->termios.c_lflag = tmp_termio.c_lflag; + tty->termios.c_line = tmp_termio.c_line; + for(i=0 ; i < NCC ; i++) + tty->termios.c_cc[i] = tmp_termio.c_cc[i]; + change_speed(tty); + return 0; +} + +int tty_ioctl(int dev, int cmd, int arg) +{ + struct tty_struct * tty; + if (MAJOR(dev) == 5) { + dev=current->tty; + if (dev<0) + panic("tty_ioctl: dev<0"); + } else + dev=MINOR(dev); + tty = dev + tty_table; + switch (cmd) { + case TCGETS: + return get_termios(tty,(struct termios *) arg); + case TCSETSF: + flush(&tty->read_q); /* fallthrough */ + case TCSETSW: + wait_until_sent(tty); /* fallthrough */ + case TCSETS: + return set_termios(tty,(struct termios *) arg); + case TCGETA: + return get_termio(tty,(struct termio *) arg); + case TCSETAF: + flush(&tty->read_q); /* fallthrough */ + case TCSETAW: + wait_until_sent(tty); /* fallthrough */ + case TCSETA: + return set_termio(tty,(struct termio *) arg); + case TCSBRK: + if (!arg) { + wait_until_sent(tty); + send_break(tty); + } + return 0; + case TCXONC: + return -EINVAL; /* not implemented */ + case TCFLSH: + if (arg==0) + flush(&tty->read_q); + else if (arg==1) + flush(&tty->write_q); + else if (arg==2) { + flush(&tty->read_q); + flush(&tty->write_q); + } else + return -EINVAL; + return 0; + case TIOCEXCL: + return -EINVAL; /* not implemented */ + case TIOCNXCL: + return -EINVAL; /* not implemented */ + case TIOCSCTTY: + return -EINVAL; /* set controlling term NI */ + case TIOCGPGRP: + verify_area((void *) arg,4); + put_fs_long(tty->pgrp,(unsigned long *) arg); + return 0; + case TIOCSPGRP: + tty->pgrp=get_fs_long((unsigned long *) arg); + return 0; + case TIOCOUTQ: + verify_area((void *) arg,4); + put_fs_long(CHARS(tty->write_q),(unsigned long *) arg); + return 0; + case TIOCINQ: + verify_area((void *) arg,4); + put_fs_long(CHARS(tty->secondary), + (unsigned long *) arg); + return 0; + case TIOCSTI: + return -EINVAL; /* not implemented */ + case TIOCGWINSZ: + return -EINVAL; /* not implemented */ + case TIOCSWINSZ: + return -EINVAL; /* not implemented */ + case TIOCMGET: + return -EINVAL; /* not implemented */ + case TIOCMBIS: + return -EINVAL; /* not implemented */ + case TIOCMBIC: + return -EINVAL; /* not implemented */ + case TIOCMSET: + return -EINVAL; /* not implemented */ + case TIOCGSOFTCAR: + return -EINVAL; /* not implemented */ + case TIOCSSOFTCAR: + return -EINVAL; /* not implemented */ + default: + return -EINVAL; + } +} diff --git a/linux-0.11-lab/cur/linux/kernel/chr_drv/tty_ioctl.o b/linux-0.11-lab/cur/linux/kernel/chr_drv/tty_ioctl.o new file mode 100644 index 0000000000000000000000000000000000000000..6fcf766d95e129c53038533553e2124de8516b4b GIT binary patch literal 10648 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/exit.c b/linux-0.11-lab/cur/linux/kernel/exit.c new file mode 100644 index 0000000..2406ebe --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/exit.c @@ -0,0 +1,197 @@ +/* + * linux/kernel/exit.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include +#include + +#include +#include +#include +#include + +int sys_pause(void); +int sys_close(int fd); + +void release(struct task_struct * p) +{ + int i; + + if (!p) + return; + for (i=1 ; i32) + return -EINVAL; + if (priv || (current->euid==p->euid) || suser()) + p->signal |= (1<<(sig-1)); + else + return -EPERM; + return 0; +} + +static void kill_session(void) +{ + struct task_struct **p = NR_TASKS + task; + + while (--p > &FIRST_TASK) { + if (*p && (*p)->session == current->session) + (*p)->signal |= 1<<(SIGHUP-1); + } +} + +/* + * XXX need to check permissions needed to send signals to process + * groups, etc. etc. kill() permissions semantics are tricky! + */ +int sys_kill(int pid,int sig) +{ + struct task_struct **p = NR_TASKS + task; + int err, retval = 0; + + if (!pid) while (--p > &FIRST_TASK) { + if (*p && (*p)->pgrp == current->pid) + if (err=send_sig(sig,*p,1)) + retval = err; + } else if (pid>0) while (--p > &FIRST_TASK) { + if (*p && (*p)->pid == pid) + if (err=send_sig(sig,*p,0)) + retval = err; + } else if (pid == -1) while (--p > &FIRST_TASK) + if (err = send_sig(sig,*p,0)) + retval = err; + else while (--p > &FIRST_TASK) + if (*p && (*p)->pgrp == -pid) + if (err = send_sig(sig,*p,0)) + retval = err; + return retval; +} + +static void tell_father(int pid) +{ + int i; + + if (pid) + for (i=0;ipid != pid) + continue; + task[i]->signal |= (1<<(SIGCHLD-1)); + return; + } +/* if we don't find any fathers, we just release ourselves */ +/* This is not really OK. Must change it to make father 1 */ + printk("BAD BAD - no father found\n\r"); + release(current); +} + +int do_exit(long code) +{ + int i; + + free_page_tables(get_base(current->ldt[1]),get_limit(0x0f)); + free_page_tables(get_base(current->ldt[2]),get_limit(0x17)); + for (i=0 ; ifather == current->pid) { + task[i]->father = 1; + if (task[i]->state == TASK_ZOMBIE) + /* assumption task[1] is always init */ + (void) send_sig(SIGCHLD, task[1], 1); + } + for (i=0 ; ifilp[i]) + sys_close(i); + iput(current->pwd); + current->pwd=NULL; + iput(current->root); + current->root=NULL; + iput(current->executable); + current->executable=NULL; + if (current->leader && current->tty >= 0) + tty_table[current->tty].pgrp = 0; + if (last_task_used_math == current) + last_task_used_math = NULL; + if (current->leader) + kill_session(); + current->state = TASK_ZOMBIE; + current->exit_code = code; + tell_father(current->father); + schedule(); + return (-1); /* just to suppress warnings */ +} + +int sys_exit(int error_code) +{ + return do_exit((error_code&0xff)<<8); +} + +int sys_waitpid(pid_t pid,unsigned long * stat_addr, int options) +{ + int flag, code; + struct task_struct ** p; + + verify_area(stat_addr,4); +repeat: + flag=0; + for(p = &LAST_TASK ; p > &FIRST_TASK ; --p) { + if (!*p || *p == current) + continue; + if ((*p)->father != current->pid) + continue; + if (pid>0) { + if ((*p)->pid != pid) + continue; + } else if (!pid) { + if ((*p)->pgrp != current->pgrp) + continue; + } else if (pid != -1) { + if ((*p)->pgrp != -pid) + continue; + } + switch ((*p)->state) { + case TASK_STOPPED: + if (!(options & WUNTRACED)) + continue; + put_fs_long(0x7f,stat_addr); + return (*p)->pid; + case TASK_ZOMBIE: + current->cutime += (*p)->utime; + current->cstime += (*p)->stime; + flag = (*p)->pid; + code = (*p)->exit_code; + release(*p); + put_fs_long(code,stat_addr); + return flag; + default: + flag=1; + continue; + } + } + if (flag) { + if (options & WNOHANG) + return 0; + current->state=TASK_INTERRUPTIBLE; + schedule(); + if (!(current->signal &= ~(1<<(SIGCHLD-1)))) + goto repeat; + else + return -EINTR; + } + return -ECHILD; +} + + diff --git a/linux-0.11-lab/cur/linux/kernel/exit.o b/linux-0.11-lab/cur/linux/kernel/exit.o new file mode 100644 index 0000000000000000000000000000000000000000..97c5057fd4da000378b2c23ca0dba2b274e9b855 GIT binary patch literal 11164 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 + +#include +#include +#include +#include + +extern void write_verify(unsigned long address); + +long last_pid=0; + +void verify_area(void * addr,int size) +{ + unsigned long start; + + start = (unsigned long) addr; + size += start & 0xfff; + start &= 0xfffff000; + start += get_base(current->ldt[2]); + while (size>0) { + size -= 4096; + write_verify(start); + start += 4096; + } +} + +int copy_mem(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; + + 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); + if (copy_page_tables(old_data_base,new_data_base,data_limit)) { + free_page_tables(new_data_base,data_limit); + return -ENOMEM; + } + return 0; +} + +/* + * Ok, this is the main fork-routine. It copies the system process + * information (task[nr]) and sets up the necessary registers. It + * also copies the data segment in it's entirety. + */ +int copy_process(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->tss.back_link = 0; + p->tss.esp0 = PAGE_SIZE + (long) p; + p->tss.ss0 = 0x10; + p->tss.eip = eip; + p->tss.eflags = eflags; + p->tss.eax = 0; + p->tss.ecx = ecx; + p->tss.edx = edx; + p->tss.ebx = ebx; + p->tss.esp = esp; + 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(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; +} + +int find_empty_process(void) +{ + int i; + + repeat: + if ((++last_pid)<0) last_pid=1; + for(i=0 ; ipid == last_pid) goto repeat; + for(i=1 ; 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 Mi^Z-!?KYSAen*aa+ literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/math/Makefile b/linux-0.11-lab/cur/linux/kernel/math/Makefile new file mode 100644 index 0000000..b35d488 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/math/Makefile @@ -0,0 +1,43 @@ +# +# Makefile for the FREAX-kernel character device drivers. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# + +AR =ar +AS =as +LD =ld +LDFLAGS =-s -x +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -nostdinc -fno-stack-protector -I../../include +CPP =gcc -E -nostdinc -I../../include + +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< + +OBJS = math_emulate.o + +math.a: $(OBJS) + $(AR) rcs math.a $(OBJS) + sync + +clean: + rm -f core *.o *.a tmp_make + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: diff --git a/linux-0.11-lab/cur/linux/kernel/math/math.a b/linux-0.11-lab/cur/linux/kernel/math/math.a new file mode 100644 index 0000000000000000000000000000000000000000..f92fb43a9c019f8e75bf744c65f88b59c8d4ba88 GIT binary patch literal 6628 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 + +#include +#include +#include + +void math_emulate(long edi, long esi, long ebp, long sys_call_ret, + long eax,long ebx,long ecx,long edx, + unsigned short fs,unsigned short es,unsigned short ds, + unsigned long eip,unsigned short cs,unsigned long eflags, + unsigned short ss, unsigned long esp) +{ + unsigned char first, second; + +/* 0x0007 means user code space */ + if (cs != 0x000F) { + printk("math_emulate: %04x:%08x\n\r",cs,eip); + panic("Math emulation needed in kernel"); + } + first = get_fs_byte((char *)((*&eip)++)); + second = get_fs_byte((char *)((*&eip)++)); + printk("%04x:%08x %02x %02x\n\r",cs,eip-2,first,second); + current->signal |= 1<<(SIGFPE-1); +} + +void math_error(void) +{ + __asm__("fnclex"); + if (last_task_used_math) + last_task_used_math->signal |= 1<<(SIGFPE-1); +} diff --git a/linux-0.11-lab/cur/linux/kernel/math/math_emulate.o b/linux-0.11-lab/cur/linux/kernel/math/math_emulate.o new file mode 100644 index 0000000000000000000000000000000000000000..8a98b22720edd26bc9b196e2d1b86549665ddef0 GIT binary patch literal 6464 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 + +/* + * This isn't the library routine, it is only used in the kernel. + * as such, we don't care about years<1970 etc, but assume everything + * is ok. Similarly, TZ etc is happily ignored. We just do everything + * as easily as possible. Let's find something public for the library + * routines (although I think minix times is public). + */ +/* + * PS. I hate whoever though up the year 1970 - couldn't they have gotten + * a leap-year instead? I also hate Gregorius, pope or no. I'm grumpy. + */ +#define MINUTE 60 +#define HOUR (60*MINUTE) +#define DAY (24*HOUR) +#define YEAR (365*DAY) + +/* interestingly, we assume leap-years */ +static int month[12] = { + 0, + DAY*(31), + DAY*(31+29), + DAY*(31+29+31), + DAY*(31+29+31+30), + DAY*(31+29+31+30+31), + DAY*(31+29+31+30+31+30), + DAY*(31+29+31+30+31+30+31), + DAY*(31+29+31+30+31+30+31+31), + DAY*(31+29+31+30+31+30+31+31+30), + DAY*(31+29+31+30+31+30+31+31+30+31), + DAY*(31+29+31+30+31+30+31+31+30+31+30) +}; + +long kernel_mktime(struct tm * tm) +{ + long res; + int year; + if (tm->tm_year < 70 ) tm->tm_year += 100; /* gohigh */ + year = tm->tm_year - 70; +/* magic offsets (y+1) needed to get leapyears right.*/ + res = YEAR*year + DAY*((year+1)/4); + res += month[tm->tm_mon]; +/* and (y+2) here. If it wasn't a leap-year, we have to adjust */ + if (tm->tm_mon>1 && ((year+2)%4)) + res -= DAY; + res += DAY*(tm->tm_mday-1); + res += HOUR*tm->tm_hour; + res += MINUTE*tm->tm_min; + res += tm->tm_sec; + return res; +} diff --git a/linux-0.11-lab/cur/linux/kernel/mktime.o b/linux-0.11-lab/cur/linux/kernel/mktime.o new file mode 100644 index 0000000000000000000000000000000000000000..6694bf8258168567f68b2aba8bfc5ed630e30698 GIT binary patch literal 2872 zcma)8U1%It6h3!mHraGH+f8=c=BL9R=z+QC zJLlZh2X+aMEv_t>trhe7 zs=+FMvsh7H_c`1WH#v6H&lF#_7Ezv9*R)o}g{=tMS}|I;&BYZj{7N|;Z9Xl?_laJb zy7!+sbi64(04lkZ^z#JEw@~X^<|*sGoj9@%qYI3-zKwt5w^gpqUj~T!PEd383^f<8 z5*2O|-T9N6-}eamWL(gJl4$n6A(|h2E>b)kOL|%2Nt}5PFW*T8(P1??!wQYF%COpD zFue+;jqZ;aTKk|*0Ft#II4RZEhrnBa!&WCpF}4Cntxo8-0mrQn^gX~ys}K5K;2vui za3An?3&%40fm0N+LM7Luwrebj!QH%qP@{PFZ$|B0mly;xE>pPX)Jg2cF5~jqj<1=E zhY-iO?9nD!cLZXD-J@6{INm?3=}2O4-(6lqCNC^>iQTb8#EkXFxcneQzY^j ztGFErVTL1-{gDF^k>ECTk{N?AnHY_52(>Xx)Mkr=y}s?i-pK?)jrF|qcrU!#Lu7`1 zFQbQ>HnKtNU{S?{b<<`}KFMAYAtn=WkM5+&M3&Rhc76;Lt)>d3#|T{J#~|E3A@0UH zd6kzHO|T+#TCCnYx$DpU%wJs-Bbgsx@RQRvR@s?bKYSJna`l3rj$BF>73&&%scXkDpCbUrK1xQ`%?p_ zW*V;7@Q;*vxFMzC3&SJ!(8!>#<*R`SFo|;~Nt_Rh{-|ZW&eP)8K+YOAIp2v`(i|5t zd6(__LdDC?kX`p`J}+uibIP{oob|{qJbHHN9lg{A-$Y1?s@gL!-S zBN1mE^5T3tFW>nM@!sQj^Q_aP`$J4UrLA^zH?rA;v#(!9l zgBc)OgxP>F5Bw(!k}2Q7b&W~#cYaM_$_cND?5(5uI+LR7MnXh#w zG`P#%nAqCq-~V;k_#GyCi}wmH8{YxJ+xEdL7= CPoF&i literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/panic.c b/linux-0.11-lab/cur/linux/kernel/panic.c new file mode 100644 index 0000000..7d8a06b --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/panic.c @@ -0,0 +1,24 @@ +/* + * linux/kernel/panic.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * This function is used through-out the kernel (includeinh mm and fs) + * to indicate a major problem. + */ +#include +#include + +void sys_sync(void); /* it's really int */ + +volatile void panic(const char * s) +{ + printk("Kernel panic: %s\n\r",s); + if (current == task[0]) + printk("In swapper task - not syncing\n\r"); + else + sys_sync(); + for(;;); +} diff --git a/linux-0.11-lab/cur/linux/kernel/panic.o b/linux-0.11-lab/cur/linux/kernel/panic.o new file mode 100644 index 0000000000000000000000000000000000000000..da42b57864ffc04172b2020b3f3f9096af53eb86 GIT binary patch literal 5424 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 D&gTd! literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/printk.c b/linux-0.11-lab/cur/linux/kernel/printk.c new file mode 100644 index 0000000..0daa097 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/printk.c @@ -0,0 +1,41 @@ +/* + * linux/kernel/printk.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * When in kernel-mode, we cannot use printf, as fs is liable to + * point to 'interesting' things. Make a printf with fs-saving, and + * all is well. + */ +#include +#include + +#include + +static char buf[1024]; + +extern int vsprintf(char * buf, const char * fmt, va_list args); + +int printk(const char *fmt, ...) +{ + va_list args; + int i; + + va_start(args, fmt); + i=vsprintf(buf,fmt,args); + va_end(args); + __asm__("push %%fs\n\t" + "push %%ds\n\t" + "pop %%fs\n\t" + "pushl %0\n\t" + "pushl $buf\n\t" + "pushl $0\n\t" + "call tty_write\n\t" + "addl $8,%%esp\n\t" + "popl %0\n\t" + "pop %%fs" + ::"r" (i):"ax","cx","dx"); + return i; +} diff --git a/linux-0.11-lab/cur/linux/kernel/printk.o b/linux-0.11-lab/cur/linux/kernel/printk.o new file mode 100644 index 0000000000000000000000000000000000000000..93ce6e40ca451b8b2b024367e2fd7f575b694368 GIT binary patch literal 2424 zcma)7&2Jk;6o2DgCr+F=bwa44L}e?vC4jtkz$&FcNl74zT1BEwQKbUW+Fsk+*lV-9 zPLry@Ap#ObAoTzO!66j~E?kfhSCAS$gv5Ou_hxtEEfNw>nt8wXJ@aOE z_N^B#y(okrMS?WyOGHgQw3H>Ar3WZWSGNC{eQz;e-d)Vk>@DU?d#m}G-PL>wvi^gf zXV2gNK0G{xoZEXPpBvjhF?RP#ll3=3%l1L)`q*8>=C%)Juisi90ly z>aykdDJiyw91=P9O5ADEu%2|>07X85BF&XXc={4!l&3=tH3#1S8mjc_B(nQ}NevS+ zX2q$@L|V&CXR=~^;Mj4be2}!vx%AWNhz0-DrLfy04cA?ur zdfS82aa)dS7wSE?8aN%-hsx~~{J^TN7rI_2u&Y7GqgKal7(Lf_8m?V4_zbZkpEj(u zmg5KHJGbm$t7}uS*=gHFw^s{_9lzk(H;c&L+bopKxw%5isuWA1qPT8*uH6dra=N4a zR-2X=NkmHv3+Ig4tCgM`^uoOr9`8wM?#;QfSt>sgY6;&}NaEII61P)gdPLWE&{P9z zJ`yH*3>Pw~?ZiT+l(?8lUAUK#--hXLwF9d{rXP4AZz|;3Eiec z$O^M5i?7IF5RtO2K#teF2H_ZVT$lH!>e|3629V~E?;3-Ml+A)1&)0;&c{txNhRXLk zFvsw|nRb!ymk`RCZ9HyAT=~6`G|KE@(H-d7eQUg`kCXV589b>lVJwlj!6Ly5PP@Nmnz+;^@S&-W3E%tEI~ z@kn{1j;@ME+C(083(}ch`{!E#R3zOA&vW cIpTsy{wm_%F-Lt_7ZcwB_FIU!0iJ;T4?BzyrvLx| literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/sched.c b/linux-0.11-lab/cur/linux/kernel/sched.c new file mode 100644 index 0000000..15d839b --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/sched.c @@ -0,0 +1,412 @@ +/* + * linux/kernel/sched.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * 'sched.c' is the main kernel file. It contains scheduling primitives + * (sleep_on, wakeup, schedule etc) as well as a number of simple system + * call functions (type getpid(), which just extracts a field from + * current-task + */ +#include +#include +#include +#include +#include +#include +#include + +#include + +#define _S(nr) (1<<((nr)-1)) +#define _BLOCKABLE (~(_S(SIGKILL) | _S(SIGSTOP))) + +void show_task(int nr,struct task_struct * p) +{ + int i,j = 4096-sizeof(struct task_struct); + + printk("%d: pid=%d, state=%d, ",nr,p->pid,p->state); + i=0; + while (i>2 ] ; + +struct { + long * a; + short b; + } stack_start = { & user_stack [PAGE_SIZE>>2] , 0x10 }; +/* + * 'math_state_restore()' saves the current math information in the + * old math state array, and gets the new ones from the current task + */ +void math_state_restore() +{ + if (last_task_used_math == current) + return; + __asm__("fwait"); + if (last_task_used_math) { + __asm__("fnsave %0"::"m" (last_task_used_math->tss.i387)); + } + last_task_used_math=current; + if (current->used_math) { + __asm__("frstor %0"::"m" (current->tss.i387)); + } else { + __asm__("fninit"::); + current->used_math=1; + } +} + +/* + * 'schedule()' is the scheduler function. This is GOOD CODE! There + * probably won't be any reason to change this, as it should work well + * in all circumstances (ie gives IO-bound processes good response etc). + * The one thing you might take a look at is the signal-handler code here. + * + * NOTE!! Task 0 is the 'idle' task, which gets called when no other + * tasks can run. It can not be killed, and it cannot sleep. The 'state' + * information in task[0] is never used. + */ +void schedule(void) +{ + int i,next,c; + struct task_struct ** p; + +/* check alarm, wake up any interruptible tasks that have got a signal */ + + for(p = &LAST_TASK ; p > &FIRST_TASK ; --p) + if (*p) { + if ((*p)->alarm && (*p)->alarm < jiffies) { + (*p)->signal |= (1<<(SIGALRM-1)); + (*p)->alarm = 0; + } + if (((*p)->signal & ~(_BLOCKABLE & (*p)->blocked)) && + (*p)->state==TASK_INTERRUPTIBLE) + (*p)->state=TASK_RUNNING; + } + +/* this is the scheduler proper: */ + + while (1) { + c = -1; + next = 0; + i = NR_TASKS; + p = &task[NR_TASKS]; + while (--i) { + if (!*--p) + continue; + if ((*p)->state == TASK_RUNNING && (*p)->counter > c) + c = (*p)->counter, next = i; + } + if (c) break; + for(p = &LAST_TASK ; p > &FIRST_TASK ; --p) + if (*p) + (*p)->counter = ((*p)->counter >> 1) + + (*p)->priority; + } + switch_to(next); +} + +int sys_pause(void) +{ + current->state = TASK_INTERRUPTIBLE; + schedule(); + return 0; +} + +void sleep_on(struct task_struct **p) +{ + struct task_struct *tmp; + + if (!p) + return; + if (current == &(init_task.task)) + panic("task[0] trying to sleep"); + tmp = *p; + *p = current; + current->state = TASK_UNINTERRUPTIBLE; + schedule(); + if (tmp) + tmp->state=0; +} + +void interruptible_sleep_on(struct task_struct **p) +{ + struct task_struct *tmp; + + if (!p) + return; + if (current == &(init_task.task)) + panic("task[0] trying to sleep"); + tmp=*p; + *p=current; +repeat: current->state = TASK_INTERRUPTIBLE; + schedule(); + if (*p && *p != current) { + (**p).state=0; + goto repeat; + } + *p=NULL; + if (tmp) + tmp->state=0; +} + +void wake_up(struct task_struct **p) +{ + if (p && *p) { + (**p).state=0; + *p=NULL; + } +} + +/* + * OK, here are some floppy things that shouldn't be in the kernel + * proper. They are here because the floppy needs a timer, and this + * was the easiest way of doing it. + */ +static struct task_struct * wait_motor[4] = {NULL,NULL,NULL,NULL}; +static int mon_timer[4]={0,0,0,0}; +static int moff_timer[4]={0,0,0,0}; +unsigned char current_DOR = 0x0C; + +int ticks_to_floppy_on(unsigned int nr) +{ + extern unsigned char selected; + unsigned char mask = 0x10 << nr; + + if (nr>3) + panic("floppy_on: nr>3"); + moff_timer[nr]=10000; /* 100 s = very big :-) */ + cli(); /* use floppy_off to turn it off */ + mask |= current_DOR; + if (!selected) { + mask &= 0xFC; + mask |= nr; + } + if (mask != current_DOR) { + outb(mask,FD_DOR); + if ((mask ^ current_DOR) & 0xf0) + mon_timer[nr] = HZ/2; + else if (mon_timer[nr] < 2) + mon_timer[nr] = 2; + current_DOR = mask; + } + sti(); + return mon_timer[nr]; +} + +void floppy_on(unsigned int nr) +{ + cli(); + while (ticks_to_floppy_on(nr)) + sleep_on(nr+wait_motor); + sti(); +} + +void floppy_off(unsigned int nr) +{ + moff_timer[nr]=3*HZ; +} + +void do_floppy_timer(void) +{ + int i; + unsigned char mask = 0x10; + + for (i=0 ; i<4 ; i++,mask <<= 1) { + if (!(mask & current_DOR)) + continue; + if (mon_timer[i]) { + if (!--mon_timer[i]) + wake_up(i+wait_motor); + } else if (!moff_timer[i]) { + current_DOR &= ~mask; + outb(current_DOR,FD_DOR); + } else + moff_timer[i]--; + } +} + +#define TIME_REQUESTS 64 + +static struct timer_list { + long jiffies; + void (*fn)(); + struct timer_list * next; +} timer_list[TIME_REQUESTS], * next_timer = NULL; + +void add_timer(long jiffies, void (*fn)(void)) +{ + struct timer_list * p; + + if (!fn) + return; + cli(); + if (jiffies <= 0) + (fn)(); + else { + for (p = timer_list ; p < timer_list + TIME_REQUESTS ; p++) + if (!p->fn) + break; + if (p >= timer_list + TIME_REQUESTS) + panic("No more time requests free"); + p->fn = fn; + p->jiffies = jiffies; + p->next = next_timer; + next_timer = p; + while (p->next && p->next->jiffies < p->jiffies) { + p->jiffies -= p->next->jiffies; + fn = p->fn; + p->fn = p->next->fn; + p->next->fn = fn; + jiffies = p->jiffies; + p->jiffies = p->next->jiffies; + p->next->jiffies = jiffies; + p = p->next; + } + } + sti(); +} + +void do_timer(long cpl) +{ + extern int beepcount; + extern void sysbeepstop(void); + + if (beepcount) + if (!--beepcount) + sysbeepstop(); + + if (cpl) + current->utime++; + else + current->stime++; + + if (next_timer) { + next_timer->jiffies--; + while (next_timer && next_timer->jiffies <= 0) { + void (*fn)(void); + + fn = next_timer->fn; + next_timer->fn = NULL; + next_timer = next_timer->next; + (fn)(); + } + } + if (current_DOR & 0xf0) + do_floppy_timer(); + if ((--current->counter)>0) return; + current->counter=0; + if (!cpl) return; + schedule(); +} + +int sys_alarm(long seconds) +{ + int old = current->alarm; + + if (old) + old = (old - jiffies) / HZ; + current->alarm = (seconds>0)?(jiffies+HZ*seconds):0; + return (old); +} + +int sys_getpid(void) +{ + return current->pid; +} + +int sys_getppid(void) +{ + return current->father; +} + +int sys_getuid(void) +{ + return current->uid; +} + +int sys_geteuid(void) +{ + return current->euid; +} + +int sys_getgid(void) +{ + return current->gid; +} + +int sys_getegid(void) +{ + return current->egid; +} + +int sys_nice(long increment) +{ + if (current->priority-increment>0) + current->priority -= increment; + return 0; +} + +void sched_init(void) +{ + int i; + struct desc_struct * p; + + if (sizeof(struct sigaction) != 16) + panic("Struct sigaction MUST be 16 bytes"); + set_tss_desc(gdt+FIRST_TSS_ENTRY,&(init_task.task.tss)); + set_ldt_desc(gdt+FIRST_LDT_ENTRY,&(init_task.task.ldt)); + p = gdt+2+FIRST_TSS_ENTRY; + for(i=1;ia=p->b=0; + p++; + p->a=p->b=0; + p++; + } +/* Clear NT, so that we won't have troubles with that later on */ + __asm__("pushfl ; andl $0xffffbfff,(%esp) ; popfl"); + ltr(0); + lldt(0); + outb_p(0x36,0x43); /* binary, mode 3, LSB/MSB, ch 0 */ + outb_p(LATCH & 0xff , 0x40); /* LSB */ + outb(LATCH >> 8 , 0x40); /* MSB */ + set_intr_gate(0x20,&timer_interrupt); + outb(inb_p(0x21)&~0x01,0x21); + set_system_gate(0x80,&system_call); +} diff --git a/linux-0.11-lab/cur/linux/kernel/sched.o b/linux-0.11-lab/cur/linux/kernel/sched.o new file mode 100644 index 0000000000000000000000000000000000000000..8907e54fae556c36d88e61cb2d6e7dbb043a4216 GIT binary patch literal 22732 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 U-~)n>3HAxTA^3?P_htI|KkS5JegFUf literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/signal.c b/linux-0.11-lab/cur/linux/kernel/signal.c new file mode 100644 index 0000000..8d5a65f --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/signal.c @@ -0,0 +1,129 @@ +/* + * linux/kernel/signal.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include +#include +#include +#include + +volatile void do_exit(int error_code); + +int sys_sgetmask() +{ + return current->blocked; +} + +int sys_ssetmask(int newmask) +{ + int old=current->blocked; + + current->blocked = newmask & ~(1<<(SIGKILL-1)); + return old; +} + +int sys_sigpending() +{ + return -ENOSYS; +} + +int sys_sigsuspend() +{ + return -ENOSYS; +} + +static inline void save_old(char * from,char * to) +{ + int i; + + verify_area(to, sizeof(struct sigaction)); + for (i=0 ; i< sizeof(struct sigaction) ; i++) { + put_fs_byte(*from,to); + from++; + to++; + } +} + +static inline void get_new(char * from,char * to) +{ + int i; + + for (i=0 ; i< sizeof(struct sigaction) ; i++) + *(to++) = get_fs_byte(from++); +} + +int sys_signal(int signum, long handler, long restorer) +{ + struct sigaction tmp; + + if (signum<1 || signum>32 || signum==SIGKILL) + return -1; + tmp.sa_handler = (void (*)(int)) handler; + tmp.sa_mask = 0; + tmp.sa_flags = SA_ONESHOT | SA_NOMASK; + tmp.sa_restorer = (void (*)(void)) restorer; + handler = (long) current->sigaction[signum-1].sa_handler; + current->sigaction[signum-1] = tmp; + return handler; +} + +int sys_sigaction(int signum, const struct sigaction * action, + struct sigaction * oldaction) +{ + struct sigaction tmp; + + if (signum<1 || signum>32 || signum==SIGKILL) + return -1; + tmp = current->sigaction[signum-1]; + get_new((char *) action, + (char *) (signum-1+current->sigaction)); + if (oldaction) + save_old((char *) &tmp,(char *) oldaction); + if (current->sigaction[signum-1].sa_flags & SA_NOMASK) + current->sigaction[signum-1].sa_mask = 0; + else + current->sigaction[signum-1].sa_mask |= (1<<(signum-1)); + return 0; +} + +void do_signal(long signr,long eax, long ebx, long ecx, long edx, + long fs, long es, long ds, + long eip, long cs, long eflags, + unsigned long * esp, long ss) +{ + unsigned long sa_handler; + long old_eip=eip; + struct sigaction * sa = current->sigaction + signr - 1; + int longs; + unsigned long * tmp_esp; + + sa_handler = (unsigned long) sa->sa_handler; + if (sa_handler==1) + return; + if (!sa_handler) { + if (signr==SIGCHLD) + return; + else + do_exit(1<<(signr-1)); + } + if (sa->sa_flags & SA_ONESHOT) + sa->sa_handler = NULL; + *(&eip) = sa_handler; + longs = (sa->sa_flags & SA_NOMASK)?7:8; + *(&esp) -= longs; + verify_area(esp,longs*4); + tmp_esp=esp; + put_fs_long((long) sa->sa_restorer,tmp_esp++); + put_fs_long(signr,tmp_esp++); + if (!(sa->sa_flags & SA_NOMASK)) + put_fs_long(current->blocked,tmp_esp++); + put_fs_long(eax,tmp_esp++); + put_fs_long(ecx,tmp_esp++); + put_fs_long(edx,tmp_esp++); + put_fs_long(eflags,tmp_esp++); + put_fs_long(old_eip,tmp_esp++); + current->blocked |= sa->sa_mask; +} diff --git a/linux-0.11-lab/cur/linux/kernel/signal.o b/linux-0.11-lab/cur/linux/kernel/signal.o new file mode 100644 index 0000000000000000000000000000000000000000..1970f39f72c6b0c63a277c6955a88089975ca4d3 GIT binary patch literal 8960 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/sys.c b/linux-0.11-lab/cur/linux/kernel/sys.c new file mode 100644 index 0000000..695f287 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/sys.c @@ -0,0 +1,292 @@ +/* + * linux/kernel/sys.c + * + * (C) 1991 Linus Torvalds + */ + +#include + +#include +#include +#include +#include +#include +#include + +int sys_ftime() +{ + return -ENOSYS; +} + +int sys_break() +{ + return -ENOSYS; +} + +int sys_ptrace() +{ + return -ENOSYS; +} + +int sys_stty() +{ + return -ENOSYS; +} + +int sys_gtty() +{ + return -ENOSYS; +} + +int sys_rename() +{ + return -ENOSYS; +} + +int sys_prof() +{ + return -ENOSYS; +} + +int sys_setregid(int rgid, int egid) +{ + if (rgid>0) { + if ((current->gid == rgid) || + suser()) + current->gid = rgid; + else + return(-EPERM); + } + if (egid>0) { + if ((current->gid == egid) || + (current->egid == egid) || + suser()) { + current->egid = egid; + current->sgid = egid; + } else + return(-EPERM); + } + return 0; +} + +int sys_setgid(int gid) +{ +/* return(sys_setregid(gid, gid)); */ + if (suser()) + current->gid = current->egid = current->sgid = gid; + else if ((gid == current->gid) || (gid == current->sgid)) + current->egid = gid; + else + return -EPERM; + return 0; +} + +int sys_acct() +{ + return -ENOSYS; +} + +int sys_phys() +{ + return -ENOSYS; +} + +int sys_lock() +{ + return -ENOSYS; +} + +int sys_mpx() +{ + return -ENOSYS; +} + +int sys_ulimit() +{ + return -ENOSYS; +} + +int sys_time(long * tloc) +{ + int i; + + i = CURRENT_TIME; + if (tloc) { + verify_area(tloc,4); + put_fs_long(i,(unsigned long *)tloc); + } + return i; +} + +/* + * Unprivileged users may change the real user id to the effective uid + * or vice versa. + */ +int sys_setreuid(int ruid, int euid) +{ + int old_ruid = current->uid; + + if (ruid>0) { + if ((current->euid==ruid) || + (old_ruid == ruid) || + suser()) + current->uid = ruid; + else + return(-EPERM); + } + if (euid>0) { + if ((old_ruid == euid) || + (current->euid == euid) || + suser()) { + current->euid = euid; + current->suid = euid; + } else { + current->uid = old_ruid; + return(-EPERM); + } + } + return 0; +} + +int sys_setuid(int uid) +{ +/* return(sys_setreuid(uid, uid)); */ + if (suser()) + current->uid = current->euid = current->suid = uid; + else if ((uid == current->uid) || (uid == current->suid)) + current->euid = uid; + else + return -EPERM; + return(0); +} + +int sys_stime(long * tptr) +{ + if (!suser()) + return -EPERM; + startup_time = get_fs_long((unsigned long *)tptr) - jiffies/HZ; + return 0; +} + +int sys_times(struct tms * tbuf) +{ + if (tbuf) { + verify_area(tbuf,sizeof *tbuf); + put_fs_long(current->utime,(unsigned long *)&tbuf->tms_utime); + put_fs_long(current->stime,(unsigned long *)&tbuf->tms_stime); + put_fs_long(current->cutime,(unsigned long *)&tbuf->tms_cutime); + put_fs_long(current->cstime,(unsigned long *)&tbuf->tms_cstime); + } + return jiffies; +} + +int sys_brk(unsigned long end_data_seg) +{ + if (end_data_seg >= current->end_code && + end_data_seg < current->start_stack - 16384) + current->brk = end_data_seg; + return current->brk; +} + +/* + * This needs some heave checking ... + * I just haven't get the stomach for it. I also don't fully + * understand sessions/pgrp etc. Let somebody who does explain it. + */ +int sys_setpgid(int pid, int pgid) +{ + int i; + + if (!pid) + pid = current->pid; + if (!pgid) + pgid = current->pid; + for (i=0 ; ipid==pid) { + if (task[i]->leader) + return -EPERM; + if (task[i]->session != current->session) + return -EPERM; + task[i]->pgrp = pgid; + return 0; + } + return -ESRCH; +} + +int sys_getpgrp(void) +{ + return current->pgrp; +} + +int sys_setsid(void) +{ + if (current->leader && !suser()) + return -EPERM; + current->leader = 1; + current->session = current->pgrp = current->pid; + current->tty = -1; + return current->pgrp; +} + +int sys_getgroups() +{ + return -ENOSYS; +} + +int sys_setgroups() +{ + return -ENOSYS; +} + +int sys_uname(struct utsname * name) +{ + static struct utsname thisname = { + "linux .0","nodename","release ","version ","machine " + }; + int i; + + if (!name) return -ERROR; + verify_area(name,sizeof *name); + for(i=0;iumask; + + current->umask = mask & 0777; + return (old); +} diff --git a/linux-0.11-lab/cur/linux/kernel/sys.o b/linux-0.11-lab/cur/linux/kernel/sys.o new file mode 100644 index 0000000000000000000000000000000000000000..a691166c6ad2230733c9baaa0609d3b8fe779594 GIT binary patch literal 13088 zcmb7K3z$^Jm9DyR#k}yt8d~9MKV{||B+D+Is#w^4W@y-MZ7aynF46Kp>#Z6;MG{WlF7|=9hG7n5ml81T}oBX>@se zb7oYHEN_oOj1C`bIy!tR1kv6fYQH1YKHAeB&Fr^^kA;px83MI4Bi7MFKRt8i%wP3A zd~u6L5x*4NEccz=W z;IKvQ8IZay-UV-U-SSq4)!}V{Lq<^2dT{eoK4V zQQa(tTz6;b*{MPrY_C~#to8N-&cID3%z$5m`>{3$xKTX0D;6+I9H#jgyOAUQ{Paiu zBuD zbf|7$yJNg>#>skDJ4&P$MNU^eIm=?ScQ&+`vdwyiy;<9W6hx5$^)mCpypD$Ukt5qX zYUrqT!&zNUo~2$4@70lcZ*AFK3#*|~y!3H1fQeeOp7xfJySh-WN9knq83ch?qf5qr zcmTKNp}*jZvs5}sOCw9;ExHJ+tSniknGIV1#9o>O*gd_3`F{L$Y(yt#KYfnw<@d;K zm7t&4+YbdA_eaMsKWiPrs)Ilis$75Qewdx?;e6`w^H^D0plf47PtL>w(}s>G0*~Xn zEllMdYW%kjn<@6b|ArGTMEDH9HhaepWZKR?tI_{$3#u+t0|*=UncmyX#?pNL8Ds$W zEDM=^W|R>O+G7cy=>HR!6MJK&~DZd~nfi=|v4A6J8^bbl@n&B+F(xOCz> z@L7BZu7uN%!y_-d-bZUXNiehm5KO6Hn1TxSiWE|zP<;Y*04stTVqoFtC^uwb8VZH4 zgWtMPIG6WS$f{4%I$%f8boddJgyPyPQ1>`A^`Sda$6knhej^yZ>eH}wdSDb@Pb1~b zWUZ@p1?MCi+CbTMK1cmEl%vkwXgl1~R;N@`Bun{P>YJ>{9Fq4Af;3x^pR@MH6(B8E z-y1r>>V>i#l{ym!>?<$X zN{lT}xyxBZxj=b=b3WxE$`?D|qyHNzU!tr8DmT@6%%n3wqcR&%&RvvuP_~>nE9|5k za*Awt7tL*FD;wT@8}w1+lW7cJkAnL89#-Rh(o~;V3?pYVYSquZ5~6Zm!FT<r zE`g$cK8N0Rvb5>C3Z+riNYnAu!!bQH)rZyrtosqxKzQa6$iXyc$E+-kf+flqQ4R$? z%I~CX2eY{$6`oBw8qB6K{vDK?g4serg*z!XLxz41MIhlWS}5mUR$4$g6fBhzDts|z+sWWNd}6LN!njZxf%L- zD!hntOE6uWufms6ZVS2$d@<#?a|hZDUrxC_=%#k5@D-G22HmugX9wMkkrP3;*T`K# zw*)^+XulA8$la6|L!VROcTw&}UC2u*FNa=*mr-09WV)79T#G1G_}vuO2Qv^?Q0xh2 zAzn#wW3Uh6N{U;8`kq@wd8^Zn@9=8M8D}Xowx$R9>{rn<=o0Tyo!Y4?x)?G)lIr>p z@4)E!sJOvsEj7U#EU6~D?juk+E8xhk-wX@o{1^$fZOS3%AoUJq+xZB;Bb1}cYC%DV zQ+J$|PeOL;DJo|J=AC0}wR0X~bR5bPoj7eGl&3hipaG|Wa=VJ&iCQl~lr>}G2T>T9 zumW0M=in0!NY5#wtASS5YtePDL&>>2 zQUg%3DVY17TK`tFkUHlLgc+E@jf9V5fw2!&YRvE(khW*Az`8qx=BRH8psQ9BZ>vT4 z)akk{V~En4L}hnX`8Z;-CR53ZVz~nywWdp2|&BK2}xkU;{T$dAO?l6C+Mj`R%H5AFKCM`Q3_g@<}QOseA^~ z7GPj3?w}jLU^fOSat`E_RiKe|_W;Hu3#oM<$K?G~cA~Wxb! zJEOhD_q0p3eu|CUN7@AGquR$k@Nq7m0sI1{V=`xp^$_iNdvX5>j6KG-K2GlsNt9~x zKH7becCW+kL2dUU?dCJsFH)qx`Veo<*7XeLAgwzlVc=nj)f_@*YO@3Rj*m zB&^&B><_Hv4Yrk35E@v!_T6?srT|l=n zt$nJhwdl7+YkyGDzT+44`wp#r4%+!Th68vKpL(=fg8sw{1IT$?8#1*~K9YPBc6w1; zqNaTxjfVHL=CtpjrSKgzn6{DH(HEedo`vgaJVS*)L=g*J;QYo|L$Gm5T0oYrFjcWc5_#yU!;>R&`!^(RzIuqxu`5zpmj^9TGDDd zQ!&Kd(it%Nx3oX`?aDsp$2JAQNNVW5t?K?PH&{3;CE=RxDfNzu^YB?Un6IhQanzvm zxO80Tv})5!S{Eas(--JW;86;5fpbL8gOtnxkTPFjSn8i31p==(j>C5VlU3mp=5NH|XZQ&VD*VVP~3c^}DGIRA|xLJ>-@kVs@9( z{jO-URH3w#>&vGGAY;aRxj|!D_DVeW`qeOTb+>{O0!t38S@*yL8)64SR&aYfwrR%O z{4aAIu-EYWYuDL{9X0&9erRIQZJIINj#-QFuo()}*{kd9HFl!BY3`f6EwQG@%J${< z6>F}(+@7xe(D=cs+Xv|2-^HsP+qr37t>49Us7$|W>{!`K#5Qfd`~Wl$*iYf#cQ&ol z&D;9>bpMG1GnbT4lutaRWBO&C-Dj^U+b7EQn&56v>sHqVoiCx*ff;_>u!)sVShHd$ zpwX#Vs_ncw1P#ezbe7dVL2BQFx^K={J33}>T4RMU8%kcP=q2%;-p+x9gaOe~pX&|v z6^B&DEv2C@meZbc^Ok79BWsc#v9ocd|?coJV395Xd zLwB}gs95mav{xva&h`}x<)M~c3DdtSjJ@!Do|czn4j*5Hmyf>MRRAgUUm`YyILXmt^vEz{NsVmHG=sFMf6% zgi_+W33;QXFxe`BV7esKoc_X~J11YxcykJ+j=Z~bj$V{H5}kABb_}F?=Olc^ob7Hg z?+z$bnupAmhcG=|J&j}*>G_>z-iM00LNSL%bIFXmL&rBbv`Zt>#oiUNnbdBrKs++c z>48GYO&0P=W>~qqavm}QZ|okb6T|2_Z?Q)9r}CKr#09bFmay0`gW_LuQj%Lm z&m|oYzjDc)DXcNYLIJOau3WZkQGDjLy;yC^{wmlpudLbJJ#)J{6J4`>E&itJUxAx8 zsKCv3U`jL;+K(NYdj0Mj$me{utg(4RV@T_}M2BY%>g^ur`KK5jL(M6eMbvG@$DD2< zY8~QJ-T2^%SYNc;kIxExYIS4a=4cC1*L@ghPPRsO48lfyYU>^cH|JVocM3uVA0BIY z>G;uCb7)oXYP5$f>!U}dKW!*82UXfL&IEMkoN9E-p*xIEZTlO+%_-H`@r9l_q*BKm z?}g5sQIX4pwXrcoJ&%Cq1j^i7FEoZ2@59iWQ>DavFXN4)jK0lD(l1-q7`4_n+V7%; z-`?+FV@{Fq8@I+9^`FsfJUW^4B24}9ht8Z0bqvq>wq4Mh6CZ7vmzB_&1E0}tfzF)w zjBW@zbKIkjeZ3tzbK286aQ$}1pf^W1Q~zP;%)!m*jzMRRZANz-I&)|L}ZBb(9j zdD9%&sAD|M(3#^J`(0r6I!n6;u~`DWqL2MX!k*vhxw|~osULJYd+~m*lgf(AlDuMSjKA#K6tlKxem`#DvlgZgoZYpQ#cl?^MxaA`s&7Ot`3n2 zagpB%q`k2lgk9}r+GRXOW;yNt69+|enX&{FwekHN4cNE|86QrXmH4_Ln>rBH7Mz`? zpdaQkWn5Q`%(9*M3tXInT&C+k0mD)oYKg0dPBta{bzL+bRIY6<<-mXg=DK#teAQbE55gFWM-%yrrV z=Y3}OLvqf4Uc5K>Tc_G9sAp_d6RddmbwNENYRfq@s#j3If2-wqkyCR8^$1iIK{ZZY z3TpP|iHK+!csD-W$H>r@_tsOa6Iqv-gre41O5HWZI)&v*)t>2)NmA$-fJ3_FD4iz|F<>e`W}f z{MT>de*iaoGVAlLrrC?h8^O)~OWp!*_FD4k;AW2{zX;syujChln~UvV25$CQmh&(6 zW{)M`0B-hI@~z-zZza!zn|+mh7r5C^$@!dT_EPeXft!7l{4?NY4<&yD-0Yv^e1~cF zPV#5L&Av&_r*Rx{YY%F*$C%oaq&Wn2&b@TO0{s;4KVa89&*O<%&Mf*d*gWl59{c5J z%R(H~afXCYIc=F^jwsDxQ=hSQ4IYyz=pzONbIy}PHdXrJ-keg-I>X}U7P;*1WUA=m zJ%?%692F2mMXa0;DEKY%=p%Lf(-#jKR3LBq^dg1ksUPZ^b2^;YF#psc70x<3@vz~) zE|Ah1#xnmPBF!?m>cJLGoUQQR4d5@on4^JKrEV4E{Y(B8!6yZu7yPXt7h2j)#S|gV z6}&|7a=~qaw+Mbz@L!43l==;EI$j`SldxvsZ|^|*TO+tl@Mgi!34UFWe|e|<3xcNw zCt_))zFqJl!Gs|Hs?PEo1wSD84}w1=GCtyTygbIn$M~iLS+8602Em&J`L{dP$lof^j?p1hB!+5nLhID>z7mpAq2)g&!4sM)22ye-b<+7{&t2`qKsH z3g&?9*9XYa*Pn>~lpsI_uuVmYbDZd@)acu^@lrNPfMbp6}p0g@0A>h@hVDDF2D@ z6M}l)L;n}y4#tvxCkgTgJ>(sN{39{>y9KWn)b|DSIpO**>EO2tzfy{#fuu!QTt=L6Y^Ng8V4~IexXRkw2m#zgF<8g8Ke}{srN`7PL6eq35rqh^qxd zoX6lzf=R*cf;$C=1@96Z6a0eUqk@M8zbp8%;44Jr-ogVV+nXgghY0;z;hP0hqTeI@ zUcviC{{`WX2>+(=CxkyE{CVNO5`J3vpM}@q5W@B+5E0iD;TH%`2wx(6o!}P1td!p_ z{KLXOA^aiX|0w*B@T0=NC;YhZ7lr>u_#cJW;Q+w+E)<+gMBLrNuM*rMxLvSJgx$Tu z?-%|h;a?a07tuc}{AIycM9-fJvi%8yQ;6`pQ1~^1*NeVicv1NKg?~`^J;KL?e_r^P zg&!9FeZij+ac}&W@IMpLem&02jB6qh{5;_^h0hm$h459vdxR&2Zxdb?zE}81gnvu$ zDZyt2e<_IRtpdmupJ^G#Hw5EAu5k+mx!#j!1a}F3Nbo^HuH&?OQjpIV>BzU{vm>}0_)_+>?Rlz89+OHsgZcM&baI2svxL@!=LH;C<_WZ#a@p-}D M35GC+)VB!!4-!@J2mk;8 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/system_call.o b/linux-0.11-lab/cur/linux/kernel/system_call.o new file mode 100644 index 0000000000000000000000000000000000000000..ddce0649262248d052f5c003cc697385b7d0d869 GIT binary patch literal 2520 zcma);U1%It6vxlzt5st*N@_%FyJCv5#+YcU6+wvEqzNo^(C8hE#)L@xkZzL2X~8v@an@S&Rx&BsEWdJp{#SsXi)OAGkh-}qT;9JQX7e?%TKm*uNczHFZD&j#eUX- z-eP1q*|~hG8>|2R#l2sJKm1H|g)d%yBiT7J^%Jj{Og?k`MEJ~(y{N-mHooev`{hb? z)m?Y1S>L}#gge5K>bW*l5q_OhPtP24mr$O6ZhhO_j$8Km$koVlv@cTLYK^;d${)8~ z+lL&Lx1xQ!8(r&q#T{L&mb$`cXO2z#BR%W!siRz6uyiCoeVwk;@aEDkKA*+SV*47K zs}X0Dw|(Mxa%20sk>To+Ti{}~*uKj1oGXo4Ty%1S2JMBMP-mgSs%yq~mSzkJtt4nL ztqPR}XKkBv{NJ`0f&2`0coX>9`9ylC_^7$vjq4`Y)o(+9v#>mm!#Qpzu6-W2Lb?4Z zGTofcfoW0^;UE4 zf$8xP;}Q5fCB6@Sx5W3uMnH zzs}q^_nMOjH(SkF0Lb}Y1Izi}1k3r~0ngy7x0>^wZ(R-1MQC$=h%SLA8ZjZd0`H$^ zH~xCxf)98P1M?5ypS^hI-{AYCadc5k;#=WQNxTRClElOC7o>dS;EKdaFP6Lb+|&RU z0$d94%K=^r@Y?}?H^3JHycXc~0Dm6ftpNWL;9moLOXFFn?{`;#DKU9i8J&nlX>24( zV^8B6#T8A`c!I_f6vcfqPNR_V*vR1o9f?K95^*eA+-TY)-Z3Sam}^X|u63TbLFG^Oj;S*h0%GDb+A+ znpM->;SwP#mC@2gLxUBHZkf5}pfrtmhHhGOB(gcpQnFm6RV)a1Kr3mfd5tn@sb4qD zLSaGbD5w_J*9@sEt<7gsnvyq#qRy*XL!Ct(DYIaiDb2P`OTii@w&$1Vm#yIY!jVPG z((-}??>%iQ-cjXLk@04_);(DNJg7dJD;j*-FJyH+tJyr+-4`2gGkP|kRK}y literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/kernel/system_call.s b/linux-0.11-lab/cur/linux/kernel/system_call.s new file mode 100644 index 0000000..5f9b6b2 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/system_call.s @@ -0,0 +1,285 @@ +/* + * linux/kernel/system_call.s + * + * (C) 1991 Linus Torvalds + */ + +/* + * system_call.s contains the system-call low-level handling routines. + * This also contains the timer-interrupt handler, as some of the code is + * the same. The hd- and flopppy-interrupts are also here. + * + * NOTE: This code handles signal-recognition, which happens every time + * after a timer-interrupt and after each system call. Ordinary interrupts + * don't handle signal-recognition, as that would clutter them up totally + * unnecessarily. + * + * Stack layout in 'ret_from_system_call': + * + * 0(%esp) - %eax + * 4(%esp) - %ebx + * 8(%esp) - %ecx + * C(%esp) - %edx + * 10(%esp) - %fs + * 14(%esp) - %es + * 18(%esp) - %ds + * 1C(%esp) - %eip + * 20(%esp) - %cs + * 24(%esp) - %eflags + * 28(%esp) - %oldesp + * 2C(%esp) - %oldss + */ + +SIG_CHLD = 17 + +EAX = 0x00 +EBX = 0x04 +ECX = 0x08 +EDX = 0x0C +FS = 0x10 +ES = 0x14 +DS = 0x18 +EIP = 0x1C +CS = 0x20 +EFLAGS = 0x24 +OLDESP = 0x28 +OLDSS = 0x2C + +state = 0 # these are offsets into the task-struct. +counter = 4 +priority = 8 +signal = 12 +sigaction = 16 # MUST be 16 (=len of sigaction) +blocked = (33*16) + +# offsets within sigaction +sa_handler = 0 +sa_mask = 4 +sa_flags = 8 +sa_restorer = 12 + +nr_system_calls = 92 /* 72 the number of system*/ + +/* + * Ok, I get parallel printer interrupts while using the floppy for some + * strange reason. Urgel. Now I just ignore them. + */ +.globl system_call,sys_fork,timer_interrupt,sys_execve +.globl hd_interrupt,floppy_interrupt,parallel_interrupt +.globl device_not_available, coprocessor_error + +.align 4 +bad_sys_call: + movl $-1,%eax + iret +.align 4 +reschedule: + pushl $ret_from_sys_call + jmp schedule +.align 4 +system_call: + cmpl $nr_system_calls-1,%eax + ja bad_sys_call + push %ds + push %es + push %fs + pushl %edx + pushl %ecx # push %ebx,%ecx,%edx as parameters + pushl %ebx # to the system call + movl $0x10,%edx # set up ds,es to kernel space + mov %dx,%ds + mov %dx,%es + movl $0x17,%edx # fs points to local data space + mov %dx,%fs + call sys_call_table(,%eax,4) + pushl %eax + movl current,%eax + cmpl $0,state(%eax) # state + jne reschedule + cmpl $0,counter(%eax) # counter + je reschedule +ret_from_sys_call: + movl current,%eax # task[0] cannot have signals + cmpl task,%eax + je 3f + cmpw $0x0f,CS(%esp) # was old code segment supervisor ? + jne 3f + cmpw $0x17,OLDSS(%esp) # was stack segment = 0x17 ? + jne 3f + movl signal(%eax),%ebx + movl blocked(%eax),%ecx + notl %ecx + andl %ebx,%ecx + bsfl %ecx,%ecx + je 3f + btrl %ecx,%ebx + movl %ebx,signal(%eax) + incl %ecx + pushl %ecx + call do_signal + popl %eax +3: popl %eax + popl %ebx + popl %ecx + popl %edx + pop %fs + pop %es + pop %ds + iret + +.align 4 +coprocessor_error: + push %ds + push %es + push %fs + pushl %edx + pushl %ecx + pushl %ebx + pushl %eax + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + pushl $ret_from_sys_call + jmp math_error + +.align 2 +device_not_available: + push %ds + push %es + push %fs + pushl %edx + pushl %ecx + pushl %ebx + pushl %eax + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + pushl $ret_from_sys_call + clts # clear TS so that we can use math + movl %cr0,%eax + testl $0x4,%eax # EM (math emulation bit) + je math_state_restore + pushl %ebp + pushl %esi + pushl %edi + call math_emulate + popl %edi + popl %esi + popl %ebp + ret + +.align 4 +timer_interrupt: + push %ds # save ds,es and put kernel data space + push %es # into them. %fs is used by _system_call + push %fs + pushl %edx # we save %eax,%ecx,%edx as gcc doesn't + pushl %ecx # save those across function calls. %ebx + pushl %ebx # is saved as we use that in ret_sys_call + pushl %eax + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + incl jiffies + movb $0x20,%al # EOI to interrupt controller #1 + outb %al,$0x20 + movl CS(%esp),%eax + andl $3,%eax # %eax is CPL (0 or 3, 0=supervisor) + pushl %eax + call do_timer # 'do_timer(long CPL)' does everything from + addl $4,%esp # task switching to accounting ... + jmp ret_from_sys_call + +.align 4 +sys_execve: + lea EIP(%esp),%eax + pushl %eax + call do_execve + addl $4,%esp + ret + +.align 4 +sys_fork: + call find_empty_process + testl %eax,%eax + js 1f + push %gs + pushl %esi + pushl %edi + pushl %ebp + pushl %eax + call copy_process + addl $20,%esp +1: ret + +hd_interrupt: + pushl %eax + pushl %ecx + pushl %edx + push %ds + push %es + push %fs + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + movb $0x20,%al + outb %al,$0xA0 # EOI to interrupt controller #1 + jmp 1f # give port chance to breathe +1: jmp 1f +1: xorl %edx,%edx + xchgl do_hd,%edx + testl %edx,%edx + jne 1f + movl $unexpected_hd_interrupt,%edx +1: outb %al,$0x20 + call *%edx # "interesting" way of handling intr. + pop %fs + pop %es + pop %ds + popl %edx + popl %ecx + popl %eax + iret + +floppy_interrupt: + pushl %eax + pushl %ecx + pushl %edx + push %ds + push %es + push %fs + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + movb $0x20,%al + outb %al,$0x20 # EOI to interrupt controller #1 + xorl %eax,%eax + xchgl do_floppy,%eax + testl %eax,%eax + jne 1f + movl $unexpected_floppy_interrupt,%eax +1: call *%eax # "interesting" way of handling intr. + pop %fs + pop %es + pop %ds + popl %edx + popl %ecx + popl %eax + iret + +parallel_interrupt: + pushl %eax + movb $0x20,%al + outb %al,$0x20 + popl %eax + iret diff --git a/linux-0.11-lab/cur/linux/kernel/traps.c b/linux-0.11-lab/cur/linux/kernel/traps.c new file mode 100644 index 0000000..f9bd8f1 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/traps.c @@ -0,0 +1,208 @@ +/* + * linux/kernel/traps.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * 'Traps.c' handles hardware traps and faults after we have saved some + * state in 'asm.s'. Currently mostly a debugging-aid, will be extended + * to mainly kill the offending process (probably by giving it a signal, + * but possibly by killing it outright if necessary). + */ +#include + +#include +#include +#include +#include +#include +#include + +#define get_seg_byte(seg,addr) ({ \ +register char __res; \ +__asm__("push %%fs;mov %%ax,%%fs;movb %%fs:%2,%%al;pop %%fs" \ + :"=a" (__res):"0" (seg),"m" (*(addr))); \ +__res;}) + +#define get_seg_long(seg,addr) ({ \ +register unsigned long __res; \ +__asm__("push %%fs;mov %%ax,%%fs;movl %%fs:%2,%%eax;pop %%fs" \ + :"=a" (__res):"0" (seg),"m" (*(addr))); \ +__res;}) + +#define _fs() ({ \ +register unsigned short __res; \ +__asm__("mov %%fs,%%ax":"=a" (__res):); \ +__res;}) + +int do_exit(long code); + +void page_exception(void); + +void divide_error(void); +void debug(void); +void nmi(void); +void int3(void); +void overflow(void); +void bounds(void); +void invalid_op(void); +void device_not_available(void); +void double_fault(void); +void coprocessor_segment_overrun(void); +void invalid_TSS(void); +void segment_not_present(void); +void stack_segment(void); +void general_protection(void); +void page_fault(void); +void coprocessor_error(void); +void reserved(void); +void parallel_interrupt(void); +void irq13(void); + +static void die(char * str,long esp_ptr,long nr) +{ + long * esp = (long *) esp_ptr; + int i; + + printk("%s: %04x\n\r",str,nr&0xffff); + printk("EIP:\t%04x:%p\nEFLAGS:\t%p\nESP:\t%04x:%p\n", + esp[1],esp[0],esp[2],esp[4],esp[3]); + printk("fs: %04x\n",_fs()); + printk("base: %p, limit: %p\n",get_base(current->ldt[1]),get_limit(0x17)); + if (esp[4] == 0x17) { + printk("Stack: "); + for (i=0;i<4;i++) + printk("%p ",get_seg_long(0x17,i+(long *)esp[3])); + printk("\n"); + } + str(i); + printk("Pid: %d, process nr: %d\n\r",current->pid,0xffff & i); + for(i=0;i<10;i++) + printk("%02x ",0xff & get_seg_byte(esp[1],(i+(char *)esp[0]))); + printk("\n\r"); + do_exit(11); /* play segment exception */ +} + +void do_double_fault(long esp, long error_code) +{ + die("double fault",esp,error_code); +} + +void do_general_protection(long esp, long error_code) +{ + die("general protection",esp,error_code); +} + +void do_divide_error(long esp, long error_code) +{ + die("divide error",esp,error_code); +} + +void do_int3(long * esp, long error_code, + long fs,long es,long ds, + long ebp,long esi,long edi, + long edx,long ecx,long ebx,long eax) +{ + int tr; + + __asm__("str %%ax":"=a" (tr):"0" (0)); + printk("eax\t\tebx\t\tecx\t\tedx\n\r%8x\t%8x\t%8x\t%8x\n\r", + eax,ebx,ecx,edx); + printk("esi\t\tedi\t\tebp\t\tesp\n\r%8x\t%8x\t%8x\t%8x\n\r", + esi,edi,ebp,(long) esp); + printk("\n\rds\tes\tfs\ttr\n\r%4x\t%4x\t%4x\t%4x\n\r", + ds,es,fs,tr); + printk("EIP: %8x CS: %4x EFLAGS: %8x\n\r",esp[0],esp[1],esp[2]); +} + +void do_nmi(long esp, long error_code) +{ + die("nmi",esp,error_code); +} + +void do_debug(long esp, long error_code) +{ + die("debug",esp,error_code); +} + +void do_overflow(long esp, long error_code) +{ + die("overflow",esp,error_code); +} + +void do_bounds(long esp, long error_code) +{ + die("bounds",esp,error_code); +} + +void do_invalid_op(long esp, long error_code) +{ + die("invalid operand",esp,error_code); +} + +void do_device_not_available(long esp, long error_code) +{ + die("device not available",esp,error_code); +} + +void do_coprocessor_segment_overrun(long esp, long error_code) +{ + die("coprocessor segment overrun",esp,error_code); +} + +void do_invalid_TSS(long esp,long error_code) +{ + die("invalid TSS",esp,error_code); +} + +void do_segment_not_present(long esp,long error_code) +{ + die("segment not present",esp,error_code); +} + +void do_stack_segment(long esp,long error_code) +{ + die("stack segment",esp,error_code); +} + +void do_coprocessor_error(long esp, long error_code) +{ + if (last_task_used_math != current) + return; + die("coprocessor error",esp,error_code); +} + +void do_reserved(long esp, long error_code) +{ + die("reserved (15,17-47) error",esp,error_code); +} + +void trap_init(void) +{ + int i; + + set_trap_gate(0,÷_error); + set_trap_gate(1,&debug); + set_trap_gate(2,&nmi); + set_system_gate(3,&int3); /* int3-5 can be called from all */ + set_system_gate(4,&overflow); + set_system_gate(5,&bounds); + set_trap_gate(6,&invalid_op); + set_trap_gate(7,&device_not_available); + set_trap_gate(8,&double_fault); + set_trap_gate(9,&coprocessor_segment_overrun); + set_trap_gate(10,&invalid_TSS); + set_trap_gate(11,&segment_not_present); + set_trap_gate(12,&stack_segment); + set_trap_gate(13,&general_protection); + set_trap_gate(14,&page_fault); + set_trap_gate(15,&reserved); + set_trap_gate(16,&coprocessor_error); + for (i=17;i<48;i++) + set_trap_gate(i,&reserved); + set_trap_gate(45,&irq13); + outb_p(inb_p(0x21)&0xfb,0x21); + outb(inb_p(0xA1)&0xdf,0xA1); + set_trap_gate(39,¶llel_interrupt); +} diff --git a/linux-0.11-lab/cur/linux/kernel/traps.o b/linux-0.11-lab/cur/linux/kernel/traps.o new file mode 100644 index 0000000000000000000000000000000000000000..51de46fe88ac98ea479385c2c283bf030d1f46cd GIT binary patch literal 12972 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 +#include + +/* we use this so that we can do without the ctype library */ +#define is_digit(c) ((c) >= '0' && (c) <= '9') + +static int skip_atoi(const char **s) +{ + int i=0; + + while (is_digit(**s)) + i = i*10 + *((*s)++) - '0'; + return i; +} + +#define ZEROPAD 1 /* pad with zero */ +#define SIGN 2 /* unsigned/signed long */ +#define PLUS 4 /* show plus */ +#define SPACE 8 /* space if plus */ +#define LEFT 16 /* left justified */ +#define SPECIAL 32 /* 0x */ +#define SMALL 64 /* use 'abcdef' instead of 'ABCDEF' */ + +#define do_div(n,base) ({ \ +int __res; \ +__asm__("divl %4":"=a" (n),"=d" (__res):"0" (n),"1" (0),"r" (base)); \ +__res; }) + +static char * number(char * str, int num, int base, int size, int precision + ,int type) +{ + char c,sign,tmp[36]; + const char *digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + int i; + + if (type&SMALL) digits="0123456789abcdefghijklmnopqrstuvwxyz"; + if (type&LEFT) type &= ~ZEROPAD; + if (base<2 || base>36) + return 0; + c = (type & ZEROPAD) ? '0' : ' ' ; + if (type&SIGN && num<0) { + sign='-'; + num = -num; + } else + sign=(type&PLUS) ? '+' : ((type&SPACE) ? ' ' : 0); + if (sign) size--; + if (type&SPECIAL) + if (base==16) size -= 2; + else if (base==8) size--; + i=0; + if (num==0) + tmp[i++]='0'; + else while (num!=0) + tmp[i++]=digits[do_div(num,base)]; + if (i>precision) precision=i; + size -= precision; + if (!(type&(ZEROPAD+LEFT))) + while(size-->0) + *str++ = ' '; + if (sign) + *str++ = sign; + if (type&SPECIAL) + if (base==8) + *str++ = '0'; + else if (base==16) { + *str++ = '0'; + *str++ = digits[33]; + } + if (!(type&LEFT)) + while(size-->0) + *str++ = c; + while(i0) + *str++ = tmp[i]; + while(size-->0) + *str++ = ' '; + return str; +} + +int vsprintf(char *buf, const char *fmt, va_list args) +{ + int len; + int i; + char * str; + char *s; + int *ip; + + int flags; /* flags to number() */ + + int field_width; /* width of output field */ + int precision; /* min. # of digits for integers; max + number of chars for from string */ + int qualifier; /* 'h', 'l', or 'L' for integer fields */ + + for (str=buf ; *fmt ; ++fmt) { + if (*fmt != '%') { + *str++ = *fmt; + continue; + } + + /* process flags */ + flags = 0; + repeat: + ++fmt; /* this also skips first '%' */ + switch (*fmt) { + case '-': flags |= LEFT; goto repeat; + case '+': flags |= PLUS; goto repeat; + case ' ': flags |= SPACE; goto repeat; + case '#': flags |= SPECIAL; goto repeat; + case '0': flags |= ZEROPAD; goto repeat; + } + + /* get field width */ + field_width = -1; + if (is_digit(*fmt)) + field_width = skip_atoi(&fmt); + else if (*fmt == '*') { + /* it's the next argument */ + field_width = va_arg(args, int); + if (field_width < 0) { + field_width = -field_width; + flags |= LEFT; + } + } + + /* get the precision */ + precision = -1; + if (*fmt == '.') { + ++fmt; + if (is_digit(*fmt)) + precision = skip_atoi(&fmt); + else if (*fmt == '*') { + /* it's the next argument */ + precision = va_arg(args, int); + } + if (precision < 0) + precision = 0; + } + + /* get the conversion qualifier */ + qualifier = -1; + if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L') { + qualifier = *fmt; + ++fmt; + } + + switch (*fmt) { + case 'c': + if (!(flags & LEFT)) + while (--field_width > 0) + *str++ = ' '; + *str++ = (unsigned char) va_arg(args, int); + while (--field_width > 0) + *str++ = ' '; + break; + + case 's': + s = va_arg(args, char *); + len = strlen(s); + if (precision < 0) + precision = len; + else if (len > precision) + len = precision; + + if (!(flags & LEFT)) + while (len < field_width--) + *str++ = ' '; + for (i = 0; i < len; ++i) + *str++ = *s++; + while (len < field_width--) + *str++ = ' '; + break; + + case 'o': + str = number(str, va_arg(args, unsigned long), 8, + field_width, precision, flags); + break; + + case 'p': + if (field_width == -1) { + field_width = 8; + flags |= ZEROPAD; + } + str = number(str, + (unsigned long) va_arg(args, void *), 16, + field_width, precision, flags); + break; + + case 'x': + flags |= SMALL; + case 'X': + str = number(str, va_arg(args, unsigned long), 16, + field_width, precision, flags); + break; + + case 'd': + case 'i': + flags |= SIGN; + case 'u': + str = number(str, va_arg(args, unsigned long), 10, + field_width, precision, flags); + break; + + case 'n': + ip = va_arg(args, int *); + *ip = (str - buf); + break; + + default: + if (*fmt != '%') + *str++ = '%'; + if (*fmt) + *str++ = *fmt; + else + --fmt; + break; + } + } + *str = '\0'; + return str-buf; +} diff --git a/linux-0.11-lab/cur/linux/kernel/vsprintf.o b/linux-0.11-lab/cur/linux/kernel/vsprintf.o new file mode 100644 index 0000000000000000000000000000000000000000..5acfe6576413e77d5a31e400e048fdd1e4ad4bf8 GIT binary patch literal 6156 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 tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +_exit.s _exit.o : _exit.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +close.s close.o : close.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +ctype.s ctype.o : ctype.c ../include/ctype.h +dup.s dup.o : dup.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +errno.s errno.o : errno.c +execve.s execve.o : execve.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +malloc.s malloc.o : malloc.c ../include/linux/kernel.h ../include/linux/mm.h \ + ../include/asm/system.h +open.s open.o : open.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h ../include/stdarg.h +setsid.s setsid.o : setsid.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +string.s string.o : string.c ../include/string.h +wait.s wait.o : wait.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h ../include/sys/wait.h +write.s write.o : write.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h diff --git a/linux-0.11-lab/cur/linux/lib/_exit.c b/linux-0.11-lab/cur/linux/lib/_exit.c new file mode 100644 index 0000000..c0c9d69 --- /dev/null +++ b/linux-0.11-lab/cur/linux/lib/_exit.c @@ -0,0 +1,13 @@ +/* + * linux/lib/_exit.c + * + * (C) 1991 Linus Torvalds + */ + +#define __LIBRARY__ +#include + +volatile void _exit(int exit_code) +{ + __asm__("int $0x80"::"a" (__NR_exit),"b" (exit_code)); +} diff --git a/linux-0.11-lab/cur/linux/lib/_exit.o b/linux-0.11-lab/cur/linux/lib/_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..04229e90d130407cf5356bdac84c753b533235f4 GIT binary patch literal 1992 zcma)7&u<$=6n^8i6BDOylYnRxgf>!919aC8HK-H{g%ko5MWRq~s8F=FC-#bXH|(xy zS|NUj3y4z>hzkduN(oKlttQ8~1Zabz`rqA-Gz>6dHxVy`)-w zeh#QsZ~O}8)f;hANUb)%Mx|>0WNh;{j5PND z#>g0MH$<*{;%6~x@;GLt{%)VZY#N7VDB0DAaS;yahQKC@x1iR4sny_Sj51B~c$Da& z&z(E}e4J*5f6UYwrxV>tro*C>=0T!wcJ||BdKh%W&COsx>UX-O0&`#T__i)?9cbC! zx$bZIz3@WV^Mgs04aS$^^B11;gOMNXrIWY__OfWAgM$?5bp~aeAg&Jfrpcg)(e$sgLJ6H=w*9r>!QDLy+2KgX<0?^%+yGm zpKkWTZtuxb%l16X38Zdc6ZJ_`tu5B;U!jZc8_;I@{z|*~Wo_qvn@1tcZ%vA*4_;&? zA3Id&!$QJgR74W?^IXDA?}tO(pN@9pWG{uu;Hclv^v6|eltsx%A6vkdxCMwW;UJw% zG(K3Epd%r=Tz04oqsP0ZtE~9{5sy1>5AOnr_o{lvXd|s-5Zmh~SE#Iz^E(S2j`)B2 zb>ZXIFbw0}B(UUc=O91il;GWYkwfq$41NX<=6eyttpSuDG2S7tbH$6{*>`3C+GKt^>e0=$_K@Xv)aG4e$HF~ly7Y5%KAumFsl3bxv~$uaaRP&R*>~ow#`BT)By^5kJSRI|)z{^(f1IBD z_@9MxwGztJjFep$$|&CK);JkORmeNmDXwo-tdzOKBl3hDJR(mPXA#(gWp>Lw)a4s) zDp2UzBJ2uHV&BOhu^hh@QP|cxIS$;0)psnvWcd}#uUdZ1^7k$0`DL83mHA$%M)_^1 Mf7;r8aQtKBUyA6>L;wH) literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/lib/close.c b/linux-0.11-lab/cur/linux/lib/close.c new file mode 100644 index 0000000..afd8364 --- /dev/null +++ b/linux-0.11-lab/cur/linux/lib/close.c @@ -0,0 +1,10 @@ +/* + * linux/lib/close.c + * + * (C) 1991 Linus Torvalds + */ + +#define __LIBRARY__ +#include + +_syscall1(int,close,int,fd) diff --git a/linux-0.11-lab/cur/linux/lib/close.o b/linux-0.11-lab/cur/linux/lib/close.o new file mode 100644 index 0000000000000000000000000000000000000000..a80ba5284931b40ab6a906bea4c618b8b4d73713 GIT binary patch literal 2224 zcma)7&2Jk;6o0e3{%D*UCn=C9NGwt+Qef8!H4v4Sexy(pP!EL)B#@%Dy|!1ichmi# zX%(PSghUk%R0u^#9FTh9PpCLmDi;p)QVF=hfg2nO95`?&zc)J*Z%**!c^|*`=DnFW zp4ksye*G081Zfgv(%2&U#mqe|DHiDfP0<@$zc+4`0c^jyFnj&p_t&nUUYOk4T$rSd z@;21p8qELx=_b#)^#HW>ZR4FgpTV*iB1^Qv#a*x_+n^V6L55Xf&9F-QAxx_jgee(D z@iRp6VQFs=pR(lB$R-n`>D!JnLoLN6od$IQ9+}RlpJ~6vm5 z^@%#eDDmA6&&a|cNxSYKKfRK{n7L29idKqp6+N_!-k(MZnX)hm`k~*oxwXS6>`O(a zqGS-osl6wnIfzDnGt9baGfJG$zuX)KVYcBcxy#GW&}%oBasa$dejJApojG^GUbS29 zirccCkr#Ic$AZHv&)ZJlc6!k$NS$8njeKW4!V>%#U=Sjy@AR^;lLk?k016`~NxjZR zXFZNmzmrBWt*ym=f}N`McLrX(+kzyx>Ze!MeUd1hSzSG1FJ5S8VVdPDah}bjwfw_u=%-D|gF|GlEui@mUqofal=d-Md< zAh#2ZMm`SE4bdGJ9nZU!&+!Lqvcvh>{||p0L45D|S~Kx|Fa9C*n=lW29|tI^;$q-O z(-<7X7o6>b%2v+@U4&gEo$qOY9RFW&ydFJ=^KiZ$RupO9671so8c2Q(7_YB{q1Sf; zx}F0SZwsyvD~h!5JZ!DA>oN?R6-C;24tBBbr>NTi#&vmrx-Ks5o_sqkq8ozDYM z%=ZAJ<5(udE*eJFT?iN6?} zkNeIwi}~&&?qOh>bUtlsS;Q^+fMK29xBsZ5J@*iSC-1 z&nG)3lP1RoG?VZ_Dv(Ls!7-WWfbKQl-D#XqF@pQD`(Ebneg0kpK7=8Vp6|Z^`#=G^>I;ot?WOg Jqz!4n{ulF`_R9bO literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/lib/ctype.c b/linux-0.11-lab/cur/linux/lib/ctype.c new file mode 100644 index 0000000..877e629 --- /dev/null +++ b/linux-0.11-lab/cur/linux/lib/ctype.c @@ -0,0 +1,35 @@ +/* + * linux/lib/ctype.c + * + * (C) 1991 Linus Torvalds + */ + +#include + +char _ctmp; +unsigned char _ctype[] = {0x00, /* EOF */ +_C,_C,_C,_C,_C,_C,_C,_C, /* 0-7 */ +_C,_C|_S,_C|_S,_C|_S,_C|_S,_C|_S,_C,_C, /* 8-15 */ +_C,_C,_C,_C,_C,_C,_C,_C, /* 16-23 */ +_C,_C,_C,_C,_C,_C,_C,_C, /* 24-31 */ +_S|_SP,_P,_P,_P,_P,_P,_P,_P, /* 32-39 */ +_P,_P,_P,_P,_P,_P,_P,_P, /* 40-47 */ +_D,_D,_D,_D,_D,_D,_D,_D, /* 48-55 */ +_D,_D,_P,_P,_P,_P,_P,_P, /* 56-63 */ +_P,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U, /* 64-71 */ +_U,_U,_U,_U,_U,_U,_U,_U, /* 72-79 */ +_U,_U,_U,_U,_U,_U,_U,_U, /* 80-87 */ +_U,_U,_U,_P,_P,_P,_P,_P, /* 88-95 */ +_P,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L, /* 96-103 */ +_L,_L,_L,_L,_L,_L,_L,_L, /* 104-111 */ +_L,_L,_L,_L,_L,_L,_L,_L, /* 112-119 */ +_L,_L,_L,_P,_P,_P,_P,_C, /* 120-127 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 128-143 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 144-159 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 160-175 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 176-191 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 192-207 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 208-223 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 224-239 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; /* 240-255 */ + diff --git a/linux-0.11-lab/cur/linux/lib/ctype.o b/linux-0.11-lab/cur/linux/lib/ctype.o new file mode 100644 index 0000000000000000000000000000000000000000..acd65e6a3869dcf4ecb16245dcd9f21e6856c20c GIT binary patch literal 1908 zcmcgtOK;Oa5Z;Yl`bZlRr97$%luE4#2s;S`RJF8FBB+9@9*}xLf?_*PViDVs<3Ni9 z`~q(L0B%U!xbSDVaN!4lxFJ-&+4Ux_=z$X>&CcuFnf2_$Z|?2f=bSS|oM~)qG4@WA zk-89NmS=McD&>@-GLbUI@_qg|=_5+~TY|8Lzeob^3d)>76rVc2n*VRvD5;CGI)4bs z*HdfA+<;+%H5$-ZU7u_~(fO1CG4YX{GZ#n|eV*7M$MlntL+7VH!C<_=S8~OymRro_ z&oP$ayjkQ$?>nnU-72u4kLY+Y6cVm^}~9P?}_=LdCEQ&ajIZ zIscWL!zfMy_MbB+KJ2@uBcPRT=)09**orIRzzEzIm7W(24~(i=s~J7Zu2iK1qs@lF z!0QBVtK@X8Xq0B)y>uxf+jnBW&$f5>N{v$8Ts7+@!?z-*yWw45y;(9kC8HhsUTm}@ z%Xf`_=moJG!RZC4=^E`};KW`S4B!evV-Q=;Gov4cvFpTPMA@l`D9yGTjkQvF&mIQx zP}VZ84TV*EU8|eb`eo_G77Y&l*s>wxNXo9#V)r0sX3L5#X4-=RGb6WWwp@GI+4q8W zh>*}N+m77l>8KT1LC3`e382+09l4q5gud?v$Q@wuCK@6?Ml}52hDF*q@TmkY@9220 zy2nciF1gC=4%sRQy#yw@1g86>a9b%1#g$o2>EtI|o0NnU?kenQ<%FD_Wb7#<&Zszu zbZw~KEwGvcm3@G*NlHR0whLS76#52(j<+HedjLneZVz>-4%LM!YLopKtmZ&vzhRU~ zNl3*!*rd~U6RqGbeU_>iDMlP8QsKS;cSRuNpm47eoC?XiudMN!3UH~tpeW(qj$xy< zQ(k$!WpEw`;w#kC;8`&BIS;0ur1Sj*?ks$YD9=fh_Ur8XQ5tjnZ$bIfD + +_syscall1(int,dup,int,fd) diff --git a/linux-0.11-lab/cur/linux/lib/dup.o b/linux-0.11-lab/cur/linux/lib/dup.o new file mode 100644 index 0000000000000000000000000000000000000000..db9a7a81905d536743a71bac0ad2fb102e9303dc GIT binary patch literal 2200 zcma)7&2Jl35TCcZ{%D*UCjpTtNEj)F1lYAhEr<%GDJfJ1)I&>=fJ3yl*Y>LRZn_`T zt-^;CA+-tzDuf~=Zv6{5(R<;*pJngp3NK}0{9nWZJ!GCfQ)bbjZL+N~8RcHdf>zy9N$kFTFvn%>!7nx=7a z7vk?Vp6~r~lh@pO0NVMs_TKH!fh<;$CEmd-4r6+fG3bSikztisGOWUPV5U{@gM6QKj-SRH#6SWn^;1i3PKKtny;zsf9Ch?7Tj|_sW7mZG{45 zmNRq4JW;VlW|bW?Sen2S3ok7o_hXzNLwAHFE?v{x5Den_g!rd=7_&ShoQ!ash97i> zY1bpd-klDwNdrGly3QawyMhdD9ulvkk)l{e2Q8!bmr+2RG>H9v;C1WV*lc|~2&1Ha zz|a_kBd-yp-J}u5cHmuZ4E-P-+f8S6)gHR-Ml(}jZj%>9K}e_1UZ`)>Th5x(s@o$s z>I{ziN7tUO+x@!T3rBup_ab-X*;^qpdl8g=fS{h;OM_10hd~Tg5ZZC#b}rgmQJ8q0 zB#dZtGxB0=P?g;oxDgG*pf5KN`&Yf>%9ck`O{X_Dj@6ehw9_C-vr_EmQi)bSTx~hc z)=H)&e8(AytLI2;m&M|=WnDvi`Cxc3$pblAE$gPcw{ z8hJQ2CqQ!?G(2low#FN5$_8h(|DXABIPqOCDrdgq`HxV)1B=ifQa;S?3GjT$^QT4$Mxtn9EaoWv7kuXn!x$`IQSSkuCIWh>syDc*FeO3 zf{Vj~B5gYdtYtP`2B@>3NZZZ==ktz{w+0>O<^AcrxTpu>?IFOs&}q`~TqyGKt|17= z;doORI^HG7yoUG9bQj>)Oq4U*cx)@K{qEpdcv^a7llJ>W`DxR=>}Aq$zxFScpEloz zu(t1&)yMD)jQl=6%kASK*z`VTAnR`cA~gYSvY?3TV`8pzGX5JM?4RIxcZvTY9FP0X zIrH&;!*|L#H0gL6Yo6CzboYVQGe7t@WSq~yn6ppFlwVvP%m3NF!jvbv53!z4c0wji zPXHv7@Ds|BN!-B+ndpGdz;|~R-KtE?vM=hH=O1PERKvc4ArPAHzQDv;1scfxV*ZHY z{Ie2h{u9h`j>}5lQ2e;!rxbrfae0Rj$7PK5A1M8&ip#vXoP2IiZUFxaTkQ2g literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/lib/errno.c b/linux-0.11-lab/cur/linux/lib/errno.c new file mode 100644 index 0000000..50aca2e --- /dev/null +++ b/linux-0.11-lab/cur/linux/lib/errno.c @@ -0,0 +1,7 @@ +/* + * linux/lib/errno.c + * + * (C) 1991 Linus Torvalds + */ + +int errno; diff --git a/linux-0.11-lab/cur/linux/lib/errno.o b/linux-0.11-lab/cur/linux/lib/errno.o new file mode 100644 index 0000000000000000000000000000000000000000..2b68237de5d516e34b24195231b0aca298879d71 GIT binary patch literal 1472 zcma)6OK;Oa5T1=w3Ydmg1wmB_8L5aA;Z4#;RaIVx3Mvrltw)6HWYZdIyK>f04m|FN zQzg#)0?zylPW%tJawy;IdK)8wV5HfZ`R3c5eT@C~{^JKi2y!CGqe(;*G;F4COq*tD zhF0J=P23c#u;RT5?9d1qnU)x*JchjHRFY|6bK+WS-uGIIt=UUNjXrs;4gZ$^aQ@yx z<1%g4zI(q1Z~h2j6(cu&0sWJ$A$%|qR4VNU>bGy@>F%Qa;Q7` zILy?`&VG`WhhbOtdf|Q)ce)n97~6@owY?K;27S3M`$3pS#bEDFvbw$&gu6jF%F{%L zqasRGc#z{XssNZ|SX70hG8^b5&&GhVJRIw2@H{*ya;*kBFDBdC+T7d-+BC)B- zS4tE0-t_vi+h4XQksQBDbri$u!rDFOX?3Vc4kI0rjK^b=h1!=x6_>kDlWdeDW&9|P z3-zL&jfyDSRhVE2ymRMcZIXjLO%oAA%n@OM*0>xf%W?lD%bcN^;Fz@=wUp6kTr zwgEVwb048-;uCSXM?mUzzo0JH;kwgMSN92gHwP|#hPK(M#N`si?DM%dHD^0`P{Vn9=cGS3H+G;zUhcI0wwV1*e(!;SW6KSHBFC{e%O4g?Ao$4$9}9h4P)$ z*E_(yFvp3j>tbi?c$2;#JDlzBe=d&eJK?xqkz?M?M7)#kwU}pKsGhICB+oxPNy78Y z2`7+8zBwmXVV$EN$0z>-^SiR&i@-<2cO$So-!t2bm0e(qhB5y<;QWRHWd6 + +_syscall3(int,execve,const char *,file,char **,argv,char **,envp) diff --git a/linux-0.11-lab/cur/linux/lib/execve.o b/linux-0.11-lab/cur/linux/lib/execve.o new file mode 100644 index 0000000000000000000000000000000000000000..250d3960bb4f0002c32cd56d11ed8f4363a47a21 GIT binary patch literal 2340 zcma)7OKclO82)E>{Yad;c_9)d5=L?%Ja(NBtBOkc!i5s3id3i&qE%SiV|#_Y8`kSI zt)hYyA%ViB2Sh;}kSZijy>KZvP!SIyPF#BJg$qbLB*cM3`Tp6RcyoeZp8x%te|E-i zK7HmHAp~g)li3v7PPm z7;R;D!TvJN`0qP6IP%s#z|Pm>uipL^Qk>Hg&w>|mW_BVv8WS?C+&5qiEAummX=OY= zBE!gi&PtL0RM~QOl$8Am#Ik|J=rS+^=Mf)&2Auf>NQ^RTT%*igC8;#mtV}H><+Hyj z>2c*5QO>#vF8=~h&iX=O=0`ZS@x3Y}Cd8rQRKYCH6(_`GcKm)=%2X&Eg9=?IY#!Y? z;`pptJW_bF@bK)~6g!`o`QWKpF@***6kFD&j2WVAb)T3!h1HkIEamK=NDxTly4w{lkZpp@`bQ&Bo@V$Q2bUN{e zkWtyq5%C<(LuB*cff%hnjSNy%IzdlX{6RCS1by3=mnvP)A8gr+&eD?Ib?cSISOHv5 zN(?K>F!TeG{^kaqK6}1YD^;Bpr&_XmZrJD?^_Eu-m+W@QZUsFrvRk3sllDe{4?%`d zdOj*iyEX6|kr()VsQke0M{eVFdm{`Y*@%LWT3%OTJAJS1%Vw$3aYO2Nf-oxW>G;Fi zC&W(P6&YRLkmQE#P3i`IyTp#`>!Iuuovzi6lorm{2Yxh&o3@`AC~4{HQq@_kJ`!tr zmeY&?;>tM^+j%iJW?AoG_V~f0#x7C;JV_mZ8ss#BUQc4b zj*me)IGlK}ag6M&tHX$U|3CNvIPsg3O`Q40r$14)G0b6&C@w}#Tpj#q5{rHK*wJ$v!~Xx}$NlISPQv+qU?u@=TZEkMuZ!f@q2vBCSh~Lx;B^dGT7~d7 zGYM$hImnu4(^n8m%p{;~XCbHSS`fye*T^HAQU%tCYa1lBUI-d(gI^Q$|&cpde zv2;G31IO^b8IIv4_$y`=W*e{VglfNK4E#~$5hLx#GhklBMSU=dLfbxs%zXT;5xoY# z6&(c1{V}|cmEOmEY99w-)BBhJpDuMB!VTy&=(_2eY`c&n`W+PSE*-$)d^~rqna+0x z!^7LZ2Rh%LB4N^ci~hKmw(tMf<^1UiEbCpzQKtIhh8avkvnepui4GN}I@z>5HWa{_ zgukp5n8Xttf{6+6x52=7cM>PWbJf6eNj>fA--O~9o+>a2r04rDfVi^25ILUdeF^2i zGl4^YkSS)mkmyxB{J1XrpGxTS303z9`j->gWr{o-iF`Go??}6iL K2`zydkpBhBxe2NO literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/lib/lib.a b/linux-0.11-lab/cur/linux/lib/lib.a new file mode 100644 index 0000000000000000000000000000000000000000..0944ab9b445a35144a211b8b311d1288299547ba GIT binary patch literal 34170 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/lib/malloc.c b/linux-0.11-lab/cur/linux/lib/malloc.c new file mode 100644 index 0000000..d7c95d5 --- /dev/null +++ b/linux-0.11-lab/cur/linux/lib/malloc.c @@ -0,0 +1,232 @@ +/* + * malloc.c --- a general purpose kernel memory allocator for Linux. + * + * Written by Theodore Ts'o (tytso@mit.edu), 11/29/91 + * + * This routine is written to be as fast as possible, so that it + * can be called from the interrupt level. + * + * Limitations: maximum size of memory we can allocate using this routine + * is 4k, the size of a page in Linux. + * + * The general game plan is that each page (called a bucket) will only hold + * objects of a given size. When all of the object on a page are released, + * the page can be returned to the general free pool. When malloc() is + * called, it looks for the smallest bucket size which will fulfill its + * request, and allocate a piece of memory from that bucket pool. + * + * Each bucket has as its control block a bucket descriptor which keeps + * track of how many objects are in use on that page, and the free list + * for that page. Like the buckets themselves, bucket descriptors are + * stored on pages requested from get_free_page(). However, unlike buckets, + * pages devoted to bucket descriptor pages are never released back to the + * system. Fortunately, a system should probably only need 1 or 2 bucket + * descriptor pages, since a page can hold 256 bucket descriptors (which + * corresponds to 1 megabyte worth of bucket pages.) If the kernel is using + * that much allocated memory, it's probably doing something wrong. :-) + * + * Note: malloc() and free() both call get_free_page() and free_page() + * in sections of code where interrupts are turned off, to allow + * malloc() and free() to be safely called from an interrupt routine. + * (We will probably need this functionality when networking code, + * particularily things like NFS, is added to Linux.) However, this + * presumes that get_free_page() and free_page() are interrupt-level + * safe, which they may not be once paging is added. If this is the + * case, we will need to modify malloc() to keep a few unused pages + * "pre-allocated" so that it can safely draw upon those pages if + * it is called from an interrupt routine. + * + * Another concern is that get_free_page() should not sleep; if it + * does, the code is carefully ordered so as to avoid any race + * conditions. The catch is that if malloc() is called re-entrantly, + * there is a chance that unecessary pages will be grabbed from the + * system. Except for the pages for the bucket descriptor page, the + * extra pages will eventually get released back to the system, though, + * so it isn't all that bad. + */ + +#include +#include +#include + +struct bucket_desc { /* 16 bytes */ + void *page; + struct bucket_desc *next; + void *freeptr; + unsigned short refcnt; + unsigned short bucket_size; +}; + +struct _bucket_dir { /* 8 bytes */ + int size; + struct bucket_desc *chain; +}; + +/* + * The following is the where we store a pointer to the first bucket + * descriptor for a given size. + * + * If it turns out that the Linux kernel allocates a lot of objects of a + * specific size, then we may want to add that specific size to this list, + * since that will allow the memory to be allocated more efficiently. + * However, since an entire page must be dedicated to each specific size + * on this list, some amount of temperance must be exercised here. + * + * Note that this list *must* be kept in order. + */ +struct _bucket_dir bucket_dir[] = { + { 16, (struct bucket_desc *) 0}, + { 32, (struct bucket_desc *) 0}, + { 64, (struct bucket_desc *) 0}, + { 128, (struct bucket_desc *) 0}, + { 256, (struct bucket_desc *) 0}, + { 512, (struct bucket_desc *) 0}, + { 1024, (struct bucket_desc *) 0}, + { 2048, (struct bucket_desc *) 0}, + { 4096, (struct bucket_desc *) 0}, + { 0, (struct bucket_desc *) 0}}; /* End of list marker */ + +/* + * This contains a linked list of free bucket descriptor blocks + */ +struct bucket_desc *free_bucket_desc = (struct bucket_desc *) 0; + +/* + * This routine initializes a bucket description page. + */ +static inline void init_bucket_desc() +{ + struct bucket_desc *bdesc, *first; + int i; + + first = bdesc = (struct bucket_desc *) get_free_page(); + if (!bdesc) + panic("Out of memory in init_bucket_desc()"); + for (i = PAGE_SIZE/sizeof(struct bucket_desc); i > 1; i--) { + bdesc->next = bdesc+1; + bdesc++; + } + /* + * This is done last, to avoid race conditions in case + * get_free_page() sleeps and this routine gets called again.... + */ + bdesc->next = free_bucket_desc; + free_bucket_desc = first; +} + +void *malloc(unsigned int len) +{ + struct _bucket_dir *bdir; + struct bucket_desc *bdesc; + void *retval; + + /* + * First we search the bucket_dir to find the right bucket change + * for this request. + */ + for (bdir = bucket_dir; bdir->size; bdir++) + if (bdir->size >= len) + break; + if (!bdir->size) { + printk("malloc called with impossibly large argument (%d)\n", + len); + panic("malloc: bad arg"); + } + /* + * Now we search for a bucket descriptor which has free space + */ + cli(); /* Avoid race conditions */ + for (bdesc = bdir->chain; bdesc; bdesc = bdesc->next) + if (bdesc->freeptr) + break; + /* + * If we didn't find a bucket with free space, then we'll + * allocate a new one. + */ + if (!bdesc) { + char *cp; + int i; + + if (!free_bucket_desc) + init_bucket_desc(); + bdesc = free_bucket_desc; + free_bucket_desc = bdesc->next; + bdesc->refcnt = 0; + bdesc->bucket_size = bdir->size; + bdesc->page = bdesc->freeptr = (void *) (cp = get_free_page()); + if (!cp) + panic("Out of memory in kernel malloc()"); + /* Set up the chain of free objects */ + for (i=PAGE_SIZE/bdir->size; i > 1; i--) { + *((char **) cp) = cp + bdir->size; + cp += bdir->size; + } + *((char **) cp) = 0; + bdesc->next = bdir->chain; /* OK, link it in! */ + bdir->chain = bdesc; + } + retval = (void *) bdesc->freeptr; + bdesc->freeptr = *((void **) retval); + bdesc->refcnt++; + sti(); /* OK, we're safe again */ + return(retval); +} + +/* + * Here is the free routine. If you know the size of the object that you + * are freeing, then free_s() will use that information to speed up the + * search for the bucket descriptor. + * + * We will #define a macro so that "free(x)" is becomes "free_s(x, 0)" + */ +void free_s(void *obj, int size) +{ + void *page; + struct _bucket_dir *bdir; + struct bucket_desc *bdesc, *prev; + + /* Calculate what page this object lives in */ + page = (void *) ((unsigned long) obj & 0xfffff000); + /* Now search the buckets looking for that page */ + for (bdir = bucket_dir; bdir->size; bdir++) { + prev = 0; + /* If size is zero then this conditional is always false */ + if (bdir->size < size) + continue; + for (bdesc = bdir->chain; bdesc; bdesc = bdesc->next) { + if (bdesc->page == page) + goto found; + prev = bdesc; + } + } + panic("Bad address passed to kernel free_s()"); +found: + cli(); /* To avoid race conditions */ + *((void **)obj) = bdesc->freeptr; + bdesc->freeptr = obj; + bdesc->refcnt--; + if (bdesc->refcnt == 0) { + /* + * We need to make sure that prev is still accurate. It + * may not be, if someone rudely interrupted us.... + */ + if ((prev && (prev->next != bdesc)) || + (!prev && (bdir->chain != bdesc))) + for (prev = bdir->chain; prev; prev = prev->next) + if (prev->next == bdesc) + break; + if (prev) + prev->next = bdesc->next; + else { + if (bdir->chain != bdesc) + panic("malloc bucket chains corrupted"); + bdir->chain = bdesc->next; + } + free_page((unsigned long) bdesc->page); + bdesc->next = free_bucket_desc; + free_bucket_desc = bdesc; + } + sti(); + return; +} + diff --git a/linux-0.11-lab/cur/linux/lib/malloc.o b/linux-0.11-lab/cur/linux/lib/malloc.o new file mode 100644 index 0000000000000000000000000000000000000000..83667757057ff0915c7c4ad6ae9f4d0c0160ea5d GIT binary patch literal 4880 zcma)AS!`Ta89sOBdNTId@?Fn#g3%ipE_#~_of1bL9E?Nob`ab!I zi+!(7T-}TyePri5q3N3vn|36JywH3rg7ig|=;VdqFN>4|Y6uD0$b_k=Ozh-m4gGIv zI%LD9cRm58cWNkl@`4|l?@)}?Ahli*ydk0WLLZY-Bqxr*atWsx2y&Iz zQ1g(^z4->@t0pdP##;1&99S)`$%Svb1UW~T9|qN>$66&9Xz+Mw{to(0$ucMAd%z^5 zsx45e1P1PsQe}d~6C!wxTZ1Ve4odw4tl?9LEbGU0OQ?zs$Z02#;(*FHF*VeDKiCAS z-K?TEkDk2Hdh$HH5xPtGEf9AhAMBq*z}?ygU-|`*FUMK ztQwMHeY;T9`P+36j^gt$ylB#2GF+vqk9thnNjbH}1CY=vxtnf0Gl3(3^_R`jIHd8* z8W#_1NDFL@QH>^mWin7}?XuCyX7W@C@xE~mx?b5WIx02> zLEA>-eBN_wHK&@X)i9V}akSy6=ei>`X{hs2NjkalOrczJauv@Ds=k{SJ(#+hwQa3M zSSyK3=UF}9VptKO1z?*sSO$bsFtF|*DZ*bMeP}EFgIxg~u_Au} z6Mq+-b?$9Q4&$><&7*IwWFLi44Io-&J8t<=Zfh zuznSU0PRfU2DBaQ8kyeDA?b9`Sr0OU2D#py6BO)cJS7lTyR|yr84Jf(#@nrqNZYL_ zL8ldt$6^~}n_^ZcR;)#Y<79SrZouN(ts(|!Anb%Xk_5380fbngNgT0g8Zqd^phJo0 zwskX9Cju zNweIX?UuE(lL>Y7h@GANm`>+XX7_Z{UhooUY0ViTWeyGLH}QqUZRjoQM!W^R{I!7S zmOl0A9PLml87BOOu!f?Y!K?_`p&53U+3iDTMRrAw%}qZTZrnUG+b0DNM^4W~x4zOd zcUJLdB42u8`jP3`nak1Z!OL`vZdvM2=^#gDF8}!K-1VLZ!cDuj{c`4s+5WlN{u5Gp zCQ_03a3mc2&dZ2<{T<2s=tIAV1aot9W~9TxTXVCoU7q`DPfy6kyhbZQIWKC3$6VpL zqd6SdEH6aCo2cr0!d#LCPu%yZhn(%sV0uG(&`FgtUT%C#;S(F~bW&qZYP3=+_^DAZ zQ*u+)3eLUjL0Bjk3uQMo8kBQ>p@RD>HCnEuYJMhnFje&`zMJzao*b(FG8X;gm6F?E z4)T6~rIsqYhx-vGIFcGjuUnTYX0rVQN`O9#bdehK_m5UN2mer}C~#eR;^s?UEDiz> zb<-|Rk5iU+tf-AwJl_e*wZd2#cQdarbroa9tC=y^xX6-KJ@=4UW;)r#jsR(Dn0prXBggk@H{;7>{|~kFP%76)3yw1cv>#(bDMt54>`qijVOamt&f}2U75-!=og0Gw}>>uwHJ9zw?*k zVq5;#Fyq&cK;Fz+xr9Z7Fy$*i6k1kU+M82p?76~AExfF9wCBn%wXkSeVnBsu1(rl% zS&4c+F3&k7!}!|a@iDDt=IzM;F3l5I$9r$$9{|s}@Luh}eD>U=e+0a_Td6;AlYZ&d zc;7oz_om8c$nboG#_$)36w0@znkg4@I+Cb*c#IC3mutyL?S&9F)`yXU)gZ)2fg$X_ z&ydIDG8(HyY@X+dusaJ3VMD#B`IpGU@1Nx1XJhWfE{*Ge9Ov`o;eUWU>>IIB8MjD; z{EI-!*J9g{9{`fyP5gimdniZTtVZq*-Z%J91Yu$6c}9r*KN4a$5ixs+*l1i!%GYb$ zs&SV_-ci(NHOjjK{NtMcipJ+O{!rr!M2z!_=6|j6ipGCveJkgWcpuWZR^#17_>XAb z( +#include + +int open(const char * filename, int flag, ...) +{ + register int res; + va_list arg; + + va_start(arg,flag); + __asm__("int $0x80" + :"=a" (res) + :"0" (__NR_open),"b" (filename),"c" (flag), + "d" (va_arg(arg,int))); + if (res>=0) + return res; + errno = -res; + return -1; +} diff --git a/linux-0.11-lab/cur/linux/lib/open.o b/linux-0.11-lab/cur/linux/lib/open.o new file mode 100644 index 0000000000000000000000000000000000000000..eb38332f48e0690a11dc41caa62a86db34a03b87 GIT binary patch literal 2368 zcma)7O>Epm6nw;(6kAZC{2)Bl^=nKyu03Ai(Na| z-jY`3H?7ntLbL}|A#teG3m2}aoTwByR4NFGOQc>nZ~(ypxNzW5zBl$H?g^ee?|Xmq zX6DU|=e_4nJuieHMS^tN)rjgw;;BfOq`fpmXV!lo{Ahk+-}-H1V}7E4^Atp&u?e>R zi?KO)D~IUK*C$55dw*l=^1U@!(iN( zX(0j9jQsZyH6!;cKsR!pACso#zht8*d@gJ#f#*5%RXe5dU897_%(!^MRWOmYuGSm?3Ev9ZMd#Mr_J zr)SO%Q54rv54*)DrR#f86B%oft{xAhLY-?Q+}myKB~zJw0u;ooab1F@RU8;k8}g>9}fC zHw^uNPA;D{=gf*dV^>V8%Dqo~?HMxSPz_I?$Ec^t;m)d#dteVnsRka!o?jTsY$+*p+ji`(#bno= z*deObz7wD-k7UAGeDss<>BB@TX)%!c^SlG)}obR2!2TIF9L4G?wK*2Y3l_M}UfW zeoUXBW!Ev2S;rpu)H;SBXNS5C@>V^al_>Um8H;d|Y=PGn+3)@i<12 z%BOUNS-U}h-dA?U2VZB_vm>ysR-N?HcivN_W3n02<&N$ebh)!xy?W6p;6X@u3v?JrmgQ#~3lt xWNI&`cr?ZN6c + +_syscall0(pid_t,setsid) diff --git a/linux-0.11-lab/cur/linux/lib/setsid.o b/linux-0.11-lab/cur/linux/lib/setsid.o new file mode 100644 index 0000000000000000000000000000000000000000..7511f7c4a222329aaa1dc0b3b033b4453e6416f0 GIT binary patch literal 2244 zcma)7&2QX96o0dJHffSBn-AJVEyAEwgb#ZYxTR$;*NOkQf0xep z9su^gt$%X|f=!Lsstv3T1FcX7GzuaWdz@Uw9{T~r`jPz6v%t1J7Dky=D&vn)rzXB8 zvB&S{QuQa0u_Hig@+2^UA=PKMfU94UoqP_sa%V@z-vVQO$Ec!a)QQ^MlvO)cn^CjX z`cb$n$<)+YsNi%&tlH_R7pE@IVFg-0flQt{w^&%7TD&~RndcWixv;3C;b!!i$}6^x|a zILVxcTpHcDA2gytCu_v18wJ-Jy)YW=xGUc3s@wBhjg>+H+>#(kqF63ox#p}nP4AS~ zblkq5w7V~bCr`cLxSNi<5%jTZ6~%6v`Ry%t zJBhQPoyCc)uO~r@t?CW5yM7|QINB_>65a?{5ZMkp>zU+6xwy7=+F8EV8bsNkSdjbt zAeUC(TWxwP&8G`3{__IVjjN*eCe*QM+rEjqQqM*b^5(78=C^A2y}fj|pZP7&EGcN$ za7obfvS23@uj6OFc&!vIq_PvV2Ak_)v=PIU^M0$91n-ose&R=)*kx$~OJgP=hj{I{ z-w)6|FG6KJRJ*8DF(>G*=hZFN{D1J{aKculs-1cE%Ree@gkuZmrY=8KbWc+dl%FI3jEC1ula{k^86;|HSp@{kH>2Pr{@Sp66cyF|$GuIiK`VP5G!PH2n!u zG;UeznU8+?IR(9><<~WRQ&T?2^lNF_BSpM-wfvE$`8sf5xn|n)d7utt{^S1u<;VW3 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/lib/string.c b/linux-0.11-lab/cur/linux/lib/string.c new file mode 100644 index 0000000..1182e63 --- /dev/null +++ b/linux-0.11-lab/cur/linux/lib/string.c @@ -0,0 +1,14 @@ +/* + * linux/lib/string.c + * + * (C) 1991 Linus Torvalds + */ + +#ifndef __GNUC__ +#error I want gcc! +#endif + +#define extern +#define inline +#define __LIBRARY__ +#include diff --git a/linux-0.11-lab/cur/linux/lib/string.o b/linux-0.11-lab/cur/linux/lib/string.o new file mode 100644 index 0000000000000000000000000000000000000000..840f038b2beb337cf418b004cd61fe5f8badc3b6 GIT binary patch literal 6380 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 b$T5+-MNW%6E;57|# +#include + +_syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options) + +pid_t wait(int * wait_stat) +{ + return waitpid(-1,wait_stat,0); +} diff --git a/linux-0.11-lab/cur/linux/lib/wait.o b/linux-0.11-lab/cur/linux/lib/wait.o new file mode 100644 index 0000000000000000000000000000000000000000..ba0290563e3e14c314e77ea37c75283d77b2c810 GIT binary patch literal 2584 zcma)8ONbmr7_RE>nVszHPG*xe*(Cu-oZ$MHo?WwOjCpL_#25)NM598KNzY90PUBAZ z+TD{E!3T?A*wca<#N2`h4}u~{@R~r(!9&Q!lb~J{Bd91IqQvj(uG;B=y5WicgWjcWgF)BvHvr9M2%Ll8QFAYGs{8Dvn`MGN4t2fT= ztqv`ntqzG(`DL&_l{x?U^+iTrx(!;oQa*Nh>E_VYz10Ghu$K{JUA3w-|L|AhGj#b! z*wV6=duYQ6jN~u~I1fkw_0EQY_Y3)DK>va+rCU z^Il39zQvqo8cs6_QLI5{USo)mBXUb=ebFp!Dvii>`SM1juZm)E7gTWCAk5PC;^V~w z>#;MXNAq&F+&!LJ?i)X_o{=+S=bsptaLea}Sx94yG1P{rQcx^R-yyD9i&{)R_-`5C zOEVVxF}ufijAPZCF$^wW9Td6aoD`h^8sZRUDQ}gAF(-EnH%r=f-Sb-uy|!DAPDi3I z3USi$V!Oo@@##f3vOBzrJ>QGsHu$7oE}6|i`83W{<_li}jJe~4 z_j~QQ9z-?YJy~Dy{NAbBq&+oNTX357$y9;4Dcmsh1A#+t#A5%Uqm|jpw7t!quGG3t z*y`-`wr+c*Qk$>T=7O#l*XBZ}>(&+nTrW3-(({qptY1z4s_#_Y!I9wW(=)a{B&M%SMlK0?9K+ggjf2n}#gw zZFHRn%t7K^7JEvCC1bWUcCu91bGc+OZilk*o{QO1xlzJbYe%QMvC{;`VTv8ih3he02{Wqk0q zDA@#(-brC~*7+WUhW`KM$MxtKCSksx$tcpcNyypt%|Q4BI<7B=q1QJ9UdMnHZ$kK- zj3RA20$KAkJ&JF#LPn9c@$=8t{Uy^E?oZcs!Rr{Ncmes&kWr*<4&-b;F_`v=`vAL| z?^W=O;l4@Nkm0$8i(S{8kRz6Bh zq<1lA_ff#&%g}KjYcX_RM!;uF9fsi|beeQs;%ZIsqiimec-6%)2Jvh=oijeUb-$$u|sqO6i|b_`JfG6*d(v5RvbklFuvrP~jH}uMpvP YL&@JMOxBB!p8KZ#n8FIsfIOq{ABC4WX#fBK literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/lib/write.c b/linux-0.11-lab/cur/linux/lib/write.c new file mode 100644 index 0000000..df52e74 --- /dev/null +++ b/linux-0.11-lab/cur/linux/lib/write.c @@ -0,0 +1,10 @@ +/* + * linux/lib/write.c + * + * (C) 1991 Linus Torvalds + */ + +#define __LIBRARY__ +#include + +_syscall3(int,write,int,fd,const char *,buf,off_t,count) diff --git a/linux-0.11-lab/cur/linux/lib/write.o b/linux-0.11-lab/cur/linux/lib/write.o new file mode 100644 index 0000000000000000000000000000000000000000..3aae21041d4ba6dc5244299e04aa1f571eb6f14b GIT binary patch literal 2376 zcma)8OK%)S5U!rtm%Yx$4<5E0i9y&BF9UKToQIG=R070wS-C6I5-5FH@mjsCjA#nt8gw*Q zo?gHA;@Ovk5Tr?vNkc@`%_&b^iaENECg`=@KgRdYR*xO9Z|`DtdhhkB^~3ugp01AV z?o`KUtFQ<4_i^U`{B(n79^3`(-Wq@F=C?p9XHG0b7r%iOFqlp%K}N3l4OAnS{~5x} z<^3Qb!zg~mMp3#BA#)hklQOLMqjVI$hsYm*iP00_Oq^1D{xx`^(@yQiJ{6jS4iMXo z{alfw#puftl}f)#BvbDvG?L?tqi=$hp8+#(%iLl@9Is53&B|xO-=77W@+EsX8J+pP8cV6bJ+I|~bT&u!M`l>xj-t#E+$dr=gGbmrUzYt^bdi%#9L z`)<_gp7c*FK5g0SmfZ>aeqwhbx9`~-A+C%U!RQA_?b)3{&`SI;h+zssJ5JozJN8Bt zCSEHEBOD<1*8{I@wYqLZaW{+->(IuxPo8@i#wHc&U-7sQ)C+@ki_MKjdt)qF=ZuuTZ+V$^CWgkVsSiTJPQ2Yu+$LlaDcRLpdnf5q{B^c+sY`EIk4lJ?C5 zXZQChl3#<3_m{`e`&)so=Rl<;fG=1{N&C(NYn@%c09dS~qJ&Nqso^Kl(`4xgLp5}trRl`1*=cfdDX z8iqi6{{96RuPl&^`@)iI$C7{G1e*RZOVo5OwafYN^ST^&I+bgwd?S@_r?Q#K9!uo= bB*kB*lK&0iJaRwyaCz?>cQKU~qyhXd?!6OW literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/mm/Makefile b/linux-0.11-lab/cur/linux/mm/Makefile new file mode 100644 index 0000000..e0bcd73 --- /dev/null +++ b/linux-0.11-lab/cur/linux/mm/Makefile @@ -0,0 +1,38 @@ +AR =ar +AS =as +LD =ld +LDFLAGS =-m elf_i386 -Ttext 0 -e startup_32 +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -finline-functions -nostdinc -fno-stack-protector -I../include +CPP =gcc -E -nostdinc -I../include + +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< +.s.o: + $(AS) -o $*.o $< +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< + +OBJS = memory.o page.o + +all: mm.o + +mm.o: $(OBJS) + $(LD) -r -o mm.o $(OBJS) + +clean: + rm -f core *.o *.a tmp_make + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +memory.o : memory.c ../include/signal.h ../include/sys/types.h \ + ../include/asm/system.h ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/linux/mm.h ../include/linux/kernel.h diff --git a/linux-0.11-lab/cur/linux/mm/memory.c b/linux-0.11-lab/cur/linux/mm/memory.c new file mode 100644 index 0000000..0ffa375 --- /dev/null +++ b/linux-0.11-lab/cur/linux/mm/memory.c @@ -0,0 +1,431 @@ +/* + * linux/mm/memory.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * demand-loading started 01.12.91 - seems it is high on the list of + * things wanted, and it should be easy to implement. - Linus + */ + +/* + * Ok, demand-loading was easy, shared pages a little bit tricker. Shared + * pages started 02.12.91, seems to work. - Linus. + * + * Tested sharing by executing about 30 /bin/sh: under the old kernel it + * would have taken more than the 6M I have free, but it worked well as + * far as I could see. + * + * Also corrected some "invalidate()"s - I wasn't doing enough of them. + */ + +#include + +#include + +#include +#include +#include + +volatile void do_exit(long code); + +static inline volatile void oom(void) +{ + printk("out of memory\n\r"); + do_exit(SIGSEGV); +} + +#define invalidate() \ +__asm__("movl %%eax,%%cr3"::"a" (0)) + +/* these are not to be changed without changing head.s etc */ +#define LOW_MEM 0x100000 +#define PAGING_MEMORY (15*1024*1024) +#define PAGING_PAGES (PAGING_MEMORY>>12) +#define MAP_NR(addr) (((addr)-LOW_MEM)>>12) +#define USED 100 + +#define CODE_SPACE(addr) ((((addr)+4095)&~4095) < \ +current->start_code + current->end_code) + +static long HIGH_MEMORY = 0; + +#define copy_page(from,to) \ +__asm__("cld ; rep ; movsl"::"S" (from),"D" (to),"c" (1024)) + +static unsigned char mem_map [ PAGING_PAGES ] = {0,}; + +/* + * Get physical address of first (actually last :-) free page, and mark it + * used. If no free pages left, return 0. + */ +unsigned long get_free_page(void) +{ +register unsigned long __res asm("ax"); + +__asm__("std ; repne ; scasb\n\t" + "jne 1f\n\t" + "movb $1,1(%%edi)\n\t" + "sall $12,%%ecx\n\t" + "addl %2,%%ecx\n\t" + "movl %%ecx,%%edx\n\t" + "movl $1024,%%ecx\n\t" + "leal 4092(%%edx),%%edi\n\t" + "rep ; stosl\n\t" + "movl %%edx,%%eax\n\t" + "1:" + "cld\n\t" /* by wyj */ + :"=a" (__res) + :"0" (0),"i" (LOW_MEM),"c" (PAGING_PAGES), + "D" (mem_map+PAGING_PAGES-1) + ); +return __res; +} + +/* + * Free a page of memory at physical address 'addr'. Used by + * 'free_page_tables()' + */ +void free_page(unsigned long addr) +{ + if (addr < LOW_MEM) return; + if (addr >= HIGH_MEMORY) + panic("trying to free nonexistent page"); + addr -= LOW_MEM; + addr >>= 12; + if (mem_map[addr]--) return; + mem_map[addr]=0; + panic("trying to free free page"); +} + +/* + * This function frees a continuos block of page tables, as needed + * by 'exit()'. As does copy_page_tables(), this handles only 4Mb blocks. + */ +int free_page_tables(unsigned long from,unsigned long size) +{ + unsigned long *pg_table; + unsigned long * dir, nr; + + if (from & 0x3fffff) + panic("free_page_tables called with wrong alignment"); + if (!from) + panic("Trying to free up swapper memory space"); + size = (size + 0x3fffff) >> 22; + dir = (unsigned long *) ((from>>20) & 0xffc); /* _pg_dir = 0 */ + for ( ; size-->0 ; dir++) { + if (!(1 & *dir)) + continue; + pg_table = (unsigned long *) (0xfffff000 & *dir); + for (nr=0 ; nr<1024 ; nr++) { + if (1 & *pg_table) + free_page(0xfffff000 & *pg_table); + *pg_table = 0; + pg_table++; + } + free_page(0xfffff000 & *dir); + *dir = 0; + } + invalidate(); + return 0; +} + +/* + * Well, here is one of the most complicated functions in mm. It + * copies a range of linerar addresses by copying only the pages. + * Let's hope this is bug-free, 'cause this one I don't want to debug :-) + * + * Note! We don't copy just any chunks of memory - addresses have to + * be divisible by 4Mb (one page-directory entry), as this makes the + * function easier. It's used only by fork anyway. + * + * NOTE 2!! When from==0 we are copying kernel space for the first + * fork(). Then we DONT want to copy a full page-directory entry, as + * that would lead to some serious memory waste - we just copy the + * first 160 pages - 640kB. Even that is more than we need, but it + * doesn't take any more memory - we don't copy-on-write in the low + * 1 Mb-range, so the pages can be shared with the kernel. Thus the + * special case for nr=xxxx. + */ +int copy_page_tables(unsigned long from,unsigned long to,long size) +{ + unsigned long * from_page_table; + unsigned long * to_page_table; + unsigned long this_page; + unsigned long * from_dir, * to_dir; + unsigned long nr; + + if ((from&0x3fffff) || (to&0x3fffff)) + panic("copy_page_tables called with wrong alignment"); + from_dir = (unsigned long *) ((from>>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: 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; + 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 + * out of memory (either when trying to access page-table or + * page.) + */ +unsigned long put_page(unsigned long page,unsigned long address) +{ + unsigned long tmp, *page_table; + +/* NOTE !!! This uses the fact that _pg_dir=0 */ + + if (page < LOW_MEM || page >= HIGH_MEMORY) + printk("Trying to put page %p at %p\n",page,address); + if (mem_map[(page-LOW_MEM)>>12] != 1) + printk("mem_map disagrees with %p at %p\n",page,address); + page_table = (unsigned long *) ((address>>20) & 0xffc); + if ((*page_table)&1) + page_table = (unsigned long *) (0xfffff000 & *page_table); + else { + if (!(tmp=get_free_page())) + return 0; + *page_table = tmp|7; + page_table = (unsigned long *) tmp; + } + page_table[(address>>12) & 0x3ff] = page | 7; +/* no need for invalidate */ + return page; +} + +void un_wp_page(unsigned long * table_entry) +{ + unsigned long old_page,new_page; + + old_page = 0xfffff000 & *table_entry; + if (old_page >= LOW_MEM && mem_map[MAP_NR(old_page)]==1) { + *table_entry |= 2; + invalidate(); + return; + } + if (!(new_page=get_free_page())) + oom(); + if (old_page >= LOW_MEM) + mem_map[MAP_NR(old_page)]--; + *table_entry = new_page | 7; + invalidate(); + copy_page(old_page,new_page); +} + +/* + * This routine handles present pages, when users try to write + * to a shared page. It is done by copying the page to a new address + * and decrementing the shared-page counter for the old page. + * + * If it's in code space we exit with a segment error. + */ +void do_wp_page(unsigned long error_code,unsigned long address) +{ +#if 0 +/* we cannot do this yet: the estdio library writes to code space */ +/* stupid, stupid. I really want the libc.a from GNU */ + if (CODE_SPACE(address)) + do_exit(SIGSEGV); +#endif + un_wp_page((unsigned long *) + (((address>>10) & 0xffc) + (0xfffff000 & + *((unsigned long *) ((address>>20) &0xffc))))); + +} + +void write_verify(unsigned long address) +{ + unsigned long page; + + if (!( (page = *((unsigned long *) ((address>>20) & 0xffc)) )&1)) + return; + page &= 0xfffff000; + page += ((address>>10) & 0xffc); + if ((3 & *(unsigned long *) page) == 1) /* non-writeable, present */ + un_wp_page((unsigned long *) page); + return; +} + +void get_empty_page(unsigned long address) +{ + unsigned long tmp; + + if (!(tmp=get_free_page()) || !put_page(tmp,address)) { + free_page(tmp); /* 0 is ok - ignored */ + oom(); + } +} + +/* + * try_to_share() checks the page at address "address" in the task "p", + * to see if it exists, and if it is clean. If so, share it with the current + * task. + * + * NOTE! This assumes we have checked that p != current, and that they + * share the same executable. + */ +static int try_to_share(unsigned long address, struct task_struct * p) +{ + unsigned long from; + unsigned long to; + unsigned long from_page; + unsigned long to_page; + unsigned long phys_addr; + + from_page = to_page = ((address>>20) & 0xffc); + from_page += ((p->start_code>>20) & 0xffc); + to_page += ((current->start_code>>20) & 0xffc); +/* is there a page-directory at from? */ + from = *(unsigned long *) from_page; + if (!(from & 1)) + return 0; + from &= 0xfffff000; + from_page = from + ((address>>10) & 0xffc); + phys_addr = *(unsigned long *) from_page; +/* is the page clean and present? */ + if ((phys_addr & 0x41) != 0x01) + return 0; + phys_addr &= 0xfffff000; + if (phys_addr >= HIGH_MEMORY || phys_addr < LOW_MEM) + return 0; + to = *(unsigned long *) to_page; + if (!(to & 1)) + if (to = get_free_page()) + *(unsigned long *) to_page = to | 7; + else + oom(); + to &= 0xfffff000; + to_page = to + ((address>>10) & 0xffc); + if (1 & *(unsigned long *) to_page) + panic("try_to_share: to_page already exists"); +/* share them: write-protect */ + *(unsigned long *) from_page &= ~2; + *(unsigned long *) to_page = *(unsigned long *) from_page; + invalidate(); + phys_addr -= LOW_MEM; + phys_addr >>= 12; + mem_map[phys_addr]++; + return 1; +} + +/* + * share_page() tries to find a process that could share a page with + * the current one. Address is the address of the wanted page relative + * to the current data space. + * + * We first check if it is at all feasible by checking executable->i_count. + * It should be >1 if there are other tasks sharing this inode. + */ +static int share_page(unsigned long address) +{ + struct task_struct ** p; + + if (!current->executable) + return 0; + if (current->executable->i_count < 2) + return 0; + for (p = &LAST_TASK ; p > &FIRST_TASK ; --p) { + if (!*p) + continue; + if (current == *p) + continue; + if ((*p)->executable != current->executable) + continue; + if (try_to_share(address,*p)) + return 1; + } + return 0; +} + +void do_no_page(unsigned long error_code,unsigned long address) +{ + int nr[4]; + unsigned long tmp; + unsigned long page; + int block,i; + + 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 mem_init(long start_mem, long end_mem) +{ + int i; + + HIGH_MEMORY = end_mem; + for (i=0 ; i>= 12; + while (end_mem-->0) + mem_map[i++]=0; +} + +void calc_mem(void) +{ + int i,j,k,free=0; + long * pg_tbl; + + for(i=0 ; i5I8yebbsjY3b+28NJ=ba4L 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 WJ>8K)@)PG@pEzRdVi(KKAO0KJhD)6Q literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/mm/page.o b/linux-0.11-lab/cur/linux/mm/page.o new file mode 100644 index 0000000000000000000000000000000000000000..da4852668a6d8b88d91c428ae8572bb3d4d2090d GIT binary patch literal 640 zcmb<-^>JflWMqH=Mh0dE1doAX4phPfOlvT3Ft9STv#10H$+7V-*d+iI?Yq@?sP7TK z!lj^ql^~s^>@WWO|Ns9rE0}6N!ok0gT|O!@;yi<1ab<2vViJ%pDT2@$Fji4&j$TP> zMG1pmN@7VOgI-c`G1OurD0!e7kj-pRwIH{eL)jn-<{xPwn-fXAfQf+ts z<^W<T@#lCNna>cIHh8 zmQpZarI9YWp8nWXTYFZwwe@IEyOkE|#*J0!>F(05)$YpKrDtJJ5Z!~;QnpgEpU-{o z&Abe$XZOGTgPYvB_xtmH@Av+A@BVn7TiL%#Q54|>kMIgYaK~e;cQqn)NMC85`N&FK*ZX5l&;H4Oj1zW; zl`a4-7FU(Q?uwEQw-y88WD$bDkiXOglipPZ_m{!T%HX@p;Epo*lYqOQ_o?*995GK+ zA^p`}2c8Xs5`z)?bcxXWZqf5*G?CT|c_S)}k%TF-MlP4hiJTFR3eW(FNHUW*L?&yb zMJ$_3q|F#8xkxH2be+neBb+n!R5+0qTXG500Dc5G6X{SYleX!)xT(Kyd9U6PYNN>> z`>&LC>*DOnC&ndAE930KC!Uuu zt&MAhzb;`~9d9ALPr|f5P9L7wAz{`c&Te!fD`D0q-c9%(3A0x5)r8kcn6-^|tug-Iy1?28It}``mwHP0bT-cz-X{1=$j#XZ%}~ ziTzM4;G@$U_Z%O6r}0%^Gig(Y4^8a-0ZID_O8%G5c=r7LOK)GU9RB&4f->Llb*W?>)GX96Oe+fC5pdm-^MoZ7}hb3gVPQzky{>)}nKu{L39fE-o5E z3Jf{16(aji z2B)jAT{&Qj$1UTBY5X3#byxE?T12BRLCv#c7D74v3I>psw^7TcFl7zDC0*f@F62m( zu4GEryp2)0XIFC;8b=SxL~N~wuO4A>m$JAO&8i0Gy(^lt>{d`sX3E|T+0iqaN&at= z|81B`zA>>(@z(kz;WZL|ZWBhwVTL0jDK8W$)njZo>N-Y|CyE3#zD@A{IS9LpgoYwP zs!A3KO+`WzB{qP-YVh$nLp8qqp>zSAYW3$wrGuSjTnZJe?NPApJZSkI)1qJ89J+gKOvILLd`42Yk@^OxU$8n6I#&{sfY{{#r2t98kUEB;{&LjpELl}v>QmIa z9eT$~Z7~RT+0N?B?d-ACo!8DUP*(?ZeMCDC|Gw1Dhsp1;YwT|4_eeN_Qdp5`?JOz( zRHT&Jxpp5!eo!Qo+PRH{$BTqgJ4;o&iiA=-ucpLi5Zt3!0T?+<#OJ;UX=ijC2Hj~n47=^@*>RfrGK!w5qdf&8 zJK7cqq8d^olokg$5zZiI-nP^p;uQE%jl2v+pI4QYP%ynJAJNF4fdRHJXKdt?pwHBnr|q`b4D&zogW}@%iXk?=+1io7?t&uNsf7$#0#;@ETQ- zz511x&Utp9HWym&1!H)i?OD{!=0vuWUYvUL02xPLRj&PA;otGV-E_Bp*Tl(L``m%g zeD@#T*&3msd2)laAOZ`}Yq=`0Rcll|S%4j*FE?(Qknea4CGRz~mM?YWR`9;LAb*kA zm=6yb*J*==L^7%kW-?~ph?rX5Fbi2Nzcp_fDQ!~@=%_J#m$vB!Es+BMU1C-LE$i0Z zA$l`~WHh}H0(c+R$ftoZ5ivqyeF@MKd97tZbdk0odNp1@MPD*$426?!eyt@HzBiN8 zmRUT@!_jHfU@)jz3|ESc>F{9E(9Dd+cXn+djb7-&^4(sG#N0*;UTT1ZKS7X@#3q+ zr@1WABH?6Gi-i+OEOyGBBpZ}3m?c8FpKO*H9aR+nm<@cNFPOd1nGB> zp2EZHXGrhC!&${EL>6fiQm*S6l>62TWt*y8R_*gW2)qVd6XG`L9Y-o^)KxXrH_xsz zeIw$=OP7A4qj^4_6rvk(F3P|fPKe$bjrs-d88r)N(?)EI7 zRpG6u{0YkBBI_ZYi6? z)SjQz_-My#i0dHhp)3MzKZ4i~TpJN6Z`1>0?uE<*47w05c;JEuE_mRA2QGNvf(I^m z;DQG(c;JEuE_mSop$GQu_NiG!nuevBjMYewjQUg@-idJ>oXkVY^XSWva&g16&}zV3 z2NC}5xv9)|aNdlgI`RDdIO9Wl7%=w)b|dmElk2Fthz#7P5zqTnuBUECE@f!zDWppPBl~|2JU@4YF2K~{4iYlq(hZBcy6!(ddd17Rmz;AZ4Gtnj?f1*z9p`F&8miaNx^ zQ@I@^AfJ;+e?lTF{sEjmUj(tz1!=wtA4|HF#9bMQsl1hvZ&S$_ zc`AIK4@v$i0ncX2J|VMDko`Gk{l3e|q4={%DldiTqrTrhjYR!2sJ_#GieI7r7l^(O z=kZrPO8i;oRrQll>H7oo)#@9ho@2gN<>8-iius1X5h(Ksg+OEA1rihqGzDr%@kl@m z+)PzI2{Z@l2vkU*CBSPi}D*p!2w!nu}aFKEhNoU|U1gaGp+!d%LTdf4H z4{V}kb;_&2bq7KOE>>;;up-b;;1Z=Dz^cH{2sA2m-%WuA0!_;A0jv(_1Qsa&0=E7@ zh~cI$J`0@RcNK6|Y)_h9eGD{W z*_skt3vr2EC@QZ-Uac5e%!D^PD(*W;Zk5Bc;xjc=E-G&a^>%-V`!VYCAo$xj83~mx z@ORLKs#*Z6fAQ1ESF3k{-+$eAk*`%>#;4@A{+pO)_I|!Q_V2HiB;-Sb>{D6zFS>E{dY0H zTBUdVDGsM~Dz~@%Y32vStZ2dzN;}8?A|RBt~mi7&YsF+ zwO67P<$CJm6#;IODUZDc!8zL?Vi6!X=SB&U;Ca|rmk`Pg6!Ds8wYo?VIHT1iqDAPG zRySCP3FXFLL&|HO67|EdU+I=Z)BK%QznvD?;AyQcKPZ$QHl4?8L<7@g*}(5Zyx|yl zadteHE~|Wookb{flm#{QRo1d|&-E6?34%t{GL-bxzY* z570$zkS0~&$y&nSIPZEsuODYe5C`Z!<-?j;_?4I4*t*!|P3A>wA)k{MwuT~+*2I#o zCDygA;842IisxBtA{|K`7AgO z5aGS=4R7EzsqCuyAD1g&nRj?RXpX$8=WwPZ%wau^!xW+O=p)|&uj%>3eTFFT0E<*f zNr~0Q<P?;I^70u*yFM7k5)vbkV*?Z zo5_oCZfKZd5%eLU56d$u%HiNd=$T~H$rsZ3#8BFZYLR$2M*&ov!V%FL&!mjjbRlZC zX7a(bu?3?6_ZEX~q4xG*GCbJYW+6n$)S@z3Q+UFvtk7lsISJA|mNTV;^g^0<^g2r3 zkUn;tA*+}TM;8~}%J!v>Rek*{g}j=lr;QPM0&MM80&RpoWhI@glst5U&-H@-X9f6N zdNd_n!wOq)m@t?N@U+!n)9QoUms+p&(y9efu}FLwhdc5S9H9n>v|ucgN|?b|E}Sxg z*$jMulgMB!oe5&}Mm7htxr`}K1zlc{_0c)bS=SiO@Zf$OZGlUNvYn+1(6N}ZYe7*V zYxOSOsS63RD@mVHSw71V!A7;XG4T=tQi-f=+-p!St*8= zqzq$hBr@q~fDT&DNRr>mWRs={;ZPU9CR;xg0{~KnC%GbI#C6#SdOQkA2eKsea4r|# zYDqZxdm~_j@^C5z%8iR!)2#3={2JjY`NXIfxK0G*> z!(3ofFl-Db&$p2Ob>Mmu&j~&stUJ>H@Dwcu(ipBp4O4^kP($G8>|&wE)e*RzMgcN8$!x5!E!zN+(9 zDPCtJAJ@OnL-B6FP9QJC-H2SfvRtlPmq3VXXs2A_88;(xt;;;uy940Ukaw30P~3+Y zKqMd6%O?0}kE4%u;9Ke_qQkcfe7nGRyUoY7zQgwr^0bxZaQ%M-d{-jx1oAO_9?{_w zToZ#ZPJ$h119=}oboh9$ew;`eVh8dudvJzzI&dPXIwa*7tSry$-%U z*ysd@?`a?$K6%%Dj*$1@%lW?V;)~*HOcZ=)9VVoXz88_l%cX2%c{d-I#T^>io%~Oc z$F)bv$NiD&Kf?D0cxWF@=jGPgKf?DG=xht}$vgkxo3wFAWVvkLV~CDE-myMAgFf1L z!o|n^7oknR$4(x`_g#El;Ohb(%W(pE7|tLPPy2Wsw_BT;?+>8UzBWV#@~x3M>xVQ( zKYo}xVXr0x{)@q(%`M}57EI?HqrmO(T~WsO?FB+Cc8D&%)-t}MSK&V9417y%KBpc# zTd?2Y>VFhrL^qN?K_bK4MOdKEppPi_WhcDefu$Y>?|dMTm2JT>!Xe`-Ml^SU=0dns zgL8V|cPPYIU$7=s;w`;kn&aztA5fCY2pp}$}pTd*~| za9mq3TLt~o-uLs0Itg=}GUK(MJRFY}Y|TKWR5S3Vis@W)C3a$fQAGWhahzbC;b-kYjM>eNTUj4Ca_ zdWv+9m?c6;+gxxDU}rCw^iKnpH}sJzkd7gB{H4HOdjWI*7>U&PRiuu875H~Q33i}8 z?tV&m9JD(hvE&tuntufBw$~Pw3HkpOIj4Lqjm1g8PWvcmpAP^#<&(~DOXNIf4>0O2`vAoW$+QePI;6+;i7BcKjVTa z&x&7fmp2Ey3v;b002KN|hy{S%-yC(8(Qhq-qh)XbFh4^HOMSD%ZosRH^_wTY0N5GN z^gp+<`5d?WGh2KGaLFI@#9sq;Hmk`0Ex^u>7UAarJG)?nzX#X}8Zxf}cJ#5n|6E3Y z7ck#*C{u?wJ?_Cef&LJYoS8QZu^9Fnv>Zpd|vV~PBX z&CO(e9_Plu>m{vaAH4C4x-#B;MvsTnQJBbEm(z$?oN~{~{u=MRZ|mH=_IG%0l-w+E zBV2xEO9;7tV%J`eW%c+LcnRw@8zuJ$ti2*`3+p!z>+9{l*_#aK^XQnm4j((6fX<)U N^|Cbi(V*L${{d;jp)>#h literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/cur/linux/tools/build.c b/linux-0.11-lab/cur/linux/tools/build.c new file mode 100644 index 0000000..8b8c7ab --- /dev/null +++ b/linux-0.11-lab/cur/linux/tools/build.c @@ -0,0 +1,171 @@ +/* + * linux/tools/build.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * This file builds a disk-image from three different files: + * + * - bootsect: max 510 bytes of 8086 machine code, loads the rest + * - setup: max 4 sectors of 8086 machine code, sets up system parm + * - system: 80386 code for actual system + * + * It does some checking that all files are of the correct type, and + * just writes the result to stdout, removing headers and padding to + * the right amount. It also writes some system data to stderr. + */ + +/* + * Changes by tytso to allow root device specification + */ + +#include /* fprintf */ +#include +#include /* contains exit */ +#include /* unistd.h needs this */ +#include +#include +#include /* contains read/write */ +#include + +#define MAJOR(a) (((unsigned)(a))>>8) +#define MINOR(a) ((a)&0xff) + +#define MINIX_HEADER 32 +#define GCC_HEADER 0x80 /* 0x1000 */ /* by wyj */ + +#define SYS_SIZE 0x3000 + +#define DEFAULT_MAJOR_ROOT 0x03 //0x02 /* by wyj */ +#define DEFAULT_MINOR_ROOT 0x00 //0x1d + +/* max nr of sectors of setup: don't change unless you also change + * bootsect etc */ +#define SETUP_SECTS 4 + +#define STRINGIFY(x) #x + +void die(char * str) +{ + fprintf(stderr,"%s\n",str); + exit(1); +} + +void usage(void) +{ + die("Usage: build bootsect setup system [rootdev] [> image]"); +} + +int main(int argc, char ** argv) +{ + int i,c,id; + char buf[1024*4]; /* by wyj */ + char major_root, minor_root; + struct stat sb; + + if ((argc != 4) && (argc != 5)) + usage(); + if (argc == 5) { + if (strcmp(argv[4], "FLOPPY")) { + if (stat(argv[4], &sb)) { + perror(argv[4]); + die("Couldn't stat root device."); + } + major_root = MAJOR(sb.st_rdev); + minor_root = MINOR(sb.st_rdev); + } else { + major_root = 0; + minor_root = 0; + } + } else { + major_root = DEFAULT_MAJOR_ROOT; + minor_root = DEFAULT_MINOR_ROOT; + } + fprintf(stderr, "Root device is (%d, %d)\n", major_root, minor_root); + if ((major_root != 2) && (major_root != 3) && + (major_root != 0)) { + fprintf(stderr, "Illegal root device (major = %d)\n", + major_root); + die("Bad root device --- major #"); + } + for (i=0;i0 ; i+=c ) + if (write(1,buf,c)!=c) + die("Write call failed"); + close (id); + if (i > SETUP_SECTS*512) + die("Setup exceeds " STRINGIFY(SETUP_SECTS) + " sectors - rewrite build/boot/setup"); + fprintf(stderr,"Setup is %d bytes.\n",i); + for (c=0 ; c sizeof(buf)) + c = sizeof(buf); + if (write(1,buf,c) != c) + die("Write call failed"); + i += c; + } + + if ((id=open(argv[3],O_RDONLY,0))<0) + die("Unable to open 'system'"); + if (read(id,buf,GCC_HEADER) != GCC_HEADER) + die("Unable to read header of 'system'"); +// if (((long *) buf)[5] != 0) +// die("Non-GCC header of 'system'"); + for (i=0 ; (c=read(id,buf,sizeof buf))>0 ; i+=c ) + if (write(1,buf,c)!=c) + die("Write call failed"); + close(id); + fprintf(stderr,"System is %d bytes.\n",i); + if (i > SYS_SIZE*16) + die("System is too big"); + return(0); +} diff --git a/linux-0.11-lab/cur/linux/tools/system b/linux-0.11-lab/cur/linux/tools/system new file mode 100644 index 0000000000000000000000000000000000000000..cdec13498fa56de2a8a9c9f8d06d839b764ef75e GIT binary patch literal 286057 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 Cri=yv literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/Makefile b/linux-0.11-lab/0/linux/Makefile new file mode 100644 index 0000000..ecbcf30 --- /dev/null +++ b/linux-0.11-lab/0/linux/Makefile @@ -0,0 +1,125 @@ +# +# if you want the ram-disk device, define this to be the +# size in blocks. +# +RAMDISK = #-DRAMDISK=512 + +AS86 =as86 -0 -a +LD86 =ld86 -0 + +AS =as +LD =ld +LDFLAGS =-m elf_i386 -Ttext 0 -e startup_32 -Map=System.map.2 -N +CC =gcc -march=i386 $(RAMDISK) +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -fno-stack-protector -mcld +CPP =cpp -nostdinc -Iinclude + +# +# ROOT_DEV specifies the default root-device when making the image. +# This can be either FLOPPY, /dev/xxxx or empty, in which case the +# default of /dev/hd6 is used by 'build'. +# +ROOT_DEV= + +ARCHIVES=kernel/kernel.o mm/mm.o fs/fs.o +DRIVERS =kernel/blk_drv/blk_drv.a kernel/chr_drv/chr_drv.a +MATH =kernel/math/math.a +LIBS =lib/lib.a + +.c.s: + $(CC) $(CFLAGS) \ + -nostdinc -Iinclude -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) \ + -nostdinc -Iinclude -c -o $*.o $< + +all: Image + +Image: boot/bootsect boot/setup tools/system tools/build + cp -f tools/system system.tmp + strip system.tmp + tools/build boot/bootsect boot/setup system.tmp $(ROOT_DEV) > Image + rm -f system.tmp + sync + +disk: Image + dd bs=8192 if=Image of=/dev/PS0 + +tools/build: tools/build.c + $(CC) $(CFLAGS) \ + -o tools/build tools/build.c + +boot/head.o: boot/head.s + +tools/system: boot/head.o init/main.o \ + $(ARCHIVES) $(DRIVERS) $(MATH) $(LIBS) + $(LD) $(LDFLAGS) boot/head.o init/main.o \ + $(ARCHIVES) \ + $(DRIVERS) \ + $(MATH) \ + $(LIBS) \ + -o tools/system + nm tools/system | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw]\)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort >System.map + +kernel/math/math.a: FORCE + (cd kernel/math; make) + +kernel/blk_drv/blk_drv.a: FORCE + (cd kernel/blk_drv; make) + +kernel/chr_drv/chr_drv.a: FORCE + (cd kernel/chr_drv; make) + +kernel/kernel.o: FORCE + (cd kernel; make) + +mm/mm.o: FORCE + (cd mm; make) + +fs/fs.o: FORCE + (cd fs; make) + +lib/lib.a: FORCE + (cd lib; make) + +FORCE: + +boot/setup: boot/setup.s + $(AS86) -o boot/setup.o boot/setup.s + $(LD86) -s -o boot/setup boot/setup.o + +boot/bootsect: boot/bootsect.s + $(AS86) -o boot/bootsect.o boot/bootsect.s + $(LD86) -s -o boot/bootsect boot/bootsect.o + +tmp.s: boot/bootsect.s tools/system + (echo -n "SYSSIZE = (";ls -l tools/system | grep system \ + | cut -c25-31 | tr '\012' ' '; echo "+ 15 ) / 16") > tmp.s + cat boot/bootsect.s >> tmp.s + +clean: + rm -f Image System.map tmp_make core System.map.2 + rm -f boot/bootsect boot/setup + rm -f init/*.o tools/system tools/build boot/*.o + (cd mm;make clean) + (cd fs;make clean) + (cd kernel;make clean) + (cd lib;make clean) + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in init/*.c;do echo -n "init/";$(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + (cd fs; make dep) + (cd kernel; make dep) + (cd mm; make dep) + +### Dependencies: +init/main.o : init/main.c include/unistd.h include/sys/stat.h \ + include/sys/types.h include/sys/times.h include/sys/utsname.h \ + include/utime.h include/time.h include/linux/tty.h include/termios.h \ + include/linux/sched.h include/linux/head.h include/linux/fs.h \ + include/linux/mm.h include/signal.h include/asm/system.h include/asm/io.h \ + include/stddef.h include/stdarg.h include/fcntl.h diff --git a/linux-0.11-lab/0/linux/System.map b/linux-0.11-lab/0/linux/System.map new file mode 100644 index 0000000..6e469c2 --- /dev/null +++ b/linux-0.11-lab/0/linux/System.map @@ -0,0 +1,576 @@ +00000000 T pg_dir +00000000 T startup_32 +0000005a t check_x87 +00000073 t setup_idt +00000090 t rp_sidt +000000a3 t setup_gdt +00001000 t pg0 +00002000 t pg1 +00003000 t pg2 +00004000 t pg3 +00005000 T tmp_floppy_area +00005412 t L6 +00005414 t int_msg +00005428 t ignore_int +00005450 t setup_paging +000054ae t idt_descr +000054b6 t gdt_descr +000054c0 T idt +00005cc0 T gdt +000064c0 T fork +000064ef T pause +0000651e T setup +00006555 T sync +00006584 t time_init +00006799 T main +0000690c t printf +0000695b T init +00006bd4 T show_task +00006c59 T show_stat +00006c9f T math_state_restore +00006cfd T schedule +00006eaf T sys_pause +00006ec5 T sleep_on +00006f24 T interruptible_sleep_on +00006fdf T ticks_to_floppy_on +000070aa T floppy_on +000070d9 T floppy_off +000070e9 T do_floppy_timer +000072e1 T do_timer +000073d0 T sys_alarm +0000744f T sys_getpid +0000745b T sys_getppid +00007467 T sys_getuid +00007476 T sys_geteuid +00007486 T sys_getgid +00007496 T sys_getegid +000074a5 T sys_nice +000074d0 T sched_init +00007660 t bad_sys_call +00007668 t reschedule +00007674 T system_call +000076a8 t ret_from_sys_call +000076f0 T coprocessor_error +00007712 T device_not_available +0000774c T timer_interrupt +00007784 T sys_execve +00007794 T sys_fork +000077ac T hd_interrupt +000077e8 T floppy_interrupt +0000781e T parallel_interrupt +00007825 t _get_base +00007857 t die +00007a39 T do_double_fault +00007a5c T do_general_protection +00007a7f T do_divide_error +00007aa2 T do_int3 +00007b6a T do_nmi +00007b8d T do_debug +00007bb0 T do_overflow +00007bd3 T do_bounds +00007bf6 T do_invalid_op +00007c19 T do_device_not_available +00007c3c T do_coprocessor_segment_overrun +00007c5f T do_invalid_TSS +00007c82 T do_segment_not_present +00007ca5 T do_stack_segment +00007cc8 T do_coprocessor_error +00007cfc T do_reserved +00007d1f T trap_init +00008003 T divide_error +00008008 t no_error_code +00008038 T debug +0000803f T nmi +00008046 T int3 +0000804d T overflow +00008054 T bounds +0000805b T invalid_op +00008062 T coprocessor_segment_overrun +00008069 T reserved +00008070 T irq13 +00008085 T double_fault +0000808a t error_code +000080bc T invalid_TSS +000080c3 T segment_not_present +000080ca T stack_segment +000080d1 T general_protection +000080d8 t _get_base +0000810a T verify_area +00008171 T copy_mem +000082cb T copy_process +00008778 T find_empty_process +0000880c T panic +00008847 T printk +00008898 t skip_atoi +000088f3 t number +00008b64 T vsprintf +00008ff0 t get_fs_long +00009006 t put_fs_byte +0000901e t put_fs_long +0000902a T sys_ftime +00009030 T sys_break +00009036 T sys_ptrace +0000903c T sys_stty +00009042 T sys_gtty +00009048 T sys_rename +0000904e T sys_prof +00009054 T sys_setregid +0000910d T sys_setgid +000091a4 T sys_acct +000091aa T sys_phys +000091b0 T sys_lock +000091b6 T sys_mpx +000091bc T sys_ulimit +000091c2 T sys_time +0000921e T sys_setreuid +00009300 T sys_setuid +00009395 T sys_stime +000093eb T sys_times +0000948b T sys_brk +000094cd T sys_setpgid +000095a6 T sys_getpgrp +000095b2 T sys_setsid +0000962c T sys_getgroups +00009632 T sys_setgroups +00009638 T sys_uname +000096a1 T sys_sethostname +000096a7 T sys_getrlimit +000096ad T sys_setrlimit +000096b3 T sys_getrusage +000096b9 T sys_gettimeofday +000096bf T sys_settimeofday +000096c5 T sys_umask +000096f8 t _get_base +0000972a t put_fs_long +00009736 T release +0000979a t send_sig +00009819 t kill_session +00009873 T sys_kill +00009a23 t tell_father +00009aad T do_exit +00009ce1 T sys_exit +00009cfa T sys_waitpid +00009f20 t get_fs_byte +00009f2e t put_fs_byte +00009f46 t put_fs_long +00009f52 T sys_sgetmask +00009f5e T sys_ssetmask +00009f8a T sys_sigpending +00009f90 T sys_sigsuspend +00009f96 t save_old +00009fe9 t get_new +0000a029 T sys_signal +0000a0ad T sys_sigaction +0000a1b7 T do_signal +0000a3a3 T kernel_mktime +0000a4e8 t oom +0000a507 T get_free_page +0000a543 T free_page +0000a5b2 T free_page_tables +0000a6b1 T copy_page_tables +0000a832 T put_page +0000a91e T un_wp_page +0000a9d6 T do_wp_page +0000aa61 T get_empty_page +0000aaa1 t try_to_share +0000ac33 t share_page +0000ace7 T do_no_page +0000ae49 T mem_init +0000aebd T calc_mem +0000afb2 T page_fault +0000afe9 t get_fs_long +0000afff T sys_ustat +0000b005 T sys_utime +0000b0b2 T sys_access +0000b18e T sys_chdir +0000b202 T sys_chroot +0000b276 T sys_chmod +0000b310 T sys_chown +0000b38b T sys_open +0000b62e T sys_creat +0000b651 T sys_close +0000b720 T sys_lseek +0000b837 T sys_read +0000ba2a T sys_write +0000bbd8 t lock_inode +0000bc05 t unlock_inode +0000bc23 T invalidate_inodes +0000bc92 T sync_inodes +0000bce9 t _bmap +0000c0d5 T bmap +0000c0f8 T create_block +0000c11b T iput +0000c28a T get_empty_inode +0000c3df T get_pipe_inode +0000c454 T iget +0000c619 t read_inode +0000c84f T sys_sync +0000c8b2 T sync_dev +0000c9ab T invalidate_buffers +0000ca1d T check_disk_change +0000cac7 t remove_from_queues +0000cbbe t insert_into_queues +0000cc83 t find_buffer +0000cceb T get_hash_table +0000cd6d T getblk +0000cf0b T brelse +0000cf54 T bread +0000cfd9 T bread_page +0000d0fb T breada +0000d1f0 T buffer_init +0000d31f t lock_super +0000d34c t free_super +0000d391 T get_super +0000d400 T put_super +0000d4d3 t read_super +0000d816 T sys_umount +0000d977 T sys_mount +0000dae8 T mount_root +0000dcf6 t get_fs_byte +0000dd04 t put_fs_byte +0000dd1c T block_write +0000de6e T block_read +0000df99 t get_fs_byte +0000dfa7 t put_fs_byte +0000dfbf t rw_ttyx +0000e007 t rw_tty +0000e057 t rw_ram +0000e05d t rw_mem +0000e063 t rw_kmem +0000e069 t rw_port +0000e103 t rw_memory +0000e1d9 T rw_char +0000e243 t get_fs_byte +0000e251 t put_fs_byte +0000e269 T file_read +0000e414 T file_write +0000e60e t put_fs_byte +0000e626 t cp_stat +0000e6fd T sys_stat +0000e747 T sys_lstat +0000e762 T sys_fstat +0000e7bf T sys_readlink +0000e7c5 t _get_base +0000e7f7 t get_fs_byte +0000e805 t get_fs_long +0000e81b t put_fs_byte +0000e833 t put_fs_long +0000e83f t get_fs +0000e853 t get_ds +0000e867 t set_fs +0000e86e T sys_uselib +0000e874 t create_tables +0000e9bf t count +0000e9fe t copy_strings +0000ebba t change_ldt +0000ed3d T do_execve +0000f7bf t get_fs_byte +0000f7cd t put_fs_byte +0000f7e5 t put_fs_long +0000f7f1 T read_pipe +0000fac6 T sys_pipe +0000fcc8 t get_fs_byte +0000fcd6 t permission +0000fd77 t match +0000fddf t find_entry +00010239 t get_dir +00010426 t dir_namei +000104a5 T namei +000105bb T open_namei +0001090e T sys_mknod +00010b3e T sys_mkdir +00010eef t empty_dir +000110cd T sys_rmdir +00011425 T sys_unlink +000116c6 T sys_symlink +000116cc T sys_link +00011926 T free_block +00011a98 T new_block +00011c3c T free_inode +00011da3 T new_inode +00011f7d t dupfd +00012057 T sys_dup2 +0001207e T sys_dup +00012099 T sys_fcntl +000121d8 T sys_ioctl +000122a9 t free_ind +00012348 t free_dind +000123e7 T truncate +0001251c T sys_select +00012522 t lock_buffer +0001254f t unlock_buffer +00012741 t make_request +000128e5 T ll_rw_block +0001293e T blk_dev_init +0001298c t unlock_buffer +000129c1 t end_request +00012a72 T floppy_deselect +00012aa9 T floppy_change +00012b2f t setup_DMA +00012be5 t output_byte +00012c5b t result +00012d18 t bad_flp_intr +00012d77 t rw_interrupt +00012e66 T setup_rw_floppy +00012f27 t seek_interrupt +00012f80 t transfer +000130b5 t recal_interrupt +000130ff T unexpected_floppy_interrupt +00013144 t recalibrate_floppy +000131a6 t reset_interrupt +000131eb t reset_floppy +00013268 t floppy_on_interrupt +000132d3 t do_fd_request +000134d7 T floppy_init +00013529 t unlock_buffer +0001355e t end_request +000135fd T sys_setup +000139b0 t controller_ready +00013a44 t hd_out +00013b31 t drive_busy +00013b97 t reset_controller +00013c14 t reset_hd +00013cac T unexpected_hd_interrupt +00013cbf t bad_rw_intr +00013cfd t read_intr +00013e23 t recal_intr +00013e3d t do_hd_request +0001413e T hd_init +000141b8 t unlock_buffer +000141ed t end_request +0001428c t do_rd_request +000143c2 T rd_init +00014418 T rd_load +000146c4 t get_fs_byte +000146d2 t put_fs_byte +000146ea T tty_init +000146fb T tty_intr +0001476f t sleep_if_empty +000147a7 t sleep_if_full +0001481b T copy_to_cooked +00014dd6 T tty_read +00015144 T tty_write +00015356 T do_tty_interrupt +0001537e T chr_dev_init +0001537f t gotoxy +000153cd t set_origin +00015433 t scrup +00015623 t scrdown +0001571a t lf +00015750 t ri +00015786 t cr +000157a7 t del +000157d9 t csi_J +0001586a t csi_K +0001591c T csi_m +00015983 t set_cursor +000159e9 t respond +00015a41 t insert_char +00015aa4 t insert_line +00015ae8 t delete_char +00015b46 t delete_line +00015b8a t csi_at +00015bc8 t csi_L +00015c06 t csi_P +00015c44 t csi_M +00015c82 t save_cur +00015c97 t restore_cur +00015cb6 T con_write +00016344 T con_init +0001657b T sysbeepstop +000165a4 t sysbeep +00016602 t mode +00016603 t leds +00016604 t e0 +00016605 T keyboard_interrupt +0001662e t e0_e1 +00016659 t set_e0 +00016662 t set_e1 +0001666b t put_queue +000166a4 t ctrl +000166bc t unctrl +000166c0 t unalt +000166d6 t lshift +000166de t unlshift +000166e6 t rshift +000166ee t unrshift +000166f6 t caps +00016718 t set_leds +0001672e t uncaps +00016736 t scroll +0001673f t num +00016748 t cursor +00016768 t cur2 +00016791 t cur +0001679d t ok_cur +000167ab t num_table +000167b8 t cur_table +000167c5 t func +000167e2 t ok_func +000167f5 t end_func +000167f6 t func_table +00016826 t key_map +00016887 t shift_map +00016949 t do_self +000169b1 t none +000169b2 t minus +000169c7 t key_table +00016dc7 t kb_wait +00016dd0 t reboot +00016de2 t die +00016de4 t init +00016e59 T rs_init +00016edc T rs_write +00016f2c T rs1_interrupt +00016f34 T rs2_interrupt +00016f39 t rs_int +00016f50 t rep_int +00016f6d t end +00016f7b t jmp_table +00016f8c t modem_status +00016f94 t line_status +00016f9c t read_char +00017023 t get_fs_byte +00017031 t get_fs_long +00017047 t put_fs_byte +0001705f t put_fs_long +0001706b t change_speed +000170e9 t flush +000170fb t send_break +000170fc t get_termios +00017158 t set_termios +000171a8 t get_termio +00017270 t set_termio +00017334 T tty_ioctl +00017632 t get_fs_byte +00017640 T math_emulate +00017723 T math_error +00017743 T _exit +00017753 T open +0001779c T close +00017810 T dup +00017847 T setsid +00017876 T execve +00017913 T strcpy +0001792f T strncpy +00017954 T strcat +0001797f T strncat +000179b4 T strcmp +000179db T strncmp +00017a09 T strchr +00017a36 T strrchr +00017a65 T strspn +00017aa2 T strcspn +00017adf T strpbrk +00017b16 T strstr +00017b4f T strlen +00017b72 T strtok +00017bf5 T memcpy +00017c15 T memmove +00017c69 T memcmp +00017c93 T memchr +00017ccb T memset +0001bb48 d envp_rc +0001bb5c d envp +0001bb80 D sys_call_table +0001bcdc D NR_syscalls +0001bce0 d init_task +0001cce0 D current +0001cd00 D task +0001ce00 D stack_start +0001ce08 D current_DOR +0001ce20 d thisname.1955 +0001ce60 d month +0001cea0 d last_inode.1935 +0001cea4 D start_buffer +0001cec0 d crw_table +0001cee0 d ioctl_table +0001cf00 d floppy_type +0001cfc0 d cur_spec1 +0001cfc4 d cur_rate +0001cfc8 d floppy +0001cfcc d current_track +0001cfd0 d callable.1844 +0001cfe0 D tty_table +0001f500 D table_list +0001f520 d quotient +0001f540 D _ctype +0001f641 B __bss_start +0001f641 D _edata +0001f660 b printbuf +0001fa60 b memory_end +0001fa64 b buffer_memory_end +0001fa68 b main_memory_start +0001fa80 B jiffies +0001fa84 B startup_time +0001fa88 B last_task_used_math +0001fa9c b mon_timer +0001faac b moff_timer +0001fac0 b timer_list +0001fdc0 b next_timer +0001fdc4 B last_pid +0001fde0 b buf +000201e0 b HIGH_MEMORY +00020200 b mem_map +00021100 B inode_table +00021800 B nr_buffers +00021804 b free_list +00021808 b buffer_wait +0002180c B ROOT_DEV +00021840 B blk_dev +00021878 B do_floppy +0002187c B selected +00021884 b recalibrate +00021888 b reset +0002188c b seek +00021890 b reply_buffer +00021897 b current_drive +00021898 b sector +00021899 b head +0002189a b track +0002189b b seek_track +0002189c b command +000218a0 B do_hd +000218c0 B hd_info +000218f0 b recalibrate +000218f4 b reset +000218f8 b NR_HD +00021900 b hd +00021950 B rd_length +00021954 b cr_flag.1923 +00021960 B beepcount +00021964 b video_type +00021968 b video_num_columns +0002196c b video_size_row +00021970 b video_num_lines +00021974 b video_page +00021978 b video_mem_start +0002197c b video_mem_end +00021980 b video_port_reg +00021982 b video_port_val +00021984 b video_erase_char +00021988 b origin +0002198c b scr_end +00021990 b pos +00021994 b x +00021998 b y +0002199c b top +000219a0 b bottom +000219a4 b state +000219a8 b npar +000219c0 b par +00021a00 b ques +00021a04 b saved_x +00021a08 b saved_y +00021a20 B drive_info +00021a40 B user_stack +00022a40 B hash_table +00022f20 B super_block +00023280 B file_table +00023680 B request +00023b00 B rd_start +00023b04 B _ctmp +00023b08 B errno +00023b0c B ___strtok +00023b10 B end +00023b10 B _end diff --git a/linux-0.11-lab/0/linux/System.map.2 b/linux-0.11-lab/0/linux/System.map.2 new file mode 100644 index 0000000..44e841e --- /dev/null +++ b/linux-0.11-lab/0/linux/System.map.2 @@ -0,0 +1,1075 @@ +Archive member included to satisfy reference by file (symbol) + +kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + fs/fs.o (ll_rw_block) +kernel/blk_drv/blk_drv.a(floppy.o) + kernel/kernel.o (do_floppy) +kernel/blk_drv/blk_drv.a(hd.o) + kernel/kernel.o (do_hd) +kernel/blk_drv/blk_drv.a(ramdisk.o) + kernel/blk_drv/blk_drv.a(hd.o) (rd_load) +kernel/chr_drv/chr_drv.a(tty_io.o) + kernel/kernel.o (tty_table) +kernel/chr_drv/chr_drv.a(console.o) + kernel/chr_drv/chr_drv.a(tty_io.o) (con_write) +kernel/chr_drv/chr_drv.a(keyboard.2.o) + kernel/chr_drv/chr_drv.a(console.o) (keyboard_interrupt) +kernel/chr_drv/chr_drv.a(serial.o) + kernel/chr_drv/chr_drv.a(tty_io.o) (rs_init) +kernel/chr_drv/chr_drv.a(rs_io.o) + kernel/chr_drv/chr_drv.a(serial.o) (rs1_interrupt) +kernel/chr_drv/chr_drv.a(tty_ioctl.o) + fs/fs.o (tty_ioctl) +kernel/math/math.a(math_emulate.o) + kernel/kernel.o (math_emulate) +lib/lib.a(ctype.o) kernel/chr_drv/chr_drv.a(tty_io.o) (_ctmp) +lib/lib.a(_exit.o) init/main.o (_exit) +lib/lib.a(open.o) init/main.o (open) +lib/lib.a(close.o) init/main.o (close) +lib/lib.a(errno.o) init/main.o (errno) +lib/lib.a(write.o) init/main.o (write) +lib/lib.a(dup.o) init/main.o (dup) +lib/lib.a(setsid.o) init/main.o (setsid) +lib/lib.a(execve.o) init/main.o (execve) +lib/lib.a(wait.o) init/main.o (wait) +lib/lib.a(string.o) fs/fs.o (strncpy) + +分配公共符号 +公共符号 大小 文件 + +errno 0x4 lib/lib.a(errno.o) +hash_table 0x4cc fs/fs.o +___strtok 0x4 lib/lib.a(string.o) +rd_start 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) +request 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) +user_stack 0x1000 kernel/kernel.o +_ctmp 0x1 lib/lib.a(ctype.o) +super_block 0x360 fs/fs.o +drive_info 0x20 init/main.o +file_table 0x400 fs/fs.o + +Discarded input sections + + .note.GNU-stack + 0x0000000000000000 0x0 init/main.o + .note.GNU-stack + 0x0000000000000000 0x0 kernel/kernel.o + .note.GNU-stack + 0x0000000000000000 0x0 mm/mm.o + .note.GNU-stack + 0x0000000000000000 0x0 fs/fs.o + .note.GNU-stack + 0x0000000000000000 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/blk_drv/blk_drv.a(floppy.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/blk_drv/blk_drv.a(hd.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/chr_drv/chr_drv.a(tty_io.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/chr_drv/chr_drv.a(console.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .note.GNU-stack + 0x0000000000000000 0x0 kernel/math/math.a(math_emulate.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(ctype.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(_exit.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(open.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(close.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(errno.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(write.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(dup.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(setsid.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(execve.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(wait.o) + .note.GNU-stack + 0x0000000000000000 0x0 lib/lib.a(string.o) + +内存配置 + +名称 来源 长度 属性 +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +段 .text 的地址设置为 0x0 +LOAD boot/head.o +LOAD init/main.o +LOAD kernel/kernel.o +LOAD mm/mm.o +LOAD fs/fs.o +LOAD kernel/blk_drv/blk_drv.a +LOAD kernel/chr_drv/chr_drv.a +LOAD kernel/math/math.a +LOAD lib/lib.a + 0x0000000008048000 PROVIDE (__executable_start, 0x8048000) + 0x0000000008048074 . = (0x8048000 + SIZEOF_HEADERS) + +.interp + *(.interp) + +.note.gnu.build-id + *(.note.gnu.build-id) + +.hash + *(.hash) + +.gnu.hash + *(.gnu.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rel.text 0x0000000008048074 0x0 + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + .rel.text 0x0000000000000000 0x0 boot/head.o + +.rel.fini + *(.rel.fini) + +.rel.rodata + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + +.rel.data.rel.ro + *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) + +.rel.data 0x0000000008048074 0x0 + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + .rel.data 0x0000000000000000 0x0 boot/head.o + +.rel.tdata + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + +.rel.tbss + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + +.rel.ctors + *(.rel.ctors) + +.rel.dtors + *(.rel.dtors) + +.rel.got + *(.rel.got) + +.rel.bss + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + +.rel.ifunc + *(.rel.ifunc) + +.rel.plt 0x0000000008048074 0x0 + *(.rel.plt) + 0x0000000008048074 PROVIDE (__rel_iplt_start, .) + *(.rel.iplt) + .rel.iplt 0x0000000000000000 0x0 boot/head.o + 0x0000000008048074 PROVIDE (__rel_iplt_end, .) + +.init + *(SORT(.init)) + +.plt 0x0000000008048080 0x0 + *(.plt) + *(.iplt) + .iplt 0x0000000000000000 0x0 boot/head.o + +.text 0x0000000000000000 0x17cef + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) + *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x0000000000000000 0x64c0 boot/head.o + 0x0000000000000000 startup_32 + 0x0000000000000000 pg_dir + 0x0000000000005000 tmp_floppy_area + 0x00000000000054c0 idt + 0x0000000000005cc0 gdt + .text 0x00000000000064c0 0x713 init/main.o + 0x00000000000064c0 fork + 0x00000000000064ef pause + 0x000000000000651e setup + 0x0000000000006555 sync + 0x0000000000006799 main + 0x000000000000695b init + *fill* 0x0000000000006bd3 0x1 + .text 0x0000000000006bd4 0x3914 kernel/kernel.o + 0x0000000000006bd4 show_task + 0x0000000000006c59 show_stat + 0x0000000000006c9f math_state_restore + 0x0000000000006cfd schedule + 0x0000000000006eaf sys_pause + 0x0000000000006ec5 sleep_on + 0x0000000000006f24 interruptible_sleep_on + 0x0000000000006fb7 wake_up + 0x0000000000006fdf ticks_to_floppy_on + 0x00000000000070aa floppy_on + 0x00000000000070d9 floppy_off + 0x00000000000070e9 do_floppy_timer + 0x00000000000071bd add_timer + 0x00000000000072e1 do_timer + 0x00000000000073d0 sys_alarm + 0x000000000000744f sys_getpid + 0x000000000000745b sys_getppid + 0x0000000000007467 sys_getuid + 0x0000000000007476 sys_geteuid + 0x0000000000007486 sys_getgid + 0x0000000000007496 sys_getegid + 0x00000000000074a5 sys_nice + 0x00000000000074d0 sched_init + 0x0000000000007674 system_call + 0x00000000000076f0 coprocessor_error + 0x0000000000007712 device_not_available + 0x000000000000774c timer_interrupt + 0x0000000000007784 sys_execve + 0x0000000000007794 sys_fork + 0x00000000000077ac hd_interrupt + 0x00000000000077e8 floppy_interrupt + 0x000000000000781e parallel_interrupt + 0x0000000000007a39 do_double_fault + 0x0000000000007a5c do_general_protection + 0x0000000000007a7f do_divide_error + 0x0000000000007aa2 do_int3 + 0x0000000000007b6a do_nmi + 0x0000000000007b8d do_debug + 0x0000000000007bb0 do_overflow + 0x0000000000007bd3 do_bounds + 0x0000000000007bf6 do_invalid_op + 0x0000000000007c19 do_device_not_available + 0x0000000000007c3c do_coprocessor_segment_overrun + 0x0000000000007c5f do_invalid_TSS + 0x0000000000007c82 do_segment_not_present + 0x0000000000007ca5 do_stack_segment + 0x0000000000007cc8 do_coprocessor_error + 0x0000000000007cfc do_reserved + 0x0000000000007d1f trap_init + 0x0000000000008003 divide_error + 0x0000000000008038 debug + 0x000000000000803f nmi + 0x0000000000008046 int3 + 0x000000000000804d overflow + 0x0000000000008054 bounds + 0x000000000000805b invalid_op + 0x0000000000008062 coprocessor_segment_overrun + 0x0000000000008069 reserved + 0x0000000000008070 irq13 + 0x0000000000008085 double_fault + 0x00000000000080bc invalid_TSS + 0x00000000000080c3 segment_not_present + 0x00000000000080ca stack_segment + 0x00000000000080d1 general_protection + 0x000000000000810a verify_area + 0x0000000000008171 copy_mem + 0x00000000000082cb copy_process + 0x0000000000008778 find_empty_process + 0x000000000000880c panic + 0x0000000000008847 printk + 0x0000000000008b64 vsprintf + 0x000000000000902a sys_ftime + 0x0000000000009030 sys_break + 0x0000000000009036 sys_ptrace + 0x000000000000903c sys_stty + 0x0000000000009042 sys_gtty + 0x0000000000009048 sys_rename + 0x000000000000904e sys_prof + 0x0000000000009054 sys_setregid + 0x000000000000910d sys_setgid + 0x00000000000091a4 sys_acct + 0x00000000000091aa sys_phys + 0x00000000000091b0 sys_lock + 0x00000000000091b6 sys_mpx + 0x00000000000091bc sys_ulimit + 0x00000000000091c2 sys_time + 0x000000000000921e sys_setreuid + 0x0000000000009300 sys_setuid + 0x0000000000009395 sys_stime + 0x00000000000093eb sys_times + 0x000000000000948b sys_brk + 0x00000000000094cd sys_setpgid + 0x00000000000095a6 sys_getpgrp + 0x00000000000095b2 sys_setsid + 0x000000000000962c sys_getgroups + 0x0000000000009632 sys_setgroups + 0x0000000000009638 sys_uname + 0x00000000000096a1 sys_sethostname + 0x00000000000096a7 sys_getrlimit + 0x00000000000096ad sys_setrlimit + 0x00000000000096b3 sys_getrusage + 0x00000000000096b9 sys_gettimeofday + 0x00000000000096bf sys_settimeofday + 0x00000000000096c5 sys_umask + 0x0000000000009736 release + 0x0000000000009873 sys_kill + 0x0000000000009aad do_exit + 0x0000000000009ce1 sys_exit + 0x0000000000009cfa sys_waitpid + 0x0000000000009f52 sys_sgetmask + 0x0000000000009f5e sys_ssetmask + 0x0000000000009f8a sys_sigpending + 0x0000000000009f90 sys_sigsuspend + 0x000000000000a029 sys_signal + 0x000000000000a0ad sys_sigaction + 0x000000000000a1b7 do_signal + 0x000000000000a3a3 kernel_mktime + .text 0x000000000000a4e8 0xb01 mm/mm.o + 0x000000000000a507 get_free_page + 0x000000000000a543 free_page + 0x000000000000a5b2 free_page_tables + 0x000000000000a6b1 copy_page_tables + 0x000000000000a832 put_page + 0x000000000000a91e un_wp_page + 0x000000000000a9d6 do_wp_page + 0x000000000000aa08 write_verify + 0x000000000000aa61 get_empty_page + 0x000000000000ace7 do_no_page + 0x000000000000ae49 mem_init + 0x000000000000aebd calc_mem + 0x000000000000afb2 page_fault + .text 0x000000000000afe9 0x7539 fs/fs.o + 0x000000000000afff sys_ustat + 0x000000000000b005 sys_utime + 0x000000000000b0b2 sys_access + 0x000000000000b18e sys_chdir + 0x000000000000b202 sys_chroot + 0x000000000000b276 sys_chmod + 0x000000000000b310 sys_chown + 0x000000000000b38b sys_open + 0x000000000000b62e sys_creat + 0x000000000000b651 sys_close + 0x000000000000b720 sys_lseek + 0x000000000000b837 sys_read + 0x000000000000ba2a sys_write + 0x000000000000bc23 invalidate_inodes + 0x000000000000bc92 sync_inodes + 0x000000000000c0d5 bmap + 0x000000000000c0f8 create_block + 0x000000000000c11b iput + 0x000000000000c28a get_empty_inode + 0x000000000000c3df get_pipe_inode + 0x000000000000c454 iget + 0x000000000000c84f sys_sync + 0x000000000000c8b2 sync_dev + 0x000000000000c9ab invalidate_buffers + 0x000000000000ca1d check_disk_change + 0x000000000000cceb get_hash_table + 0x000000000000cd6d getblk + 0x000000000000cf0b brelse + 0x000000000000cf54 bread + 0x000000000000cfd9 bread_page + 0x000000000000d0fb breada + 0x000000000000d1f0 buffer_init + 0x000000000000d391 get_super + 0x000000000000d400 put_super + 0x000000000000d816 sys_umount + 0x000000000000d977 sys_mount + 0x000000000000dae8 mount_root + 0x000000000000dd1c block_write + 0x000000000000de6e block_read + 0x000000000000e1d9 rw_char + 0x000000000000e269 file_read + 0x000000000000e414 file_write + 0x000000000000e6fd sys_stat + 0x000000000000e747 sys_lstat + 0x000000000000e762 sys_fstat + 0x000000000000e7bf sys_readlink + 0x000000000000e86e sys_uselib + 0x000000000000ed3d do_execve + 0x000000000000f7f1 read_pipe + 0x000000000000f947 write_pipe + 0x000000000000fac6 sys_pipe + 0x00000000000104a5 namei + 0x00000000000105bb open_namei + 0x000000000001090e sys_mknod + 0x0000000000010b3e sys_mkdir + 0x00000000000110cd sys_rmdir + 0x0000000000011425 sys_unlink + 0x00000000000116c6 sys_symlink + 0x00000000000116cc sys_link + 0x0000000000011926 free_block + 0x0000000000011a98 new_block + 0x0000000000011c3c free_inode + 0x0000000000011da3 new_inode + 0x0000000000012057 sys_dup2 + 0x000000000001207e sys_dup + 0x0000000000012099 sys_fcntl + 0x00000000000121d8 sys_ioctl + 0x00000000000123e7 truncate + 0x000000000001251c sys_select + .text 0x0000000000012522 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x00000000000128e5 ll_rw_block + 0x000000000001293e blk_dev_init + .text 0x000000000001298c 0xb9d kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000012a72 floppy_deselect + 0x0000000000012aa9 floppy_change + 0x0000000000012e66 setup_rw_floppy + 0x00000000000130ff unexpected_floppy_interrupt + 0x00000000000134d7 floppy_init + .text 0x0000000000013529 0xc8f kernel/blk_drv/blk_drv.a(hd.o) + 0x00000000000135fd sys_setup + 0x0000000000013cac unexpected_hd_interrupt + 0x000000000001413e hd_init + .text 0x00000000000141b8 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x00000000000143c2 rd_init + 0x0000000000014418 rd_load + .text 0x00000000000146c4 0xcbb kernel/chr_drv/chr_drv.a(tty_io.o) + 0x00000000000146ea tty_init + 0x00000000000146fb tty_intr + 0x0000000000014808 wait_for_keypress + 0x000000000001481b copy_to_cooked + 0x0000000000014dd6 tty_read + 0x0000000000015144 tty_write + 0x0000000000015356 do_tty_interrupt + 0x000000000001537e chr_dev_init + .text 0x000000000001537f 0x1283 kernel/chr_drv/chr_drv.a(console.o) + 0x000000000001591c csi_m + 0x0000000000015cb6 con_write + 0x0000000000016344 con_init + 0x000000000001657b sysbeepstop + .text 0x0000000000016602 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o) + 0x0000000000016605 keyboard_interrupt + .text 0x0000000000016de4 0x145 kernel/chr_drv/chr_drv.a(serial.o) + 0x0000000000016e59 rs_init + 0x0000000000016edc rs_write + *fill* 0x0000000000016f29 0x3 + .text 0x0000000000016f2c 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o) + 0x0000000000016f2c rs1_interrupt + 0x0000000000016f34 rs2_interrupt + .text 0x0000000000017023 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x0000000000017334 tty_ioctl + .text 0x0000000000017632 0x111 kernel/math/math.a(math_emulate.o) + 0x0000000000017640 math_emulate + 0x0000000000017723 math_error + .text 0x0000000000017743 0x0 lib/lib.a(ctype.o) + .text 0x0000000000017743 0x10 lib/lib.a(_exit.o) + 0x0000000000017743 _exit + .text 0x0000000000017753 0x49 lib/lib.a(open.o) + 0x0000000000017753 open + .text 0x000000000001779c 0x37 lib/lib.a(close.o) + 0x000000000001779c close + .text 0x00000000000177d3 0x0 lib/lib.a(errno.o) + .text 0x00000000000177d3 0x3d lib/lib.a(write.o) + 0x00000000000177d3 write + .text 0x0000000000017810 0x37 lib/lib.a(dup.o) + 0x0000000000017810 dup + .text 0x0000000000017847 0x2f lib/lib.a(setsid.o) + 0x0000000000017847 setsid + .text 0x0000000000017876 0x3d lib/lib.a(execve.o) + 0x0000000000017876 execve + .text 0x00000000000178b3 0x60 lib/lib.a(wait.o) + 0x00000000000178b3 waitpid + 0x00000000000178f0 wait + .text 0x0000000000017913 0x3dc lib/lib.a(string.o) + 0x0000000000017913 strcpy + 0x000000000001792f strncpy + 0x0000000000017954 strcat + 0x000000000001797f strncat + 0x00000000000179b4 strcmp + 0x00000000000179db strncmp + 0x0000000000017a09 strchr + 0x0000000000017a36 strrchr + 0x0000000000017a65 strspn + 0x0000000000017aa2 strcspn + 0x0000000000017adf strpbrk + 0x0000000000017b16 strstr + 0x0000000000017b4f strlen + 0x0000000000017b72 strtok + 0x0000000000017bf5 memcpy + 0x0000000000017c15 memmove + 0x0000000000017c69 memcmp + 0x0000000000017c93 memchr + 0x0000000000017ccb memset + *(.gnu.warning) + +.fini + *(SORT(.fini)) + 0x0000000000017cef PROVIDE (__etext, .) + 0x0000000000017cef PROVIDE (_etext, .) + 0x0000000000017cef PROVIDE (etext, .) + +.rodata 0x0000000000017cf0 0x13ca + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata 0x0000000000017cf0 0xad init/main.o + *fill* 0x0000000000017d9d 0x3 + .rodata 0x0000000000017da0 0x438 kernel/kernel.o + .rodata 0x00000000000181d8 0x18f mm/mm.o + *fill* 0x0000000000018367 0x1 + .rodata 0x0000000000018368 0x62c fs/fs.o + .rodata 0x0000000000018994 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + *fill* 0x0000000000018a0e 0x2 + .rodata 0x0000000000018a10 0x133 kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x0000000000018b43 0x1 + .rodata 0x0000000000018b44 0x19b kernel/blk_drv/blk_drv.a(hd.o) + *fill* 0x0000000000018cdf 0x1 + .rodata 0x0000000000018ce0 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o) + .rodata 0x0000000000018e68 0x17d kernel/chr_drv/chr_drv.a(console.o) + *fill* 0x0000000000018fe5 0x3 + .rodata 0x0000000000018fe8 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .rodata 0x0000000000019068 0x52 kernel/math/math.a(math_emulate.o) + +.rodata1 + *(.rodata1) + +.eh_frame_hdr + *(.eh_frame_hdr) + +.eh_frame 0x00000000000190bc 0x2a6c + *(.eh_frame) + .eh_frame 0x00000000000190bc 0xf0 init/main.o + .eh_frame 0x00000000000191ac 0xb04 kernel/kernel.o + 0xbf4 (size before relaxing) + .eh_frame 0x0000000000019cb0 0x194 mm/mm.o + 0x1ac (size before relaxing) + .eh_frame 0x0000000000019e44 0xdd8 fs/fs.o + 0xf70 (size before relaxing) + .eh_frame 0x000000000001ac1c 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0xb0 (size before relaxing) + .eh_frame 0x000000000001acb4 0x23c kernel/blk_drv/blk_drv.a(floppy.o) + 0x254 (size before relaxing) + .eh_frame 0x000000000001aef0 0x1e8 kernel/blk_drv/blk_drv.a(hd.o) + 0x200 (size before relaxing) + .eh_frame 0x000000000001b0d8 0xac kernel/blk_drv/blk_drv.a(ramdisk.o) + 0xc4 (size before relaxing) + .eh_frame 0x000000000001b184 0x12c kernel/chr_drv/chr_drv.a(tty_io.o) + 0x144 (size before relaxing) + .eh_frame 0x000000000001b2b0 0x2c0 kernel/chr_drv/chr_drv.a(console.o) + 0x2d8 (size before relaxing) + .eh_frame 0x000000000001b570 0x54 kernel/chr_drv/chr_drv.a(serial.o) + 0x6c (size before relaxing) + .eh_frame 0x000000000001b5c4 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x160 (size before relaxing) + .eh_frame 0x000000000001b70c 0x5c kernel/math/math.a(math_emulate.o) + 0x74 (size before relaxing) + .eh_frame 0x000000000001b768 0x1c lib/lib.a(_exit.o) + 0x34 (size before relaxing) + .eh_frame 0x000000000001b784 0x24 lib/lib.a(open.o) + 0x3c (size before relaxing) + .eh_frame 0x000000000001b7a8 0x20 lib/lib.a(close.o) + 0x38 (size before relaxing) + .eh_frame 0x000000000001b7c8 0x20 lib/lib.a(write.o) + 0x38 (size before relaxing) + .eh_frame 0x000000000001b7e8 0x20 lib/lib.a(dup.o) + 0x38 (size before relaxing) + .eh_frame 0x000000000001b808 0x18 lib/lib.a(setsid.o) + 0x30 (size before relaxing) + .eh_frame 0x000000000001b820 0x20 lib/lib.a(execve.o) + 0x38 (size before relaxing) + .eh_frame 0x000000000001b840 0x38 lib/lib.a(wait.o) + 0x50 (size before relaxing) + .eh_frame 0x000000000001b878 0x2b0 lib/lib.a(string.o) + 0x2c8 (size before relaxing) + +.gcc_except_table + *(.gcc_except_table .gcc_except_table.*) + +.exception_ranges + *(.exception_ranges .exception_ranges*) + 0x000000000001bb28 . = . + +.eh_frame + *(.eh_frame) + +.gcc_except_table + *(.gcc_except_table .gcc_except_table.*) + +.exception_ranges + *(.exception_ranges .exception_ranges*) + +.tdata + *(.tdata .tdata.* .gnu.linkonce.td.*) + +.tbss + *(.tbss .tbss.* .gnu.linkonce.tb.*) + *(.tcommon) + +.preinit_array 0x000000000001bb28 0x0 + 0x000000000001bb28 PROVIDE (__preinit_array_start, .) + *(.preinit_array) + 0x000000000001bb28 PROVIDE (__preinit_array_end, .) + +.init_array 0x000000000001bb28 0x0 + 0x000000000001bb28 PROVIDE (__init_array_start, .) + *(SORT(.init_array.*) SORT(.ctors.*)) + *(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors) + 0x000000000001bb28 PROVIDE (__init_array_end, .) + +.fini_array 0x000000000001bb28 0x0 + 0x000000000001bb28 PROVIDE (__fini_array_start, .) + *(SORT(.fini_array.*) SORT(.dtors.*)) + *(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors) + 0x000000000001bb28 PROVIDE (__fini_array_end, .) + +.ctors + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + +.dtors + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + +.jcr + *(.jcr) + +.data.rel.ro + *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) + *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) + +.dynamic + *(.dynamic) + +.got + *(.got) + *(.igot) + +.got.plt 0x000000000001bb28 0x0 + *(.got.plt) + *(.igot.plt) + .igot.plt 0x0000000000000000 0x0 boot/head.o + +.data 0x000000000001bb40 0x3b01 + *(.data .data.* .gnu.linkonce.d.*) + .data 0x000000000001bb40 0x0 boot/head.o + .data 0x000000000001bb40 0x28 init/main.o + *fill* 0x000000000001bb68 0x18 + .data 0x000000000001bb80 0x1310 kernel/kernel.o + 0x000000000001bb80 sys_call_table + 0x000000000001bcdc NR_syscalls + 0x000000000001cce0 current + 0x000000000001cd00 task + 0x000000000001ce00 stack_start + 0x000000000001ce08 current_DOR + .data 0x000000000001ce90 0x0 mm/mm.o + *fill* 0x000000000001ce90 0x10 + .data 0x000000000001cea0 0x60 fs/fs.o + 0x000000000001cea4 start_buffer + .data 0x000000000001cf00 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .data 0x000000000001cf00 0xcd kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x000000000001cfcd 0x3 + .data 0x000000000001cfd0 0x4 kernel/blk_drv/blk_drv.a(hd.o) + .data 0x000000000001cfd4 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) + *fill* 0x000000000001cfd4 0xc + .data 0x000000000001cfe0 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x000000000001cfe0 tty_table + 0x000000000001f500 table_list + .data 0x000000000001f518 0x1 kernel/chr_drv/chr_drv.a(console.o) + .data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + *fill* 0x000000000001f519 0x7 + .data 0x000000000001f520 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .data 0x000000000001f540 0x0 kernel/math/math.a(math_emulate.o) + .data 0x000000000001f540 0x101 lib/lib.a(ctype.o) + 0x000000000001f540 _ctype + .data 0x000000000001f641 0x0 lib/lib.a(_exit.o) + .data 0x000000000001f641 0x0 lib/lib.a(open.o) + .data 0x000000000001f641 0x0 lib/lib.a(close.o) + .data 0x000000000001f641 0x0 lib/lib.a(errno.o) + .data 0x000000000001f641 0x0 lib/lib.a(write.o) + .data 0x000000000001f641 0x0 lib/lib.a(dup.o) + .data 0x000000000001f641 0x0 lib/lib.a(setsid.o) + .data 0x000000000001f641 0x0 lib/lib.a(execve.o) + .data 0x000000000001f641 0x0 lib/lib.a(wait.o) + .data 0x000000000001f641 0x0 lib/lib.a(string.o) + +.data1 + *(.data1) + 0x000000000001f641 _edata = . + 0x000000000001f641 PROVIDE (edata, .) + 0x000000000001f641 . = . + 0x000000000001f641 __bss_start = . + +.bss 0x000000000001f660 0x44b0 + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x000000000001f660 0x0 boot/head.o + .bss 0x000000000001f660 0x40c init/main.o + *fill* 0x000000000001fa6c 0x14 + .bss 0x000000000001fa80 0x760 kernel/kernel.o + 0x000000000001fa80 jiffies + 0x000000000001fa84 startup_time + 0x000000000001fa88 last_task_used_math + 0x000000000001fdc4 last_pid + .bss 0x00000000000201e0 0xf20 mm/mm.o + .bss 0x0000000000021100 0x710 fs/fs.o + 0x0000000000021100 inode_table + 0x0000000000021800 nr_buffers + 0x000000000002180c ROOT_DEV + *fill* 0x0000000000021810 0x10 + .bss 0x0000000000021820 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000021820 wait_for_request + 0x0000000000021840 blk_dev + .bss 0x0000000000021878 0x25 kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000021878 do_floppy + 0x000000000002187c selected + 0x0000000000021880 wait_on_floppy_select + *fill* 0x000000000002189d 0x3 + .bss 0x00000000000218a0 0xb0 kernel/blk_drv/blk_drv.a(hd.o) + 0x00000000000218a0 do_hd + 0x00000000000218c0 hd_info + .bss 0x0000000000021950 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x0000000000021950 rd_length + .bss 0x0000000000021954 0x4 kernel/chr_drv/chr_drv.a(tty_io.o) + *fill* 0x0000000000021958 0x8 + .bss 0x0000000000021960 0xac kernel/chr_drv/chr_drv.a(console.o) + 0x0000000000021960 beepcount + .bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + .bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .bss 0x0000000000021a0c 0x0 kernel/math/math.a(math_emulate.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(ctype.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(_exit.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(open.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(close.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(errno.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(write.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(dup.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(setsid.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(execve.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(wait.o) + .bss 0x0000000000021a0c 0x0 lib/lib.a(string.o) + *(COMMON) + *fill* 0x0000000000021a0c 0x14 + COMMON 0x0000000000021a20 0x20 init/main.o + 0x0000000000021a20 drive_info + COMMON 0x0000000000021a40 0x1000 kernel/kernel.o + 0x0000000000021a40 user_stack + COMMON 0x0000000000022a40 0xc40 fs/fs.o + 0x0000000000022a40 hash_table + 0x0000000000022f20 super_block + 0x0000000000023280 file_table + COMMON 0x0000000000023680 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000023680 request + COMMON 0x0000000000023b00 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x0000000000023b00 rd_start + COMMON 0x0000000000023b04 0x1 lib/lib.a(ctype.o) + 0x0000000000023b04 _ctmp + *fill* 0x0000000000023b05 0x3 + COMMON 0x0000000000023b08 0x4 lib/lib.a(errno.o) + 0x0000000000023b08 errno + COMMON 0x0000000000023b0c 0x4 lib/lib.a(string.o) + 0x0000000000023b0c ___strtok + 0x0000000000023b10 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x0000000000023b10 . = ALIGN (0x4) + 0x0000000000023b10 . = SEGMENT_START ("ldata-segment", .) + 0x0000000000023b10 . = ALIGN (0x4) + 0x0000000000023b10 _end = . + 0x0000000000023b10 PROVIDE (end, .) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x0000000000000000 0x29 + *(.comment) + .comment 0x0000000000000000 0x29 init/main.o + 0x2a (size before relaxing) + .comment 0x0000000000000000 0x1a4 kernel/kernel.o + .comment 0x0000000000000000 0x2a mm/mm.o + .comment 0x0000000000000000 0x2f4 fs/fs.o + .comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(floppy.o) + .comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(hd.o) + .comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(ramdisk.o) + .comment 0x0000000000000000 0x2a kernel/chr_drv/chr_drv.a(tty_io.o) + .comment 0x0000000000000000 0x2a kernel/chr_drv/chr_drv.a(console.o) + .comment 0x0000000000000000 0x2a kernel/chr_drv/chr_drv.a(serial.o) + .comment 0x0000000000000000 0x2a kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .comment 0x0000000000000000 0x2a kernel/math/math.a(math_emulate.o) + .comment 0x0000000000000000 0x2a lib/lib.a(ctype.o) + .comment 0x0000000000000000 0x2a lib/lib.a(_exit.o) + .comment 0x0000000000000000 0x2a lib/lib.a(open.o) + .comment 0x0000000000000000 0x2a lib/lib.a(close.o) + .comment 0x0000000000000000 0x2a lib/lib.a(errno.o) + .comment 0x0000000000000000 0x2a lib/lib.a(write.o) + .comment 0x0000000000000000 0x2a lib/lib.a(dup.o) + .comment 0x0000000000000000 0x2a lib/lib.a(setsid.o) + .comment 0x0000000000000000 0x2a lib/lib.a(execve.o) + .comment 0x0000000000000000 0x2a lib/lib.a(wait.o) + .comment 0x0000000000000000 0x2a lib/lib.a(string.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x0000000000000000 0x628 + *(.debug_aranges) + .debug_aranges + 0x0000000000000000 0x20 init/main.o + .debug_aranges + 0x0000000000000020 0x140 kernel/kernel.o + .debug_aranges + 0x0000000000000160 0x20 mm/mm.o + .debug_aranges + 0x0000000000000180 0x238 fs/fs.o + .debug_aranges + 0x00000000000003b8 0x20 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_aranges + 0x00000000000003d8 0x20 kernel/blk_drv/blk_drv.a(floppy.o) + .debug_aranges + 0x00000000000003f8 0x20 kernel/blk_drv/blk_drv.a(hd.o) + .debug_aranges + 0x0000000000000418 0x20 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_aranges + 0x0000000000000438 0x20 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_aranges + 0x0000000000000458 0x20 kernel/chr_drv/chr_drv.a(console.o) + .debug_aranges + 0x0000000000000478 0x20 kernel/chr_drv/chr_drv.a(serial.o) + .debug_aranges + 0x0000000000000498 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_aranges + 0x00000000000004b8 0x20 kernel/math/math.a(math_emulate.o) + .debug_aranges + 0x00000000000004d8 0x18 lib/lib.a(ctype.o) + .debug_aranges + 0x00000000000004f0 0x20 lib/lib.a(_exit.o) + .debug_aranges + 0x0000000000000510 0x20 lib/lib.a(open.o) + .debug_aranges + 0x0000000000000530 0x20 lib/lib.a(close.o) + .debug_aranges + 0x0000000000000550 0x18 lib/lib.a(errno.o) + .debug_aranges + 0x0000000000000568 0x20 lib/lib.a(write.o) + .debug_aranges + 0x0000000000000588 0x20 lib/lib.a(dup.o) + .debug_aranges + 0x00000000000005a8 0x20 lib/lib.a(setsid.o) + .debug_aranges + 0x00000000000005c8 0x20 lib/lib.a(execve.o) + .debug_aranges + 0x00000000000005e8 0x20 lib/lib.a(wait.o) + .debug_aranges + 0x0000000000000608 0x20 lib/lib.a(string.o) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x0000000000000000 0x16d23 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x0000000000000000 0x553 init/main.o + .debug_info 0x0000000000000553 0x4cb6 kernel/kernel.o + .debug_info 0x0000000000005209 0xb2b mm/mm.o + .debug_info 0x0000000000005d34 0xa290 fs/fs.o + .debug_info 0x000000000000ffc4 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_info 0x00000000000108f6 0xc9f kernel/blk_drv/blk_drv.a(floppy.o) + .debug_info 0x0000000000011595 0xd5f kernel/blk_drv/blk_drv.a(hd.o) + .debug_info 0x00000000000122f4 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_info 0x0000000000012dc9 0xacd kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_info 0x0000000000013896 0xdb0 kernel/chr_drv/chr_drv.a(console.o) + .debug_info 0x0000000000014646 0x85c kernel/chr_drv/chr_drv.a(serial.o) + .debug_info 0x0000000000014ea2 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_info 0x00000000000159e9 0x7b5 kernel/math/math.a(math_emulate.o) + .debug_info 0x000000000001619e 0x66 lib/lib.a(ctype.o) + .debug_info 0x0000000000016204 0x77 lib/lib.a(_exit.o) + .debug_info 0x000000000001627b 0xd0 lib/lib.a(open.o) + .debug_info 0x000000000001634b 0x97 lib/lib.a(close.o) + .debug_info 0x00000000000163e2 0x36 lib/lib.a(errno.o) + .debug_info 0x0000000000016418 0xc9 lib/lib.a(write.o) + .debug_info 0x00000000000164e1 0x97 lib/lib.a(dup.o) + .debug_info 0x0000000000016578 0x95 lib/lib.a(setsid.o) + .debug_info 0x000000000001660d 0xcb lib/lib.a(execve.o) + .debug_info 0x00000000000166d8 0xed lib/lib.a(wait.o) + .debug_info 0x00000000000167c5 0x55e lib/lib.a(string.o) + +.debug_abbrev 0x0000000000000000 0x43b9 + *(.debug_abbrev) + .debug_abbrev 0x0000000000000000 0x1d3 init/main.o + .debug_abbrev 0x00000000000001d3 0xf63 kernel/kernel.o + .debug_abbrev 0x0000000000001136 0x20b mm/mm.o + .debug_abbrev 0x0000000000001341 0x19f1 fs/fs.o + .debug_abbrev 0x0000000000002d32 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_abbrev 0x0000000000002e9b 0x27d kernel/blk_drv/blk_drv.a(floppy.o) + .debug_abbrev 0x0000000000003118 0x23c kernel/blk_drv/blk_drv.a(hd.o) + .debug_abbrev 0x0000000000003354 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_abbrev 0x00000000000034fc 0x279 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_abbrev 0x0000000000003775 0x26b kernel/chr_drv/chr_drv.a(console.o) + .debug_abbrev 0x00000000000039e0 0x175 kernel/chr_drv/chr_drv.a(serial.o) + .debug_abbrev 0x0000000000003b55 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_abbrev 0x0000000000003ce2 0x163 kernel/math/math.a(math_emulate.o) + .debug_abbrev 0x0000000000003e45 0x3e lib/lib.a(ctype.o) + .debug_abbrev 0x0000000000003e83 0x51 lib/lib.a(_exit.o) + .debug_abbrev 0x0000000000003ed4 0x97 lib/lib.a(open.o) + .debug_abbrev 0x0000000000003f6b 0x75 lib/lib.a(close.o) + .debug_abbrev 0x0000000000003fe0 0x2c lib/lib.a(errno.o) + .debug_abbrev 0x000000000000400c 0xa1 lib/lib.a(write.o) + .debug_abbrev 0x00000000000040ad 0x75 lib/lib.a(dup.o) + .debug_abbrev 0x0000000000004122 0x73 lib/lib.a(setsid.o) + .debug_abbrev 0x0000000000004195 0x85 lib/lib.a(execve.o) + .debug_abbrev 0x000000000000421a 0xb6 lib/lib.a(wait.o) + .debug_abbrev 0x00000000000042d0 0xe9 lib/lib.a(string.o) + +.debug_line 0x0000000000000000 0x4599 + *(.debug_line .debug_line.* .debug_line_end) + .debug_line 0x0000000000000000 0x1a7 init/main.o + .debug_line 0x00000000000001a7 0xe86 kernel/kernel.o + .debug_line 0x000000000000102d 0x274 mm/mm.o + .debug_line 0x00000000000012a1 0x1c50 fs/fs.o + .debug_line 0x0000000000002ef1 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_line 0x0000000000003088 0x24c kernel/blk_drv/blk_drv.a(floppy.o) + .debug_line 0x00000000000032d4 0x2bf kernel/blk_drv/blk_drv.a(hd.o) + .debug_line 0x0000000000003593 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_line 0x00000000000036f3 0x33b kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_line 0x0000000000003a2e 0x3ab kernel/chr_drv/chr_drv.a(console.o) + .debug_line 0x0000000000003dd9 0xd9 kernel/chr_drv/chr_drv.a(serial.o) + .debug_line 0x0000000000003eb2 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_line 0x000000000000408d 0xe1 kernel/math/math.a(math_emulate.o) + .debug_line 0x000000000000416e 0x28 lib/lib.a(ctype.o) + .debug_line 0x0000000000004196 0x39 lib/lib.a(_exit.o) + .debug_line 0x00000000000041cf 0x62 lib/lib.a(open.o) + .debug_line 0x0000000000004231 0x5c lib/lib.a(close.o) + .debug_line 0x000000000000428d 0x28 lib/lib.a(errno.o) + .debug_line 0x00000000000042b5 0x76 lib/lib.a(write.o) + .debug_line 0x000000000000432b 0x5a lib/lib.a(dup.o) + .debug_line 0x0000000000004385 0x77 lib/lib.a(setsid.o) + .debug_line 0x00000000000043fc 0x5d lib/lib.a(execve.o) + .debug_line 0x0000000000004459 0x7a lib/lib.a(wait.o) + .debug_line 0x00000000000044d3 0xc6 lib/lib.a(string.o) + +.debug_frame + *(.debug_frame) + +.debug_str 0x0000000000000000 0x2093 + *(.debug_str) + .debug_str 0x0000000000000000 0x1c0 init/main.o + 0x1ff (size before relaxing) + .debug_str 0x00000000000001c0 0xac0 kernel/kernel.o + 0x2332 (size before relaxing) + .debug_str 0x0000000000000c80 0x185 mm/mm.o + 0x4e0 (size before relaxing) + .debug_str 0x0000000000000e05 0x904 fs/fs.o + 0x49ab (size before relaxing) + .debug_str 0x0000000000001709 0xf0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x491 (size before relaxing) + .debug_str 0x00000000000017f9 0x1cf kernel/blk_drv/blk_drv.a(floppy.o) + 0x673 (size before relaxing) + .debug_str 0x00000000000019c8 0x15e kernel/blk_drv/blk_drv.a(hd.o) + 0x5e8 (size before relaxing) + .debug_str 0x0000000000001b26 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x58a (size before relaxing) + .debug_str 0x0000000000001b69 0xfb kernel/chr_drv/chr_drv.a(tty_io.o) + 0x4e3 (size before relaxing) + .debug_str 0x0000000000001c64 0x1b9 kernel/chr_drv/chr_drv.a(console.o) + 0x5b7 (size before relaxing) + .debug_str 0x0000000000001e1d 0x1a kernel/chr_drv/chr_drv.a(serial.o) + 0x3fc (size before relaxing) + .debug_str 0x0000000000001e37 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x4a7 (size before relaxing) + .debug_str 0x0000000000001ec2 0x70 kernel/math/math.a(math_emulate.o) + 0x392 (size before relaxing) + .debug_str 0x0000000000001f32 0x8d lib/lib.a(ctype.o) + 0xb6 (size before relaxing) + .debug_str 0x0000000000001fbf 0x8 lib/lib.a(_exit.o) + 0xe2 (size before relaxing) + .debug_str 0x0000000000000000 0x8 lib/lib.a(open.o) + 0xf2 (size before relaxing) + .debug_str 0x0000000000001fc7 0x8 lib/lib.a(close.o) + 0xe4 (size before relaxing) + .debug_str 0x0000000000001fcf 0x8 lib/lib.a(errno.o) + 0x93 (size before relaxing) + .debug_str 0x0000000000000000 0x8 lib/lib.a(write.o) + 0xf0 (size before relaxing) + .debug_str 0x0000000000001fd7 0x6 lib/lib.a(dup.o) + 0xdc (size before relaxing) + .debug_str 0x0000000000001fdd 0x9 lib/lib.a(setsid.o) + 0xec (size before relaxing) + .debug_str 0x0000000000001fe6 0x9 lib/lib.a(execve.o) + 0xf5 (size before relaxing) + .debug_str 0x0000000000001fef 0x11 lib/lib.a(wait.o) + 0x102 (size before relaxing) + .debug_str 0x0000000000002000 0x93 lib/lib.a(string.o) + 0x147 (size before relaxing) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_pubtypes + *(.debug_pubtypes) + +.debug_ranges 0x0000000000000000 0x18 + *(.debug_ranges) + .debug_ranges 0x0000000000000000 0x18 init/main.o + +.debug_macro + *(.debug_macro) + +.gnu.attributes + *(.gnu.attributes) + +/DISCARD/ + *(.note.GNU-stack) + *(.gnu_debuglink) + *(.gnu.lto_*) +OUTPUT(tools/system elf32-i386) diff --git a/linux-0.11-lab/0/linux/boot/bootsect b/linux-0.11-lab/0/linux/boot/bootsect new file mode 100644 index 0000000000000000000000000000000000000000..4fbb8f823afe23687f1887d48deeb19fdcf83049 GIT binary patch literal 544 zcmZQ%7GP0e00JfufdrZ$>>UT#`)=%Dn9z4%Cj+DAH_iW_m%fre~uHUSwNXN9*i=ymehGJ;Ln!ff#WtiVnQ zhTZH8d+ix_Fbba)*ufysci@E)!;7N~dJF$B+A=VditBaD0d;UNHUH)>;o2bsq=ibD zUjNfu{D<)s1B1c@RhzFW-(_8 zyWs)N8wX!-zAym_G6SXbtl4ZCONDkYGHA2SVkl+#&o+l)@hk?z1B+)cfHa*h-qdq| z733tt+pm`g1P2Cni_Kx^=9|Ib*m1R6Y!*YuwM`6-j~E!Y0DW7;8WkBGaTw@dps&vg zgE+6x1nv67yn*3e)L{k&UM`>f#FWgubcN!|;*!){1wB1IUM^lPq<|j0Og84wRRH+h BgWdoD literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/boot/bootsect.o b/linux-0.11-lab/0/linux/boot/bootsect.o new file mode 100644 index 0000000000000000000000000000000000000000..e35422ec017a165928bfcbec5f9f0363b4a9e75c GIT binary patch literal 923 zcmYjPe@GKy7=FH+PB$=@gOrLGSb;@HGl?KZQ#V8qHK&qRjLn^EOg*`~_2a*bAQEj2 z`bR7R8DjO1Ax5YD;D!W64T2~X>5mFT9P~#*1c~eYW`BB3fn$y+MeVjqc)FB7D{5ZwQc zlnx;W9UDX^enV$llvLXoyfYO9Z}$=84ic;$V`O7tS=LmkPeZ`p+0`EKHzCjy2sHQl zw}lpeD-uHysXwTY5sDOw1Y=|-4_TXAn>%^rd%=iw84Yc11;O9ydW>fq~$ltjP-a7_y>584mLI>~!sq4M`D5Ly@qm@(>AWA%vwU zr%{<_+X|nde;^cvTBwf1Bxp*gFV1T;>8i$^g?NcKSG5q0@!xcE+`au;IbOSyoY+a~ z{!PR`f4ixx+SO^8CCMcNsiZj%R`aVSzcIBg=v7dW8hevmN}95U=#^i zr)no|09j{lb(WIStn(?vkzMq|I|{AlEXVU%$9xr@m*6E`j|&EKW*r6`Npr0hYp)?r zZZZ#$s1!#JP?cts3OD|gYj$Hl#R^TxZHehkwhp*b#dJ@BG4oNrJhA0o88bcbDr`}l zq`HQqR(%{jBbm%s8(UUwT8Z1NS<0;0*6J{lvGC1C@wAnkO^FJFf$S6TC5rM^{XXi` zL>k>@nq232gLmrem|4t+bg$&5+XH7iM)#1fVRRQc{Pnj!5uJed*5_GV{{}WkC!rMg z_MAVrNM}JOl67*Dd*89})A9sAdKZB*dkfv2*ih7^UQ;z`&?SnZugqR%-#z8CTDl%r F<1c(7E-?TA literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/boot/bootsect.s b/linux-0.11-lab/0/linux/boot/bootsect.s new file mode 100644 index 0000000..711f103 --- /dev/null +++ b/linux-0.11-lab/0/linux/boot/bootsect.s @@ -0,0 +1,260 @@ +! +! SYS_SIZE is the number of clicks (16 bytes) to be loaded. +! 0x3000 is 0x30000 bytes = 196kB, more than enough for current +! versions of linux +! +SYSSIZE = 0x3000 +! +! bootsect.s (C) 1991 Linus Torvalds +! +! bootsect.s is loaded at 0x7c00 by the bios-startup routines, and moves +! iself out of the way to address 0x90000, and jumps there. +! +! It then loads 'setup' directly after itself (0x90200), and the system +! at 0x10000, using BIOS interrupts. +! +! NOTE! currently system is at most 8*65536 bytes long. This should be no +! problem, even in the future. I want to keep it simple. This 512 kB +! kernel size should be enough, especially as this doesn't contain the +! buffer cache as in minix +! +! The loader has been made as simple as possible, and continuos +! read errors will result in a unbreakable loop. Reboot by hand. It +! loads pretty fast by getting whole sectors at a time whenever possible. + +.globl begtext, begdata, begbss, endtext, enddata, endbss +.text +begtext: +.data +begdata: +.bss +begbss: +.text + +SETUPLEN = 4 ! nr of setup-sectors +BOOTSEG = 0x07c0 ! original address of boot-sector +INITSEG = 0x9000 ! we move boot here - out of the way +SETUPSEG = 0x9020 ! setup starts here +SYSSEG = 0x1000 ! system loaded at 0x10000 (65536). +ENDSEG = SYSSEG + SYSSIZE ! where to stop loading + +! ROOT_DEV: 0x000 - same type of floppy as boot. +! 0x301 - first partition on first drive etc +ROOT_DEV = 0x306 + +entry start +start: + mov ax,#BOOTSEG + mov ds,ax + mov ax,#INITSEG + mov es,ax + mov cx,#256 + sub si,si + sub di,di + rep + movw + jmpi go,INITSEG +go: mov ax,cs + mov ds,ax + mov es,ax +! put stack at 0x9ff00. + mov ss,ax + mov sp,#0xFF00 ! arbitrary value >>512 + +! load the setup-sectors directly after the bootblock. +! Note that 'es' is already set up. + +load_setup: + mov dx,#0x0000 ! drive 0, head 0 + mov cx,#0x0002 ! sector 2, track 0 + mov bx,#0x0200 ! address = 512, in INITSEG + mov ax,#0x0200+SETUPLEN ! service 2, nr of sectors + int 0x13 ! read it + jnc ok_load_setup ! ok - continue + mov dx,#0x0000 + mov ax,#0x0000 ! reset the diskette + int 0x13 + j load_setup + +ok_load_setup: + +! Get disk drive parameters, specifically nr of sectors/track + + mov dl,#0x00 + mov ax,#0x0800 ! AH=8 is get drive parameters + int 0x13 + mov ch,#0x00 + seg cs + mov sectors,cx + mov ax,#INITSEG + mov es,ax + +! Print some inane message + + mov ah,#0x03 ! read cursor pos + xor bh,bh + int 0x10 + + mov cx,#24 + mov bx,#0x0007 ! page 0, attribute 7 (normal) + mov bp,#msg1 + mov ax,#0x1301 ! write string, move cursor + int 0x10 + +! ok, we've written the message, now +! we want to load the system (at 0x10000) + + mov ax,#SYSSEG + mov es,ax ! segment of 0x010000 + call read_it + call kill_motor + +! After that we check which root-device to use. If the device is +! defined (!= 0), nothing is done and the given device is used. +! Otherwise, either /dev/PS0 (2,28) or /dev/at0 (2,8), depending +! on the number of sectors that the BIOS reports currently. + + seg cs + mov ax,root_dev + cmp ax,#0 + jne root_defined + seg cs + mov bx,sectors + mov ax,#0x0208 ! /dev/ps0 - 1.2Mb + cmp bx,#15 + je root_defined + mov ax,#0x021c ! /dev/PS0 - 1.44Mb + cmp bx,#18 + je root_defined +undef_root: + jmp undef_root +root_defined: + seg cs + mov root_dev,ax + +! after that (everyting loaded), we jump to +! the setup-routine loaded directly after +! the bootblock: + + jmpi 0,SETUPSEG + +! This routine loads the system at address 0x10000, making sure +! no 64kB boundaries are crossed. We try to load it as fast as +! possible, loading whole tracks whenever we can. +! +! in: es - starting address segment (normally 0x1000) +! +sread: .word 1+SETUPLEN ! sectors read of current track +head: .word 0 ! current head +track: .word 0 ! current track + +read_it: + mov ax,es + test ax,#0x0fff +die: jne die ! es must be at 64kB boundary + xor bx,bx ! bx is starting address within segment +rp_read: + mov ax,es + cmp ax,#ENDSEG ! have we loaded all yet? + jb ok1_read + ret +ok1_read: + seg cs + mov ax,sectors + sub ax,sread + mov cx,ax + shl cx,#9 + add cx,bx + jnc ok2_read + je ok2_read + xor ax,ax + sub ax,bx + shr ax,#9 +ok2_read: + call read_track + mov cx,ax + add ax,sread + seg cs + cmp ax,sectors + jne ok3_read + mov ax,#1 + sub ax,head + jne ok4_read + inc track +ok4_read: + mov head,ax + xor ax,ax +ok3_read: + mov sread,ax + shl cx,#9 + add bx,cx + jnc rp_read + mov ax,es + add ax,#0x1000 + mov es,ax + xor bx,bx + jmp rp_read + +read_track: + push ax + push bx + push cx + push dx + mov dx,track + mov cx,sread + inc cx + mov ch,dl + mov dx,head + mov dh,dl + mov dl,#0 + and dx,#0x0100 + mov ah,#2 + int 0x13 + jc bad_rt + pop dx + pop cx + pop bx + pop ax + ret +bad_rt: mov ax,#0 + mov dx,#0 + int 0x13 + pop dx + pop cx + pop bx + pop ax + jmp read_track + +/* + * This procedure turns off the floppy drive motor, so + * that we enter the kernel in a known state, and + * don't have to worry about it later. + */ +kill_motor: + push dx + mov dx,#0x3f2 + mov al,#0 + outb + pop dx + ret + +sectors: + .word 0 + +msg1: + .byte 13,10 + .ascii "Loading system ..." + .byte 13,10,13,10 + +.org 508 +root_dev: + .word ROOT_DEV +boot_flag: + .word 0xAA55 + +.text +endtext: +.data +enddata: +.bss +endbss: diff --git a/linux-0.11-lab/0/linux/boot/head.o b/linux-0.11-lab/0/linux/boot/head.o new file mode 100644 index 0000000000000000000000000000000000000000..a4c55649c84336692e2f017e7d3b9dc5fd3082ba GIT binary patch literal 27012 zcmeI5O=ule7>2)-rn#v$OwS%uL!8 z6a%qn7P*Sc3jRisn&iB4& z&iUrdGdG*FIOn4m54>cIk-Qk$Ah(^!ke}VzorWRlmW`=8*Nf1++Dw|)n=8(lL2X<) zq}4H0_qtn3hEHg(eMrzN@gL4WGWd|l-26`+&h}(Q)Bb+)4UucVe)-Gw{Sx<}!~D%I z+*?{aEZ2TpTI?Ts6R8Drs4QHmT#)ACbDHqHPI#fPaIkZJx%=grzZ~<#59qk$nEtaG zwGRskkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@{I3YSFZx$|7#nQXbmBLjzwysojfuwek;Xv15&K~{ z6T}bn$jEE2Z|!ovS+gN%tq)^XR$HyssPk=M+o88dFJpht^U^0$N=mKOKTj>|UZ7II z4x`H(J5>#+>Q=Qw)n--0B9~TQ#eSfLn=SeK)YI5gR6e{_N}TOiv2kb*y3Aqg&{f?# zRHRiv)sBntlbK~r0wh2JBtQZrur3L-9K81NMAG<0vMw3$rAdGUNPq-LVBHWXMn|V& zZ%m3&9A>eWtI(e;#{O(9#j+QBQXGq-`^K^jJ@x#QE<0i`Vp6sSL02)fJdSHqsHM(blD3iP(3Pv78q7&_8 zM*5-k_?fI2(eEHwXv&I_5`-Qfll%P;pXV0YUx3zAW3po86$m{&CikN%^o7%6cM$*qTtc_Ysx=5yrWmz#Y0Wq@1&%*1%SXPY8K_u4qV*JPI(}(IbjC`7P zOl$R@sT#=|)qkDIv{wK99Ukv?m%n(Im&lK20=Hg{t*Sze*ZlDbcXsa{@hVv2a|5sH zyZGms^dqTP8`GihV(m}Dz>RbuF1PGQ!HL`fm@lJ4uYeu7y6z=u@~z6cI{M&Nu>=k<<%P!gh--%^>djmB1Ic# zG~x&OiAMa0zq0GKeRF1UbBAE`q28r)_-9Aob|_S NJgpJWKc}%z4Mb on a 4Mb machine). + * + * NOTE! Although all physical memory should be identity + * mapped by this routine, only the kernel page functions + * use the >1Mb addresses directly. All "normal" functions + * use just the lower 1Mb, or the local data space, which + * will be mapped to some other place - mm keeps track of + * that. + * + * For those with more memory than 16 Mb - tough luck. I've + * not got it, why should you :-) The source is here. Change + * it. (Seriously - it shouldn't be too difficult. Mostly + * change some constants etc. I left it at 16Mb, as my machine + * even cannot be extended past that (ok, but it was cheap :-) + * I've tried to show which constants to change by having + * some kind of marker at them (search for "16Mb"), but I + * won't guarantee that's all :-( ) + */ +.align 4 +setup_paging: + movl $1024*5,%ecx /* 5 pages - pg_dir+4 page tables */ + xorl %eax,%eax + xorl %edi,%edi /* pg_dir is at 0x000 */ + cld;rep;stosl + movl $pg0+7,pg_dir /* set present bit/user r/w */ + movl $pg1+7,pg_dir+4 /* --------- " " --------- */ + movl $pg2+7,pg_dir+8 /* --------- " " --------- */ + movl $pg3+7,pg_dir+12 /* --------- " " --------- */ + movl $pg3+4092,%edi + movl $0xfff007,%eax /* 16Mb - 4096 + 7 (r/w user,p) */ + std +1: stosl /* fill pages backwards - more efficient :-) */ + subl $0x1000,%eax + jge 1b + xorl %eax,%eax /* pg_dir is at 0x0000 */ + movl %eax,%cr3 /* cr3 - page directory start */ + movl %cr0,%eax + orl $0x80000000,%eax + movl %eax,%cr0 /* set paging (PG) bit */ + cld /* by wyj */ + ret /* this also flushes prefetch-queue */ + +.align 4 +.word 0 +idt_descr: + .word 256*8-1 # idt contains 256 entries + .long idt +.align 4 +.word 0 +gdt_descr: + .word 256*8-1 # so does gdt (not that that's any + .long gdt # magic number, but it works for me :^) + + .align 8 +idt: .fill 256,8,0 # idt is uninitialized + +gdt: .quad 0x0000000000000000 /* NULL descriptor */ + .quad 0x00c09a0000000fff /* 16Mb */ + .quad 0x00c0920000000fff /* 16Mb */ + .quad 0x0000000000000000 /* TEMPORARY - don't use */ + .fill 252,8,0 /* space for LDT's and TSS's etc */ diff --git a/linux-0.11-lab/0/linux/boot/setup b/linux-0.11-lab/0/linux/boot/setup new file mode 100644 index 0000000000000000000000000000000000000000..0e70f4846819f560fb2e22a8eb1e7186c7956ab0 GIT binary patch literal 344 zcmZQ%7GP0eU|_Id1QJNVq7lN`!7!ok#ujFS|7Qg{#TXd2bet7k%*3#TAIOzsVOY$@ zutjLIz*&LC91NXuTnwFjJPbP+82WA;HDh4}X+5yNfnlcr!{;SXQ3*l_<@!izwL4T8@UUNgLAc(wpUZcuop2&OfjEda<7{%Xg;=gL$t<~Tutazx3hbYqSrLZVca%ibUp9b?$HkVw;4TnF?Rz@46w`UObliF2LrIX1l zD$%Xa$Sgt^u2&7@|GQ@O1M(N{a&->*XRca94ek$5^Qt@KbHx4WGu-r2)9WkibQgy407%ZoGynhq literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/boot/setup.s b/linux-0.11-lab/0/linux/boot/setup.s new file mode 100644 index 0000000..2329d00 --- /dev/null +++ b/linux-0.11-lab/0/linux/boot/setup.s @@ -0,0 +1,231 @@ +! +! setup.s (C) 1991 Linus Torvalds +! +! setup.s is responsible for getting the system data from the BIOS, +! and putting them into the appropriate places in system memory. +! both setup.s and system has been loaded by the bootblock. +! +! This code asks the bios for memory/disk/other parameters, and +! puts them in a "safe" place: 0x90000-0x901FF, ie where the +! boot-block used to be. It is then up to the protected mode +! system to read them from there before the area is overwritten +! for buffer-blocks. +! + +! NOTE! These had better be the same as in bootsect.s! + +INITSEG = 0x9000 ! we move boot here - out of the way +SYSSEG = 0x1000 ! system loaded at 0x10000 (65536). +SETUPSEG = 0x9020 ! this is the current segment + +.globl begtext, begdata, begbss, endtext, enddata, endbss +.text +begtext: +.data +begdata: +.bss +begbss: +.text + +entry start +start: + +! ok, the read went well so we get current cursor position and save it for +! posterity. + + mov ax,#INITSEG ! this is done in bootsect already, but... + mov ds,ax + mov ah,#0x03 ! read cursor pos + xor bh,bh + int 0x10 ! save it in known place, con_init fetches + mov [0],dx ! it from 0x90000. + +! Get memory size (extended mem, kB) + + mov ah,#0x88 + int 0x15 + mov [2],ax + +! Get video-card data: + + mov ah,#0x0f + int 0x10 + mov [4],bx ! bh = display page + mov [6],ax ! al = video mode, ah = window width + +! check for EGA/VGA and some config parameters + + mov ah,#0x12 + mov bl,#0x10 + int 0x10 + mov [8],ax + mov [10],bx + mov [12],cx + +! Get hd0 data + + mov ax,#0x0000 + mov ds,ax + lds si,[4*0x41] + mov ax,#INITSEG + mov es,ax + mov di,#0x0080 + mov cx,#0x10 + rep + movsb + +! Get hd1 data + + mov ax,#0x0000 + mov ds,ax + lds si,[4*0x46] + mov ax,#INITSEG + mov es,ax + mov di,#0x0090 + mov cx,#0x10 + rep + movsb + +! Check that there IS a hd1 :-) + + mov ax,#0x01500 + mov dl,#0x81 + int 0x13 + jc no_disk1 + cmp ah,#3 + je is_disk1 +no_disk1: + mov ax,#INITSEG + mov es,ax + mov di,#0x0090 + mov cx,#0x10 + mov ax,#0x00 + rep + stosb +is_disk1: + +! now we want to move to protected mode ... + + cli ! no interrupts allowed ! + +! first we move the system to it's rightful place + + mov ax,#0x0000 + cld ! 'direction'=0, movs moves forward +do_move: + mov es,ax ! destination segment + add ax,#0x1000 + cmp ax,#0x9000 + jz end_move + mov ds,ax ! source segment + sub di,di + sub si,si + mov cx,#0x8000 + rep + movsw + jmp do_move + +! then we load the segment descriptors + +end_move: + mov ax,#SETUPSEG ! right, forgot this at first. didn't work :-) + mov ds,ax + lidt idt_48 ! load idt with 0,0 + lgdt gdt_48 ! load gdt with whatever appropriate + +! that was painless, now we enable A20 + + call empty_8042 + mov al,#0xD1 ! command write + out #0x64,al + call empty_8042 + mov al,#0xDF ! A20 on + out #0x60,al + call empty_8042 + +! well, that went ok, I hope. Now we have to reprogram the interrupts :-( +! we put them right after the intel-reserved hardware interrupts, at +! int 0x20-0x2F. There they won't mess up anything. Sadly IBM really +! messed this up with the original PC, and they haven't been able to +! rectify it afterwards. Thus the bios puts interrupts at 0x08-0x0f, +! which is used for the internal hardware interrupts as well. We just +! have to reprogram the 8259's, and it isn't fun. + + mov al,#0x11 ! initialization sequence + out #0x20,al ! send it to 8259A-1 + .word 0x00eb,0x00eb ! jmp $+2, jmp $+2 + out #0xA0,al ! and to 8259A-2 + .word 0x00eb,0x00eb + mov al,#0x20 ! start of hardware int's (0x20) + out #0x21,al + .word 0x00eb,0x00eb + mov al,#0x28 ! start of hardware int's 2 (0x28) + out #0xA1,al + .word 0x00eb,0x00eb + mov al,#0x04 ! 8259-1 is master + out #0x21,al + .word 0x00eb,0x00eb + mov al,#0x02 ! 8259-2 is slave + out #0xA1,al + .word 0x00eb,0x00eb + mov al,#0x01 ! 8086 mode for both + out #0x21,al + .word 0x00eb,0x00eb + out #0xA1,al + .word 0x00eb,0x00eb + mov al,#0xFF ! mask off all interrupts for now + out #0x21,al + .word 0x00eb,0x00eb + out #0xA1,al + +! well, that certainly wasn't fun :-(. Hopefully it works, and we don't +! need no steenking BIOS anyway (except for the initial loading :-). +! The BIOS-routine wants lots of unnecessary data, and it's less +! "interesting" anyway. This is how REAL programmers do it. +! +! Well, now's the time to actually move into protected mode. To make +! things as simple as possible, we do no register set-up or anything, +! we let the gnu-compiled 32-bit programs do that. We just jump to +! absolute address 0x00000, in 32-bit protected mode. + + mov ax,#0x0001 ! protected mode (PE) bit + lmsw ax ! This is it! + jmpi 0,8 ! jmp offset 0 of segment 8 (cs) + +! This routine checks that the keyboard command queue is empty +! No timeout is used - if this hangs there is something wrong with +! the machine, and we probably couldn't proceed anyway. +empty_8042: + .word 0x00eb,0x00eb + in al,#0x64 ! 8042 status port + test al,#2 ! is input buffer full? + jnz empty_8042 ! yes - loop + ret + +gdt: + .word 0,0,0,0 ! dummy + + .word 0x07FF ! 8Mb - limit=2047 (2048*4096=8Mb) + .word 0x0000 ! base address=0 + .word 0x9A00 ! code read/exec + .word 0x00C0 ! granularity=4096, 386 + + .word 0x07FF ! 8Mb - limit=2047 (2048*4096=8Mb) + .word 0x0000 ! base address=0 + .word 0x9200 ! data read/write + .word 0x00C0 ! granularity=4096, 386 + +idt_48: + .word 0 ! idt limit=0 + .word 0,0 ! idt base=0L + +gdt_48: + .word 0x800 ! gdt limit=2048, 256 GDT entries + .word 512+gdt,0x9 ! gdt base = 0X9xxxx + +.text +endtext: +.data +enddata: +.bss +endbss: diff --git a/linux-0.11-lab/0/linux/fs/Makefile b/linux-0.11-lab/0/linux/fs/Makefile new file mode 100644 index 0000000..970acd4 --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/Makefile @@ -0,0 +1,101 @@ +AR =ar +AS =as +LD =ld +LDFLAGS =-s -x +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -finline-functions -nostdinc -fno-stack-protector -I../include +CPP =gcc -E -nostdinc -I../include + +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< +.s.o: + $(AS) -o $*.o $< + +OBJS= open.o read_write.o inode.o file_table.o buffer.o super.o \ + block_dev.o char_dev.o file_dev.o stat.o exec.o pipe.o namei.o \ + bitmap.o fcntl.o ioctl.o truncate.o select.o + +fs.o: $(OBJS) + $(LD) -r -o fs.o $(OBJS) + +clean: + rm -f core *.o *.a tmp_make + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +bitmap.o : bitmap.c ../include/string.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h +block_dev.o : block_dev.c ../include/errno.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/segment.h ../include/asm/system.h +buffer.o : buffer.c ../include/stdarg.h ../include/linux/config.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/sys/types.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/system.h ../include/asm/io.h +char_dev.o : char_dev.c ../include/errno.h ../include/sys/types.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/segment.h ../include/asm/io.h +exec.o : exec.c ../include/errno.h ../include/string.h \ + ../include/sys/stat.h ../include/sys/types.h ../include/a.out.h \ + ../include/linux/fs.h ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/segment.h +fcntl.o : fcntl.c ../include/string.h ../include/errno.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/sys/types.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/segment.h ../include/fcntl.h \ + ../include/sys/stat.h +file_dev.o : file_dev.c ../include/errno.h ../include/fcntl.h \ + ../include/sys/types.h ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/segment.h +file_table.o : file_table.c ../include/linux/fs.h ../include/sys/types.h +inode.o : inode.c ../include/string.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/system.h +ioctl.o : ioctl.c ../include/string.h ../include/errno.h \ + ../include/sys/stat.h ../include/sys/types.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/linux/mm.h \ + ../include/signal.h +namei.o : namei.c ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \ + ../include/signal.h ../include/linux/kernel.h ../include/asm/segment.h \ + ../include/string.h ../include/fcntl.h ../include/errno.h \ + ../include/const.h ../include/sys/stat.h +open.o : open.c ../include/string.h ../include/errno.h ../include/fcntl.h \ + ../include/sys/types.h ../include/utime.h ../include/sys/stat.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/tty.h \ + ../include/termios.h ../include/linux/kernel.h ../include/asm/segment.h +pipe.o : pipe.c ../include/signal.h ../include/sys/types.h \ + ../include/linux/sched.h ../include/linux/head.h ../include/linux/fs.h \ + ../include/linux/mm.h ../include/asm/segment.h +read_write.o : read_write.c ../include/sys/stat.h ../include/sys/types.h \ + ../include/errno.h ../include/linux/kernel.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/linux/mm.h \ + ../include/signal.h ../include/asm/segment.h +stat.o : stat.c ../include/errno.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/linux/fs.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/mm.h ../include/signal.h \ + ../include/linux/kernel.h ../include/asm/segment.h +super.o : super.c ../include/linux/config.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/system.h ../include/errno.h ../include/sys/stat.h +truncate.o : truncate.c ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \ + ../include/signal.h ../include/sys/stat.h diff --git a/linux-0.11-lab/0/linux/fs/bitmap.c b/linux-0.11-lab/0/linux/fs/bitmap.c new file mode 100644 index 0000000..73951a8 --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/bitmap.c @@ -0,0 +1,168 @@ +/* + * linux/fs/bitmap.c + * + * (C) 1991 Linus Torvalds + */ + +/* bitmap.c contains the code that handles the inode and block bitmaps */ +#include + +#include +#include + +#define clear_block(addr) \ +__asm__ __volatile__ ("cld\n\t" \ + "rep\n\t" \ + "stosl" \ + ::"a" (0),"c" (BLOCK_SIZE/4),"D" ((long) (addr))) + +#define set_bit(nr,addr) ({\ +register int res __asm__("ax"); \ +__asm__ __volatile__("btsl %2,%3\n\tsetb %%al": \ +"=a" (res):"0" (0),"r" (nr),"m" (*(addr))); \ +res;}) + +#define clear_bit(nr,addr) ({\ +register int res __asm__("ax"); \ +__asm__ __volatile__("btrl %2,%3\n\tsetnb %%al": \ +"=a" (res):"0" (0),"r" (nr),"m" (*(addr))); \ +res;}) + +#define find_first_zero(addr) ({ \ +int __res; \ +__asm__ __volatile__ ("cld\n" \ + "1:\tlodsl\n\t" \ + "notl %%eax\n\t" \ + "bsfl %%eax,%%edx\n\t" \ + "je 2f\n\t" \ + "addl %%edx,%%ecx\n\t" \ + "jmp 3f\n" \ + "2:\taddl $32,%%ecx\n\t" \ + "cmpl $8192,%%ecx\n\t" \ + "jl 1b\n" \ + "3:" \ + :"=c" (__res):"c" (0),"S" (addr)); \ +__res;}) + +void free_block(int dev, int block) +{ + struct super_block * sb; + struct buffer_head * bh; + + if (!(sb = get_super(dev))) + panic("trying to free block on nonexistent device"); + if (block < sb->s_firstdatazone || block >= sb->s_nzones) + panic("trying to free block not in datazone"); + bh = get_hash_table(dev,block); + if (bh) { + if (bh->b_count != 1) { + printk("trying to free block (%04x:%d), count=%d\n", + dev,block,bh->b_count); + return; + } + bh->b_dirt=0; + bh->b_uptodate=0; + brelse(bh); + } + block -= sb->s_firstdatazone - 1 ; + if (clear_bit(block&8191,sb->s_zmap[block/8192]->b_data)) { + printk("block (%04x:%d) ",dev,block+sb->s_firstdatazone-1); + panic("free_block: bit already cleared"); + } + sb->s_zmap[block/8192]->b_dirt = 1; +} + +int new_block(int dev) +{ + struct buffer_head * bh; + struct super_block * sb; + int i,j; + + if (!(sb = get_super(dev))) + panic("trying to get new block from nonexistant device"); + j = 8192; + for (i=0 ; i<8 ; i++) + if (bh=sb->s_zmap[i]) + if ((j=find_first_zero(bh->b_data))<8192) + break; + if (i>=8 || !bh || j>=8192) + return 0; + if (set_bit(j,bh->b_data)) + panic("new_block: bit already set"); + bh->b_dirt = 1; + j += i*8192 + sb->s_firstdatazone-1; + if (j >= sb->s_nzones) + return 0; + if (!(bh=getblk(dev,j))) + panic("new_block: cannot get block"); + if (bh->b_count != 1) + panic("new block: count is != 1"); + clear_block(bh->b_data); + bh->b_uptodate = 1; + bh->b_dirt = 1; + brelse(bh); + return j; +} + +void free_inode(struct m_inode * inode) +{ + struct super_block * sb; + struct buffer_head * bh; + + if (!inode) + return; + if (!inode->i_dev) { + memset(inode,0,sizeof(*inode)); + return; + } + if (inode->i_count>1) { + printk("trying to free inode with count=%d\n",inode->i_count); + panic("free_inode"); + } + if (inode->i_nlinks) + panic("trying to free inode with links"); + if (!(sb = get_super(inode->i_dev))) + panic("trying to free inode on nonexistent device"); + if (inode->i_num < 1 || inode->i_num > sb->s_ninodes) + panic("trying to free inode 0 or nonexistant inode"); + if (!(bh=sb->s_imap[inode->i_num>>13])) + panic("nonexistent imap in superblock"); + if (clear_bit(inode->i_num&8191,bh->b_data)) + printk("free_inode: bit already cleared.\n\r"); + bh->b_dirt = 1; + memset(inode,0,sizeof(*inode)); +} + +struct m_inode * new_inode(int dev) +{ + struct m_inode * inode; + struct super_block * sb; + struct buffer_head * bh; + int i,j; + + if (!(inode=get_empty_inode())) + return NULL; + if (!(sb = get_super(dev))) + panic("new_inode with unknown device"); + j = 8192; + for (i=0 ; i<8 ; i++) + if (bh=sb->s_imap[i]) + if ((j=find_first_zero(bh->b_data))<8192) + break; + if (!bh || j >= 8192 || j+i*8192 > sb->s_ninodes) { + iput(inode); + return NULL; + } + if (set_bit(j,bh->b_data)) + panic("new_inode: bit already set"); + bh->b_dirt = 1; + inode->i_count=1; + inode->i_nlinks=1; + inode->i_dev=dev; + inode->i_uid=current->euid; + inode->i_gid=current->egid; + inode->i_dirt=1; + inode->i_num = j + i*8192; + inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; + return inode; +} diff --git a/linux-0.11-lab/0/linux/fs/bitmap.o b/linux-0.11-lab/0/linux/fs/bitmap.o new file mode 100644 index 0000000000000000000000000000000000000000..501d3c5e3fb1a044792589a0bdde55cbb41cfaa2 GIT binary patch literal 10280 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 J@|j5fe*vQQ&y@fG literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/fs/block_dev.c b/linux-0.11-lab/0/linux/fs/block_dev.c new file mode 100644 index 0000000..a50ae3f --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/block_dev.c @@ -0,0 +1,73 @@ +/* + * linux/fs/block_dev.c + * + * (C) 1991 Linus Torvalds + */ + +#include + +#include +#include +#include +#include + +int block_write(int dev, long * pos, char * buf, int count) +{ + int block = *pos >> BLOCK_SIZE_BITS; + int offset = *pos & (BLOCK_SIZE-1); + int chars; + int written = 0; + struct buffer_head * bh; + register char * p; + + while (count>0) { + chars = BLOCK_SIZE - offset; + if (chars > count) + chars=count; + if (chars == BLOCK_SIZE) + bh = getblk(dev,block); + else + bh = breada(dev,block,block+1,block+2,-1); + block++; + if (!bh) + return written?written:-EIO; + p = offset + bh->b_data; + offset = 0; + *pos += chars; + written += chars; + count -= chars; + while (chars-->0) + *(p++) = get_fs_byte(buf++); + bh->b_dirt = 1; + brelse(bh); + } + return written; +} + +int block_read(int dev, unsigned long * pos, char * buf, int count) +{ + int block = *pos >> BLOCK_SIZE_BITS; + int offset = *pos & (BLOCK_SIZE-1); + int chars; + int read = 0; + struct buffer_head * bh; + register char * p; + + while (count>0) { + chars = BLOCK_SIZE-offset; + if (chars > count) + chars = count; + if (!(bh = breada(dev,block,block+1,block+2,-1))) + return read?read:-EIO; + block++; + p = offset + bh->b_data; + offset = 0; + *pos += chars; + read += chars; + count -= chars; + while (chars-->0) + put_fs_byte(*(p++),buf++); + brelse(bh); + } + return read; +} diff --git a/linux-0.11-lab/0/linux/fs/block_dev.o b/linux-0.11-lab/0/linux/fs/block_dev.o new file mode 100644 index 0000000000000000000000000000000000000000..e5e9334ce9a4697061730271c4c9d92fcf4aa105 GIT binary patch literal 7296 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 + +#include +#include +#include +#include +#include + +extern void put_super(int dev); +extern void invalidate_inodes(int dev); + +extern int end; +struct buffer_head * start_buffer = (struct buffer_head *) &end; +struct buffer_head * hash_table[NR_HASH]; +static struct buffer_head * free_list; +static struct task_struct * buffer_wait = NULL; +int NR_BUFFERS = 0; + +static inline void wait_on_buffer(struct buffer_head * bh) +{ + cli(); + while (bh->b_lock) + sleep_on(&bh->b_wait); + sti(); +} + +int sys_sync(void) +{ + int i; + struct buffer_head * bh; + + sync_inodes(); /* write out inodes into buffers */ + bh = start_buffer; + for (i=0 ; ib_dirt) + ll_rw_block(WRITE,bh); + } + return 0; +} + +int sync_dev(int dev) +{ + int i; + struct buffer_head * bh; + + bh = start_buffer; + for (i=0 ; ib_dev != dev) + continue; + wait_on_buffer(bh); + if (bh->b_dev == dev && bh->b_dirt) + ll_rw_block(WRITE,bh); + } + sync_inodes(); + bh = start_buffer; + for (i=0 ; ib_dev != dev) + continue; + wait_on_buffer(bh); + if (bh->b_dev == dev && bh->b_dirt) + ll_rw_block(WRITE,bh); + } + return 0; +} + +void inline invalidate_buffers(int dev) +{ + int i; + struct buffer_head * bh; + + bh = start_buffer; + for (i=0 ; ib_dev != dev) + continue; + wait_on_buffer(bh); + if (bh->b_dev == dev) + bh->b_uptodate = bh->b_dirt = 0; + } +} + +/* + * This routine checks whether a floppy has been changed, and + * invalidates all buffer-cache-entries in that case. This + * is a relatively slow routine, so we have to try to minimize using + * it. Thus it is called only upon a 'mount' or 'open'. This + * is the best way of combining speed and utility, I think. + * People changing diskettes in the middle of an operation deserve + * to loose :-) + * + * NOTE! Although currently this is only for floppies, the idea is + * that any additional removable block-device will use this routine, + * and that mount/open needn't know that floppies/whatever are + * special. + */ +void check_disk_change(int dev) +{ + int i; + + if (MAJOR(dev) != 2) + return; + if (!floppy_change(dev & 0x03)) + return; + for (i=0 ; ib_next) + bh->b_next->b_prev = bh->b_prev; + if (bh->b_prev) + bh->b_prev->b_next = bh->b_next; + if (hash(bh->b_dev,bh->b_blocknr) == bh) + hash(bh->b_dev,bh->b_blocknr) = bh->b_next; +/* remove from free list */ + if (!(bh->b_prev_free) || !(bh->b_next_free)) + panic("Free block list corrupted"); + bh->b_prev_free->b_next_free = bh->b_next_free; + bh->b_next_free->b_prev_free = bh->b_prev_free; + if (free_list == bh) + free_list = bh->b_next_free; +} + +static inline void insert_into_queues(struct buffer_head * bh) +{ +/* put at end of free list */ + bh->b_next_free = free_list; + bh->b_prev_free = free_list->b_prev_free; + free_list->b_prev_free->b_next_free = bh; + free_list->b_prev_free = bh; +/* put the buffer in new hash-queue if it has a device */ + bh->b_prev = NULL; + bh->b_next = NULL; + if (!bh->b_dev) + return; + bh->b_next = hash(bh->b_dev,bh->b_blocknr); + hash(bh->b_dev,bh->b_blocknr) = bh; + bh->b_next->b_prev = bh; +} + +static struct buffer_head * find_buffer(int dev, int block) +{ + struct buffer_head * tmp; + + for (tmp = hash(dev,block) ; tmp != NULL ; tmp = tmp->b_next) + if (tmp->b_dev==dev && tmp->b_blocknr==block) + return tmp; + return NULL; +} + +/* + * Why like this, I hear you say... The reason is race-conditions. + * As we don't lock buffers (unless we are readint them, that is), + * something might happen to it while we sleep (ie a read-error + * will force it bad). This shouldn't really happen currently, but + * the code is ready. + */ +struct buffer_head * get_hash_table(int dev, int block) +{ + struct buffer_head * bh; + + for (;;) { + if (!(bh=find_buffer(dev,block))) + return NULL; + bh->b_count++; + wait_on_buffer(bh); + if (bh->b_dev == dev && bh->b_blocknr == block) + return bh; + bh->b_count--; + } +} + +/* + * Ok, this is getblk, and it isn't very clear, again to hinder + * race-conditions. Most of the code is seldom used, (ie repeating), + * so it should be much more efficient than it looks. + * + * The algoritm is changed: hopefully better, and an elusive bug removed. + */ +#define BADNESS(bh) (((bh)->b_dirt<<1)+(bh)->b_lock) +struct buffer_head * getblk(int dev,int block) +{ + struct buffer_head * tmp, * bh; + +repeat: + if (bh = get_hash_table(dev,block)) + return bh; + tmp = free_list; + do { + if (tmp->b_count) + continue; + if (!bh || BADNESS(tmp)b_next_free) != free_list); + if (!bh) { + sleep_on(&buffer_wait); + goto repeat; + } + wait_on_buffer(bh); + if (bh->b_count) + goto repeat; + while (bh->b_dirt) { + sync_dev(bh->b_dev); + wait_on_buffer(bh); + if (bh->b_count) + goto repeat; + } +/* NOTE!! While we slept waiting for this block, somebody else might */ +/* already have added "this" block to the cache. check it */ + if (find_buffer(dev,block)) + goto repeat; +/* OK, FINALLY we know that this buffer is the only one of it's kind, */ +/* and that it's unused (b_count=0), unlocked (b_lock=0), and clean */ + bh->b_count=1; + bh->b_dirt=0; + bh->b_uptodate=0; + remove_from_queues(bh); + bh->b_dev=dev; + bh->b_blocknr=block; + insert_into_queues(bh); + return bh; +} + +void brelse(struct buffer_head * buf) +{ + if (!buf) + return; + wait_on_buffer(buf); + if (!(buf->b_count--)) + panic("Trying to free free buffer"); + wake_up(&buffer_wait); +} + +/* + * bread() reads a specified block and returns the buffer that contains + * it. It returns NULL if the block was unreadable. + */ +struct buffer_head * bread(int dev,int block) +{ + struct buffer_head * bh; + + if (!(bh=getblk(dev,block))) + panic("bread: getblk returned NULL\n"); + if (bh->b_uptodate) + return bh; + ll_rw_block(READ,bh); + wait_on_buffer(bh); + if (bh->b_uptodate) + return bh; + brelse(bh); + return NULL; +} + +#define COPYBLK(from,to) \ +__asm__("cld\n\t" \ + "rep\n\t" \ + "movsl\n\t" \ + ::"c" (BLOCK_SIZE/4),"S" (from),"D" (to) \ + ) + +/* + * bread_page reads four buffers into memory at the desired address. It's + * a function of its own, as there is some speed to be got by reading them + * all at the same time, not waiting for one to be read, and then another + * etc. + */ +void bread_page(unsigned long address,int dev,int b[4]) +{ + struct buffer_head * bh[4]; + int i; + + for (i=0 ; i<4 ; i++) + if (b[i]) { + if (bh[i] = getblk(dev,b[i])) + if (!bh[i]->b_uptodate) + ll_rw_block(READ,bh[i]); + } else + bh[i] = NULL; + for (i=0 ; i<4 ; i++,address += BLOCK_SIZE) + if (bh[i]) { + wait_on_buffer(bh[i]); + if (bh[i]->b_uptodate) + COPYBLK((unsigned long) bh[i]->b_data,address); + brelse(bh[i]); + } +} + +/* + * Ok, breada can be used as bread, but additionally to mark other + * blocks for reading as well. End the argument list with a negative + * number. + */ +struct buffer_head * breada(int dev,int first, ...) +{ + va_list args; + struct buffer_head * bh, *tmp; + + va_start(args,first); + if (!(bh=getblk(dev,first))) + panic("bread: getblk returned NULL\n"); + if (!bh->b_uptodate) + ll_rw_block(READ,bh); + while ((first=va_arg(args,int))>=0) { + tmp=getblk(dev,first); + if (tmp) { + if (!tmp->b_uptodate) + ll_rw_block(READA,bh); + tmp->b_count--; + } + } + va_end(args); + wait_on_buffer(bh); + if (bh->b_uptodate) + return bh; + brelse(bh); + return (NULL); +} + +void buffer_init(long buffer_end) +{ + struct buffer_head * h = start_buffer; + void * b; + int i; + + if (buffer_end == 1<<20) + b = (void *) (640*1024); + else + b = (void *) buffer_end; + while ( (b -= BLOCK_SIZE) >= ((void *) (h+1)) ) { + h->b_dev = 0; + h->b_dirt = 0; + h->b_count = 0; + h->b_lock = 0; + h->b_uptodate = 0; + h->b_wait = NULL; + h->b_next = NULL; + h->b_prev = NULL; + h->b_data = (char *) b; + h->b_prev_free = h-1; + h->b_next_free = h+1; + h++; + NR_BUFFERS++; + if (b == (void *) 0x100000) + b = (void *) 0xA0000; + } + h--; + free_list = start_buffer; + free_list->b_prev_free = h; + h->b_next_free = free_list; + for (i=0;iQ6+~nZ1VPZCP{pdlWadpWGMO3Y4-glv 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 +#include + +#include +#include + +#include +#include + +extern int tty_read(unsigned minor,char * buf,int count); +extern int tty_write(unsigned minor,char * buf,int count); + +typedef (*crw_ptr)(int rw,unsigned minor,char * buf,int count,off_t * pos); + +static int rw_ttyx(int rw,unsigned minor,char * buf,int count,off_t * pos) +{ + return ((rw==READ)?tty_read(minor,buf,count): + tty_write(minor,buf,count)); +} + +static int rw_tty(int rw,unsigned minor,char * buf,int count, off_t * pos) +{ + if (current->tty<0) + return -EPERM; + return rw_ttyx(rw,current->tty,buf,count,pos); +} + +static int rw_ram(int rw,char * buf, int count, off_t *pos) +{ + return -EIO; +} + +static int rw_mem(int rw,char * buf, int count, off_t * pos) +{ + return -EIO; +} + +static int rw_kmem(int rw,char * buf, int count, off_t * pos) +{ + return -EIO; +} + +static int rw_port(int rw,char * buf, int count, off_t * pos) +{ + int i=*pos; + + while (count-->0 && i<65536) { + if (rw==READ) + put_fs_byte(inb(i),buf++); + else + outb(get_fs_byte(buf++),i); + i++; + } + i -= *pos; + *pos += i; + return i; +} + +static int rw_memory(int rw, unsigned minor, char * buf, int count, off_t * pos) +{ + switch(minor) { + case 0: + return rw_ram(rw,buf,count,pos); + case 1: + return rw_mem(rw,buf,count,pos); + case 2: + return rw_kmem(rw,buf,count,pos); + case 3: + return (rw==READ)?0:count; /* rw_null */ + case 4: + return rw_port(rw,buf,count,pos); + default: + return -EIO; + } +} + +#define NRDEVS ((sizeof (crw_table))/(sizeof (crw_ptr))) + +static crw_ptr crw_table[]={ + NULL, /* nodev */ + rw_memory, /* /dev/mem etc */ + NULL, /* /dev/fd */ + NULL, /* /dev/hd */ + rw_ttyx, /* /dev/ttyx */ + rw_tty, /* /dev/tty */ + NULL, /* /dev/lp */ + NULL}; /* unnamed pipes */ + +int rw_char(int rw,int dev, char * buf, int count, off_t * pos) +{ + crw_ptr call_addr; + + if (MAJOR(dev)>=NRDEVS) + return -ENODEV; + if (!(call_addr=crw_table[MAJOR(dev)])) + return -ENODEV; + return call_addr(rw,MINOR(dev),buf,count,pos); +} diff --git a/linux-0.11-lab/0/linux/fs/char_dev.o b/linux-0.11-lab/0/linux/fs/char_dev.o new file mode 100644 index 0000000000000000000000000000000000000000..2977060a7c0b215e10aa16a8395ed973d52837cd GIT binary patch literal 8288 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 O%Ys)0UlIH-!T$wZ8WjQn literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/fs/exec.c b/linux-0.11-lab/0/linux/fs/exec.c new file mode 100644 index 0000000..2ff220e --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/exec.c @@ -0,0 +1,359 @@ +/* + * linux/fs/exec.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * #!-checking implemented by tytso. + */ + +/* + * Demand-loading implemented 01.12.91 - no need to read anything but + * the header into memory. The inode of the executable is put into + * "current->executable", and page faults do the actual loading. Clean. + * + * Once more I can proudly say that linux stood up to being changed: it + * was less than 2 hours work to get demand-loading completely implemented. + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +extern int sys_exit(int exit_code); +extern int sys_close(int fd); + +/* + * MAX_ARG_PAGES defines the number of pages allocated for arguments + * and envelope for the new program. 32 should suffice, this gives + * a maximum env+arg of 128kB ! + */ +#define MAX_ARG_PAGES 32 + + +int sys_uselib() +{ + return -ENOSYS; +} + +/* + * create_tables() parses the env- and arg-strings in new user + * memory and creates the pointer tables from them, and puts their + * addresses on the "stack", returning the new stack pointer value. + */ +static unsigned long * create_tables(char * p,int argc,int envc) +{ + unsigned long *argv,*envp; + unsigned long * sp; + + sp = (unsigned long *) (0xfffffffc & (unsigned long) p); + sp -= envc+1; + envp = sp; + sp -= argc+1; + argv = sp; + put_fs_long((unsigned long)envp,--sp); + put_fs_long((unsigned long)argv,--sp); + put_fs_long((unsigned long)argc,--sp); + while (argc-->0) { + put_fs_long((unsigned long) p,argv++); + while (get_fs_byte(p++)) /* nothing */ ; + } + put_fs_long(0,argv); + while (envc-->0) { + put_fs_long((unsigned long) p,envp++); + while (get_fs_byte(p++)) /* nothing */ ; + } + put_fs_long(0,envp); + return sp; +} + +/* + * count() counts the number of arguments/envelopes + */ +static int count(char ** argv) +{ + int i=0; + char ** tmp; + + if (tmp = argv) + while (get_fs_long((unsigned long *) (tmp++))) + i++; + + return i; +} + +/* + * 'copy_string()' copies argument/envelope strings from user + * memory to free pages in kernel mem. These are in a format ready + * to be put directly into the top of new user memory. + * + * Modified by TYT, 11/24/91 to add the from_kmem argument, which specifies + * whether the string and the string array are from user or kernel segments: + * + * from_kmem argv * argv ** + * 0 user space user space + * 1 kernel space user space + * 2 kernel space kernel space + * + * We do this by playing games with the fs segment register. Since it + * it is expensive to load a segment register, we try to avoid calling + * set_fs() unless we absolutely have to. + */ +static unsigned long copy_strings(int argc,char ** argv,unsigned long *page, + unsigned long p, int from_kmem) +{ + char *tmp, *pag; + int len, offset = 0; + unsigned long old_fs, new_fs; + + if (!p) + return 0; /* bullet-proofing */ + new_fs = get_ds(); + old_fs = get_fs(); + if (from_kmem==2) + set_fs(new_fs); + while (argc-- > 0) { + if (from_kmem == 1) + set_fs(new_fs); + if (!(tmp = (char *)get_fs_long(((unsigned long *)argv)+argc))) + panic("argc is wrong"); + if (from_kmem == 1) + set_fs(old_fs); + len=0; /* remember zero-padding */ + do { + len++; + } while (get_fs_byte(tmp++)); + if (p-len < 0) { /* this shouldn't happen - 128kB */ + set_fs(old_fs); + return 0; + } + while (len) { + --p; --tmp; --len; + if (--offset < 0) { + offset = p % PAGE_SIZE; + if (from_kmem==2) + set_fs(old_fs); + if (!(pag = (char *) page[p/PAGE_SIZE]) && + !(pag = (char *) (page[p/PAGE_SIZE] = + (unsigned long *) get_free_page()))) + return 0; + if (from_kmem==2) + set_fs(new_fs); + + } + *(pag + offset) = get_fs_byte(tmp); + } + } + if (from_kmem==2) + set_fs(old_fs); + return p; +} + +static unsigned long change_ldt(unsigned long text_size,unsigned long * page) +{ + unsigned long code_limit,data_limit,code_base,data_base; + int i; + + code_limit = text_size+PAGE_SIZE -1; + code_limit &= 0xFFFFF000; + data_limit = 0x4000000; + code_base = get_base(current->ldt[1]); + data_base = code_base; + set_base(current->ldt[1],code_base); + set_limit(current->ldt[1],code_limit); + set_base(current->ldt[2],data_base); + set_limit(current->ldt[2],data_limit); +/* make sure fs points to the NEW data segment */ + __asm__("pushl $0x17\n\tpop %%fs"::); + data_base += data_limit; + for (i=MAX_ARG_PAGES-1 ; i>=0 ; i--) { + data_base -= PAGE_SIZE; + if (page[i]) + put_page(page[i],data_base); + } + return data_limit; +} + +/* + * 'do_execve()' executes a new program. + */ +int do_execve(unsigned long * eip,long tmp,char * filename, + char ** argv, char ** envp) +{ + struct m_inode * inode; + struct buffer_head * bh; + struct exec ex; + unsigned long page[MAX_ARG_PAGES]; + int i,argc,envc; + int e_uid, e_gid; + int retval; + int sh_bang = 0; + unsigned long p=PAGE_SIZE*MAX_ARG_PAGES-4; + + if ((0xffff & eip[1]) != 0x000f) + panic("execve called from supervisor mode"); + for (i=0 ; ii_mode)) { /* must be regular file */ + retval = -EACCES; + goto exec_error2; + } + i = inode->i_mode; + e_uid = (i & S_ISUID) ? inode->i_uid : current->euid; + e_gid = (i & S_ISGID) ? inode->i_gid : current->egid; + if (current->euid == inode->i_uid) + i >>= 6; + else if (current->egid == inode->i_gid) + i >>= 3; + if (!(i & 1) && + !((inode->i_mode & 0111) && suser())) { + retval = -ENOEXEC; + goto exec_error2; + } + if (!(bh = bread(inode->i_dev,inode->i_zone[0]))) { + retval = -EACCES; + goto exec_error2; + } + ex = *((struct exec *) bh->b_data); /* read exec-header */ + if ((bh->b_data[0] == '#') && (bh->b_data[1] == '!') && (!sh_bang)) { + /* + * This section does the #! interpretation. + * Sorta complicated, but hopefully it will work. -TYT + */ + + char buf[1023], *cp, *interp, *i_name, *i_arg; + unsigned long old_fs; + + strncpy(buf, bh->b_data+2, 1022); + brelse(bh); + iput(inode); + buf[1022] = '\0'; + if (cp = strchr(buf, '\n')) { + *cp = '\0'; + for (cp = buf; (*cp == ' ') || (*cp == '\t'); cp++); + } + if (!cp || *cp == '\0') { + retval = -ENOEXEC; /* No interpreter name found */ + goto exec_error1; + } + interp = i_name = cp; + i_arg = 0; + for ( ; *cp && (*cp != ' ') && (*cp != '\t'); cp++) { + if (*cp == '/') + i_name = cp+1; + } + if (*cp) { + *cp++ = '\0'; + i_arg = cp; + } + /* + * OK, we've parsed out the interpreter name and + * (optional) argument. + */ + if (sh_bang++ == 0) { + p = copy_strings(envc, envp, page, p, 0); + p = copy_strings(--argc, argv+1, page, p, 0); + } + /* + * Splice in (1) the interpreter's name for argv[0] + * (2) (optional) argument to interpreter + * (3) filename of shell script + * + * This is done in reverse order, because of how the + * user environment and arguments are stored. + */ + p = copy_strings(1, &filename, page, p, 1); + argc++; + if (i_arg) { + p = copy_strings(1, &i_arg, page, p, 2); + argc++; + } + p = copy_strings(1, &i_name, page, p, 2); + argc++; + if (!p) { + retval = -ENOMEM; + goto exec_error1; + } + /* + * OK, now restart the process with the interpreter's inode. + */ + old_fs = get_fs(); + set_fs(get_ds()); + if (!(inode=namei(interp))) { /* get executables inode */ + set_fs(old_fs); + retval = -ENOENT; + goto exec_error1; + } + set_fs(old_fs); + goto restart_interp; + } + brelse(bh); + if (N_MAGIC(ex) != ZMAGIC || ex.a_trsize || ex.a_drsize || + ex.a_text+ex.a_data+ex.a_bss>0x3000000 || + inode->i_size < ex.a_text+ex.a_data+ex.a_syms+N_TXTOFF(ex)) { + retval = -ENOEXEC; + goto exec_error2; + } + if (N_TXTOFF(ex) != BLOCK_SIZE) { + printk("%s: N_TXTOFF != BLOCK_SIZE. See a.out.h.", filename); + retval = -ENOEXEC; + goto exec_error2; + } + if (!sh_bang) { + p = copy_strings(envc,envp,page,p,0); + p = copy_strings(argc,argv,page,p,0); + if (!p) { + retval = -ENOMEM; + goto exec_error2; + } + } +/* OK, This is the point of no return */ + if (current->executable) + iput(current->executable); + current->executable = inode; + for (i=0 ; i<32 ; i++) + current->sigaction[i].sa_handler = NULL; + for (i=0 ; iclose_on_exec>>i)&1) + sys_close(i); + current->close_on_exec = 0; + free_page_tables(get_base(current->ldt[1]),get_limit(0x0f)); + free_page_tables(get_base(current->ldt[2]),get_limit(0x17)); + if (last_task_used_math == current) + last_task_used_math = NULL; + current->used_math = 0; + p += change_ldt(ex.a_text,page)-MAX_ARG_PAGES*PAGE_SIZE; + p = (unsigned long) create_tables((char *)p,argc,envc); + current->brk = ex.a_bss + + (current->end_data = ex.a_data + + (current->end_code = ex.a_text)); + current->start_stack = p & 0xfffff000; + current->euid = e_uid; + current->egid = e_gid; + 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 */ + return 0; +exec_error2: + iput(inode); +exec_error1: + for (i=0 ; ifk_u6V*Yk91+DAroFcU|k2`}@7; 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/fs/fcntl.c b/linux-0.11-lab/0/linux/fs/fcntl.c new file mode 100644 index 0000000..c201aa8 --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/fcntl.c @@ -0,0 +1,75 @@ +/* + * linux/fs/fcntl.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include +#include +#include +#include + +#include +#include + +extern int sys_close(int fd); + +static int dupfd(unsigned int fd, unsigned int arg) +{ + if (fd >= NR_OPEN || !current->filp[fd]) + return -EBADF; + if (arg >= NR_OPEN) + return -EINVAL; + while (arg < NR_OPEN) + if (current->filp[arg]) + arg++; + else + break; + if (arg >= NR_OPEN) + return -EMFILE; + current->close_on_exec &= ~(1<filp[arg] = current->filp[fd])->f_count++; + return arg; +} + +int sys_dup2(unsigned int oldfd, unsigned int newfd) +{ + sys_close(newfd); + return dupfd(oldfd,newfd); +} + +int sys_dup(unsigned int fildes) +{ + return dupfd(fildes,0); +} + +int sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg) +{ + struct file * filp; + + if (fd >= NR_OPEN || !(filp = current->filp[fd])) + return -EBADF; + switch (cmd) { + case F_DUPFD: + return dupfd(fd,arg); + case F_GETFD: + return (current->close_on_exec>>fd)&1; + case F_SETFD: + if (arg&1) + current->close_on_exec |= (1<close_on_exec &= ~(1<f_flags; + case F_SETFL: + filp->f_flags &= ~(O_APPEND | O_NONBLOCK); + filp->f_flags |= arg & (O_APPEND | O_NONBLOCK); + return 0; + case F_GETLK: case F_SETLK: case F_SETLKW: + return -1; + default: + return -1; + } +} diff --git a/linux-0.11-lab/0/linux/fs/fcntl.o b/linux-0.11-lab/0/linux/fs/fcntl.o new file mode 100644 index 0000000000000000000000000000000000000000..17a6ecacd50cb07b4337da65f94d880d02b367a8 GIT binary patch literal 6748 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/fs/file_dev.c b/linux-0.11-lab/0/linux/fs/file_dev.c new file mode 100644 index 0000000..0c50eaa --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/file_dev.c @@ -0,0 +1,90 @@ +/* + * linux/fs/file_dev.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include + +#include +#include +#include + +#define MIN(a,b) (((a)<(b))?(a):(b)) +#define MAX(a,b) (((a)>(b))?(a):(b)) + +int file_read(struct m_inode * inode, struct file * filp, char * buf, int count) +{ + int left,chars,nr; + struct buffer_head * bh; + + if ((left=count)<=0) + return 0; + while (left) { + if (nr = bmap(inode,(filp->f_pos)/BLOCK_SIZE)) { + if (!(bh=bread(inode->i_dev,nr))) + break; + } else + bh = NULL; + nr = filp->f_pos % BLOCK_SIZE; + chars = MIN( BLOCK_SIZE-nr , left ); + filp->f_pos += chars; + left -= chars; + if (bh) { + char * p = nr + bh->b_data; + while (chars-->0) + put_fs_byte(*(p++),buf++); + brelse(bh); + } else { + while (chars-->0) + put_fs_byte(0,buf++); + } + } + inode->i_atime = CURRENT_TIME; + return (count-left)?(count-left):-ERROR; +} + +int file_write(struct m_inode * inode, struct file * filp, char * buf, int count) +{ + off_t pos; + int block,c; + struct buffer_head * bh; + char * p; + int i=0; + +/* + * ok, append may not work when many processes are writing at the same time + * but so what. That way leads to madness anyway. + */ + if (filp->f_flags & O_APPEND) + pos = inode->i_size; + else + pos = filp->f_pos; + while (ii_dev,block))) + break; + c = pos % BLOCK_SIZE; + p = c + bh->b_data; + bh->b_dirt = 1; + c = BLOCK_SIZE-c; + if (c > count-i) c = count-i; + pos += c; + if (pos > inode->i_size) { + inode->i_size = pos; + inode->i_dirt = 1; + } + i += c; + while (c-->0) + *(p++) = get_fs_byte(buf++); + brelse(bh); + } + inode->i_mtime = CURRENT_TIME; + if (!(filp->f_flags & O_APPEND)) { + filp->f_pos = pos; + inode->i_ctime = CURRENT_TIME; + } + return (i?i:-1); +} diff --git a/linux-0.11-lab/0/linux/fs/file_dev.o b/linux-0.11-lab/0/linux/fs/file_dev.o new file mode 100644 index 0000000000000000000000000000000000000000..e1ba8a5aa9f848cbe07cc40a116357db631d2c89 GIT binary patch literal 7828 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 SclH@D3RwcTDjZc + +struct file file_table[NR_FILE]; diff --git a/linux-0.11-lab/0/linux/fs/file_table.o b/linux-0.11-lab/0/linux/fs/file_table.o new file mode 100644 index 0000000000000000000000000000000000000000..422bcb331f1423abef699440aa5b0f0ff3a8b671 GIT binary patch literal 2644 zcma)8ONbmr7_OR`-P!Hgo!w=9BnF`a8xkecvzttkb&W;|x+aF`!4(DLY)?=3Ogq!v zV?VOl_&SK&K#0s-B=xPW^?j%FhrbeTlMCJwT9?XVawWCSbyVX|l2jSv>;r0{YaW6k_^T zz^c43M3{C3LO#m~p?wD-+vFv!O1}9tWJUXp+$5jUK4*OA9`G6MD!D~It9?Y?9e~%h zNpi;q*R@lSvd7#dtx0>I{E+r8?Jnm!to=&<9J!$#WXynkS-U~|kmDcG>f|2zQB7xz zPu|k*q&*-%ra=ffB0sKOX3X>CC&cs`U|z-_!=_!MBjE%>dy4!bc}e?}e2cuIh2)nQ zKBe73zWo5~GpHxaSY_e9qLcMJC2H@1m#062oG8PB_yu{OzE~^Q_tocb$KXq%R=Xc6 z!W5mtG`ERzeXVwH?aU$)7onWoi!GZ&EG<G-(`FDL5GCjLkzBG)c>s!O5Yd43kpIj0J zL$ni?^gGLma)}S#8gV?s>Amp;_i=x>NJiF;9-MAS< z4d33%KD)7OtgJMKW~aHF8JbRnjKu9i4g+f-0>^2`Q2fM$^wI?~uoxN5N}`rr)!X zkOgp0bB?ivVFjLNqo#(BEj4ghvMo+e;Qti+cm>cWRebh7?!!!*IMC1w&2`!#>Rb)&9ZYkHg8gkiQ-5obM!ho&zcta4TOYQ7!kK zhn{n~t|E>PMc#7XSs04*p2N$^c{neB7xH;8faf`&;yT9LBvCE*xzNe^-E4CxbDRBJaN~jlSq|VjswDS1$X0~#=Lq&ga zCz+rAOpXJ}=@*Vw_-pAt>oj4i1@Xtt-Oowk-9QNMj)Y*HB&K4`iTsa2WPK#+q${0w zg!W?!)3XcxL8Yf>6#9nJ`D4X+Q{jsW-%$9r!fOgYRQQR)FBEb=InIv?e^L0SLLMmk uXB6&HxTJ7d;Yo#$D11WUrb18Qw!+sGzNPRTh3_l;TH*IZ6fvzQ&gs8hV_9GT literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/fs/fs.o b/linux-0.11-lab/0/linux/fs/fs.o new file mode 100644 index 0000000000000000000000000000000000000000..86ce3ba38e0ee4154487cb990d4dbcff00fb67a3 GIT binary patch literal 142937 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/fs/inode.c b/linux-0.11-lab/0/linux/fs/inode.c new file mode 100644 index 0000000..9bb10b3 --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/inode.c @@ -0,0 +1,340 @@ +/* + * linux/fs/inode.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include + +#include +#include +#include +#include + +struct m_inode inode_table[NR_INODE]={{0,},}; + +static void read_inode(struct m_inode * inode); +static void write_inode(struct m_inode * inode); + +static inline void wait_on_inode(struct m_inode * inode) +{ + cli(); + while (inode->i_lock) + sleep_on(&inode->i_wait); + sti(); +} + +static inline void lock_inode(struct m_inode * inode) +{ + cli(); + while (inode->i_lock) + sleep_on(&inode->i_wait); + inode->i_lock=1; + sti(); +} + +static inline void unlock_inode(struct m_inode * inode) +{ + inode->i_lock=0; + wake_up(&inode->i_wait); +} + +void invalidate_inodes(int dev) +{ + int i; + struct m_inode * inode; + + inode = 0+inode_table; + for(i=0 ; ii_dev == dev) { + if (inode->i_count) + printk("inode in use on removed disk\n\r"); + inode->i_dev = inode->i_dirt = 0; + } + } +} + +void sync_inodes(void) +{ + int i; + struct m_inode * inode; + + inode = 0+inode_table; + for(i=0 ; ii_dirt && !inode->i_pipe) + write_inode(inode); + } +} + +static int _bmap(struct m_inode * inode,int block,int create) +{ + struct buffer_head * bh; + int i; + + if (block<0) + panic("_bmap: block<0"); + if (block >= 7+512+512*512) + panic("_bmap: block>big"); + if (block<7) { + if (create && !inode->i_zone[block]) + if (inode->i_zone[block]=new_block(inode->i_dev)) { + inode->i_ctime=CURRENT_TIME; + inode->i_dirt=1; + } + return inode->i_zone[block]; + } + block -= 7; + if (block<512) { + if (create && !inode->i_zone[7]) + if (inode->i_zone[7]=new_block(inode->i_dev)) { + inode->i_dirt=1; + inode->i_ctime=CURRENT_TIME; + } + if (!inode->i_zone[7]) + return 0; + if (!(bh = bread(inode->i_dev,inode->i_zone[7]))) + return 0; + i = ((unsigned short *) (bh->b_data))[block]; + if (create && !i) + if (i=new_block(inode->i_dev)) { + ((unsigned short *) (bh->b_data))[block]=i; + bh->b_dirt=1; + } + brelse(bh); + return i; + } + block -= 512; + if (create && !inode->i_zone[8]) + if (inode->i_zone[8]=new_block(inode->i_dev)) { + inode->i_dirt=1; + inode->i_ctime=CURRENT_TIME; + } + if (!inode->i_zone[8]) + return 0; + if (!(bh=bread(inode->i_dev,inode->i_zone[8]))) + return 0; + i = ((unsigned short *)bh->b_data)[block>>9]; + if (create && !i) + if (i=new_block(inode->i_dev)) { + ((unsigned short *) (bh->b_data))[block>>9]=i; + bh->b_dirt=1; + } + brelse(bh); + if (!i) + return 0; + if (!(bh=bread(inode->i_dev,i))) + return 0; + i = ((unsigned short *)bh->b_data)[block&511]; + if (create && !i) + if (i=new_block(inode->i_dev)) { + ((unsigned short *) (bh->b_data))[block&511]=i; + bh->b_dirt=1; + } + brelse(bh); + return i; +} + +int bmap(struct m_inode * inode,int block) +{ + return _bmap(inode,block,0); +} + +int create_block(struct m_inode * inode, int block) +{ + return _bmap(inode,block,1); +} + +void iput(struct m_inode * inode) +{ + if (!inode) + return; + wait_on_inode(inode); + if (!inode->i_count) + panic("iput: trying to free free inode"); + if (inode->i_pipe) { + wake_up(&inode->i_wait); + if (--inode->i_count) + return; + free_page(inode->i_size); + inode->i_count=0; + inode->i_dirt=0; + inode->i_pipe=0; + return; + } + if (!inode->i_dev) { + inode->i_count--; + return; + } + if (S_ISBLK(inode->i_mode)) { + sync_dev(inode->i_zone[0]); + wait_on_inode(inode); + } +repeat: + if (inode->i_count>1) { + inode->i_count--; + return; + } + if (!inode->i_nlinks) { + truncate(inode); + free_inode(inode); + return; + } + if (inode->i_dirt) { + write_inode(inode); /* we can sleep - so do again */ + wait_on_inode(inode); + goto repeat; + } + inode->i_count--; + return; +} + +struct m_inode * get_empty_inode(void) +{ + struct m_inode * inode; + static struct m_inode * last_inode = inode_table; + int i; + + do { + inode = NULL; + for (i = NR_INODE; i ; i--) { + if (++last_inode >= inode_table + NR_INODE) + last_inode = inode_table; + if (!last_inode->i_count) { + inode = last_inode; + if (!inode->i_dirt && !inode->i_lock) + break; + } + } + if (!inode) { + for (i=0 ; ii_dirt) { + write_inode(inode); + wait_on_inode(inode); + } + } while (inode->i_count); + memset(inode,0,sizeof(*inode)); + inode->i_count = 1; + return inode; +} + +struct m_inode * get_pipe_inode(void) +{ + struct m_inode * inode; + + if (!(inode = get_empty_inode())) + return NULL; + if (!(inode->i_size=get_free_page())) { + inode->i_count = 0; + return NULL; + } + inode->i_count = 2; /* sum of readers/writers */ + PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0; + inode->i_pipe = 1; + return inode; +} + +struct m_inode * iget(int dev,int nr) +{ + struct m_inode * inode, * empty; + + if (!dev) + panic("iget with dev==0"); + empty = get_empty_inode(); + inode = inode_table; + while (inode < NR_INODE+inode_table) { + if (inode->i_dev != dev || inode->i_num != nr) { + inode++; + continue; + } + wait_on_inode(inode); + if (inode->i_dev != dev || inode->i_num != nr) { + inode = inode_table; + continue; + } + inode->i_count++; + if (inode->i_mount) { + int i; + + for (i = 0 ; i= NR_SUPER) { + printk("Mounted inode hasn't got sb\n"); + if (empty) + iput(empty); + return inode; + } + iput(inode); + dev = super_block[i].s_dev; + nr = ROOT_INO; + inode = inode_table; + continue; + } + if (empty) + iput(empty); + return inode; + } + if (!empty) + return (NULL); + inode=empty; + inode->i_dev = dev; + inode->i_num = nr; + read_inode(inode); + return inode; +} + +static void read_inode(struct m_inode * inode) +{ + struct super_block * sb; + struct buffer_head * bh; + int block; + + lock_inode(inode); + if (!(sb=get_super(inode->i_dev))) + panic("trying to read inode without dev"); + block = 2 + sb->s_imap_blocks + sb->s_zmap_blocks + + (inode->i_num-1)/INODES_PER_BLOCK; + if (!(bh=bread(inode->i_dev,block))) + panic("unable to read i-node block"); + __asm__ volatile ("cld"); /* by wyj */ + *(struct d_inode *)inode = + ((struct d_inode *)bh->b_data) + [(inode->i_num-1)%INODES_PER_BLOCK]; + brelse(bh); + unlock_inode(inode); +} + +static void write_inode(struct m_inode * inode) +{ + struct super_block * sb; + struct buffer_head * bh; + int block; + + lock_inode(inode); + if (!inode->i_dirt || !inode->i_dev) { + unlock_inode(inode); + return; + } + if (!(sb=get_super(inode->i_dev))) + panic("trying to write inode without device"); + block = 2 + sb->s_imap_blocks + sb->s_zmap_blocks + + (inode->i_num-1)/INODES_PER_BLOCK; + if (!(bh=bread(inode->i_dev,block))) + panic("unable to read i-node block"); + __asm__ volatile ("cld"); /* by wyj */ + ((struct d_inode *)bh->b_data) + [(inode->i_num-1)%INODES_PER_BLOCK] = + *(struct d_inode *)inode; + bh->b_dirt=1; + inode->i_dirt=0; + brelse(bh); + unlock_inode(inode); +} diff --git a/linux-0.11-lab/0/linux/fs/inode.o b/linux-0.11-lab/0/linux/fs/inode.o new file mode 100644 index 0000000000000000000000000000000000000000..dd67bfa4d43e1073c47e0226043fc43f5f0e9153 GIT binary patch literal 14072 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 I1a}MmH>)TywEzGB literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/fs/ioctl.c b/linux-0.11-lab/0/linux/fs/ioctl.c new file mode 100644 index 0000000..36fc976 --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/ioctl.c @@ -0,0 +1,46 @@ +/* + * linux/fs/ioctl.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include +#include + +#include + +extern int tty_ioctl(int dev, int cmd, int arg); + +typedef int (*ioctl_ptr)(int dev,int cmd,int arg); + +#define NRDEVS ((sizeof (ioctl_table))/(sizeof (ioctl_ptr))) + +static ioctl_ptr ioctl_table[]={ + NULL, /* nodev */ + NULL, /* /dev/mem */ + NULL, /* /dev/fd */ + NULL, /* /dev/hd */ + tty_ioctl, /* /dev/ttyx */ + tty_ioctl, /* /dev/tty */ + NULL, /* /dev/lp */ + NULL}; /* named pipes */ + + +int sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) +{ + struct file * filp; + int dev,mode; + + if (fd >= NR_OPEN || !(filp = current->filp[fd])) + return -EBADF; + mode=filp->f_inode->i_mode; + if (!S_ISCHR(mode) && !S_ISBLK(mode)) + return -EINVAL; + dev = filp->f_inode->i_zone[0]; + if (MAJOR(dev) >= NRDEVS) + return -ENODEV; + if (!ioctl_table[MAJOR(dev)]) + return -ENOTTY; + return ioctl_table[MAJOR(dev)](dev,cmd,arg); +} diff --git a/linux-0.11-lab/0/linux/fs/ioctl.o b/linux-0.11-lab/0/linux/fs/ioctl.o new file mode 100644 index 0000000000000000000000000000000000000000..1f1f33c5568ad7f154251149e1ecc40766da48c1 GIT binary patch literal 5828 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 +#include +#include + +#include +#include +#include +#include +#include + +#define ACC_MODE(x) ("\004\002\006\377"[(x)&O_ACCMODE]) + +/* + * comment out this line if you want names > NAME_LEN chars to be + * truncated. Else they will be disallowed. + */ +/* #define NO_TRUNCATE */ + +#define MAY_EXEC 1 +#define MAY_WRITE 2 +#define MAY_READ 4 + +/* + * permission() + * + * is used to check for read/write/execute permissions on a file. + * I don't know if we should look at just the euid or both euid and + * uid, but that should be easily changed. + */ +static int permission(struct m_inode * inode,int mask) +{ + int mode = inode->i_mode; + +/* special case: not even root can read/write a deleted file */ + if (inode->i_dev && !inode->i_nlinks) + return 0; + else if (current->euid==inode->i_uid) + mode >>= 6; + else if (current->egid==inode->i_gid) + mode >>= 3; + if (((mode & mask & 0007) == mask) || suser()) + return 1; + return 0; +} + +/* + * ok, we cannot use strncmp, as the name is not in our data space. + * Thus we'll have to use match. No big problem. Match also makes + * some sanity tests. + * + * NOTE! unlike strncmp, match returns 1 for success, 0 for failure. + */ +static int match(int len,const char * name,struct dir_entry * de) +{ + register int same __asm__("ax"); + + if (!de || !de->inode || len > NAME_LEN) + return 0; + if (len < NAME_LEN && de->name[len]) + return 0; + __asm__("cld\n\t" + "fs ; repe ; cmpsb\n\t" + "setz %%al" + :"=a" (same) + :"0" (0),"S" ((long) name),"D" ((long) de->name),"c" (len) + ); + return same; +} + +/* + * find_entry() + * + * finds an entry in the specified directory with the wanted name. It + * returns the cache buffer in which the entry was found, and the entry + * itself (as a parameter - res_dir). It does NOT read the inode of the + * entry - you'll have to do that yourself if you want to. + * + * This also takes care of the few special cases due to '..'-traversal + * over a pseudo-root and a mount point. + */ +static struct buffer_head * find_entry(struct m_inode ** dir, + const char * name, int namelen, struct dir_entry ** res_dir) +{ + int entries; + int block,i; + struct buffer_head * bh; + struct dir_entry * de; + struct super_block * sb; + +#ifdef NO_TRUNCATE + if (namelen > NAME_LEN) + return NULL; +#else + if (namelen > NAME_LEN) + namelen = NAME_LEN; +#endif + entries = (*dir)->i_size / (sizeof (struct dir_entry)); + *res_dir = NULL; + if (!namelen) + return NULL; +/* check for '..', as we might have to do some "magic" for it */ + if (namelen==2 && get_fs_byte(name)=='.' && get_fs_byte(name+1)=='.') { +/* '..' in a pseudo-root results in a faked '.' (just change namelen) */ + if ((*dir) == current->root) + namelen=1; + else if ((*dir)->i_num == ROOT_INO) { +/* '..' over a mount-point results in 'dir' being exchanged for the mounted + directory-inode. NOTE! We set mounted, so that we can iput the new dir */ + sb=get_super((*dir)->i_dev); + if (sb->s_imount) { + iput(*dir); + (*dir)=sb->s_imount; + (*dir)->i_count++; + } + } + } + if (!(block = (*dir)->i_zone[0])) + return NULL; + if (!(bh = bread((*dir)->i_dev,block))) + return NULL; + i = 0; + de = (struct dir_entry *) bh->b_data; + while (i < entries) { + if ((char *)de >= BLOCK_SIZE+bh->b_data) { + brelse(bh); + bh = NULL; + if (!(block = bmap(*dir,i/DIR_ENTRIES_PER_BLOCK)) || + !(bh = bread((*dir)->i_dev,block))) { + i += DIR_ENTRIES_PER_BLOCK; + continue; + } + de = (struct dir_entry *) bh->b_data; + } + if (match(namelen,name,de)) { + *res_dir = de; + return bh; + } + de++; + i++; + } + brelse(bh); + return NULL; +} + +/* + * add_entry() + * + * adds a file entry to the specified directory, using the same + * semantics as find_entry(). It returns NULL if it failed. + * + * NOTE!! The inode part of 'de' is left at 0 - which means you + * may not sleep between calling this and putting something into + * the entry, as someone else might have used it while you slept. + */ +static struct buffer_head * add_entry(struct m_inode * dir, + const char * name, int namelen, struct dir_entry ** res_dir) +{ + int block,i; + struct buffer_head * bh; + struct dir_entry * de; + + *res_dir = NULL; +#ifdef NO_TRUNCATE + if (namelen > NAME_LEN) + return NULL; +#else + if (namelen > NAME_LEN) + namelen = NAME_LEN; +#endif + if (!namelen) + return NULL; + if (!(block = dir->i_zone[0])) + return NULL; + if (!(bh = bread(dir->i_dev,block))) + return NULL; + i = 0; + de = (struct dir_entry *) bh->b_data; + while (1) { + if ((char *)de >= BLOCK_SIZE+bh->b_data) { + brelse(bh); + bh = NULL; + block = create_block(dir,i/DIR_ENTRIES_PER_BLOCK); + if (!block) + return NULL; + if (!(bh = bread(dir->i_dev,block))) { + i += DIR_ENTRIES_PER_BLOCK; + continue; + } + de = (struct dir_entry *) bh->b_data; + } + if (i*sizeof(struct dir_entry) >= dir->i_size) { + de->inode=0; + dir->i_size = (i+1)*sizeof(struct dir_entry); + dir->i_dirt = 1; + dir->i_ctime = CURRENT_TIME; + } + if (!de->inode) { + dir->i_mtime = CURRENT_TIME; + for (i=0; i < NAME_LEN ; i++) + de->name[i]=(ib_dirt = 1; + *res_dir = de; + return bh; + } + de++; + i++; + } + brelse(bh); + return NULL; +} + +/* + * get_dir() + * + * Getdir traverses the pathname until it hits the topmost directory. + * It returns NULL on failure. + */ +static struct m_inode * get_dir(const char * pathname) +{ + char c; + const char * thisname; + struct m_inode * inode; + struct buffer_head * bh; + int namelen,inr,idev; + struct dir_entry * de; + + if (!current->root || !current->root->i_count) + panic("No root inode"); + if (!current->pwd || !current->pwd->i_count) + panic("No cwd inode"); + if ((c=get_fs_byte(pathname))=='/') { + inode = current->root; + pathname++; + } else if (c) + inode = current->pwd; + else + return NULL; /* empty name is bad */ + inode->i_count++; + while (1) { + thisname = pathname; + if (!S_ISDIR(inode->i_mode) || !permission(inode,MAY_EXEC)) { + iput(inode); + return NULL; + } + for(namelen=0;(c=get_fs_byte(pathname++))&&(c!='/');namelen++) + /* nothing */ ; + if (!c) + return inode; + if (!(bh = find_entry(&inode,thisname,namelen,&de))) { + iput(inode); + return NULL; + } + inr = de->inode; + idev = inode->i_dev; + brelse(bh); + iput(inode); + if (!(inode = iget(idev,inr))) + return NULL; + } +} + +/* + * dir_namei() + * + * dir_namei() returns the inode of the directory of the + * specified name, and the name within that directory. + */ +static struct m_inode * dir_namei(const char * pathname, + int * namelen, const char ** name) +{ + char c; + const char * basename; + struct m_inode * dir; + + if (!(dir = get_dir(pathname))) + return NULL; + basename = pathname; + while (c=get_fs_byte(pathname++)) + if (c=='/') + basename=pathname; + *namelen = pathname-basename-1; + *name = basename; + return dir; +} + +/* + * namei() + * + * is used by most simple commands to get the inode of a specified name. + * Open, link etc use their own routines, but this is enough for things + * like 'chmod' etc. + */ +struct m_inode * namei(const char * pathname) +{ + const char * basename; + int inr,dev,namelen; + struct m_inode * dir; + struct buffer_head * bh; + struct dir_entry * de; + + if (!(dir = dir_namei(pathname,&namelen,&basename))) + return NULL; + if (!namelen) /* special case: '/usr/' etc */ + return dir; + bh = find_entry(&dir,basename,namelen,&de); + if (!bh) { + iput(dir); + return NULL; + } + inr = de->inode; + dev = dir->i_dev; + brelse(bh); + iput(dir); + dir=iget(dev,inr); + if (dir) { + dir->i_atime=CURRENT_TIME; + dir->i_dirt=1; + } + return dir; +} + +/* + * open_namei() + * + * namei for open - this is in fact almost the whole open-routine. + */ +int open_namei(const char * pathname, int flag, int mode, + struct m_inode ** res_inode) +{ + const char * basename; + int inr,dev,namelen; + struct m_inode * dir, *inode; + struct buffer_head * bh; + struct dir_entry * de; + + if ((flag & O_TRUNC) && !(flag & O_ACCMODE)) + flag |= O_WRONLY; + mode &= 0777 & ~current->umask; + mode |= I_REGULAR; + if (!(dir = dir_namei(pathname,&namelen,&basename))) + return -ENOENT; + if (!namelen) { /* special case: '/usr/' etc */ + if (!(flag & (O_ACCMODE|O_CREAT|O_TRUNC))) { + *res_inode=dir; + return 0; + } + iput(dir); + return -EISDIR; + } + bh = find_entry(&dir,basename,namelen,&de); + if (!bh) { + if (!(flag & O_CREAT)) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EACCES; + } + inode = new_inode(dir->i_dev); + if (!inode) { + iput(dir); + return -ENOSPC; + } + inode->i_uid = current->euid; + inode->i_mode = mode; + inode->i_dirt = 1; + bh = add_entry(dir,basename,namelen,&de); + if (!bh) { + inode->i_nlinks--; + iput(inode); + iput(dir); + return -ENOSPC; + } + de->inode = inode->i_num; + bh->b_dirt = 1; + brelse(bh); + iput(dir); + *res_inode = inode; + return 0; + } + inr = de->inode; + dev = dir->i_dev; + brelse(bh); + iput(dir); + if (flag & O_EXCL) + return -EEXIST; + if (!(inode=iget(dev,inr))) + return -EACCES; + if ((S_ISDIR(inode->i_mode) && (flag & O_ACCMODE)) || + !permission(inode,ACC_MODE(flag))) { + iput(inode); + return -EPERM; + } + inode->i_atime = CURRENT_TIME; + if (flag & O_TRUNC) + truncate(inode); + *res_inode = inode; + return 0; +} + +int sys_mknod(const char * filename, int mode, int dev) +{ + const char * basename; + int namelen; + struct m_inode * dir, * inode; + struct buffer_head * bh; + struct dir_entry * de; + + if (!suser()) + return -EPERM; + if (!(dir = dir_namei(filename,&namelen,&basename))) + return -ENOENT; + if (!namelen) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EPERM; + } + bh = find_entry(&dir,basename,namelen,&de); + if (bh) { + brelse(bh); + iput(dir); + return -EEXIST; + } + inode = new_inode(dir->i_dev); + if (!inode) { + iput(dir); + return -ENOSPC; + } + inode->i_mode = mode; + if (S_ISBLK(mode) || S_ISCHR(mode)) + inode->i_zone[0] = dev; + inode->i_mtime = inode->i_atime = CURRENT_TIME; + inode->i_dirt = 1; + bh = add_entry(dir,basename,namelen,&de); + if (!bh) { + iput(dir); + inode->i_nlinks=0; + iput(inode); + return -ENOSPC; + } + de->inode = inode->i_num; + bh->b_dirt = 1; + iput(dir); + iput(inode); + brelse(bh); + return 0; +} + +int sys_mkdir(const char * pathname, int mode) +{ + const char * basename; + int namelen; + struct m_inode * dir, * inode; + struct buffer_head * bh, *dir_block; + struct dir_entry * de; + + if (!suser()) + return -EPERM; + if (!(dir = dir_namei(pathname,&namelen,&basename))) + return -ENOENT; + if (!namelen) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EPERM; + } + bh = find_entry(&dir,basename,namelen,&de); + if (bh) { + brelse(bh); + iput(dir); + return -EEXIST; + } + inode = new_inode(dir->i_dev); + if (!inode) { + iput(dir); + return -ENOSPC; + } + inode->i_size = 32; + inode->i_dirt = 1; + inode->i_mtime = inode->i_atime = CURRENT_TIME; + if (!(inode->i_zone[0]=new_block(inode->i_dev))) { + iput(dir); + inode->i_nlinks--; + iput(inode); + return -ENOSPC; + } + inode->i_dirt = 1; + if (!(dir_block=bread(inode->i_dev,inode->i_zone[0]))) { + iput(dir); + free_block(inode->i_dev,inode->i_zone[0]); + inode->i_nlinks--; + iput(inode); + return -ERROR; + } + de = (struct dir_entry *) dir_block->b_data; + de->inode=inode->i_num; + strcpy(de->name,"."); + de++; + de->inode = dir->i_num; + strcpy(de->name,".."); + inode->i_nlinks = 2; + dir_block->b_dirt = 1; + brelse(dir_block); + inode->i_mode = I_DIRECTORY | (mode & 0777 & ~current->umask); + inode->i_dirt = 1; + bh = add_entry(dir,basename,namelen,&de); + if (!bh) { + iput(dir); + free_block(inode->i_dev,inode->i_zone[0]); + inode->i_nlinks=0; + iput(inode); + return -ENOSPC; + } + de->inode = inode->i_num; + bh->b_dirt = 1; + dir->i_nlinks++; + dir->i_dirt = 1; + iput(dir); + iput(inode); + brelse(bh); + return 0; +} + +/* + * routine to check that the specified directory is empty (for rmdir) + */ +static int empty_dir(struct m_inode * inode) +{ + int nr,block; + int len; + struct buffer_head * bh; + struct dir_entry * de; + + len = inode->i_size / sizeof (struct dir_entry); + if (len<2 || !inode->i_zone[0] || + !(bh=bread(inode->i_dev,inode->i_zone[0]))) { + printk("warning - bad directory on dev %04x\n",inode->i_dev); + return 0; + } + de = (struct dir_entry *) bh->b_data; + if (de[0].inode != inode->i_num || !de[1].inode || + strcmp(".",de[0].name) || strcmp("..",de[1].name)) { + printk("warning - bad directory on dev %04x\n",inode->i_dev); + return 0; + } + nr = 2; + de += 2; + while (nr= (void *) (bh->b_data+BLOCK_SIZE)) { + brelse(bh); + block=bmap(inode,nr/DIR_ENTRIES_PER_BLOCK); + if (!block) { + nr += DIR_ENTRIES_PER_BLOCK; + continue; + } + if (!(bh=bread(inode->i_dev,block))) + return 0; + de = (struct dir_entry *) bh->b_data; + } + if (de->inode) { + brelse(bh); + return 0; + } + de++; + nr++; + } + brelse(bh); + return 1; +} + +int sys_rmdir(const char * name) +{ + const char * basename; + int namelen; + struct m_inode * dir, * inode; + struct buffer_head * bh; + struct dir_entry * de; + + if (!suser()) + return -EPERM; + if (!(dir = dir_namei(name,&namelen,&basename))) + return -ENOENT; + if (!namelen) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EPERM; + } + bh = find_entry(&dir,basename,namelen,&de); + if (!bh) { + iput(dir); + return -ENOENT; + } + if (!(inode = iget(dir->i_dev, de->inode))) { + iput(dir); + brelse(bh); + return -EPERM; + } + if ((dir->i_mode & S_ISVTX) && current->euid && + inode->i_uid != current->euid) { + iput(dir); + iput(inode); + brelse(bh); + return -EPERM; + } + if (inode->i_dev != dir->i_dev || inode->i_count>1) { + iput(dir); + iput(inode); + brelse(bh); + return -EPERM; + } + if (inode == dir) { /* we may not delete ".", but "../dir" is ok */ + iput(inode); + iput(dir); + brelse(bh); + return -EPERM; + } + if (!S_ISDIR(inode->i_mode)) { + iput(inode); + iput(dir); + brelse(bh); + return -ENOTDIR; + } + if (!empty_dir(inode)) { + iput(inode); + iput(dir); + brelse(bh); + return -ENOTEMPTY; + } + if (inode->i_nlinks != 2) + printk("empty directory has nlink!=2 (%d)",inode->i_nlinks); + de->inode = 0; + bh->b_dirt = 1; + brelse(bh); + inode->i_nlinks=0; + inode->i_dirt=1; + dir->i_nlinks--; + dir->i_ctime = dir->i_mtime = CURRENT_TIME; + dir->i_dirt=1; + iput(dir); + iput(inode); + return 0; +} + +int sys_unlink(const char * name) +{ + const char * basename; + int namelen; + struct m_inode * dir, * inode; + struct buffer_head * bh; + struct dir_entry * de; + + if (!(dir = dir_namei(name,&namelen,&basename))) + return -ENOENT; + if (!namelen) { + iput(dir); + return -ENOENT; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + return -EPERM; + } + bh = find_entry(&dir,basename,namelen,&de); + if (!bh) { + iput(dir); + return -ENOENT; + } + if (!(inode = iget(dir->i_dev, de->inode))) { + iput(dir); + brelse(bh); + return -ENOENT; + } + if ((dir->i_mode & S_ISVTX) && !suser() && + current->euid != inode->i_uid && + current->euid != dir->i_uid) { + iput(dir); + iput(inode); + brelse(bh); + return -EPERM; + } + if (S_ISDIR(inode->i_mode)) { + iput(inode); + iput(dir); + brelse(bh); + return -EPERM; + } + if (!inode->i_nlinks) { + printk("Deleting nonexistent file (%04x:%d), %d\n", + inode->i_dev,inode->i_num,inode->i_nlinks); + inode->i_nlinks=1; + } + de->inode = 0; + bh->b_dirt = 1; + brelse(bh); + inode->i_nlinks--; + inode->i_dirt = 1; + inode->i_ctime = CURRENT_TIME; + iput(inode); + iput(dir); + return 0; +} + +int sys_symlink() +{ + return -ENOSYS; +} + +int sys_link(const char * oldname, const char * newname) +{ + struct dir_entry * de; + struct m_inode * oldinode, * dir; + struct buffer_head * bh; + const char * basename; + int namelen; + + oldinode=namei(oldname); + if (!oldinode) + return -ENOENT; + if (S_ISDIR(oldinode->i_mode)) { + iput(oldinode); + return -EPERM; + } + dir = dir_namei(newname,&namelen,&basename); + if (!dir) { + iput(oldinode); + return -EACCES; + } + if (!namelen) { + iput(oldinode); + iput(dir); + return -EPERM; + } + if (dir->i_dev != oldinode->i_dev) { + iput(dir); + iput(oldinode); + return -EXDEV; + } + if (!permission(dir,MAY_WRITE)) { + iput(dir); + iput(oldinode); + return -EACCES; + } + bh = find_entry(&dir,basename,namelen,&de); + if (bh) { + brelse(bh); + iput(dir); + iput(oldinode); + return -EEXIST; + } + bh = add_entry(dir,basename,namelen,&de); + if (!bh) { + iput(dir); + iput(oldinode); + return -ENOSPC; + } + de->inode = oldinode->i_num; + bh->b_dirt = 1; + brelse(bh); + iput(dir); + oldinode->i_nlinks++; + oldinode->i_ctime = CURRENT_TIME; + oldinode->i_dirt = 1; + iput(oldinode); + return 0; +} diff --git a/linux-0.11-lab/0/linux/fs/namei.o b/linux-0.11-lab/0/linux/fs/namei.o new file mode 100644 index 0000000000000000000000000000000000000000..0514463113d5878e35d040844344865d47c7032e GIT binary patch literal 20756 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 a@7aEaV1r +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +int sys_ustat(int dev, struct ustat * ubuf) +{ + return -ENOSYS; +} + +int sys_utime(char * filename, struct utimbuf * times) +{ + struct m_inode * inode; + long actime,modtime; + + if (!(inode=namei(filename))) + return -ENOENT; + if (times) { + actime = get_fs_long((unsigned long *) ×->actime); + modtime = get_fs_long((unsigned long *) ×->modtime); + } else + actime = modtime = CURRENT_TIME; + inode->i_atime = actime; + inode->i_mtime = modtime; + inode->i_dirt = 1; + iput(inode); + return 0; +} + +/* + * XXX should we use the real or effective uid? BSD uses the real uid, + * so as to make this call useful to setuid programs. + */ +int sys_access(const char * filename,int mode) +{ + struct m_inode * inode; + int res, i_mode; + + mode &= 0007; + if (!(inode=namei(filename))) + return -EACCES; + i_mode = res = inode->i_mode & 0777; + iput(inode); + if (current->uid == inode->i_uid) + res >>= 6; + else if (current->gid == inode->i_gid) + res >>= 6; + if ((res & 0007 & mode) == mode) + return 0; + /* + * XXX we are doing this test last because we really should be + * swapping the effective with the real user id (temporarily), + * and then calling suser() routine. If we do call the + * suser() routine, it needs to be called last. + */ + if ((!current->uid) && + (!(mode & 1) || (i_mode & 0111))) + return 0; + return -EACCES; +} + +int sys_chdir(const char * filename) +{ + struct m_inode * inode; + + if (!(inode = namei(filename))) + return -ENOENT; + if (!S_ISDIR(inode->i_mode)) { + iput(inode); + return -ENOTDIR; + } + iput(current->pwd); + current->pwd = inode; + return (0); +} + +int sys_chroot(const char * filename) +{ + struct m_inode * inode; + + if (!(inode=namei(filename))) + return -ENOENT; + if (!S_ISDIR(inode->i_mode)) { + iput(inode); + return -ENOTDIR; + } + iput(current->root); + current->root = inode; + return (0); +} + +int sys_chmod(const char * filename,int mode) +{ + struct m_inode * inode; + + if (!(inode=namei(filename))) + return -ENOENT; + if ((current->euid != inode->i_uid) && !suser()) { + iput(inode); + return -EACCES; + } + inode->i_mode = (mode & 07777) | (inode->i_mode & ~07777); + inode->i_dirt = 1; + iput(inode); + return 0; +} + +int sys_chown(const char * filename,int uid,int gid) +{ + struct m_inode * inode; + + if (!(inode=namei(filename))) + return -ENOENT; + if (!suser()) { + iput(inode); + return -EACCES; + } + inode->i_uid=uid; + inode->i_gid=gid; + inode->i_dirt=1; + iput(inode); + return 0; +} + +int sys_open(const char * filename,int flag,int mode) +{ + struct m_inode * inode; + struct file * f; + int i,fd; + + mode &= 0777 & ~current->umask; + for(fd=0 ; fdfilp[fd]) + break; + if (fd>=NR_OPEN) + return -EINVAL; + current->close_on_exec &= ~(1<f_count) break; + if (i>=NR_FILE) + return -EINVAL; + (current->filp[fd]=f)->f_count++; + if ((i=open_namei(filename,flag,mode,&inode))<0) { + current->filp[fd]=NULL; + f->f_count=0; + return i; + } +/* ttys are somewhat special (ttyxx major==4, tty major==5) */ + if (S_ISCHR(inode->i_mode)) + if (MAJOR(inode->i_zone[0])==4) { + if (current->leader && current->tty<0) { + current->tty = MINOR(inode->i_zone[0]); + tty_table[current->tty].pgrp = current->pgrp; + } + } else if (MAJOR(inode->i_zone[0])==5) + if (current->tty<0) { + iput(inode); + current->filp[fd]=NULL; + f->f_count=0; + return -EPERM; + } +/* Likewise with block-devices: check for floppy_change */ + if (S_ISBLK(inode->i_mode)) + check_disk_change(inode->i_zone[0]); + f->f_mode = inode->i_mode; + f->f_flags = flag; + f->f_count = 1; + f->f_inode = inode; + f->f_pos = 0; + return (fd); +} + +int sys_creat(const char * pathname, int mode) +{ + return sys_open(pathname, O_CREAT | O_TRUNC, mode); +} + +int sys_close(unsigned int fd) +{ + struct file * filp; + + if (fd >= NR_OPEN) + return -EINVAL; + current->close_on_exec &= ~(1<filp[fd])) + return -EINVAL; + current->filp[fd] = NULL; + if (filp->f_count == 0) + panic("Close: file count is 0"); + if (--filp->f_count) + return (0); + iput(filp->f_inode); + return (0); +} diff --git a/linux-0.11-lab/0/linux/fs/open.o b/linux-0.11-lab/0/linux/fs/open.o new file mode 100644 index 0000000000000000000000000000000000000000..aceb4b8d44365ee59ea3c9bb01413542e9cf0177 GIT binary patch literal 11184 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/fs/pipe.c b/linux-0.11-lab/0/linux/fs/pipe.c new file mode 100644 index 0000000..dfc4480 --- /dev/null +++ b/linux-0.11-lab/0/linux/fs/pipe.c @@ -0,0 +1,111 @@ +/* + * linux/fs/pipe.c + * + * (C) 1991 Linus Torvalds + */ + +#include + +#include +#include /* for get_free_page */ +#include + +int read_pipe(struct m_inode * inode, char * buf, int count) +{ + int chars, size, read = 0; + + while (count>0) { + while (!(size=PIPE_SIZE(*inode))) { + wake_up(&inode->i_wait); + if (inode->i_count != 2) /* are there any writers? */ + return read; + sleep_on(&inode->i_wait); + } + chars = PAGE_SIZE-PIPE_TAIL(*inode); + if (chars > count) + chars = count; + if (chars > size) + chars = size; + count -= chars; + read += chars; + size = PIPE_TAIL(*inode); + PIPE_TAIL(*inode) += chars; + PIPE_TAIL(*inode) &= (PAGE_SIZE-1); + while (chars-->0) + put_fs_byte(((char *)inode->i_size)[size++],buf++); + } + wake_up(&inode->i_wait); + return read; +} + +int write_pipe(struct m_inode * inode, char * buf, int count) +{ + int chars, size, written = 0; + + while (count>0) { + while (!(size=(PAGE_SIZE-1)-PIPE_SIZE(*inode))) { + wake_up(&inode->i_wait); + if (inode->i_count != 2) { /* no readers */ + current->signal |= (1<<(SIGPIPE-1)); + return written?written:-1; + } + sleep_on(&inode->i_wait); + } + chars = PAGE_SIZE-PIPE_HEAD(*inode); + if (chars > count) + chars = count; + if (chars > size) + chars = size; + count -= chars; + written += chars; + size = PIPE_HEAD(*inode); + PIPE_HEAD(*inode) += chars; + PIPE_HEAD(*inode) &= (PAGE_SIZE-1); + while (chars-->0) + ((char *)inode->i_size)[size++]=get_fs_byte(buf++); + } + wake_up(&inode->i_wait); + return written; +} + +int sys_pipe(unsigned long * fildes) +{ + struct m_inode * inode; + struct file * f[2]; + int fd[2]; + int i,j; + + j=0; + for(i=0;j<2 && if_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; +} diff --git a/linux-0.11-lab/0/linux/fs/pipe.o b/linux-0.11-lab/0/linux/fs/pipe.o new file mode 100644 index 0000000000000000000000000000000000000000..d5b5db26c38f6881a408d3b6291aeb9d28c67659 GIT binary patch literal 8104 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 Jg} +#include +#include + +#include +#include +#include + +extern int rw_char(int rw,int dev, char * buf, int count, off_t * pos); +extern int read_pipe(struct m_inode * inode, char * buf, int count); +extern int write_pipe(struct m_inode * inode, char * buf, int count); +extern int block_read(int dev, off_t * pos, char * buf, int count); +extern int block_write(int dev, off_t * pos, char * buf, int count); +extern int file_read(struct m_inode * inode, struct file * filp, + char * buf, int count); +extern int file_write(struct m_inode * inode, struct file * filp, + char * buf, int count); + +int sys_lseek(unsigned int fd,off_t offset, int origin) +{ + struct file * file; + int tmp; + + if (fd >= NR_OPEN || !(file=current->filp[fd]) || !(file->f_inode) + || !IS_SEEKABLE(MAJOR(file->f_inode->i_dev))) + return -EBADF; + if (file->f_inode->i_pipe) + return -ESPIPE; + switch (origin) { + case 0: + if (offset<0) return -EINVAL; + file->f_pos=offset; + break; + case 1: + if (file->f_pos+offset<0) return -EINVAL; + file->f_pos += offset; + break; + case 2: + if ((tmp=file->f_inode->i_size+offset) < 0) + return -EINVAL; + file->f_pos = tmp; + break; + default: + return -EINVAL; + } + return file->f_pos; +} + +int sys_read(unsigned int fd,char * buf,int count) +{ + struct file * file; + struct m_inode * inode; + + if (fd>=NR_OPEN || count<0 || !(file=current->filp[fd])) + return -EINVAL; + if (!count) + return 0; + verify_area(buf,count); + inode = file->f_inode; + if (inode->i_pipe) + return (file->f_mode&1)?read_pipe(inode,buf,count):-EIO; + if (S_ISCHR(inode->i_mode)) + return rw_char(READ,inode->i_zone[0],buf,count,&file->f_pos); + if (S_ISBLK(inode->i_mode)) + return block_read(inode->i_zone[0],&file->f_pos,buf,count); + if (S_ISDIR(inode->i_mode) || S_ISREG(inode->i_mode)) { + if (count+file->f_pos > inode->i_size) + count = inode->i_size - file->f_pos; + if (count<=0) + return 0; + return file_read(inode,file,buf,count); + } + printk("(Read)inode->i_mode=%06o\n\r",inode->i_mode); + return -EINVAL; +} + +int sys_write(unsigned int fd,char * buf,int count) +{ + struct file * file; + struct m_inode * inode; + + if (fd>=NR_OPEN || count <0 || !(file=current->filp[fd])) + return -EINVAL; + if (!count) + return 0; + inode=file->f_inode; + if (inode->i_pipe) + return (file->f_mode&2)?write_pipe(inode,buf,count):-EIO; + if (S_ISCHR(inode->i_mode)) + return rw_char(WRITE,inode->i_zone[0],buf,count,&file->f_pos); + if (S_ISBLK(inode->i_mode)) + return block_write(inode->i_zone[0],&file->f_pos,buf,count); + if (S_ISREG(inode->i_mode)) + return file_write(inode,file,buf,count); + printk("(Write)inode->i_mode=%06o\n\r",inode->i_mode); + return -EINVAL; +} diff --git a/linux-0.11-lab/0/linux/fs/read_write.o b/linux-0.11-lab/0/linux/fs/read_write.o new file mode 100644 index 0000000000000000000000000000000000000000..998aad95c9e243e4bfcae9647b34d9235f717844 GIT binary patch literal 7520 zcmbVQYiu0Xb-wf1;mmSLQCvzEBRN?cD{Ezw%cVq1v`kvGMN5?Yh^&V#Id)e2nB}gu zukOx@q+v9+7!{=nR}lg_n!NhJNvN*AKtHNnh1&}46z~!@%^Y@GbSM+Hi&+) z_;%mobMb-b+=o9$?eekszzdgui_HAQ(sVq6%82lGEQ2mj+2<~K+Z0`%8Y+DCs$GC; zV2x_=J>yLH^>=UFxN+@EjO6>iI5qb1OJ4Z(A5i~kU%zGXJdej%Du+ZXEIWMdE6BC9h62MA z*FFygV$Ps-_G5ajP3=Mn;$%Hxqn(z}dF12FaS1v7nUqezq2$`NXa9Tx3EU5_B zL$CjYX`J?3NG#KDtN2$TCPhq$*1Zh&l1x{kusqd^+NERhKFsb6Fan$gvIpkZ%{V(N zJ9h0yU~pX(?-b(gl<{Vm{vh7}iuG{ZTvFY;_QjjTnG(X=ur~Pf2%cx~W!c#o?aC5o zF|j;l-gEiPMoHx)B4Ls3mzS=f%QG^`AM27yzCH~b=81h{o|vy84vfA_LB5zxe^jjM z9J8Fe#WyB?t|@!ilpGHtFFl zG?T&>J^VrFd?BWHXB(%L5ZA*9sf2{yT`%Q@agw2j^l+UuQb_6H?=qSc#`N%HTNp>8+rvEJx4)o5!!}`*qrI4X_Fzhoh5X`%-#!?RyM(FD@9{_~zL|4j2;x%w9$JMc&t58@?@;k{*%Ok&w+_nm(x-f>wBUT}Y`5z|l zvkJAEFp}g0;LwkdZ*m?(d?Us1TSSB^E*H5tq9XJNM)WtvPHuhY01d}zA)MbPznk2& zn$46jc9Gl8%hc~Ck3c^vjB)Zl=ZnmvPvfOOI$1JyrID2V74n6o3`2_SOVcbtX1z+$7$fuzf z#y-*+i|LvseHgtI#)G7Xtvu*{(qmQu^Z@AzYZi2d^eId3xr5}VoD`nMA@aP#H>UB> zLFBV2B0s`pbC1f@en><{!TD3E?lQRpBN@0H2(-Fb|3^riHYk?`YIr1RpZPrM`wMyK zx$5)_BKi)}r44df>KDxDH>E@${enHf<*sdJOZtWR4PK=#v@L#}CpJ#PNZU=3q2H0= zLwI$`@Viy`{%orNt0fg4pnTfl@A1Qz2WHvW9_|(WLQ!n|1Byo(J`5F43+*%cApFr) z;g7BgFMZnKkFN^H=1fZEM%|d~h12YwZX1EEo#gGu) z9YG*QH0@xN!Fz5K2csjf@7D7k2pa5;4Px7%5bKlL-a$Xmw!wo@j$&%lryh`& z{h@Zp^i4uUA*v2g92i?AZh)vp!P<>Ci~Fm7+*?*W_YO{=6F38qIQ)<(`Q#(Gu8<$X z9O~jMn5O-tw+B!8iN~2uCPzxuT)CBZN6MvYYhH9HnhVViQHTaERp~iipOQI-EkaHf z1;R9QMOV>6(^q*5b(a+VYL;fJnKC$*6Q)o0)ELyJaNE%=&(af7$?T+MPhR}?Mf-MD z(RwxISM*ygdopETgyKx=k+xqvda-rUo_zIHY4t-qb^9B58Yiri_Cxx;Q9O34*oQ3p zA^U=TvenY>7_b*lu8Hz9W26}9jwrlz6S>RPTDb8wy-dSP(njZDr>XG>lsQy0i-nt2qZbQK9d-2};arHU(B^0_LwP87g;d-OyxjC=aK!2L9dm2!Y<3!}$)RmrfIcCol zrke6DakVbaq-CWDdWXrC|B6De`0AbV3 zI&vghRW21bucG^jE~U|1-O>dyJwbU2k99UU%bvLh*9F@l#|I|sR9rXghZux<(^B%33bI~Q|P$2|hd zI=WPCRRjhAP>qn_(w-a3FZ#M!xarHmwlsj9X z9E{rcG6Zg*9mQzx!l0frx>Af)nPNQ7^hz-V7E4Dl1SY$q7&4 + +int sys_select() +{ + return -ENOSYS; +} + diff --git a/linux-0.11-lab/0/linux/fs/select.o b/linux-0.11-lab/0/linux/fs/select.o new file mode 100644 index 0000000000000000000000000000000000000000..d61f73a39bf58c107d845f3825c695fe69663502 GIT binary patch literal 1776 zcma)7&ubG=5T2J!Yc*|X8^x9irr?h%?k3TorD`oLDvI>~7iJXeveV zCY}@#J&1bs?8UqPfKX4Kdi3hqL;YsoPO~}bz`U9HX5P%3>16x#`kfm}DH2j-P~Rf@ zl+m7QEas>{P2kmV>r<>uh}!akeCds_eOT8?M2Wg)X97y zXXIz{6KZmJ{3ubzqHEJeej#@`cdNkQ($w4KX(HnU<#LNTV+09~f%U6&dCo2MSm&o^ z=r~TL{^ZAS#{HoyMWNGi>XB9FIHI9A%~auDMj@)y@?EFobsJI14^7W`RO+<7ZqF=R zm5SN1Yo)RVO3jdNuC5hVidAdgsuoSx4(hF|?F;i4q1QW&qPbBto4(tQ%w}M_j=AZh zUncKQJrYawEG&Ru~0ZwnU4Z zUPM;Ij%>1OVMtcsbgYI`>u#*Ky`~RWtlPC(;57dvg*F;I@kis zL)RAOsi&aRIIZ<~a{8_RbIu@$_g4DiB@mtO%TCWGy1^hwHd9;uxYGc5+5Qz*MvUa< z9Gq{Nm4w8{zmS6hLcYY~mLMmkQ0ApQ$Ac%gz;MoiD`Am=g*R7#1j7tNTI!1mRP(~3C{b&IOkWGJ +#include + +#include +#include +#include +#include + +static void cp_stat(struct m_inode * inode, struct stat * statbuf) +{ + struct stat tmp; + int i; + + verify_area(statbuf,sizeof (* statbuf)); + tmp.st_dev = inode->i_dev; + tmp.st_ino = inode->i_num; + tmp.st_mode = inode->i_mode; + tmp.st_nlink = inode->i_nlinks; + tmp.st_uid = inode->i_uid; + tmp.st_gid = inode->i_gid; + tmp.st_rdev = inode->i_zone[0]; + tmp.st_size = inode->i_size; + tmp.st_atime = inode->i_atime; + tmp.st_mtime = inode->i_mtime; + tmp.st_ctime = inode->i_ctime; + for (i=0 ; i= NR_OPEN || !(f=current->filp[fd]) || !(inode=f->f_inode)) + return -EBADF; + cp_stat(inode,statbuf); + return 0; +} + +int sys_readlink() +{ + return -ENOSYS; +} diff --git a/linux-0.11-lab/0/linux/fs/stat.o b/linux-0.11-lab/0/linux/fs/stat.o new file mode 100644 index 0000000000000000000000000000000000000000..fdb41d331a01a0b46c2a069b24d4be4631d5abd0 GIT binary patch literal 7212 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 +#include +#include +#include + +#include +#include + +int sync_dev(int dev); +void wait_for_keypress(void); + +/* set_bit uses setb, as gas doesn't recognize setc */ +#define set_bit(bitnr,addr) ({ \ +register int __res __asm__("ax"); \ +__asm__("bt %2,%3;setb %%al":"=a" (__res):"a" (0),"r" (bitnr),"m" (*(addr))); \ +__res; }) + +struct super_block super_block[NR_SUPER]; +/* this is initialized in init/main.c */ +int ROOT_DEV = 0; + +static void lock_super(struct super_block * sb) +{ + cli(); + while (sb->s_lock) + sleep_on(&(sb->s_wait)); + sb->s_lock = 1; + sti(); +} + +static void free_super(struct super_block * sb) +{ + cli(); + sb->s_lock = 0; + wake_up(&(sb->s_wait)); + sti(); +} + +static void wait_on_super(struct super_block * sb) +{ + cli(); + while (sb->s_lock) + sleep_on(&(sb->s_wait)); + sti(); +} + +struct super_block * get_super(int dev) +{ + struct super_block * s; + + if (!dev) + return NULL; + s = 0+super_block; + while (s < NR_SUPER+super_block) + if (s->s_dev == dev) { + wait_on_super(s); + if (s->s_dev == dev) + return s; + s = 0+super_block; + } else + s++; + return NULL; +} + +void put_super(int dev) +{ + struct super_block * sb; +/* struct m_inode * inode; */ + int i; + + if (dev == ROOT_DEV) { + printk("root diskette changed: prepare for armageddon\n\r"); + return; + } + if (!(sb = get_super(dev))) + return; + if (sb->s_imount) { + printk("Mounted disk changed - tssk, tssk\n\r"); + return; + } + lock_super(sb); + sb->s_dev = 0; + for(i=0;is_imap[i]); + for(i=0;is_zmap[i]); + free_super(sb); + return; +} + +static struct super_block * read_super(int dev) +{ + struct super_block * s; + struct buffer_head * bh; + int i,block; + + if (!dev) + return NULL; + check_disk_change(dev); + if (s = get_super(dev)) + return s; + for (s = 0+super_block ;; s++) { + if (s >= NR_SUPER+super_block) + return NULL; + if (!s->s_dev) + break; + } + s->s_dev = dev; + s->s_isup = NULL; + s->s_imount = NULL; + s->s_time = 0; + s->s_rd_only = 0; + s->s_dirt = 0; + lock_super(s); + if (!(bh = bread(dev,1))) { + s->s_dev=0; + free_super(s); + return NULL; + } + __asm__ volatile ("cld"); /* by wyj */ + *((struct d_super_block *) s) = + *((struct d_super_block *) bh->b_data); + brelse(bh); + if (s->s_magic != SUPER_MAGIC) { + s->s_dev = 0; + free_super(s); + return NULL; + } + for (i=0;is_imap[i] = NULL; + for (i=0;is_zmap[i] = NULL; + block=2; + for (i=0 ; i < s->s_imap_blocks ; i++) + if (s->s_imap[i]=bread(dev,block)) + block++; + else + break; + for (i=0 ; i < s->s_zmap_blocks ; i++) + if (s->s_zmap[i]=bread(dev,block)) + block++; + else + break; + if (block != 2+s->s_imap_blocks+s->s_zmap_blocks) { + for(i=0;is_imap[i]); + for(i=0;is_zmap[i]); + s->s_dev=0; + free_super(s); + return NULL; + } + s->s_imap[0]->b_data[0] |= 1; + s->s_zmap[0]->b_data[0] |= 1; + free_super(s); + return s; +} + +int sys_umount(char * dev_name) +{ + struct m_inode * inode; + struct super_block * sb; + int dev; + + if (!(inode=namei(dev_name))) + return -ENOENT; + dev = inode->i_zone[0]; + if (!S_ISBLK(inode->i_mode)) { + iput(inode); + return -ENOTBLK; + } + iput(inode); + if (dev==ROOT_DEV) + return -EBUSY; + if (!(sb=get_super(dev)) || !(sb->s_imount)) + return -ENOENT; + if (!sb->s_imount->i_mount) + printk("Mounted inode has i_mount=0\n"); + for (inode=inode_table+0 ; inodei_dev==dev && inode->i_count) + return -EBUSY; + sb->s_imount->i_mount=0; + iput(sb->s_imount); + sb->s_imount = NULL; + iput(sb->s_isup); + sb->s_isup = NULL; + put_super(dev); + sync_dev(dev); + return 0; +} + +int sys_mount(char * dev_name, char * dir_name, int rw_flag) +{ + struct m_inode * dev_i, * dir_i; + struct super_block * sb; + int dev; + + if (!(dev_i=namei(dev_name))) + return -ENOENT; + dev = dev_i->i_zone[0]; + if (!S_ISBLK(dev_i->i_mode)) { + iput(dev_i); + return -EPERM; + } + iput(dev_i); + if (!(dir_i=namei(dir_name))) + return -ENOENT; + if (dir_i->i_count != 1 || dir_i->i_num == ROOT_INO) { + iput(dir_i); + return -EBUSY; + } + if (!S_ISDIR(dir_i->i_mode)) { + iput(dir_i); + return -EPERM; + } + if (!(sb=read_super(dev))) { + iput(dir_i); + return -EBUSY; + } + if (sb->s_imount) { + iput(dir_i); + return -EBUSY; + } + if (dir_i->i_mount) { + iput(dir_i); + return -EPERM; + } + sb->s_imount=dir_i; + dir_i->i_mount=1; + dir_i->i_dirt=1; /* NOTE! we don't iput(dir_i) */ + return 0; /* we do that in umount */ +} + +void mount_root(void) +{ + int i,free; + struct super_block * p; + struct m_inode * mi; + + if (32 != sizeof (struct d_inode)) + panic("bad i-node size"); + for(i=0;is_dev = 0; + p->s_lock = 0; + p->s_wait = NULL; + } + if (!(p=read_super(ROOT_DEV))) + panic("Unable to mount root"); + if (!(mi=iget(ROOT_DEV,ROOT_INO))) + panic("Unable to read root i-node"); + mi->i_count += 3 ; /* NOTE! it is logically used 4 times, not 1 */ + p->s_isup = p->s_imount = mi; + current->pwd = mi; + current->root = mi; + free=0; + i=p->s_nzones; + while (-- i >= 0) + if (!set_bit(i&8191,p->s_zmap[i>>13]->b_data)) + free++; + printk("%d/%d free blocks\n\r",free,p->s_nzones); + free=0; + i=p->s_ninodes+1; + while (-- i >= 0) + if (!set_bit(i&8191,p->s_imap[i>>13]->b_data)) + free++; + printk("%d/%d free inodes\n\r",free,p->s_ninodes); +} diff --git a/linux-0.11-lab/0/linux/fs/super.o b/linux-0.11-lab/0/linux/fs/super.o new file mode 100644 index 0000000000000000000000000000000000000000..b551798da16bfa699c2dc2848c061720be0e1b2a GIT binary patch literal 12284 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 + +#include + +static void free_ind(int dev,int block) +{ + struct buffer_head * bh; + unsigned short * p; + int i; + + if (!block) + return; + if (bh=bread(dev,block)) { + p = (unsigned short *) bh->b_data; + for (i=0;i<512;i++,p++) + if (*p) + free_block(dev,*p); + brelse(bh); + } + free_block(dev,block); +} + +static void free_dind(int dev,int block) +{ + struct buffer_head * bh; + unsigned short * p; + int i; + + if (!block) + return; + if (bh=bread(dev,block)) { + p = (unsigned short *) bh->b_data; + for (i=0;i<512;i++,p++) + if (*p) + free_ind(dev,*p); + brelse(bh); + } + free_block(dev,block); +} + +void truncate(struct m_inode * inode) +{ + int i; + + if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))) + return; + for (i=0;i<7;i++) + if (inode->i_zone[i]) { + free_block(inode->i_dev,inode->i_zone[i]); + inode->i_zone[i]=0; + } + free_ind(inode->i_dev,inode->i_zone[7]); + free_dind(inode->i_dev,inode->i_zone[8]); + inode->i_zone[7] = inode->i_zone[8] = 0; + inode->i_size = 0; + inode->i_dirt = 1; + inode->i_mtime = inode->i_ctime = CURRENT_TIME; +} + diff --git a/linux-0.11-lab/0/linux/fs/truncate.o b/linux-0.11-lab/0/linux/fs/truncate.o new file mode 100644 index 0000000000000000000000000000000000000000..8975b924958105c719b40601717933b390dce7b0 GIT binary patch literal 6848 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 T&knY~U11EUL+(?^{YLp;_3Udb literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/include/a.out.h b/linux-0.11-lab/0/linux/include/a.out.h new file mode 100644 index 0000000..3e67974 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/a.out.h @@ -0,0 +1,220 @@ +#ifndef _A_OUT_H +#define _A_OUT_H + +#define __GNU_EXEC_MACROS__ + +struct exec { + unsigned long a_magic; /* Use macros N_MAGIC, etc for access */ + unsigned a_text; /* length of text, in bytes */ + unsigned a_data; /* length of data, in bytes */ + unsigned a_bss; /* length of uninitialized data area for file, in bytes */ + unsigned a_syms; /* length of symbol table data in file, in bytes */ + unsigned a_entry; /* start address */ + unsigned a_trsize; /* length of relocation info for text, in bytes */ + unsigned a_drsize; /* length of relocation info for data, in bytes */ +}; + +#ifndef N_MAGIC +#define N_MAGIC(exec) ((exec).a_magic) +#endif + +#ifndef OMAGIC +/* Code indicating object file or impure executable. */ +#define OMAGIC 0407 +/* Code indicating pure executable. */ +#define NMAGIC 0410 +/* Code indicating demand-paged executable. */ +#define ZMAGIC 0413 +#endif /* not OMAGIC */ + +#ifndef N_BADMAG +#define N_BADMAG(x) \ + (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \ + && N_MAGIC(x) != ZMAGIC) +#endif + +#define _N_BADMAG(x) \ + (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \ + && N_MAGIC(x) != ZMAGIC) + +#define _N_HDROFF(x) (SEGMENT_SIZE - sizeof (struct exec)) + +#ifndef N_TXTOFF +#define N_TXTOFF(x) \ + (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : sizeof (struct exec)) +#endif + +#ifndef N_DATOFF +#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text) +#endif + +#ifndef N_TRELOFF +#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data) +#endif + +#ifndef N_DRELOFF +#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize) +#endif + +#ifndef N_SYMOFF +#define N_SYMOFF(x) (N_DRELOFF(x) + (x).a_drsize) +#endif + +#ifndef N_STROFF +#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms) +#endif + +/* Address of text segment in memory after it is loaded. */ +#ifndef N_TXTADDR +#define N_TXTADDR(x) 0 +#endif + +/* Address of data segment in memory after it is loaded. + Note that it is up to you to define SEGMENT_SIZE + on machines not listed here. */ +#if defined(vax) || defined(hp300) || defined(pyr) +#define SEGMENT_SIZE PAGE_SIZE +#endif +#ifdef hp300 +#define PAGE_SIZE 4096 +#endif +#ifdef sony +#define SEGMENT_SIZE 0x2000 +#endif /* Sony. */ +#ifdef is68k +#define SEGMENT_SIZE 0x20000 +#endif +#if defined(m68k) && defined(PORTAR) +#define PAGE_SIZE 0x400 +#define SEGMENT_SIZE PAGE_SIZE +#endif + +#define PAGE_SIZE 4096 +#define SEGMENT_SIZE 1024 + +#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1)) + +#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text) + +#ifndef N_DATADDR +#define N_DATADDR(x) \ + (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \ + : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x)))) +#endif + +/* Address of bss segment in memory after it is loaded. */ +#ifndef N_BSSADDR +#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) +#endif + +#ifndef N_NLIST_DECLARED +struct nlist { + union { + char *n_name; + struct nlist *n_next; + long n_strx; + } n_un; + unsigned char n_type; + char n_other; + short n_desc; + unsigned long n_value; +}; +#endif + +#ifndef N_UNDF +#define N_UNDF 0 +#endif +#ifndef N_ABS +#define N_ABS 2 +#endif +#ifndef N_TEXT +#define N_TEXT 4 +#endif +#ifndef N_DATA +#define N_DATA 6 +#endif +#ifndef N_BSS +#define N_BSS 8 +#endif +#ifndef N_COMM +#define N_COMM 18 +#endif +#ifndef N_FN +#define N_FN 15 +#endif + +#ifndef N_EXT +#define N_EXT 1 +#endif +#ifndef N_TYPE +#define N_TYPE 036 +#endif +#ifndef N_STAB +#define N_STAB 0340 +#endif + +/* The following type indicates the definition of a symbol as being + an indirect reference to another symbol. The other symbol + appears as an undefined reference, immediately following this symbol. + + Indirection is asymmetrical. The other symbol's value will be used + to satisfy requests for the indirect symbol, but not vice versa. + If the other symbol does not have a definition, libraries will + be searched to find a definition. */ +#define N_INDR 0xa + +/* The following symbols refer to set elements. + All the N_SET[ATDB] symbols with the same name form one set. + Space is allocated for the set in the text section, and each set + element's value is stored into one word of the space. + The first word of the space is the length of the set (number of elements). + + The address of the set is made into an N_SETV symbol + whose name is the same as the name of the set. + This symbol acts like a N_DATA global symbol + in that it can satisfy undefined external references. */ + +/* These appear as input to LD, in a .o file. */ +#define N_SETA 0x14 /* Absolute set element symbol */ +#define N_SETT 0x16 /* Text set element symbol */ +#define N_SETD 0x18 /* Data set element symbol */ +#define N_SETB 0x1A /* Bss set element symbol */ + +/* This is output from LD. */ +#define N_SETV 0x1C /* Pointer to set vector in data area. */ + +#ifndef N_RELOCATION_INFO_DECLARED + +/* This structure describes a single relocation to be performed. + The text-relocation section of the file is a vector of these structures, + all of which apply to the text section. + Likewise, the data-relocation section applies to the data section. */ + +struct relocation_info +{ + /* Address (within segment) to be relocated. */ + int r_address; + /* The meaning of r_symbolnum depends on r_extern. */ + unsigned int r_symbolnum:24; + /* Nonzero means value is a pc-relative offset + and it should be relocated for changes in its own address + as well as for changes in the symbol or section specified. */ + unsigned int r_pcrel:1; + /* Length (as exponent of 2) of the field to be relocated. + Thus, a value of 2 indicates 1<<2 bytes. */ + unsigned int r_length:2; + /* 1 => relocate with value of symbol. + r_symbolnum is the index of the symbol + in file's the symbol table. + 0 => relocate with the address of a segment. + r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS + (the N_EXT bit may be set also, but signifies nothing). */ + unsigned int r_extern:1; + /* Four bits that aren't used, but when writing an object file + it is desirable to clear them. */ + unsigned int r_pad:4; +}; +#endif /* no N_RELOCATION_INFO_DECLARED. */ + + +#endif /* __A_OUT_GNU_H__ */ diff --git a/linux-0.11-lab/0/linux/include/asm/io.h b/linux-0.11-lab/0/linux/include/asm/io.h new file mode 100644 index 0000000..d5cc42a --- /dev/null +++ b/linux-0.11-lab/0/linux/include/asm/io.h @@ -0,0 +1,24 @@ +#define outb(value,port) \ +__asm__ ("outb %%al,%%dx"::"a" (value),"d" (port)) + + +#define inb(port) ({ \ +unsigned char _v; \ +__asm__ volatile ("inb %%dx,%%al":"=a" (_v):"d" (port)); \ +_v; \ +}) + +#define outb_p(value,port) \ +__asm__ ("outb %%al,%%dx\n" \ + "\tjmp 1f\n" \ + "1:\tjmp 1f\n" \ + "1:"::"a" (value),"d" (port)) + +#define inb_p(port) ({ \ +unsigned char _v; \ +__asm__ volatile ("inb %%dx,%%al\n" \ + "\tjmp 1f\n" \ + "1:\tjmp 1f\n" \ + "1:":"=a" (_v):"d" (port)); \ +_v; \ +}) diff --git a/linux-0.11-lab/0/linux/include/asm/memory.h b/linux-0.11-lab/0/linux/include/asm/memory.h new file mode 100644 index 0000000..51b69e7 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/asm/memory.h @@ -0,0 +1,15 @@ +/* + * NOTE!!! memcpy(dest,src,n) assumes ds=es=normal data segment. This + * goes for all kernel functions (ds=es=kernel space, fs=local data, + * gs=null), as well as for all well-behaving user programs (ds=es= + * user data space). This is NOT a bug, as any user program that changes + * es deserves to die if it isn't careful. + */ +#define memcpy(dest,src,n) ({ \ +void * _res = dest; \ +__asm__ ("cld;rep;movsb" \ + ::"D" ((long)(_res)),"S" ((long)(src)),"c" ((long) (n)) \ + ); \ +_res; \ +}) + diff --git a/linux-0.11-lab/0/linux/include/asm/segment.h b/linux-0.11-lab/0/linux/include/asm/segment.h new file mode 100644 index 0000000..94dd102 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/asm/segment.h @@ -0,0 +1,65 @@ +static inline unsigned char get_fs_byte(const char * addr) +{ + unsigned register char _v; + + __asm__ ("movb %%fs:%1,%0":"=r" (_v):"m" (*addr)); + return _v; +} + +static inline unsigned short get_fs_word(const unsigned short *addr) +{ + unsigned short _v; + + __asm__ ("movw %%fs:%1,%0":"=r" (_v):"m" (*addr)); + return _v; +} + +static inline unsigned long get_fs_long(const unsigned long *addr) +{ + unsigned long _v; + + __asm__ ("movl %%fs:%1,%0":"=r" (_v):"m" (*addr)); \ + return _v; +} + +static inline void put_fs_byte(char val,char *addr) +{ +__asm__ ("movb %0,%%fs:%1"::"r" (val),"m" (*addr)); +} + +static inline void put_fs_word(short val,short * addr) +{ +__asm__ ("movw %0,%%fs:%1"::"r" (val),"m" (*addr)); +} + +static inline void put_fs_long(unsigned long val,unsigned long * addr) +{ +__asm__ ("movl %0,%%fs:%1"::"r" (val),"m" (*addr)); +} + +/* + * Someone who knows GNU asm better than I should double check the followig. + * It seems to work, but I don't know if I'm doing something subtly wrong. + * --- TYT, 11/24/91 + * [ nothing wrong here, Linus ] + */ + +static inline unsigned long get_fs() +{ + unsigned short _v; + __asm__("mov %%fs,%%ax":"=a" (_v):); + return _v; +} + +static inline unsigned long get_ds() +{ + unsigned short _v; + __asm__("mov %%ds,%%ax":"=a" (_v):); + return _v; +} + +static inline void set_fs(unsigned long val) +{ + __asm__("mov %0,%%fs"::"a" ((unsigned short) val)); +} + diff --git a/linux-0.11-lab/0/linux/include/asm/system.h b/linux-0.11-lab/0/linux/include/asm/system.h new file mode 100644 index 0000000..0b5a21d --- /dev/null +++ b/linux-0.11-lab/0/linux/include/asm/system.h @@ -0,0 +1,66 @@ +#define move_to_user_mode() \ +__asm__ ("movl %%esp,%%eax\n\t" \ + "pushl $0x17\n\t" \ + "pushl %%eax\n\t" \ + "pushfl\n\t" \ + "pushl $0x0f\n\t" \ + "pushl $1f\n\t" \ + "iret\n" \ + "1:\tmovl $0x17,%%eax\n\t" \ + "movw %%ax,%%ds\n\t" \ + "movw %%ax,%%es\n\t" \ + "movw %%ax,%%fs\n\t" \ + "movw %%ax,%%gs" \ + :::"ax") + +#define sti() __asm__ ("sti"::) +#define cli() __asm__ ("cli"::) +#define nop() __asm__ ("nop"::) + +#define iret() __asm__ ("iret"::) + +#define _set_gate(gate_addr,type,dpl,addr) \ +__asm__ ("movw %%dx,%%ax\n\t" \ + "movw %0,%%dx\n\t" \ + "movl %%eax,%1\n\t" \ + "movl %%edx,%2" \ + : \ + : "i" ((short) (0x8000+(dpl<<13)+(type<<8))), \ + "o" (*((char *) (gate_addr))), \ + "o" (*(4+(char *) (gate_addr))), \ + "d" ((char *) (addr)),"a" (0x00080000)) + +#define set_intr_gate(n,addr) \ + _set_gate(&idt[n],14,0,addr) + +#define set_trap_gate(n,addr) \ + _set_gate(&idt[n],15,0,addr) + +#define set_system_gate(n,addr) \ + _set_gate(&idt[n],15,3,addr) + +#define _set_seg_desc(gate_addr,type,dpl,base,limit) {\ + *(gate_addr) = ((base) & 0xff000000) | \ + (((base) & 0x00ff0000)>>16) | \ + ((limit) & 0xf0000) | \ + ((dpl)<<13) | \ + (0x00408000) | \ + ((type)<<8); \ + *((gate_addr)+1) = (((base) & 0x0000ffff)<<16) | \ + ((limit) & 0x0ffff); } + +#define _set_tssldt_desc(n,addr,type) \ +__asm__ ("movw $104,%1\n\t" \ + "movw %%ax,%2\n\t" \ + "rorl $16,%%eax\n\t" \ + "movb %%al,%3\n\t" \ + "movb $" type ",%4\n\t" \ + "movb $0x00,%5\n\t" \ + "movb %%ah,%6\n\t" \ + "rorl $16,%%eax" \ + ::"a" (addr), "m" (*(n)), "m" (*(n+2)), "m" (*(n+4)), \ + "m" (*(n+5)), "m" (*(n+6)), "m" (*(n+7)) \ + ) + +#define set_tss_desc(n,addr) _set_tssldt_desc(((char *) (n)),addr,"0x89") +#define set_ldt_desc(n,addr) _set_tssldt_desc(((char *) (n)),addr,"0x82") diff --git a/linux-0.11-lab/0/linux/include/const.h b/linux-0.11-lab/0/linux/include/const.h new file mode 100644 index 0000000..7828e61 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/const.h @@ -0,0 +1,15 @@ +#ifndef _CONST_H +#define _CONST_H + +#define BUFFER_END 0x200000 + +#define I_TYPE 0170000 +#define I_DIRECTORY 0040000 +#define I_REGULAR 0100000 +#define I_BLOCK_SPECIAL 0060000 +#define I_CHAR_SPECIAL 0020000 +#define I_NAMED_PIPE 0010000 +#define I_SET_UID_BIT 0004000 +#define I_SET_GID_BIT 0002000 + +#endif diff --git a/linux-0.11-lab/0/linux/include/ctype.h b/linux-0.11-lab/0/linux/include/ctype.h new file mode 100644 index 0000000..7acf55d --- /dev/null +++ b/linux-0.11-lab/0/linux/include/ctype.h @@ -0,0 +1,34 @@ +#ifndef _CTYPE_H +#define _CTYPE_H + +#define _U 0x01 /* upper */ +#define _L 0x02 /* lower */ +#define _D 0x04 /* digit */ +#define _C 0x08 /* cntrl */ +#define _P 0x10 /* punct */ +#define _S 0x20 /* white space (space/lf/tab) */ +#define _X 0x40 /* hex digit */ +#define _SP 0x80 /* hard space (0x20) */ + +extern unsigned char _ctype[]; +extern char _ctmp; + +#define isalnum(c) ((_ctype+1)[c]&(_U|_L|_D)) +#define isalpha(c) ((_ctype+1)[c]&(_U|_L)) +#define iscntrl(c) ((_ctype+1)[c]&(_C)) +#define isdigit(c) ((_ctype+1)[c]&(_D)) +#define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_D)) +#define islower(c) ((_ctype+1)[c]&(_L)) +#define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_D|_SP)) +#define ispunct(c) ((_ctype+1)[c]&(_P)) +#define isspace(c) ((_ctype+1)[c]&(_S)) +#define isupper(c) ((_ctype+1)[c]&(_U)) +#define isxdigit(c) ((_ctype+1)[c]&(_D|_X)) + +#define isascii(c) (((unsigned) c)<=0x7f) +#define toascii(c) (((unsigned) c)&0x7f) + +#define tolower(c) (_ctmp=c,isupper(_ctmp)?_ctmp-('A'-'a'):_ctmp) +#define toupper(c) (_ctmp=c,islower(_ctmp)?_ctmp-('a'-'A'):_ctmp) + +#endif diff --git a/linux-0.11-lab/0/linux/include/errno.h b/linux-0.11-lab/0/linux/include/errno.h new file mode 100644 index 0000000..c282f69 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/errno.h @@ -0,0 +1,60 @@ +#ifndef _ERRNO_H +#define _ERRNO_H + +/* + * ok, as I hadn't got any other source of information about + * possible error numbers, I was forced to use the same numbers + * as minix. + * Hopefully these are posix or something. I wouldn't know (and posix + * isn't telling me - they want $$$ for their f***ing standard). + * + * We don't use the _SIGN cludge of minix, so kernel returns must + * see to the sign by themselves. + * + * NOTE! Remember to change strerror() if you change this file! + */ + +extern int errno; + +#define ERROR 99 +#define EPERM 1 +#define ENOENT 2 +#define ESRCH 3 +#define EINTR 4 +#define EIO 5 +#define ENXIO 6 +#define E2BIG 7 +#define ENOEXEC 8 +#define EBADF 9 +#define ECHILD 10 +#define EAGAIN 11 +#define ENOMEM 12 +#define EACCES 13 +#define EFAULT 14 +#define ENOTBLK 15 +#define EBUSY 16 +#define EEXIST 17 +#define EXDEV 18 +#define ENODEV 19 +#define ENOTDIR 20 +#define EISDIR 21 +#define EINVAL 22 +#define ENFILE 23 +#define EMFILE 24 +#define ENOTTY 25 +#define ETXTBSY 26 +#define EFBIG 27 +#define ENOSPC 28 +#define ESPIPE 29 +#define EROFS 30 +#define EMLINK 31 +#define EPIPE 32 +#define EDOM 33 +#define ERANGE 34 +#define EDEADLK 35 +#define ENAMETOOLONG 36 +#define ENOLCK 37 +#define ENOSYS 38 +#define ENOTEMPTY 39 + +#endif diff --git a/linux-0.11-lab/0/linux/include/fcntl.h b/linux-0.11-lab/0/linux/include/fcntl.h new file mode 100644 index 0000000..a5bf9af --- /dev/null +++ b/linux-0.11-lab/0/linux/include/fcntl.h @@ -0,0 +1,55 @@ +#ifndef _FCNTL_H +#define _FCNTL_H + +#include + +/* open/fcntl - NOCTTY, NDELAY isn't implemented yet */ +#define O_ACCMODE 00003 +#define O_RDONLY 00 +#define O_WRONLY 01 +#define O_RDWR 02 +#define O_CREAT 00100 /* not fcntl */ +#define O_EXCL 00200 /* not fcntl */ +#define O_NOCTTY 00400 /* not fcntl */ +#define O_TRUNC 01000 /* not fcntl */ +#define O_APPEND 02000 +#define O_NONBLOCK 04000 /* not fcntl */ +#define O_NDELAY O_NONBLOCK + +/* Defines for fcntl-commands. Note that currently + * locking isn't supported, and other things aren't really + * tested. + */ +#define F_DUPFD 0 /* dup */ +#define F_GETFD 1 /* get f_flags */ +#define F_SETFD 2 /* set f_flags */ +#define F_GETFL 3 /* more flags (cloexec) */ +#define F_SETFL 4 +#define F_GETLK 5 /* not implemented */ +#define F_SETLK 6 +#define F_SETLKW 7 + +/* for F_[GET|SET]FL */ +#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ + +/* Ok, these are locking features, and aren't implemented at any + * level. POSIX wants them. + */ +#define F_RDLCK 0 +#define F_WRLCK 1 +#define F_UNLCK 2 + +/* Once again - not implemented, but ... */ +struct flock { + short l_type; + short l_whence; + off_t l_start; + off_t l_len; + pid_t l_pid; +}; + +extern int creat(const char * filename,mode_t mode); +extern int fcntl(int fildes,int cmd, ...); +extern int open(const char * filename, int flags, ...); + +#endif diff --git a/linux-0.11-lab/0/linux/include/linux/config.h b/linux-0.11-lab/0/linux/include/linux/config.h new file mode 100644 index 0000000..c979fb3 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/config.h @@ -0,0 +1,48 @@ +#ifndef _CONFIG_H +#define _CONFIG_H + +/* + * The root-device is no longer hard-coded. You can change the default + * root-device by changing the line ROOT_DEV = XXX in boot/bootsect.s + */ + +/* + * define your keyboard here - + * KBD_FINNISH for Finnish keyboards + * KBD_US for US-type + * KBD_GR for German keyboards + * KBD_FR for Frech keyboard + */ +#define KBD_US +/*#define KBD_GR */ +/*#define KBD_FR */ +/*#define KBD_FINNISH */ + +/* + * Normally, Linux can get the drive parameters from the BIOS at + * startup, but if this for some unfathomable reason fails, you'd + * be left stranded. For this case, you can define HD_TYPE, which + * contains all necessary info on your harddisk. + * + * The HD_TYPE macro should look like this: + * + * #define HD_TYPE { head, sect, cyl, wpcom, lzone, ctl} + * + * In case of two harddisks, the info should be sepatated by + * commas: + * + * #define HD_TYPE { h,s,c,wpcom,lz,ctl },{ h,s,c,wpcom,lz,ctl } + */ +/* + This is an example, two drives, first is type 2, second is type 3: + +#define HD_TYPE { 4,17,615,300,615,8 }, { 6,17,615,300,615,0 } + + NOTE: ctl is 0 for all drives with heads<=8, and ctl=8 for drives + with more than 8 heads. + + If you want the BIOS to tell what kind of drive you have, just + leave HD_TYPE undefined. This is the normal thing to do. +*/ + +#endif diff --git a/linux-0.11-lab/0/linux/include/linux/fdreg.h b/linux-0.11-lab/0/linux/include/linux/fdreg.h new file mode 100644 index 0000000..01355af --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/fdreg.h @@ -0,0 +1,71 @@ +/* + * This file contains some defines for the floppy disk controller. + * Various sources. Mostly "IBM Microcomputers: A Programmers + * Handbook", Sanches and Canton. + */ +#ifndef _FDREG_H +#define _FDREG_H + +extern int ticks_to_floppy_on(unsigned int nr); +extern void floppy_on(unsigned int nr); +extern void floppy_off(unsigned int nr); +extern void floppy_select(unsigned int nr); +extern void floppy_deselect(unsigned int nr); + +/* Fd controller regs. S&C, about page 340 */ +#define FD_STATUS 0x3f4 +#define FD_DATA 0x3f5 +#define FD_DOR 0x3f2 /* Digital Output Register */ +#define FD_DIR 0x3f7 /* Digital Input Register (read) */ +#define FD_DCR 0x3f7 /* Diskette Control Register (write)*/ + +/* Bits of main status register */ +#define STATUS_BUSYMASK 0x0F /* drive busy mask */ +#define STATUS_BUSY 0x10 /* FDC busy */ +#define STATUS_DMA 0x20 /* 0- DMA mode */ +#define STATUS_DIR 0x40 /* 0- cpu->fdc */ +#define STATUS_READY 0x80 /* Data reg ready */ + +/* Bits of FD_ST0 */ +#define ST0_DS 0x03 /* drive select mask */ +#define ST0_HA 0x04 /* Head (Address) */ +#define ST0_NR 0x08 /* Not Ready */ +#define ST0_ECE 0x10 /* Equipment chech error */ +#define ST0_SE 0x20 /* Seek end */ +#define ST0_INTR 0xC0 /* Interrupt code mask */ + +/* Bits of FD_ST1 */ +#define ST1_MAM 0x01 /* Missing Address Mark */ +#define ST1_WP 0x02 /* Write Protect */ +#define ST1_ND 0x04 /* No Data - unreadable */ +#define ST1_OR 0x10 /* OverRun */ +#define ST1_CRC 0x20 /* CRC error in data or addr */ +#define ST1_EOC 0x80 /* End Of Cylinder */ + +/* Bits of FD_ST2 */ +#define ST2_MAM 0x01 /* Missing Addess Mark (again) */ +#define ST2_BC 0x02 /* Bad Cylinder */ +#define ST2_SNS 0x04 /* Scan Not Satisfied */ +#define ST2_SEH 0x08 /* Scan Equal Hit */ +#define ST2_WC 0x10 /* Wrong Cylinder */ +#define ST2_CRC 0x20 /* CRC error in data field */ +#define ST2_CM 0x40 /* Control Mark = deleted */ + +/* Bits of FD_ST3 */ +#define ST3_HA 0x04 /* Head (Address) */ +#define ST3_TZ 0x10 /* Track Zero signal (1=track 0) */ +#define ST3_WP 0x40 /* Write Protect */ + +/* Values for FD_COMMAND */ +#define FD_RECALIBRATE 0x07 /* move to track 0 */ +#define FD_SEEK 0x0F /* seek track */ +#define FD_READ 0xE6 /* read with MT, MFM, SKip deleted */ +#define FD_WRITE 0xC5 /* write with MT, MFM */ +#define FD_SENSEI 0x08 /* Sense Interrupt Status */ +#define FD_SPECIFY 0x03 /* specify HUT etc */ + +/* DMA commands */ +#define DMA_READ 0x46 +#define DMA_WRITE 0x4A + +#endif diff --git a/linux-0.11-lab/0/linux/include/linux/fs.h b/linux-0.11-lab/0/linux/include/linux/fs.h new file mode 100644 index 0000000..7a90b10 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/fs.h @@ -0,0 +1,202 @@ +/* + * This file has definitions for some important file table + * structures etc. + */ + +#ifndef _FS_H +#define _FS_H + +#include + +/* devices are as follows: (same as minix, so we can use the minix + * file system. These are major numbers.) + * + * 0 - unused (nodev) + * 1 - /dev/mem + * 2 - /dev/fd + * 3 - /dev/hd + * 4 - /dev/ttyx + * 5 - /dev/tty + * 6 - /dev/lp + * 7 - unnamed pipes + */ + +#define IS_SEEKABLE(x) ((x)>=1 && (x)<=3) + +#define READ 0 +#define WRITE 1 +#define READA 2 /* read-ahead - don't pause */ +#define WRITEA 3 /* "write-ahead" - silly, but somewhat useful */ + +void buffer_init(long buffer_end); + +#define MAJOR(a) (((unsigned)(a))>>8) +#define MINOR(a) ((a)&0xff) + +#define NAME_LEN 14 +#define ROOT_INO 1 + +#define I_MAP_SLOTS 8 +#define Z_MAP_SLOTS 8 +#define SUPER_MAGIC 0x137F + +#define NR_OPEN 20 +#define NR_INODE 32 +#define NR_FILE 64 +#define NR_SUPER 8 +#define NR_HASH 307 +#define NR_BUFFERS nr_buffers +#define BLOCK_SIZE 1024 +#define BLOCK_SIZE_BITS 10 +#ifndef NULL +#define NULL ((void *) 0) +#endif + +#define INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct d_inode))) +#define DIR_ENTRIES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct dir_entry))) + +#define PIPE_HEAD(inode) ((inode).i_zone[0]) +#define PIPE_TAIL(inode) ((inode).i_zone[1]) +#define PIPE_SIZE(inode) ((PIPE_HEAD(inode)-PIPE_TAIL(inode))&(PAGE_SIZE-1)) +#define PIPE_EMPTY(inode) (PIPE_HEAD(inode)==PIPE_TAIL(inode)) +#define PIPE_FULL(inode) (PIPE_SIZE(inode)==(PAGE_SIZE-1)) +#define INC_PIPE(head) \ +__asm__("incl %0\n\tandl $4095,%0"::"m" (head)) + +typedef char buffer_block[BLOCK_SIZE]; + +struct buffer_head { + char * b_data; /* pointer to data block (1024 bytes) */ + unsigned long b_blocknr; /* block number */ + unsigned short b_dev; /* device (0 = free) */ + unsigned char b_uptodate; + unsigned char b_dirt; /* 0-clean,1-dirty */ + unsigned char b_count; /* users using this block */ + unsigned char b_lock; /* 0 - ok, 1 -locked */ + struct task_struct * b_wait; + struct buffer_head * b_prev; + struct buffer_head * b_next; + struct buffer_head * b_prev_free; + struct buffer_head * b_next_free; +}; + +struct d_inode { + unsigned short i_mode; + unsigned short i_uid; + unsigned long i_size; + unsigned long i_time; + unsigned char i_gid; + unsigned char i_nlinks; + unsigned short i_zone[9]; +}; + +struct m_inode { + unsigned short i_mode; + unsigned short i_uid; + unsigned long i_size; + unsigned long i_mtime; + unsigned char i_gid; + unsigned char i_nlinks; + unsigned short i_zone[9]; +/* these are in memory also */ + struct task_struct * i_wait; + unsigned long i_atime; + unsigned long i_ctime; + unsigned short i_dev; + unsigned short i_num; + unsigned short i_count; + unsigned char i_lock; + unsigned char i_dirt; + unsigned char i_pipe; + unsigned char i_mount; + unsigned char i_seek; + unsigned char i_update; +}; + +struct file { + unsigned short f_mode; + unsigned short f_flags; + unsigned short f_count; + struct m_inode * f_inode; + off_t f_pos; +}; + +struct super_block { + unsigned short s_ninodes; + unsigned short s_nzones; + unsigned short s_imap_blocks; + unsigned short s_zmap_blocks; + unsigned short s_firstdatazone; + unsigned short s_log_zone_size; + unsigned long s_max_size; + unsigned short s_magic; +/* These are only in memory */ + struct buffer_head * s_imap[8]; + struct buffer_head * s_zmap[8]; + unsigned short s_dev; + struct m_inode * s_isup; + struct m_inode * s_imount; + unsigned long s_time; + struct task_struct * s_wait; + unsigned char s_lock; + unsigned char s_rd_only; + unsigned char s_dirt; +}; + +struct d_super_block { + unsigned short s_ninodes; + unsigned short s_nzones; + unsigned short s_imap_blocks; + unsigned short s_zmap_blocks; + unsigned short s_firstdatazone; + unsigned short s_log_zone_size; + unsigned long s_max_size; + unsigned short s_magic; +}; + +struct dir_entry { + unsigned short inode; + char name[NAME_LEN]; +}; + +extern struct m_inode inode_table[NR_INODE]; +extern struct file file_table[NR_FILE]; +extern struct super_block super_block[NR_SUPER]; +extern struct buffer_head * start_buffer; +extern int nr_buffers; + +extern void check_disk_change(int dev); +extern int floppy_change(unsigned int nr); +extern int ticks_to_floppy_on(unsigned int dev); +extern void floppy_on(unsigned int dev); +extern void floppy_off(unsigned int dev); +extern void truncate(struct m_inode * inode); +extern void sync_inodes(void); +extern void wait_on(struct m_inode * inode); +extern int bmap(struct m_inode * inode,int block); +extern int create_block(struct m_inode * inode,int block); +extern struct m_inode * namei(const char * pathname); +extern int open_namei(const char * pathname, int flag, int mode, + struct m_inode ** res_inode); +extern void iput(struct m_inode * inode); +extern struct m_inode * iget(int dev,int nr); +extern struct m_inode * get_empty_inode(void); +extern struct m_inode * get_pipe_inode(void); +extern struct buffer_head * get_hash_table(int dev, int block); +extern struct buffer_head * getblk(int dev, int block); +extern void ll_rw_block(int rw, struct buffer_head * bh); +extern void brelse(struct buffer_head * buf); +extern struct buffer_head * bread(int dev,int block); +extern void bread_page(unsigned long addr,int dev,int b[4]); +extern struct buffer_head * breada(int dev,int block,...); +extern int new_block(int dev); +extern void free_block(int dev, int block); +extern struct m_inode * new_inode(int dev); +extern void free_inode(struct m_inode * inode); +extern int sync_dev(int dev); +extern struct super_block * get_super(int dev); +extern int ROOT_DEV; + +extern void mount_root(void); + +#endif diff --git a/linux-0.11-lab/0/linux/include/linux/hdreg.h b/linux-0.11-lab/0/linux/include/linux/hdreg.h new file mode 100644 index 0000000..e6c593f --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/hdreg.h @@ -0,0 +1,65 @@ +/* + * This file contains some defines for the AT-hd-controller. + * Various sources. Check out some definitions (see comments with + * a ques). + */ +#ifndef _HDREG_H +#define _HDREG_H + +/* Hd controller regs. Ref: IBM AT Bios-listing */ +#define HD_DATA 0x1f0 /* _CTL when writing */ +#define HD_ERROR 0x1f1 /* see err-bits */ +#define HD_NSECTOR 0x1f2 /* nr of sectors to read/write */ +#define HD_SECTOR 0x1f3 /* starting sector */ +#define HD_LCYL 0x1f4 /* starting cylinder */ +#define HD_HCYL 0x1f5 /* high byte of starting cyl */ +#define HD_CURRENT 0x1f6 /* 101dhhhh , d=drive, hhhh=head */ +#define HD_STATUS 0x1f7 /* see status-bits */ +#define HD_PRECOMP HD_ERROR /* same io address, read=error, write=precomp */ +#define HD_COMMAND HD_STATUS /* same io address, read=status, write=cmd */ + +#define HD_CMD 0x3f6 + +/* Bits of HD_STATUS */ +#define ERR_STAT 0x01 +#define INDEX_STAT 0x02 +#define ECC_STAT 0x04 /* Corrected error */ +#define DRQ_STAT 0x08 +#define SEEK_STAT 0x10 +#define WRERR_STAT 0x20 +#define READY_STAT 0x40 +#define BUSY_STAT 0x80 + +/* Values for HD_COMMAND */ +#define WIN_RESTORE 0x10 +#define WIN_READ 0x20 +#define WIN_WRITE 0x30 +#define WIN_VERIFY 0x40 +#define WIN_FORMAT 0x50 +#define WIN_INIT 0x60 +#define WIN_SEEK 0x70 +#define WIN_DIAGNOSE 0x90 +#define WIN_SPECIFY 0x91 + +/* Bits for HD_ERROR */ +#define MARK_ERR 0x01 /* Bad address mark ? */ +#define TRK0_ERR 0x02 /* couldn't find track 0 */ +#define ABRT_ERR 0x04 /* ? */ +#define ID_ERR 0x10 /* ? */ +#define ECC_ERR 0x40 /* ? */ +#define BBD_ERR 0x80 /* ? */ + +struct partition { + unsigned char boot_ind; /* 0x80 - active (unused) */ + unsigned char head; /* ? */ + unsigned char sector; /* ? */ + unsigned char cyl; /* ? */ + unsigned char sys_ind; /* ? */ + unsigned char end_head; /* ? */ + unsigned char end_sector; /* ? */ + unsigned char end_cyl; /* ? */ + unsigned int start_sect; /* starting sector counting from 0 */ + unsigned int nr_sects; /* nr of sectors in partition */ +}; + +#endif diff --git a/linux-0.11-lab/0/linux/include/linux/head.h b/linux-0.11-lab/0/linux/include/linux/head.h new file mode 100644 index 0000000..db3dda2 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/head.h @@ -0,0 +1,20 @@ +#ifndef _HEAD_H +#define _HEAD_H + +typedef struct desc_struct { + unsigned long a,b; +} desc_table[256]; + +extern unsigned long pg_dir[1024]; +extern desc_table idt,gdt; + +#define GDT_NUL 0 +#define GDT_CODE 1 +#define GDT_DATA 2 +#define GDT_TMP 3 + +#define LDT_NUL 0 +#define LDT_CODE 1 +#define LDT_DATA 2 + +#endif diff --git a/linux-0.11-lab/0/linux/include/linux/kernel.h b/linux-0.11-lab/0/linux/include/linux/kernel.h new file mode 100644 index 0000000..cb40dd5 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/kernel.h @@ -0,0 +1,22 @@ +/* + * 'kernel.h' contains some often-used function prototypes etc + */ +void verify_area(void * addr,int count); +volatile void panic(const char * str); +int printf(const char * fmt, ...); +int printk(const char * fmt, ...); +int tty_write(unsigned ch,char * buf,int count); +void * malloc(unsigned int size); +void free_s(void * obj, int size); + +#define free(x) free_s((x), 0) + +/* + * This is defined as a macro, but at some point this might become a + * real subroutine that sets a flag if it returns true (to do + * BSD-style accounting where the process is flagged if it uses root + * privs). The implication of this is that you should do normal + * permissions checks first, and check suser() last. + */ +#define suser() (current->euid == 0) + diff --git a/linux-0.11-lab/0/linux/include/linux/mm.h b/linux-0.11-lab/0/linux/include/linux/mm.h new file mode 100644 index 0000000..5a160f3 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/mm.h @@ -0,0 +1,10 @@ +#ifndef _MM_H +#define _MM_H + +#define PAGE_SIZE 4096 + +extern unsigned long get_free_page(void); +extern unsigned long put_page(unsigned long page,unsigned long address); +extern void free_page(unsigned long addr); + +#endif diff --git a/linux-0.11-lab/0/linux/include/linux/sched.h b/linux-0.11-lab/0/linux/include/linux/sched.h new file mode 100644 index 0000000..772646a --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/sched.h @@ -0,0 +1,239 @@ +#ifndef _SCHED_H +#define _SCHED_H + +#define NR_TASKS 64 +#define HZ 100 + +#define FIRST_TASK task[0] +#define LAST_TASK task[NR_TASKS-1] + +#include +#include +#include +#include + +#if (NR_OPEN > 32) +#error "Currently the close-on-exec-flags are in one word, max 32 files/proc" +#endif + +#define TASK_RUNNING 0 +#define TASK_INTERRUPTIBLE 1 +#define TASK_UNINTERRUPTIBLE 2 +#define TASK_ZOMBIE 3 +#define TASK_STOPPED 4 + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +extern int copy_page_tables(unsigned long from, unsigned long to, long size); +extern int free_page_tables(unsigned long from, unsigned long size); + +extern void sched_init(void); +extern void schedule(void); +extern void trap_init(void); +extern void panic(const char * str); +extern int tty_write(unsigned minor,char * buf,int count); + +typedef int (*fn_ptr)(); + +struct i387_struct { + long cwd; + long swd; + long twd; + long fip; + long fcs; + long foo; + long fos; + long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ +}; + +struct tss_struct { + long back_link; /* 16 high bits zero */ + long esp0; + long ss0; /* 16 high bits zero */ + long esp1; + long ss1; /* 16 high bits zero */ + long esp2; + long ss2; /* 16 high bits zero */ + long cr3; + long eip; + long eflags; + long eax,ecx,edx,ebx; + long esp; + long ebp; + long esi; + long edi; + long es; /* 16 high bits zero */ + long cs; /* 16 high bits zero */ + long ss; /* 16 high bits zero */ + long ds; /* 16 high bits zero */ + long fs; /* 16 high bits zero */ + long gs; /* 16 high bits zero */ + long ldt; /* 16 high bits zero */ + long trace_bitmap; /* bits: trace 0, bitmap 16-31 */ + struct i387_struct i387; +}; + +struct task_struct { +/* these are hardcoded - don't touch */ + long state; /* -1 unrunnable, 0 runnable, >0 stopped */ + long counter; + long priority; + long signal; + struct sigaction sigaction[32]; + long blocked; /* bitmap of masked signals */ +/* various fields */ + int exit_code; + unsigned long start_code,end_code,end_data,brk,start_stack; + long pid,father,pgrp,session,leader; + unsigned short uid,euid,suid; + unsigned short gid,egid,sgid; + long alarm; + long utime,stime,cutime,cstime,start_time; + unsigned short used_math; +/* file system info */ + int tty; /* -1 if no tty, so it must be signed */ + unsigned short umask; + struct m_inode * pwd; + struct m_inode * root; + struct m_inode * executable; + unsigned long close_on_exec; + struct file * filp[NR_OPEN]; +/* ldt for this task 0 - zero 1 - cs 2 - ds&ss */ + struct desc_struct ldt[3]; +/* tss for this task */ + struct tss_struct tss; +}; + +/* + * INIT_TASK is used to set up the first task table, touch at + * your own risk!. Base=0, limit=0x9ffff (=640kB) + */ +#define INIT_TASK \ +/* state etc */ { 0,15,15, \ +/* signals */ 0,{{},},0, \ +/* ec,brk... */ 0,0,0,0,0,0, \ +/* pid etc.. */ 0,-1,0,0,0, \ +/* uid etc */ 0,0,0,0,0,0, \ +/* alarm */ 0,0,0,0,0,0, \ +/* math */ 0, \ +/* fs info */ -1,0022,NULL,NULL,NULL,0, \ +/* filp */ {NULL,}, \ + { \ + {0,0}, \ +/* ldt */ {0x9f,0xc0fa00}, \ + {0x9f,0xc0f200}, \ + }, \ +/*tss*/ {0,PAGE_SIZE+(long)&init_task,0x10,0,0,0,0,(long)&pg_dir,\ + 0,0,0,0,0,0,0,0, \ + 0,0,0x17,0x17,0x17,0x17,0x17,0x17, \ + _LDT(0),0x80000000, \ + {} \ + }, \ +} + +extern struct task_struct *task[NR_TASKS]; +extern struct task_struct *last_task_used_math; +extern struct task_struct *current; +extern long volatile jiffies; +extern long startup_time; + +#define CURRENT_TIME (startup_time+jiffies/HZ) + +extern void add_timer(long jiffies, void (*fn)(void)); +extern void sleep_on(struct task_struct ** p); +extern void interruptible_sleep_on(struct task_struct ** p); +extern void wake_up(struct task_struct ** p); + +/* + * Entry into gdt where to find first TSS. 0-nul, 1-cs, 2-ds, 3-syscall + * 4-TSS0, 5-LDT0, 6-TSS1 etc ... + */ +#define FIRST_TSS_ENTRY 4 +#define FIRST_LDT_ENTRY (FIRST_TSS_ENTRY+1) +#define _TSS(n) ((((unsigned long) n)<<4)+(FIRST_TSS_ENTRY<<3)) +#define _LDT(n) ((((unsigned long) n)<<4)+(FIRST_LDT_ENTRY<<3)) +#define ltr(n) __asm__("ltr %%ax"::"a" (_TSS(n))) +#define lldt(n) __asm__("lldt %%ax"::"a" (_LDT(n))) +#define str(n) \ +__asm__("str %%ax\n\t" \ + "subl %2,%%eax\n\t" \ + "shrl $4,%%eax" \ + :"=a" (n) \ + :"a" (0),"i" (FIRST_TSS_ENTRY<<3)) +/* + * switch_to(n) should switch tasks to task nr n, first + * checking that n isn't the current task, in which case it does nothing. + * This also clears the TS-flag if the task we switched to has used + * tha math co-processor latest. + */ +#define switch_to(n) {\ +struct {long a,b;} __tmp; \ +__asm__("cmpl %%ecx,current\n\t" \ + "je 1f\n\t" \ + "movw %%dx,%1\n\t" \ + "xchgl %%ecx,current\n\t" \ + "ljmp *%0\n\t" \ + "cmpl %%ecx,last_task_used_math\n\t" \ + "jne 1f\n\t" \ + "clts\n" \ + "1:" \ + ::"m" (*&__tmp.a),"m" (*&__tmp.b), \ + "d" (_TSS(n)),"c" ((long) task[n])); \ +} + +#define PAGE_ALIGN(n) (((n)+0xfff)&0xfffff000) + +#define _set_base(addr,base) \ +__asm__ ("push %%edx\n\t" \ + "movw %%dx,%0\n\t" \ + "rorl $16,%%edx\n\t" \ + "movb %%dl,%1\n\t" \ + "movb %%dh,%2\n\t" \ + "pop %%edx" \ + ::"m" (*((addr)+2)), \ + "m" (*((addr)+4)), \ + "m" (*((addr)+7)), \ + "d" (base) \ + ) + +#define _set_limit(addr,limit) \ +__asm__ ("push %%edx\n\t" \ + "movw %%dx,%0\n\t" \ + "rorl $16,%%edx\n\t" \ + "movb %1,%%dh\n\t" \ + "andb $0xf0,%%dh\n\t" \ + "orb %%dh,%%dl\n\t" \ + "movb %%dl,%1\n\t" \ + "pop %%edx" \ + ::"m" (*(addr)), \ + "m" (*((addr)+6)), \ + "d" (limit) \ + ) + +#define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) ) +#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , (limit-1)>>12 ) + +static inline unsigned long _get_base(char * addr) +{ + unsigned long __base; + __asm__("movb %3,%%dh\n\t" + "movb %2,%%dl\n\t" + "shll $16,%%edx\n\t" + "movw %1,%%dx" + :"=&d" (__base) + :"m" (*((addr)+2)), + "m" (*((addr)+4)), + "m" (*((addr)+7))); + return __base; +} + +#define get_base(ldt) _get_base( ((char *)&(ldt)) ) + +#define get_limit(segment) ({ \ +unsigned long __limit; \ +__asm__("lsll %1,%0\n\tincl %0":"=r" (__limit):"r" (segment)); \ +__limit;}) + +#endif diff --git a/linux-0.11-lab/0/linux/include/linux/sys.h b/linux-0.11-lab/0/linux/include/linux/sys.h new file mode 100644 index 0000000..2d652d5 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/sys.h @@ -0,0 +1,115 @@ +/* + * Why isn't this a .c file? Enquiring minds.... + */ + +extern int sys_setup(); +extern int sys_exit(); +extern int sys_fork(); +extern int sys_read(); +extern int sys_write(); +extern int sys_open(); +extern int sys_close(); +extern int sys_waitpid(); +extern int sys_creat(); +extern int sys_link(); +extern int sys_unlink(); +extern int sys_execve(); +extern int sys_chdir(); +extern int sys_time(); +extern int sys_mknod(); +extern int sys_chmod(); +extern int sys_chown(); +extern int sys_break(); +extern int sys_stat(); +extern int sys_lseek(); +extern int sys_getpid(); +extern int sys_mount(); +extern int sys_umount(); +extern int sys_setuid(); +extern int sys_getuid(); +extern int sys_stime(); +extern int sys_ptrace(); +extern int sys_alarm(); +extern int sys_fstat(); +extern int sys_pause(); +extern int sys_utime(); +extern int sys_stty(); +extern int sys_gtty(); +extern int sys_access(); +extern int sys_nice(); +extern int sys_ftime(); +extern int sys_sync(); +extern int sys_kill(); +extern int sys_rename(); +extern int sys_mkdir(); +extern int sys_rmdir(); +extern int sys_dup(); +extern int sys_pipe(); +extern int sys_times(); +extern int sys_prof(); +extern int sys_brk(); +extern int sys_setgid(); +extern int sys_getgid(); +extern int sys_signal(); +extern int sys_geteuid(); +extern int sys_getegid(); +extern int sys_acct(); +extern int sys_phys(); +extern int sys_lock(); +extern int sys_ioctl(); +extern int sys_fcntl(); +extern int sys_mpx(); +extern int sys_setpgid(); +extern int sys_ulimit(); +extern int sys_uname(); +extern int sys_umask(); +extern int sys_chroot(); +extern int sys_ustat(); +extern int sys_dup2(); +extern int sys_getppid(); +extern int sys_getpgrp(); +extern int sys_setsid(); +extern int sys_sigaction(); +extern int sys_sgetmask(); +extern int sys_ssetmask(); +extern int sys_setreuid(); +extern int sys_setregid(); +extern int sys_sigpending(); +extern int sys_sigsuspend(); +extern int sys_sethostname(); +extern int sys_setrlimit(); +extern int sys_getrlimit(); +extern int sys_getrusage(); +extern int sys_gettimeofday(); +extern int sys_settimeofday(); +extern int sys_getgroups(); +extern int sys_setgroups(); +extern int sys_select(); +extern int sys_symlink(); +extern int sys_lstat(); +extern int sys_readlink(); +extern int sys_uselib(); +extern int sys_execve2(); +extern int sys_getdents(); +extern int sys_sleep(); +extern int sys_getcwd(); + +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, +sys_unlink, sys_execve, sys_chdir, sys_time, sys_mknod, sys_chmod, +sys_chown, sys_break, sys_stat, sys_lseek, sys_getpid, sys_mount, +sys_umount, sys_setuid, sys_getuid, sys_stime, sys_ptrace, sys_alarm, +sys_fstat, sys_pause, sys_utime, sys_stty, sys_gtty, sys_access, +sys_nice, sys_ftime, sys_sync, sys_kill, sys_rename, sys_mkdir, +sys_rmdir, sys_dup, sys_pipe, sys_times, sys_prof, sys_brk, sys_setgid, +sys_getgid, sys_signal, sys_geteuid, sys_getegid, sys_acct, sys_phys, +sys_lock, sys_ioctl, sys_fcntl, sys_mpx, sys_setpgid, sys_ulimit, +sys_uname, sys_umask, sys_chroot, sys_ustat, sys_dup2, sys_getppid, +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, +sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, sys_sleep, sys_getcwd}; + +/* 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/0/linux/include/linux/tty.h b/linux-0.11-lab/0/linux/include/linux/tty.h new file mode 100644 index 0000000..ad846b3 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/linux/tty.h @@ -0,0 +1,77 @@ +/* + * 'tty.h' defines some structures used by tty_io.c and some defines. + * + * NOTE! Don't touch this without checking that nothing in rs_io.s or + * con_io.s breaks. Some constants are hardwired into the system (mainly + * offsets into 'tty_queue' + */ + +#ifndef _TTY_H +#define _TTY_H + +#include + +#define TTY_BUF_SIZE 1024 + +struct tty_queue { + unsigned long data; + unsigned long head; + unsigned long tail; + struct task_struct * proc_list; + char buf[TTY_BUF_SIZE]; +}; + +#define INC(a) ((a) = ((a)+1) & (TTY_BUF_SIZE-1)) +#define DEC(a) ((a) = ((a)-1) & (TTY_BUF_SIZE-1)) +#define EMPTY(a) ((a).head == (a).tail) +#define LEFT(a) (((a).tail-(a).head-1)&(TTY_BUF_SIZE-1)) +#define LAST(a) ((a).buf[(TTY_BUF_SIZE-1)&((a).head-1)]) +#define FULL(a) (!LEFT(a)) +#define CHARS(a) (((a).head-(a).tail)&(TTY_BUF_SIZE-1)) +#define GETCH(queue,c) \ +(void)({c=(queue).buf[(queue).tail];INC((queue).tail);}) +#define PUTCH(c,queue) \ +(void)({(queue).buf[(queue).head]=(c);INC((queue).head);}) + +#define INTR_CHAR(tty) ((tty)->termios.c_cc[VINTR]) +#define QUIT_CHAR(tty) ((tty)->termios.c_cc[VQUIT]) +#define ERASE_CHAR(tty) ((tty)->termios.c_cc[VERASE]) +#define KILL_CHAR(tty) ((tty)->termios.c_cc[VKILL]) +#define EOF_CHAR(tty) ((tty)->termios.c_cc[VEOF]) +#define START_CHAR(tty) ((tty)->termios.c_cc[VSTART]) +#define STOP_CHAR(tty) ((tty)->termios.c_cc[VSTOP]) +#define SUSPEND_CHAR(tty) ((tty)->termios.c_cc[VSUSP]) + +struct tty_struct { + struct termios termios; + int pgrp; + int stopped; + void (*write)(struct tty_struct * tty); + struct tty_queue read_q; + struct tty_queue write_q; + struct tty_queue secondary; + }; + +extern struct tty_struct tty_table[]; + +/* intr=^C quit=^| erase=del kill=^U + eof=^D vtime=\0 vmin=\1 sxtc=\0 + start=^Q stop=^S susp=^Z eol=\0 + reprint=^R discard=^U werase=^W lnext=^V + eol2=\0 +*/ +#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" + +void rs_init(void); +void con_init(void); +void tty_init(void); + +int tty_read(unsigned c, char * buf, int n); +int tty_write(unsigned c, char * buf, int n); + +void rs_write(struct tty_struct * tty); +void con_write(struct tty_struct * tty); + +void copy_to_cooked(struct tty_struct * tty); + +#endif diff --git a/linux-0.11-lab/0/linux/include/signal.h b/linux-0.11-lab/0/linux/include/signal.h new file mode 100644 index 0000000..0eea9a3 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/signal.h @@ -0,0 +1,68 @@ +#ifndef _SIGNAL_H +#define _SIGNAL_H + +#include + +typedef int sig_atomic_t; +typedef unsigned int sigset_t; /* 32 bits */ + +#define _NSIG 32 +#define NSIG _NSIG + +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT 6 +#define SIGUNUSED 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGUSR1 10 +#define SIGSEGV 11 +#define SIGUSR2 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGSTKFLT 16 +#define SIGCHLD 17 +#define SIGCONT 18 +#define SIGSTOP 19 +#define SIGTSTP 20 +#define SIGTTIN 21 +#define SIGTTOU 22 + +/* Ok, I haven't implemented sigactions, but trying to keep headers POSIX */ +#define SA_NOCLDSTOP 1 +#define SA_NOMASK 0x40000000 +#define SA_ONESHOT 0x80000000 + +#define SIG_BLOCK 0 /* for blocking signals */ +#define SIG_UNBLOCK 1 /* for unblocking signals */ +#define SIG_SETMASK 2 /* for setting the signal mask */ + +#define SIG_DFL ((void (*)(int))0) /* default signal handling */ +#define SIG_IGN ((void (*)(int))1) /* ignore signal */ + +struct sigaction { + void (*sa_handler)(int); + sigset_t sa_mask; + int sa_flags; + void (*sa_restorer)(void); +}; + +void (*signal(int _sig, void (*_func)(int)))(int); +int raise(int sig); +int kill(pid_t pid, int sig); +int sigaddset(sigset_t *mask, int signo); +int sigdelset(sigset_t *mask, int signo); +int sigemptyset(sigset_t *mask); +int sigfillset(sigset_t *mask); +int sigismember(sigset_t *mask, int signo); /* 1 - is, 0 - not, -1 error */ +int sigpending(sigset_t *set); +int sigprocmask(int how, sigset_t *set, sigset_t *oldset); +int sigsuspend(sigset_t *sigmask); +int sigaction(int sig, struct sigaction *act, struct sigaction *oldact); + +#endif /* _SIGNAL_H */ diff --git a/linux-0.11-lab/0/linux/include/stdarg.h b/linux-0.11-lab/0/linux/include/stdarg.h new file mode 100644 index 0000000..fd79ec0 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/stdarg.h @@ -0,0 +1,28 @@ +#ifndef _STDARG_H +#define _STDARG_H + +typedef char *va_list; + +/* Amount of space required in an argument list for an arg of type TYPE. + TYPE may alternatively be an expression whose type is used. */ + +#define __va_rounded_size(TYPE) \ + (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) + +#ifndef __sparc__ +#define va_start(AP, LASTARG) \ + (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG))) +#else +#define va_start(AP, LASTARG) \ + (__builtin_saveregs (), \ + AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG))) +#endif + +void va_end (va_list); /* Defined in gnulib */ +#define va_end(AP) + +#define va_arg(AP, TYPE) \ + (AP += __va_rounded_size (TYPE), \ + *((TYPE *) (AP - __va_rounded_size (TYPE)))) + +#endif /* _STDARG_H */ diff --git a/linux-0.11-lab/0/linux/include/stddef.h b/linux-0.11-lab/0/linux/include/stddef.h new file mode 100644 index 0000000..97f72ff --- /dev/null +++ b/linux-0.11-lab/0/linux/include/stddef.h @@ -0,0 +1,19 @@ +#ifndef _STDDEF_H +#define _STDDEF_H + +#ifndef _PTRDIFF_T +#define _PTRDIFF_T +typedef long ptrdiff_t; +#endif + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned long size_t; +#endif + +#undef NULL +#define NULL ((void *)0) + +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) + +#endif diff --git a/linux-0.11-lab/0/linux/include/string.h b/linux-0.11-lab/0/linux/include/string.h new file mode 100644 index 0000000..48b91e5 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/string.h @@ -0,0 +1,405 @@ +#ifndef _STRING_H_ +#define _STRING_H_ + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; +#endif + +extern char * strerror(int errno); + +/* + * This string-include defines all string functions as inline + * functions. Use gcc. It also assumes ds=es=data space, this should be + * normal. Most of the string-functions are rather heavily hand-optimized, + * see especially strtok,strstr,str[c]spn. They should work, but are not + * very easy to understand. Everything is done entirely within the register + * set, making the functions fast and clean. String instructions have been + * used through-out, making for "slightly" unclear code :-) + * + * (C) 1991 Linus Torvalds + */ + +extern inline char * strcpy(char * dest,const char *src) +{ +__asm__("cld\n" + "1:\tlodsb\n\t" + "stosb\n\t" + "testb %%al,%%al\n\t" + "jne 1b" + ::"S" (src),"D" (dest)); +return dest; +} + +extern inline char * strncpy(char * dest,const char *src,int count) +{ +__asm__("cld\n" + "1:\tdecl %2\n\t" + "js 2f\n\t" + "lodsb\n\t" + "stosb\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n\t" + "rep\n\t" + "stosb\n" + "2:" + ::"S" (src),"D" (dest),"c" (count)); +return dest; +} + +extern inline char * strcat(char * dest,const char * src) +{ +__asm__("cld\n\t" + "repne\n\t" + "scasb\n\t" + "decl %1\n" + "1:\tlodsb\n\t" + "stosb\n\t" + "testb %%al,%%al\n\t" + "jne 1b" + ::"S" (src),"D" (dest),"a" (0),"c" (0xffffffff)); +return dest; +} + +extern inline char * strncat(char * dest,const char * src,int count) +{ +__asm__("cld\n\t" + "repne\n\t" + "scasb\n\t" + "decl %1\n\t" + "movl %4,%3\n" + "1:\tdecl %3\n\t" + "js 2f\n\t" + "lodsb\n\t" + "stosb\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n" + "2:\txorl %2,%2\n\t" + "stosb" + ::"S" (src),"D" (dest),"a" (0),"c" (0xffffffff),"g" (count) + ); +return dest; +} + +extern inline int strcmp(const char * cs,const char * ct) +{ +register int __res __asm__("ax"); +__asm__("cld\n" + "1:\tlodsb\n\t" + "scasb\n\t" + "jne 2f\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n\t" + "xorl %%eax,%%eax\n\t" + "jmp 3f\n" + "2:\tmovl $1,%%eax\n\t" + "jl 3f\n\t" + "negl %%eax\n" + "3:" + :"=a" (__res):"D" (cs),"S" (ct)); +return __res; +} + +extern inline int strncmp(const char * cs,const char * ct,int count) +{ +register int __res __asm__("ax"); +__asm__("cld\n" + "1:\tdecl %3\n\t" + "js 2f\n\t" + "lodsb\n\t" + "scasb\n\t" + "jne 3f\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n" + "2:\txorl %%eax,%%eax\n\t" + "jmp 4f\n" + "3:\tmovl $1,%%eax\n\t" + "jl 4f\n\t" + "negl %%eax\n" + "4:" + :"=a" (__res):"D" (cs),"S" (ct),"c" (count)); +return __res; +} + +extern inline char * strchr(const char * s,char c) +{ +register char * __res __asm__("ax"); +__asm__("cld\n\t" + "movb %%al,%%ah\n" + "1:\tlodsb\n\t" + "cmpb %%ah,%%al\n\t" + "je 2f\n\t" + "testb %%al,%%al\n\t" + "jne 1b\n\t" + "movl $1,%1\n" + "2:\tmovl %1,%0\n\t" + "decl %0" + :"=a" (__res):"S" (s),"0" (c)); +return __res; +} + +extern inline char * strrchr(const char * s,char c) +{ +register char * __res __asm__("dx"); +__asm__("cld\n\t" + "movb %%al,%%ah\n" + "1:\tlodsb\n\t" + "cmpb %%ah,%%al\n\t" + "jne 2f\n\t" + "movl %%esi,%0\n\t" + "decl %0\n" + "2:\ttestb %%al,%%al\n\t" + "jne 1b" + :"=d" (__res):"0" (0),"S" (s),"a" (c)); +return __res; +} + +extern inline int strspn(const char * cs, const char * ct) +{ +register char * __res __asm__("si"); +__asm__("cld\n\t" + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" + "movl %%ecx,%%edx\n" + "1:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 2f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "je 1b\n" + "2:\tdecl %0" + :"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct) + ); +return __res-cs; +} + +extern inline int strcspn(const char * cs, const char * ct) +{ +register char * __res __asm__("si"); +__asm__("cld\n\t" + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" + "movl %%ecx,%%edx\n" + "1:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 2f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "jne 1b\n" + "2:\tdecl %0" + :"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct) + ); +return __res-cs; +} + +extern inline char * strpbrk(const char * cs,const char * ct) +{ +register char * __res __asm__("si"); +__asm__("cld\n\t" + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" + "movl %%ecx,%%edx\n" + "1:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 2f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "jne 1b\n\t" + "decl %0\n\t" + "jmp 3f\n" + "2:\txorl %0,%0\n" + "3:" + :"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct) + ); +return __res; +} + +extern inline char * strstr(const char * cs,const char * ct) +{ +register char * __res __asm__("ax"); +__asm__("cld\n\t" \ + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" /* NOTE! This also sets Z if searchstring='' */ + "movl %%ecx,%%edx\n" + "1:\tmovl %4,%%edi\n\t" + "movl %%esi,%%eax\n\t" + "movl %%edx,%%ecx\n\t" + "repe\n\t" + "cmpsb\n\t" + "je 2f\n\t" /* also works for empty string, see above */ + "xchgl %%eax,%%esi\n\t" + "incl %%esi\n\t" + "cmpb $0,-1(%%eax)\n\t" + "jne 1b\n\t" + "xorl %%eax,%%eax\n\t" + "2:" + :"=a" (__res):"0" (0),"c" (0xffffffff),"S" (cs),"g" (ct) + ); +return __res; +} + +extern inline int strlen(const char * s) +{ +register int __res ; +__asm__("cld\n\t" + "repne\n\t" + "scasb\n\t" + "notl %0\n\t" + "decl %0" + :"=c" (__res):"D" (s),"a" (0),"0" (0xffffffff)); +return __res; +} + +extern char * ___strtok; + +extern inline char * strtok(char * s,const char * ct) +{ +register char * __res __asm__("si"); +__asm__("testl %1,%1\n\t" + "jne 1f\n\t" + "testl %0,%0\n\t" + "je 8f\n\t" + "movl %0,%1\n" + "1:\txorl %0,%0\n\t" + "movl $-1,%%ecx\n\t" + "xorl %%eax,%%eax\n\t" + "cld\n\t" + "movl %4,%%edi\n\t" + "repne\n\t" + "scasb\n\t" + "notl %%ecx\n\t" + "decl %%ecx\n\t" + "je 7f\n\t" /* empty delimeter-string */ + "movl %%ecx,%%edx\n" + "2:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 7f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "je 2b\n\t" + "decl %1\n\t" + "cmpb $0,(%1)\n\t" + "je 7f\n\t" + "movl %1,%0\n" + "3:\tlodsb\n\t" + "testb %%al,%%al\n\t" + "je 5f\n\t" + "movl %4,%%edi\n\t" + "movl %%edx,%%ecx\n\t" + "repne\n\t" + "scasb\n\t" + "jne 3b\n\t" + "decl %1\n\t" + "cmpb $0,(%1)\n\t" + "je 5f\n\t" + "movb $0,(%1)\n\t" + "incl %1\n\t" + "jmp 6f\n" + "5:\txorl %1,%1\n" + "6:\tcmpb $0,(%0)\n\t" + "jne 7f\n\t" + "xorl %0,%0\n" + "7:\ttestl %0,%0\n\t" + "jne 8f\n\t" + "movl %0,%1\n" + "8:" + :"=b" (__res),"=S" (___strtok) + :"0" (___strtok),"1" (s),"g" (ct) + ); +return __res; +} + +extern inline void * memcpy(void * dest,const void * src, int n) +{ +__asm__("cld\n\t" + "rep\n\t" + "movsb" + ::"c" (n),"S" (src),"D" (dest) + ); +return dest; +} + +extern inline void * memmove(void * dest,const void * src, int n) +{ +if (dest + +struct stat { + dev_t st_dev; + ino_t st_ino; + umode_t st_mode; + nlink_t st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + off_t st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; +}; + +#define S_IFMT 00170000 +#define S_IFLNK 0120000 +#define S_IFREG 0100000 +#define S_IFBLK 0060000 +#define S_IFDIR 0040000 +#define S_IFCHR 0020000 +#define S_IFIFO 0010000 +#define S_ISUID 0004000 +#define S_ISGID 0002000 +#define S_ISVTX 0001000 + +#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) + +#define S_IRWXU 00700 +#define S_IRUSR 00400 +#define S_IWUSR 00200 +#define S_IXUSR 00100 + +#define S_IRWXG 00070 +#define S_IRGRP 00040 +#define S_IWGRP 00020 +#define S_IXGRP 00010 + +#define S_IRWXO 00007 +#define S_IROTH 00004 +#define S_IWOTH 00002 +#define S_IXOTH 00001 + +extern int chmod(const char *_path, mode_t mode); +extern int fstat(int fildes, struct stat *stat_buf); +extern int mkdir(const char *_path, mode_t mode); +extern int mkfifo(const char *_path, mode_t mode); +extern int stat(const char *filename, struct stat *stat_buf); +extern mode_t umask(mode_t mask); + +#endif diff --git a/linux-0.11-lab/0/linux/include/sys/times.h b/linux-0.11-lab/0/linux/include/sys/times.h new file mode 100644 index 0000000..68d5bfb --- /dev/null +++ b/linux-0.11-lab/0/linux/include/sys/times.h @@ -0,0 +1,15 @@ +#ifndef _TIMES_H +#define _TIMES_H + +#include + +struct tms { + time_t tms_utime; + time_t tms_stime; + time_t tms_cutime; + time_t tms_cstime; +}; + +extern time_t times(struct tms * tp); + +#endif diff --git a/linux-0.11-lab/0/linux/include/sys/types.h b/linux-0.11-lab/0/linux/include/sys/types.h new file mode 100644 index 0000000..557aa31 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/sys/types.h @@ -0,0 +1,46 @@ +#ifndef _SYS_TYPES_H +#define _SYS_TYPES_H + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; +#endif + +#ifndef _TIME_T +#define _TIME_T +typedef long time_t; +#endif + +#ifndef _PTRDIFF_T +#define _PTRDIFF_T +typedef long ptrdiff_t; +#endif + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +typedef int pid_t; +typedef unsigned short uid_t; +typedef unsigned char gid_t; +typedef unsigned short dev_t; +typedef unsigned short ino_t; +typedef unsigned short mode_t; +typedef unsigned short umode_t; +typedef unsigned char nlink_t; +typedef int daddr_t; +typedef long off_t; +typedef unsigned char u_char; +typedef unsigned short ushort; + +typedef struct { int quot,rem; } div_t; +typedef struct { long quot,rem; } ldiv_t; + +struct ustat { + daddr_t f_tfree; + ino_t f_tinode; + char f_fname[6]; + char f_fpack[6]; +}; + +#endif diff --git a/linux-0.11-lab/0/linux/include/sys/utsname.h b/linux-0.11-lab/0/linux/include/sys/utsname.h new file mode 100644 index 0000000..0a1c5a0 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/sys/utsname.h @@ -0,0 +1,16 @@ +#ifndef _SYS_UTSNAME_H +#define _SYS_UTSNAME_H + +#include + +struct utsname { + char sysname[9]; + char nodename[9]; + char release[9]; + char version[9]; + char machine[9]; +}; + +extern int uname(struct utsname * utsbuf); + +#endif diff --git a/linux-0.11-lab/0/linux/include/sys/wait.h b/linux-0.11-lab/0/linux/include/sys/wait.h new file mode 100644 index 0000000..53190c2 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/sys/wait.h @@ -0,0 +1,23 @@ +#ifndef _SYS_WAIT_H +#define _SYS_WAIT_H + +#include + +#define _LOW(v) ( (v) & 0377) +#define _HIGH(v) ( ((v) >> 8) & 0377) + +/* options for waitpid, WUNTRACED not supported */ +#define WNOHANG 1 +#define WUNTRACED 2 + +#define WIFEXITED(s) (!((s)&0xFF) +#define WIFSTOPPED(s) (((s)&0xFF)==0x7F) +#define WEXITSTATUS(s) (((s)>>8)&0xFF) +#define WTERMSIG(s) ((s)&0x7F) +#define WSTOPSIG(s) (((s)>>8)&0xFF) +#define WIFSIGNALED(s) (((unsigned int)(s)-1 & 0xFFFF) < 0xFF) + +pid_t wait(int *stat_loc); +pid_t waitpid(pid_t pid, int *stat_loc, int options); + +#endif diff --git a/linux-0.11-lab/0/linux/include/termios.h b/linux-0.11-lab/0/linux/include/termios.h new file mode 100644 index 0000000..2b7b913 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/termios.h @@ -0,0 +1,228 @@ +#ifndef _TERMIOS_H +#define _TERMIOS_H + +#define TTY_BUF_SIZE 1024 + +/* 0x54 is just a magic number to make these relatively uniqe ('T') */ + +#define TCGETS 0x5401 +#define TCSETS 0x5402 +#define TCSETSW 0x5403 +#define TCSETSF 0x5404 +#define TCGETA 0x5405 +#define TCSETA 0x5406 +#define TCSETAW 0x5407 +#define TCSETAF 0x5408 +#define TCSBRK 0x5409 +#define TCXONC 0x540A +#define TCFLSH 0x540B +#define TIOCEXCL 0x540C +#define TIOCNXCL 0x540D +#define TIOCSCTTY 0x540E +#define TIOCGPGRP 0x540F +#define TIOCSPGRP 0x5410 +#define TIOCOUTQ 0x5411 +#define TIOCSTI 0x5412 +#define TIOCGWINSZ 0x5413 +#define TIOCSWINSZ 0x5414 +#define TIOCMGET 0x5415 +#define TIOCMBIS 0x5416 +#define TIOCMBIC 0x5417 +#define TIOCMSET 0x5418 +#define TIOCGSOFTCAR 0x5419 +#define TIOCSSOFTCAR 0x541A +#define TIOCINQ 0x541B + +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; +}; + +#define NCC 8 +struct termio { + unsigned short c_iflag; /* input mode flags */ + unsigned short c_oflag; /* output mode flags */ + unsigned short c_cflag; /* control mode flags */ + unsigned short c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCC]; /* control characters */ +}; + +#define NCCS 17 +struct termios { + unsigned long c_iflag; /* input mode flags */ + unsigned long c_oflag; /* output mode flags */ + unsigned long c_cflag; /* control mode flags */ + unsigned long c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCCS]; /* control characters */ +}; + +/* c_cc characters */ +#define VINTR 0 +#define VQUIT 1 +#define VERASE 2 +#define VKILL 3 +#define VEOF 4 +#define VTIME 5 +#define VMIN 6 +#define VSWTC 7 +#define VSTART 8 +#define VSTOP 9 +#define VSUSP 10 +#define VEOL 11 +#define VREPRINT 12 +#define VDISCARD 13 +#define VWERASE 14 +#define VLNEXT 15 +#define VEOL2 16 + +/* c_iflag bits */ +#define IGNBRK 0000001 +#define BRKINT 0000002 +#define IGNPAR 0000004 +#define PARMRK 0000010 +#define INPCK 0000020 +#define ISTRIP 0000040 +#define INLCR 0000100 +#define IGNCR 0000200 +#define ICRNL 0000400 +#define IUCLC 0001000 +#define IXON 0002000 +#define IXANY 0004000 +#define IXOFF 0010000 +#define IMAXBEL 0020000 + +/* c_oflag bits */ +#define OPOST 0000001 +#define OLCUC 0000002 +#define ONLCR 0000004 +#define OCRNL 0000010 +#define ONOCR 0000020 +#define ONLRET 0000040 +#define OFILL 0000100 +#define OFDEL 0000200 +#define NLDLY 0000400 +#define NL0 0000000 +#define NL1 0000400 +#define CRDLY 0003000 +#define CR0 0000000 +#define CR1 0001000 +#define CR2 0002000 +#define CR3 0003000 +#define TABDLY 0014000 +#define TAB0 0000000 +#define TAB1 0004000 +#define TAB2 0010000 +#define TAB3 0014000 +#define XTABS 0014000 +#define BSDLY 0020000 +#define BS0 0000000 +#define BS1 0020000 +#define VTDLY 0040000 +#define VT0 0000000 +#define VT1 0040000 +#define FFDLY 0040000 +#define FF0 0000000 +#define FF1 0040000 + +/* c_cflag bit meaning */ +#define CBAUD 0000017 +#define B0 0000000 /* hang up */ +#define B50 0000001 +#define B75 0000002 +#define B110 0000003 +#define B134 0000004 +#define B150 0000005 +#define B200 0000006 +#define B300 0000007 +#define B600 0000010 +#define B1200 0000011 +#define B1800 0000012 +#define B2400 0000013 +#define B4800 0000014 +#define B9600 0000015 +#define B19200 0000016 +#define B38400 0000017 +#define EXTA B19200 +#define EXTB B38400 +#define CSIZE 0000060 +#define CS5 0000000 +#define CS6 0000020 +#define CS7 0000040 +#define CS8 0000060 +#define CSTOPB 0000100 +#define CREAD 0000200 +#define CPARENB 0000400 +#define CPARODD 0001000 +#define HUPCL 0002000 +#define CLOCAL 0004000 +#define CIBAUD 03600000 /* input baud rate (not used) */ +#define CRTSCTS 020000000000 /* flow control */ + +#define PARENB CPARENB +#define PARODD CPARODD + +/* c_lflag bits */ +#define ISIG 0000001 +#define ICANON 0000002 +#define XCASE 0000004 +#define ECHO 0000010 +#define ECHOE 0000020 +#define ECHOK 0000040 +#define ECHONL 0000100 +#define NOFLSH 0000200 +#define TOSTOP 0000400 +#define ECHOCTL 0001000 +#define ECHOPRT 0002000 +#define ECHOKE 0004000 +#define FLUSHO 0010000 +#define PENDIN 0040000 +#define IEXTEN 0100000 + +/* modem lines */ +#define TIOCM_LE 0x001 +#define TIOCM_DTR 0x002 +#define TIOCM_RTS 0x004 +#define TIOCM_ST 0x008 +#define TIOCM_SR 0x010 +#define TIOCM_CTS 0x020 +#define TIOCM_CAR 0x040 +#define TIOCM_RNG 0x080 +#define TIOCM_DSR 0x100 +#define TIOCM_CD TIOCM_CAR +#define TIOCM_RI TIOCM_RNG + +/* tcflow() and TCXONC use these */ +#define TCOOFF 0 +#define TCOON 1 +#define TCIOFF 2 +#define TCION 3 + +/* tcflush() and TCFLSH use these */ +#define TCIFLUSH 0 +#define TCOFLUSH 1 +#define TCIOFLUSH 2 + +/* tcsetattr uses these */ +#define TCSANOW 0 +#define TCSADRAIN 1 +#define TCSAFLUSH 2 + +typedef int speed_t; + +extern speed_t cfgetispeed(struct termios *termios_p); +extern speed_t cfgetospeed(struct termios *termios_p); +extern int cfsetispeed(struct termios *termios_p, speed_t speed); +extern int cfsetospeed(struct termios *termios_p, speed_t speed); +extern int tcdrain(int fildes); +extern int tcflow(int fildes, int action); +extern int tcflush(int fildes, int queue_selector); +extern int tcgetattr(int fildes, struct termios *termios_p); +extern int tcsendbreak(int fildes, int duration); +extern int tcsetattr(int fildes, int optional_actions, + struct termios *termios_p); + +#endif diff --git a/linux-0.11-lab/0/linux/include/time.h b/linux-0.11-lab/0/linux/include/time.h new file mode 100644 index 0000000..d0a765d --- /dev/null +++ b/linux-0.11-lab/0/linux/include/time.h @@ -0,0 +1,42 @@ +#ifndef _TIME_H +#define _TIME_H + +#ifndef _TIME_T +#define _TIME_T +typedef long time_t; +#endif + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; +#endif + +#define CLOCKS_PER_SEC 100 + +typedef long clock_t; + +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + +clock_t clock(void); +time_t time(time_t * tp); +double difftime(time_t time2, time_t time1); +time_t mktime(struct tm * tp); + +char * asctime(const struct tm * tp); +char * ctime(const time_t * tp); +struct tm * gmtime(const time_t *tp); +struct tm *localtime(const time_t * tp); +size_t strftime(char * s, size_t smax, const char * fmt, const struct tm * tp); +void tzset(void); + +#endif diff --git a/linux-0.11-lab/0/linux/include/unistd.h b/linux-0.11-lab/0/linux/include/unistd.h new file mode 100644 index 0000000..8da839c --- /dev/null +++ b/linux-0.11-lab/0/linux/include/unistd.h @@ -0,0 +1,273 @@ +#ifndef _UNISTD_H +#define _UNISTD_H + +/* ok, this may be a joke, but I'm working on it */ +#define _POSIX_VERSION 198808L + +#define _POSIX_CHOWN_RESTRICTED /* only root can do a chown (I think..) */ +#define _POSIX_NO_TRUNC /* no pathname truncation (but see in kernel) */ +#define _POSIX_VDISABLE '\0' /* character to disable things like ^C */ +/*#define _POSIX_SAVED_IDS */ /* we'll get to this yet */ +/*#define _POSIX_JOB_CONTROL */ /* we aren't there quite yet. Soon hopefully */ + +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 + +#ifndef NULL +#define NULL ((void *)0) +#endif + +/* access */ +#define F_OK 0 +#define X_OK 1 +#define W_OK 2 +#define R_OK 4 + +/* lseek */ +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 + +/* _SC stands for System Configuration. We don't use them much */ +#define _SC_ARG_MAX 1 +#define _SC_CHILD_MAX 2 +#define _SC_CLOCKS_PER_SEC 3 +#define _SC_NGROUPS_MAX 4 +#define _SC_OPEN_MAX 5 +#define _SC_JOB_CONTROL 6 +#define _SC_SAVED_IDS 7 +#define _SC_VERSION 8 + +/* more (possibly) configurable things - now pathnames */ +#define _PC_LINK_MAX 1 +#define _PC_MAX_CANON 2 +#define _PC_MAX_INPUT 3 +#define _PC_NAME_MAX 4 +#define _PC_PATH_MAX 5 +#define _PC_PIPE_BUF 6 +#define _PC_NO_TRUNC 7 +#define _PC_VDISABLE 8 +#define _PC_CHOWN_RESTRICTED 9 + +#include +#include +#include +#include + +#ifdef __LIBRARY__ + +#define __NR_setup 0 /* used only by init, to get system going */ +#define _exit 1 +#define _fork 2 +#define __NR_read 3 +#define __NR_write 4 +#define __NR_open 5 +#define __NR_close 6 +#define __NR_waitpid 7 +#define __NR_creat 8 +#define __NR_link 9 +#define __NR_unlink 10 +#define __NR_execve 11 +#define __NR_chdir 12 +#define __NR_time 13 +#define __NR_mknod 14 +#define __NR_chmod 15 +#define __NR_chown 16 +#define __NR_break 17 +#define __NR_stat 18 +#define __NR_lseek 19 +#define __NR_getpid 20 +#define __NR_mount 21 +#define __NR_umount 22 +#define __NR_setuid 23 +#define __NR_getuid 24 +#define __NR_stime 25 +#define __NR_ptrace 26 +#define __NR_alarm 27 +#define __NR_fstat 28 +#define __NR_pause 29 +#define __NR_utime 30 +#define __NR_stty 31 +#define __NR_gtty 32 +#define __NR_access 33 +#define __NR_nice 34 +#define __NR_ftime 35 +#define __NR_sync 36 +#define __NR_kill 37 +#define __NR_rename 38 +#define __NR_mkdir 39 +#define __NR_rmdir 40 +#define __NR_dup 41 +#define __NR_pipe 42 +#define __NR_times 43 +#define __NR_prof 44 +#define __NR_brk 45 +#define __NR_setgid 46 +#define __NR_getgid 47 +#define __NR_signal 48 +#define __NR_geteuid 49 +#define __NR_getegid 50 +#define __NR_acct 51 +#define __NR_phys 52 +#define __NR_lock 53 +#define __NR_ioctl 54 +#define __NR_fcntl 55 +#define __NR_mpx 56 +#define __NR_setpgid 57 +#define __NR_ulimit 58 +#define __NR_uname 59 +#define __NR_umask 60 +#define __NR_chroot 61 +#define __NR_ustat 62 +#define __NR_dup2 63 +#define __NR_getppid 64 +#define __NR_getpgrp 65 +#define __NR_setsid 66 +#define __NR_sigaction 67 +#define __NR_sgetmask 68 +#define __NR_ssetmask 69 +#define __NR_setreuid 70 +#define __NR_setregid 71 +#define __NR_sigsuspend 72 +#define __NR_sigpending 73 +#define __NR_sethostname 74 +#define __NR_setrlimit 75 +#define __NR_getrlimit 76 +#define __NR_getrusage 77 +#define __NR_gettimeofday 78 +#define __NR_settimeofday 79 +#define __NR_getgroups 80 +#define __NR_setgroups 81 +#define __NR_select 82 +#define __NR_symlink 83 +#define __NR_lstat 84 +#define __NR_readlink 85 +#define __NR_uselib 86 +#define __NR_execve2 87 +#define __NR_getdents 88 +#define __NR_sleep 90 +#define __NR_getcwd 91 +#define _syscall0(type,name) \ +type name(void) \ +{ \ +long __res; \ +__asm__ volatile ("int $0x80" \ + : "=a" (__res) \ + : "0" (__NR_##name)); \ +if (__res >= 0) \ + return (type) __res; \ +errno = -__res; \ +return -1; \ +} + +#define _syscall1(type,name,atype,a) \ +type name(atype a) \ +{ \ +long __res; \ +__asm__ volatile ("int $0x80" \ + : "=a" (__res) \ + : "0" (__NR_##name),"b" ((long)(a))); \ +if (__res >= 0) \ + return (type) __res; \ +errno = -__res; \ +return -1; \ +} + +#define _syscall2(type,name,atype,a,btype,b) \ +type name(atype a,btype b) \ +{ \ +long __res; \ +__asm__ volatile ("int $0x80" \ + : "=a" (__res) \ + : "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b))); \ +if (__res >= 0) \ + return (type) __res; \ +errno = -__res; \ +return -1; \ +} + +#define _syscall3(type,name,atype,a,btype,b,ctype,c) \ +type name(atype a,btype b,ctype c) \ +{ \ +long __res; \ +__asm__ volatile ("int $0x80" \ + : "=a" (__res) \ + : "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b)),"d" ((long)(c))); \ +if (__res>=0) \ + return (type) __res; \ +errno=-__res; \ +return -1; \ +} + +#endif /* __LIBRARY__ */ + +extern int errno; + +int access(const char * filename, mode_t mode); +int acct(const char * filename); +int alarm(int sec); +int brk(void * end_data_segment); +void * sbrk(ptrdiff_t increment); +int chdir(const char * filename); +int chmod(const char * filename, mode_t mode); +int chown(const char * filename, uid_t owner, gid_t group); +int chroot(const char * filename); +int close(int fildes); +int creat(const char * filename, mode_t mode); +int dup(int fildes); +int execve(const char * filename, char ** argv, char ** envp); +int execv(const char * pathname, char ** argv); +int execvp(const char * file, char ** argv); +int execl(const char * pathname, char * arg0, ...); +int execlp(const char * file, char * arg0, ...); +int execle(const char * pathname, char * arg0, ...); +volatile void exit(int status); +volatile void _exit(int status); +int fcntl(int fildes, int cmd, ...); +int fork(void); +int getpid(void); +int getuid(void); +int geteuid(void); +int getgid(void); +int getegid(void); +int ioctl(int fildes, int cmd, ...); +int kill(pid_t pid, int signal); +int link(const char * filename1, const char * filename2); +int lseek(int fildes, off_t offset, int origin); +int mknod(const char * filename, mode_t mode, dev_t dev); +int mount(const char * specialfile, const char * dir, int rwflag); +int nice(int val); +int open(const char * filename, int flag, ...); +int pause(void); +int pipe(int * fildes); +int read(int fildes, char * buf, off_t count); +int setpgrp(void); +int setpgid(pid_t pid,pid_t pgid); +int setuid(uid_t uid); +int setgid(gid_t gid); +void (*signal(int sig, void (*fn)(int)))(int); +int stat(const char * filename, struct stat * stat_buf); +int fstat(int fildes, struct stat * stat_buf); +int stime(time_t * tptr); +int sync(void); +time_t time(time_t * tloc); +time_t times(struct tms * tbuf); +int ulimit(int cmd, long limit); +mode_t umask(mode_t mask); +int umount(const char * specialfile); +int uname(struct utsname * name); +int unlink(const char * filename); +int ustat(dev_t dev, struct ustat * ubuf); +int utime(const char * filename, struct utimbuf * times); +pid_t waitpid(pid_t pid,int * wait_stat,int options); +pid_t wait(int * wait_stat); +int write(int fildes, const char * buf, off_t count); +int dup2(int oldfd, int newfd); +int getppid(void); +pid_t getpgrp(void); +pid_t setsid(void); + +#define __always_inline inline __attribute__((always_inline)) + +#endif diff --git a/linux-0.11-lab/0/linux/include/utime.h b/linux-0.11-lab/0/linux/include/utime.h new file mode 100644 index 0000000..83f07c7 --- /dev/null +++ b/linux-0.11-lab/0/linux/include/utime.h @@ -0,0 +1,13 @@ +#ifndef _UTIME_H +#define _UTIME_H + +#include /* I know - shouldn't do this, but .. */ + +struct utimbuf { + time_t actime; + time_t modtime; +}; + +extern int utime(const char *filename, struct utimbuf *times); + +#endif diff --git a/linux-0.11-lab/0/linux/init/main.c b/linux-0.11-lab/0/linux/init/main.c new file mode 100644 index 0000000..0892fdc --- /dev/null +++ b/linux-0.11-lab/0/linux/init/main.c @@ -0,0 +1,210 @@ +/* + * linux/init/main.c + * + * (C) 1991 Linus Torvalds + */ + +#define __LIBRARY__ +#include +#include + +/* + * we need this inline - forking from kernel space will result + * in NO COPY ON WRITE (!!!), until an execve is executed. This + * is no problem, but for the stack. This is handled by not letting + * main() use the stack at all after fork(). Thus, no function + * calls - which means inline code for fork too, as otherwise we + * would use the stack upon exit from 'fork()'. + * + * Actually only pause and fork are needed inline, so that there + * won't be any messing with the stack from main(), but we define + * some others too. + */ + +__always_inline _syscall0(int,fork) +__always_inline _syscall0(int,pause) +__always_inline _syscall1(int,setup,void *,BIOS) +__always_inline _syscall0(int,sync) + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +static char printbuf[1024]; + +extern int vsprintf(); +extern void init(void); +extern void blk_dev_init(void); +extern void chr_dev_init(void); +extern void hd_init(void); +extern void floppy_init(void); +extern void mem_init(long start, long end); +extern long rd_init(long mem_start, int length); +extern long kernel_mktime(struct tm * tm); +extern long startup_time; + +/* + * This is set up by the setup-routine at boot-time + */ +#define EXT_MEM_K (*(unsigned short *)0x90002) +#define DRIVE_INFO (*(struct drive_info *)0x90080) +#define ORIG_ROOT_DEV (*(unsigned short *)0x901FC) + +/* + * Yeah, yeah, it's ugly, but I cannot find how to do this correctly + * and this seems to work. I anybody has more info on the real-time + * clock I'd be interested. Most of this was trial and error, and some + * bios-listing reading. Urghh. + */ + +#define CMOS_READ(addr) ({ \ +outb_p(0x80|addr,0x70); \ +inb_p(0x71); \ +}) + +#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) + +static void time_init(void) +{ + struct tm time; + + do { + time.tm_sec = CMOS_READ(0); + time.tm_min = CMOS_READ(2); + time.tm_hour = CMOS_READ(4); + time.tm_mday = CMOS_READ(7); + time.tm_mon = CMOS_READ(8); + time.tm_year = CMOS_READ(9); + } while (time.tm_sec != CMOS_READ(0)); + BCD_TO_BIN(time.tm_sec); + BCD_TO_BIN(time.tm_min); + BCD_TO_BIN(time.tm_hour); + BCD_TO_BIN(time.tm_mday); + BCD_TO_BIN(time.tm_mon); + BCD_TO_BIN(time.tm_year); + time.tm_mon--; + startup_time = kernel_mktime(&time); +} + +static long memory_end = 0; +static long buffer_memory_end = 0; +static long main_memory_start = 0; + +struct drive_info { char dummy[32]; } drive_info; + +void main(void) /* This really IS void, no error here. */ +{ /* The startup routine assumes (well, ...) this */ +/* + * Interrupts are still disabled. Do necessary setups, then + * enable them + */ + ROOT_DEV = ORIG_ROOT_DEV; + __asm__ volatile ("cld"); /* by wyj */ + drive_info = DRIVE_INFO; + memory_end = (1<<20) + (EXT_MEM_K<<10); + memory_end &= 0xfffff000; + if (memory_end > 16*1024*1024) + memory_end = 16*1024*1024; + if (memory_end > 12*1024*1024) + buffer_memory_end = 4*1024*1024; + else if (memory_end > 6*1024*1024) + buffer_memory_end = 2*1024*1024; + else + buffer_memory_end = 1*1024*1024; + main_memory_start = buffer_memory_end; +#ifdef RAMDISK + main_memory_start += rd_init(main_memory_start, RAMDISK*1024); +#endif + mem_init(main_memory_start,memory_end); + trap_init(); + blk_dev_init(); + chr_dev_init(); + tty_init(); + time_init(); + sched_init(); + buffer_init(buffer_memory_end); + hd_init(); + floppy_init(); + sti(); + move_to_user_mode(); + if (!fork()) { /* we count on this going ok */ + init(); + } +/* + * NOTE!! For any other task 'pause()' would mean we have to get a + * signal to awaken, but task0 is the sole exception (see 'schedule()') + * as task 0 gets activated at every idle moment (when no other tasks + * can run). For task0 'pause()' just means we go check if some other + * task can run, and if not we return here. + */ + for(;;) pause(); +} + +static int printf(const char *fmt, ...) +{ + va_list args; + int i; + + va_start(args, fmt); + write(1,printbuf,i=vsprintf(printbuf, fmt, args)); + va_end(args); + return i; +} + +static char * argv_rc[] = { "/bin/sh", NULL }; +static char * envp_rc[] = { "HOME=/", NULL, NULL }; + +static char * argv[] = { "-/bin/sh",NULL }; +static char * envp[] = { "HOME=/usr/root", NULL, NULL }; + +void init(void) +{ + int pid,i; + + setup((void *) &drive_info); + (void) open("/dev/tty0",O_RDWR,0); + (void) dup(0); + (void) dup(0); + printf("%d buffers = %d bytes buffer space\n\r",NR_BUFFERS, + NR_BUFFERS*BLOCK_SIZE); + printf("Free mem: %d bytes\n\r",memory_end-main_memory_start); + if (!(pid=fork())) { + close(0); + if (open("/etc/rc",O_RDONLY,0)) + _exit(1); + execve("/bin/sh",argv_rc,envp_rc); + _exit(2); + } + if (pid>0) + while (pid != wait(&i)) + /* nothing */; + while (1) { + if ((pid=fork())<0) { + printf("Fork failed in init\r\n"); + continue; + } + if (!pid) { + close(0);close(1);close(2); + setsid(); + (void) open("/dev/tty0",O_RDWR,0); + (void) dup(0); + (void) dup(0); + _exit(execve("/bin/sh",argv,envp)); + } + while (1) + if (pid == wait(&i)) + break; + printf("\n\rchild %d died with code %04x\n\r",pid,i); + sync(); + } + _exit(0); /* NOTE! _exit, not exit() */ +} diff --git a/linux-0.11-lab/0/linux/init/main.o b/linux-0.11-lab/0/linux/init/main.o new file mode 100644 index 0000000000000000000000000000000000000000..20bade066c6c637fb950d7858a4e12b8dcd54564 GIT binary patch literal 9040 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 UIUey|!5+cgf` tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + (cd chr_drv; make dep) + (cd blk_drv; make dep) + +### Dependencies: +exit.s exit.o : exit.c ../include/errno.h ../include/signal.h \ + ../include/sys/types.h ../include/sys/wait.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/linux/mm.h \ + ../include/linux/kernel.h ../include/linux/tty.h ../include/termios.h \ + ../include/asm/segment.h +fork.s fork.o : fork.c ../include/errno.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/segment.h ../include/asm/system.h +mktime.s mktime.o : mktime.c ../include/time.h +panic.s panic.o : panic.c ../include/linux/kernel.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h +printk.s printk.o : printk.c ../include/stdarg.h ../include/stddef.h \ + ../include/linux/kernel.h +sched.s sched.o : sched.c ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \ + ../include/signal.h ../include/linux/kernel.h ../include/linux/sys.h \ + ../include/linux/fdreg.h ../include/asm/system.h ../include/asm/io.h \ + ../include/asm/segment.h +signal.s signal.o : signal.c ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/sys/types.h ../include/linux/mm.h \ + ../include/signal.h ../include/linux/kernel.h ../include/asm/segment.h +sys.s sys.o : sys.c ../include/errno.h ../include/linux/sched.h \ + ../include/linux/head.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/tty.h \ + ../include/termios.h ../include/linux/kernel.h ../include/asm/segment.h \ + ../include/sys/times.h ../include/sys/utsname.h +traps.s traps.o : traps.c ../include/string.h ../include/linux/head.h \ + ../include/linux/sched.h ../include/linux/fs.h ../include/sys/types.h \ + ../include/linux/mm.h ../include/signal.h ../include/linux/kernel.h \ + ../include/asm/system.h ../include/asm/segment.h ../include/asm/io.h +vsprintf.s vsprintf.o : vsprintf.c ../include/stdarg.h ../include/string.h diff --git a/linux-0.11-lab/0/linux/kernel/asm.o b/linux-0.11-lab/0/linux/kernel/asm.o new file mode 100644 index 0000000000000000000000000000000000000000..a89ec75e6e7dea54ae5b8d9b94ba28158b48a77f GIT binary patch literal 1740 zcma)+O=uHQ5XWcRv}sSZ2!7VKN<_gLTB@F^9;`i75B*Zxid{F^*K{@67k4+Yil|sH zrv|)<7wbhmD2RBl?IjkWde90*5b+=$0#XkiyeY()eY^2xiRgpv|Nnb$W-{}d&9$S) z`xHe1e<@H4e+Zz*gMDtmZfJlym?EDGMTQ55PMti_THiEx4rWIp9YYK2@F4#&zm)${ zdN=d3q3K?@?aYKaK6ZL^#Z6j!Eo4c^qL61o9t*iIN>a0?YOGAXEIm;+mxxDna!+$#}~zPg>(|qFzDh#3ziNdZhm7_Gt$HGtt5$ zJb2(2L6$5XS6!9gLaHZMBo4WC>dM&)G@;K)yrt}^F9miX@AvkI_oDBSxC{Lei4UOf zm-sOHL5cg&k4j8uHzb}wuS$Fw{k+6C(HA7XgML}!hv?r*yy$rny5~3eqzG`)Jgcaa zE(!kRc@m2M7T_NN{u$t~^pB$a<^Z<^_)viR13VsJBf!@Kd@I0Ua+O&Yx70Y-8Aw() zvWCvYA?PfYNr0I$z%ZR|;8|u(Ciz8(@r %eax + xchgl %ebx,(%esp) # &function <-> %ebx + pushl %ecx + pushl %edx + pushl %edi + pushl %esi + pushl %ebp + push %ds + push %es + push %fs + pushl %eax # error code + lea 44(%esp),%eax # offset + pushl %eax + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + mov %ax,%fs + call *%ebx + addl $8,%esp + pop %fs + pop %es + pop %ds + popl %ebp + popl %esi + popl %edi + popl %edx + popl %ecx + popl %ebx + popl %eax + iret + +invalid_TSS: + pushl $do_invalid_TSS + jmp error_code + +segment_not_present: + pushl $do_segment_not_present + jmp error_code + +stack_segment: + pushl $do_stack_segment + jmp error_code + +general_protection: + pushl $do_general_protection + jmp error_code + diff --git a/linux-0.11-lab/0/linux/kernel/blk_drv/Makefile b/linux-0.11-lab/0/linux/kernel/blk_drv/Makefile new file mode 100644 index 0000000..1fb57f9 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/blk_drv/Makefile @@ -0,0 +1,58 @@ +# +# Makefile for the FREAX-kernel block device drivers. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# + +AR =ar +AS =as +LD =ld +LDFLAGS =-s -x +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -finline-functions -nostdinc -fno-stack-protector -I../../include +CPP =gcc -E -nostdinc -I../../include + +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< + +OBJS = ll_rw_blk.o floppy.o hd.o ramdisk.o + +blk_drv.a: $(OBJS) + $(AR) rcs blk_drv.a $(OBJS) + sync + +clean: + rm -f core *.o *.a tmp_make + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +floppy.s floppy.o : floppy.c ../../include/linux/sched.h ../../include/linux/head.h \ + ../../include/linux/fs.h ../../include/sys/types.h ../../include/linux/mm.h \ + ../../include/signal.h ../../include/linux/kernel.h \ + ../../include/linux/fdreg.h ../../include/asm/system.h \ + ../../include/asm/io.h ../../include/asm/segment.h blk.h +hd.s hd.o : hd.c ../../include/linux/config.h ../../include/linux/sched.h \ + ../../include/linux/head.h ../../include/linux/fs.h \ + ../../include/sys/types.h ../../include/linux/mm.h ../../include/signal.h \ + ../../include/linux/kernel.h ../../include/linux/hdreg.h \ + ../../include/asm/system.h ../../include/asm/io.h \ + ../../include/asm/segment.h blk.h +ll_rw_blk.s ll_rw_blk.o : ll_rw_blk.c ../../include/errno.h ../../include/linux/sched.h \ + ../../include/linux/head.h ../../include/linux/fs.h \ + ../../include/sys/types.h ../../include/linux/mm.h ../../include/signal.h \ + ../../include/linux/kernel.h ../../include/asm/system.h blk.h diff --git a/linux-0.11-lab/0/linux/kernel/blk_drv/blk.h b/linux-0.11-lab/0/linux/kernel/blk_drv/blk.h new file mode 100644 index 0000000..7a69b71 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/blk_drv/blk.h @@ -0,0 +1,140 @@ +#ifndef _BLK_H +#define _BLK_H + +#define NR_BLK_DEV 7 +/* + * NR_REQUEST is the number of entries in the request-queue. + * NOTE that writes may use only the low 2/3 of these: reads + * take precedence. + * + * 32 seems to be a reasonable number: enough to get some benefit + * from the elevator-mechanism, but not so much as to lock a lot of + * buffers when they are in the queue. 64 seems to be too many (easily + * long pauses in reading when heavy writing/syncing is going on) + */ +#define NR_REQUEST 32 + +/* + * Ok, this is an expanded form so that we can use the same + * request for paging requests when that is implemented. In + * paging, 'bh' is NULL, and 'waiting' is used to wait for + * read/write completion. + */ +struct request { + int dev; /* -1 if no request */ + int cmd; /* READ or WRITE */ + int errors; + unsigned long sector; + unsigned long nr_sectors; + char * buffer; + struct task_struct * waiting; + struct buffer_head * bh; + struct request * next; +}; + +/* + * This is used in the elevator algorithm: Note that + * reads always go before writes. This is natural: reads + * are much more time-critical than writes. + */ +#define IN_ORDER(s1,s2) \ +((s1)->cmd<(s2)->cmd || (s1)->cmd==(s2)->cmd && \ +((s1)->dev < (s2)->dev || ((s1)->dev == (s2)->dev && \ +(s1)->sector < (s2)->sector))) + +struct blk_dev_struct { + void (*request_fn)(void); + struct request * current_request; +}; + +extern struct blk_dev_struct blk_dev[NR_BLK_DEV]; +extern struct request request[NR_REQUEST]; +extern struct task_struct * wait_for_request; + +#ifdef MAJOR_NR + +/* + * Add entries as needed. Currently the only block devices + * supported are hard-disks and floppies. + */ + +#if (MAJOR_NR == 1) +/* ram disk */ +#define DEVICE_NAME "ramdisk" +#define DEVICE_REQUEST do_rd_request +#define DEVICE_NR(device) ((device) & 7) +#define DEVICE_ON(device) +#define DEVICE_OFF(device) + +#elif (MAJOR_NR == 2) +/* floppy */ +#define DEVICE_NAME "floppy" +#define DEVICE_INTR do_floppy +#define DEVICE_REQUEST do_fd_request +#define DEVICE_NR(device) ((device) & 3) +#define DEVICE_ON(device) floppy_on(DEVICE_NR(device)) +#define DEVICE_OFF(device) floppy_off(DEVICE_NR(device)) + +#elif (MAJOR_NR == 3) +/* harddisk */ +#define DEVICE_NAME "harddisk" +#define DEVICE_INTR do_hd +#define DEVICE_REQUEST do_hd_request +#define DEVICE_NR(device) (MINOR(device)/5) +#define DEVICE_ON(device) +#define DEVICE_OFF(device) + +#elif (MAJOR_NR > 3) +/* unknown blk device */ +#error "unknown blk device" + +#endif + +#define CURRENT (blk_dev[MAJOR_NR].current_request) +#define CURRENT_DEV DEVICE_NR(CURRENT->dev) + +#ifdef DEVICE_INTR +void (*DEVICE_INTR)(void) = NULL; +#endif +static void (DEVICE_REQUEST)(void); + +static inline void unlock_buffer(struct buffer_head * bh) +{ + if (!bh->b_lock) + printk(DEVICE_NAME ": free buffer being unlocked\n"); + bh->b_lock=0; + wake_up(&bh->b_wait); +} + +static inline void end_request(int uptodate) +{ + DEVICE_OFF(CURRENT->dev); + if (CURRENT->bh) { + CURRENT->bh->b_uptodate = uptodate; + unlock_buffer(CURRENT->bh); + } + if (!uptodate) { + printk(DEVICE_NAME " I/O error\n\r"); + printk("dev %04x, block %d\n\r",CURRENT->dev, + CURRENT->bh->b_blocknr); + } + wake_up(&CURRENT->waiting); + wake_up(&wait_for_request); + CURRENT->dev = -1; + CURRENT = CURRENT->next; +} + +#define INIT_REQUEST \ +repeat: \ + if (!CURRENT) \ + return; \ + if (MAJOR(CURRENT->dev) != MAJOR_NR) \ + panic(DEVICE_NAME ": request list destroyed"); \ + if (CURRENT->bh) { \ + if (!CURRENT->bh->b_lock) \ + panic(DEVICE_NAME ": block not locked"); \ + } + +#endif + +#endif diff --git a/linux-0.11-lab/0/linux/kernel/blk_drv/blk_drv.a b/linux-0.11-lab/0/linux/kernel/blk_drv/blk_drv.a new file mode 100644 index 0000000000000000000000000000000000000000..02751f123aa0c72fe90e820ca24599de825468be GIT binary patch literal 52212 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 +#include +#include +#include +#include +#include +#include + +#define MAJOR_NR 2 +#include "blk.h" + +static int recalibrate = 0; +static int reset = 0; +static int seek = 0; + +extern unsigned char current_DOR; + +#define immoutb_p(val,port) \ +__asm__("outb %0,%1\n\tjmp 1f\n1:\tjmp 1f\n1:"::"a" ((char) (val)),"i" (port)) + +#define TYPE(x) ((x)>>2) +#define DRIVE(x) ((x)&0x03) +/* + * Note that MAX_ERRORS=8 doesn't imply that we retry every bad read + * max 8 times - some types of errors increase the errorcount by 2, + * so we might actually retry only 5-6 times before giving up. + */ +#define MAX_ERRORS 8 + +/* + * globals used by 'result()' + */ +#define MAX_REPLIES 7 +static unsigned char reply_buffer[MAX_REPLIES]; +#define ST0 (reply_buffer[0]) +#define ST1 (reply_buffer[1]) +#define ST2 (reply_buffer[2]) +#define ST3 (reply_buffer[3]) + +/* + * This struct defines the different floppy types. Unlike minix + * linux doesn't have a "search for right type"-type, as the code + * for that is convoluted and weird. I've got enough problems with + * this driver as it is. + * + * The 'stretch' tells if the tracks need to be boubled for some + * types (ie 360kB diskette in 1.2MB drive etc). Others should + * be self-explanatory. + */ +static struct floppy_struct { + unsigned int size, sect, head, track, stretch; + unsigned char gap,rate,spec1; +} floppy_type[] = { + { 0, 0,0, 0,0,0x00,0x00,0x00 }, /* no testing */ + { 720, 9,2,40,0,0x2A,0x02,0xDF }, /* 360kB PC diskettes */ + { 2400,15,2,80,0,0x1B,0x00,0xDF }, /* 1.2 MB AT-diskettes */ + { 720, 9,2,40,1,0x2A,0x02,0xDF }, /* 360kB in 720kB drive */ + { 1440, 9,2,80,0,0x2A,0x02,0xDF }, /* 3.5" 720kB diskette */ + { 720, 9,2,40,1,0x23,0x01,0xDF }, /* 360kB in 1.2MB drive */ + { 1440, 9,2,80,0,0x23,0x01,0xDF }, /* 720kB in 1.2MB drive */ + { 2880,18,2,80,0,0x1B,0x00,0xCF }, /* 1.44MB diskette */ +}; +/* + * Rate is 0 for 500kb/s, 2 for 300kbps, 1 for 250kbps + * Spec1 is 0xSH, where S is stepping rate (F=1ms, E=2ms, D=3ms etc), + * H is head unload time (1=16ms, 2=32ms, etc) + * + * Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms etc) + * and ND is set means no DMA. Hardcoded to 6 (HLD=6ms, use DMA). + */ + +extern void floppy_interrupt(void); +extern char tmp_floppy_area[1024]; + +/* + * These are global variables, as that's the easiest way to give + * information to interrupts. They are the data used for the current + * request. + */ +static int cur_spec1 = -1; +static int cur_rate = -1; +static struct floppy_struct * floppy = floppy_type; +static unsigned char current_drive = 0; +static unsigned char sector = 0; +static unsigned char head = 0; +static unsigned char track = 0; +static unsigned char seek_track = 0; +static unsigned char current_track = 255; +static unsigned char command = 0; +unsigned char selected = 0; +struct task_struct * wait_on_floppy_select = NULL; + +void floppy_deselect(unsigned int nr) +{ + if (nr != (current_DOR & 3)) + printk("floppy_deselect: drive not selected\n\r"); + selected = 0; + wake_up(&wait_on_floppy_select); +} + +/* + * floppy-change is never called from an interrupt, so we can relax a bit + * here, sleep etc. Note that floppy-on tries to set current_DOR to point + * to the desired drive, but it will probably not survive the sleep if + * several floppies are used at the same time: thus the loop. + */ +int floppy_change(unsigned int nr) +{ +repeat: + floppy_on(nr); + while ((current_DOR & 3) != nr && selected) + interruptible_sleep_on(&wait_on_floppy_select); + if ((current_DOR & 3) != nr) + goto repeat; + if (inb(FD_DIR) & 0x80) { + floppy_off(nr); + return 1; + } + floppy_off(nr); + return 0; +} + +#define copy_buffer(from,to) \ +__asm__("cld ; rep ; movsl" \ + ::"c" (BLOCK_SIZE/4),"S" ((long)(from)),"D" ((long)(to)) \ + ) + +static void setup_DMA(void) +{ + long addr = (long) CURRENT->buffer; + + cli(); + if (addr >= 0x100000) { + addr = (long) tmp_floppy_area; + if (command == FD_WRITE) + copy_buffer(CURRENT->buffer,tmp_floppy_area); + } +/* mask DMA 2 */ + immoutb_p(4|2,10); +/* output command byte. I don't know why, but everyone (minix, */ +/* sanches & canton) output this twice, first to 12 then to 11 */ + __asm__("outb %%al,$12\n\tjmp 1f\n1:\tjmp 1f\n1:\t" + "outb %%al,$11\n\tjmp 1f\n1:\tjmp 1f\n1:":: + "a" ((char) ((command == FD_READ)?DMA_READ:DMA_WRITE))); +/* 8 low bits of addr */ + immoutb_p(addr,4); + addr >>= 8; +/* bits 8-15 of addr */ + immoutb_p(addr,4); + addr >>= 8; +/* bits 16-19 of addr */ + immoutb_p(addr,0x81); +/* low 8 bits of count-1 (1024-1=0x3ff) */ + immoutb_p(0xff,5); +/* high 8 bits of count-1 */ + immoutb_p(3,5); +/* activate DMA 2 */ + immoutb_p(0|2,10); + sti(); +} + +static void output_byte(char byte) +{ + int counter; + unsigned char status; + + if (reset) + return; + for(counter = 0 ; counter < 10000 ; counter++) { + status = inb_p(FD_STATUS) & (STATUS_READY | STATUS_DIR); + if (status == STATUS_READY) { + outb(byte,FD_DATA); + return; + } + } + reset = 1; + printk("Unable to send byte to FDC\n\r"); +} + +static int result(void) +{ + int i = 0, counter, status; + + if (reset) + return -1; + for (counter = 0 ; counter < 10000 ; counter++) { + status = inb_p(FD_STATUS)&(STATUS_DIR|STATUS_READY|STATUS_BUSY); + if (status == STATUS_READY) + return i; + if (status == (STATUS_DIR|STATUS_READY|STATUS_BUSY)) { + if (i >= MAX_REPLIES) + break; + reply_buffer[i++] = inb_p(FD_DATA); + } + } + reset = 1; + printk("Getstatus times out\n\r"); + return -1; +} + +static void bad_flp_intr(void) +{ + CURRENT->errors++; + if (CURRENT->errors > MAX_ERRORS) { + floppy_deselect(current_drive); + end_request(0); + } + if (CURRENT->errors > MAX_ERRORS/2) + reset = 1; + else + recalibrate = 1; +} + +/* + * Ok, this interrupt is called after a DMA read/write has succeeded, + * so we check the results, and copy any buffers. + */ +static void rw_interrupt(void) +{ + if (result() != 7 || (ST0 & 0xf8) || (ST1 & 0xbf) || (ST2 & 0x73)) { + if (ST1 & 0x02) { + printk("Drive %d is write protected\n\r",current_drive); + floppy_deselect(current_drive); + end_request(0); + } else + bad_flp_intr(); + do_fd_request(); + return; + } + if (command == FD_READ && (unsigned long)(CURRENT->buffer) >= 0x100000) + copy_buffer(tmp_floppy_area,CURRENT->buffer); + floppy_deselect(current_drive); + end_request(1); + do_fd_request(); +} + +inline void setup_rw_floppy(void) +{ + setup_DMA(); + do_floppy = rw_interrupt; + output_byte(command); + output_byte(head<<2 | current_drive); + output_byte(track); + output_byte(head); + output_byte(sector); + output_byte(2); /* sector size = 512 */ + output_byte(floppy->sect); + output_byte(floppy->gap); + output_byte(0xFF); /* sector size (0xff when n!=0 ?) */ + if (reset) + do_fd_request(); +} + +/* + * This is the routine called after every seek (or recalibrate) interrupt + * from the floppy controller. Note that the "unexpected interrupt" routine + * also does a recalibrate, but doesn't come here. + */ +static void seek_interrupt(void) +{ +/* sense drive status */ + output_byte(FD_SENSEI); + if (result() != 2 || (ST0 & 0xF8) != 0x20 || ST1 != seek_track) { + bad_flp_intr(); + do_fd_request(); + return; + } + current_track = ST1; + setup_rw_floppy(); +} + +/* + * This routine is called when everything should be correctly set up + * for the transfer (ie floppy motor is on and the correct floppy is + * selected). + */ +static void transfer(void) +{ + if (cur_spec1 != floppy->spec1) { + cur_spec1 = floppy->spec1; + output_byte(FD_SPECIFY); + output_byte(cur_spec1); /* hut etc */ + output_byte(6); /* Head load time =6ms, DMA */ + } + if (cur_rate != floppy->rate) + outb_p(cur_rate = floppy->rate,FD_DCR); + if (reset) { + do_fd_request(); + return; + } + if (!seek) { + setup_rw_floppy(); + return; + } + do_floppy = seek_interrupt; + if (seek_track) { + output_byte(FD_SEEK); + output_byte(head<<2 | current_drive); + output_byte(seek_track); + } else { + output_byte(FD_RECALIBRATE); + output_byte(head<<2 | current_drive); + } + if (reset) + do_fd_request(); +} + +/* + * Special case - used after a unexpected interrupt (or reset) + */ +static void recal_interrupt(void) +{ + output_byte(FD_SENSEI); + if (result()!=2 || (ST0 & 0xE0) == 0x60) + reset = 1; + else + recalibrate = 0; + do_fd_request(); +} + +void unexpected_floppy_interrupt(void) +{ + output_byte(FD_SENSEI); + if (result()!=2 || (ST0 & 0xE0) == 0x60) + reset = 1; + else + recalibrate = 1; +} + +static void recalibrate_floppy(void) +{ + recalibrate = 0; + current_track = 0; + current_drive = 1; /* by wyj, ?? */ + do_floppy = recal_interrupt; + output_byte(FD_RECALIBRATE); + output_byte(head<<2 | current_drive); + if (reset) + do_fd_request(); +} + +static void reset_interrupt(void) +{ + output_byte(FD_SENSEI); + (void) result(); + output_byte(FD_SPECIFY); + output_byte(cur_spec1); /* hut etc */ + output_byte(6); /* Head load time =6ms, DMA */ + do_fd_request(); +} + +/* + * reset is done by pulling bit 2 of DOR low for a while. + */ +static void reset_floppy(void) +{ + int i; + + reset = 0; + cur_spec1 = -1; + cur_rate = -1; + recalibrate = 1; + printk("Reset-floppy called\n\r"); + cli(); + do_floppy = reset_interrupt; + outb_p(current_DOR & ~0x04,FD_DOR); + for (i=0 ; i<100 ; i++) + __asm__("nop"); + outb(current_DOR,FD_DOR); + sti(); +} + +static void floppy_on_interrupt(void) +{ +/* We cannot do a floppy-select, as that might sleep. We just force it */ + selected = 1; + if (current_drive != (current_DOR & 3)) { + current_DOR &= 0xFC; + current_DOR |= current_drive; + outb(current_DOR,FD_DOR); + add_timer(2,&transfer); + } else + transfer(); +} + +void do_fd_request(void) +{ + unsigned int block; + + seek = 0; + if (reset) { + reset_floppy(); + return; + } + if (recalibrate) { + recalibrate_floppy(); + return; + } + INIT_REQUEST; + floppy = (MINOR(CURRENT->dev)>>2) + floppy_type; + if (current_drive != CURRENT_DEV) + seek = 1; + current_drive = CURRENT_DEV; + block = CURRENT->sector; + if (block+2 > floppy->size) { + end_request(0); + goto repeat; + } + sector = block % floppy->sect; + block /= floppy->sect; + head = block % floppy->head; + track = block / floppy->head; + seek_track = track << floppy->stretch; + if (seek_track != current_track) + seek = 1; + sector++; + if (CURRENT->cmd == READ) + command = FD_READ; + else if (CURRENT->cmd == WRITE) + command = FD_WRITE; + else + panic("do_fd_request: unknown command"); + add_timer(ticks_to_floppy_on(current_drive),&floppy_on_interrupt); +} + +void floppy_init(void) +{ + blk_dev[MAJOR_NR].request_fn = DEVICE_REQUEST; + set_trap_gate(0x26,&floppy_interrupt); + outb(inb_p(0x21)&~0x40,0x21); +} diff --git a/linux-0.11-lab/0/linux/kernel/blk_drv/floppy.o b/linux-0.11-lab/0/linux/kernel/blk_drv/floppy.o new file mode 100644 index 0000000000000000000000000000000000000000..33235bcdcc660371f0cfe6077089e24f2a1c3a96 GIT binary patch literal 16612 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/blk_drv/hd.c b/linux-0.11-lab/0/linux/kernel/blk_drv/hd.c new file mode 100644 index 0000000..c0e908f --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/blk_drv/hd.c @@ -0,0 +1,351 @@ +/* + * linux/kernel/hd.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * This is the low-level hd interrupt support. It traverses the + * request-list, using interrupts to jump between functions. As + * all the functions are called within interrupts, we may not + * sleep. Special care is recommended. + * + * modified by Drew Eckhardt to check nr of hd's from the CMOS. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAJOR_NR 3 +#include "blk.h" + +#define CMOS_READ(addr) ({ \ +outb_p(0x80|addr,0x70); \ +inb_p(0x71); \ +}) + +/* Max read/write errors/sector */ +#define MAX_ERRORS 7 +#define MAX_HD 2 + +static void recal_intr(void); + +static int recalibrate = 0; /* 1, wen */ +static int reset = 0; + +/* + * This struct defines the HD's and their types. + */ +struct hd_i_struct { + int head,sect,cyl,wpcom,lzone,ctl; + }; +#ifdef HD_TYPE +struct hd_i_struct hd_info[] = { HD_TYPE }; +#define NR_HD ((sizeof (hd_info))/(sizeof (struct hd_i_struct))) +#else +struct hd_i_struct hd_info[] = { {0,0,0,0,0,0},{0,0,0,0,0,0} }; +static int NR_HD = 0; +#endif + +static struct hd_struct { + long start_sect; + long nr_sects; +} hd[5*MAX_HD]={{0,0},}; + +#define port_read(port,buf,nr) \ +__asm__("cld;rep;insw"::"d" (port),"D" (buf),"c" (nr)) + +#define port_write(port,buf,nr) \ +__asm__("cld;rep;outsw"::"d" (port),"S" (buf),"c" (nr)) + +extern void hd_interrupt(void); +extern void rd_load(void); + +/* This may be used only once, enforced by 'static int callable' */ +int sys_setup(void * BIOS) +{ + static int callable = 1; + int i,drive; + unsigned char cmos_disks; + struct partition *p; + struct buffer_head * bh; + + if (!callable) + return -1; + callable = 0; +#ifndef HD_TYPE + for (drive=0 ; drive<2 ; drive++) { + hd_info[drive].cyl = *(unsigned short *) BIOS; + hd_info[drive].head = *(unsigned char *) (2+BIOS); + hd_info[drive].wpcom = *(unsigned short *) (5+BIOS); + hd_info[drive].ctl = *(unsigned char *) (8+BIOS); + hd_info[drive].lzone = *(unsigned short *) (12+BIOS); + hd_info[drive].sect = *(unsigned char *) (14+BIOS); + BIOS += 16; + } + if (hd_info[1].cyl) + NR_HD=2; + else + NR_HD=1; +#endif + for (i=0 ; i are the primary drives in the system, and + the ones reflected as drive 1 or 2. + + The first drive is stored in the high nibble of CMOS + byte 0x12, the second in the low nibble. This will be + either a 4 bit drive type or 0xf indicating use byte 0x19 + for an 8 bit type, drive 1, 0x1a for drive 2 in CMOS. + + Needless to say, a non-zero value means we have + an AT controller hard disk for that drive. + + + */ + + if ((cmos_disks = CMOS_READ(0x12)) & 0xf0) + if (cmos_disks & 0x0f) + NR_HD = 2; + else + NR_HD = 1; + else + NR_HD = 0; + for (i = NR_HD ; i < 2 ; i++) { + hd[i*5].start_sect = 0; + hd[i*5].nr_sects = 0; + } + for (drive=0 ; driveb_data[510] != 0x55 || (unsigned char) + bh->b_data[511] != 0xAA) { + printk("Bad partition table on drive %d\n\r",drive); + panic(""); + } + p = 0x1BE + (void *)bh->b_data; + for (i=1;i<5;i++,p++) { + hd[i+5*drive].start_sect = p->start_sect; + hd[i+5*drive].nr_sects = p->nr_sects; + } + brelse(bh); + } + if (NR_HD) + printk("Partition table%s ok.\n\r",(NR_HD>1)?"s":""); + rd_load(); + mount_root(); + return (0); +} + +static int controller_ready(void) +{ + /* int retries=10000; */ + int retries=100000; + + /* while (--retries && (inb_p(HD_STATUS)&0xc0)!=0x40); */ + while (--retries && (inb_p(HD_STATUS)&0x80)); + return (retries); +} + +static int win_result(void) +{ + int i=inb_p(HD_STATUS); + + if ((i & (BUSY_STAT | READY_STAT | WRERR_STAT | SEEK_STAT | ERR_STAT)) + == (READY_STAT | SEEK_STAT)) + return(0); /* ok */ + if (i&1) i=inb(HD_ERROR); + return (1); +} + +static void hd_out(unsigned int drive,unsigned int nsect,unsigned int sect, + unsigned int head,unsigned int cyl,unsigned int cmd, + void (*intr_addr)(void)) +{ + register int port asm("dx"); + + if (drive>1 || head>15) + panic("Trying to write bad sector"); + if (!controller_ready()) + panic("HD controller not ready"); + do_hd = intr_addr; + outb_p(hd_info[drive].ctl,HD_CMD); + port=HD_DATA; + outb_p(hd_info[drive].wpcom>>2,++port); + outb_p(nsect,++port); + outb_p(sect,++port); + outb_p(cyl,++port); + outb_p(cyl>>8,++port); + outb_p(0xA0|(drive<<4)|head,++port); + outb(cmd,++port); +} + +static int drive_busy(void) +{ + unsigned int i; + + for (i = 0; i < 10000; i++) + if (READY_STAT == (inb_p(HD_STATUS) & (BUSY_STAT|READY_STAT))) + break; + i = inb(HD_STATUS); + i &= BUSY_STAT | READY_STAT | SEEK_STAT; + if (i == READY_STAT | SEEK_STAT) + return(0); + printk("HD controller times out\n\r"); + return(1); +} + +static void reset_controller(void) +{ + int i; + + outb(4,HD_CMD); + for(i = 0; i < 100; i++) nop(); + outb(hd_info[0].ctl & 0x0f ,HD_CMD); + if (drive_busy()) + printk("HD-controller still busy\n\r"); + if ((i = inb(HD_ERROR)) != 1) + printk("HD-controller reset failed: %02x\n\r",i); +} + +static void reset_hd(int nr) +{ + reset_controller(); + hd_out(nr,hd_info[nr].sect,hd_info[nr].sect,hd_info[nr].head-1, + hd_info[nr].cyl,WIN_SPECIFY,&recal_intr); +} + +void unexpected_hd_interrupt(void) +{ + printk("Unexpected HD interrupt\n\r"); +} + +static void bad_rw_intr(void) +{ + if (++CURRENT->errors >= MAX_ERRORS) + end_request(0); + if (CURRENT->errors > MAX_ERRORS/2) + reset = 1; +} + +static void read_intr(void) +{ + if (win_result()) { + bad_rw_intr(); + do_hd_request(); + return; + } + port_read(HD_DATA,CURRENT->buffer,256); + CURRENT->errors = 0; + CURRENT->buffer += 512; + CURRENT->sector++; + if (--CURRENT->nr_sectors) { + do_hd = &read_intr; + return; + } + end_request(1); + do_hd_request(); +} + +static void write_intr(void) +{ + if (win_result()) { + bad_rw_intr(); + do_hd_request(); + return; + } + if (--CURRENT->nr_sectors) { + CURRENT->sector++; + CURRENT->buffer += 512; + do_hd = &write_intr; + port_write(HD_DATA,CURRENT->buffer,256); + return; + } + end_request(1); + do_hd_request(); +} + +static void recal_intr(void) +{ + if (win_result()) + bad_rw_intr(); + do_hd_request(); +} + +void do_hd_request(void) +{ + int i,r; + unsigned int block,dev; + unsigned int sec,head,cyl; + unsigned int nsect; + + INIT_REQUEST; + dev = MINOR(CURRENT->dev); + block = CURRENT->sector; + if (dev >= 5*NR_HD || block+2 > hd[dev].nr_sects) { + end_request(0); + goto repeat; + } + block += hd[dev].start_sect; + dev /= 5; + __asm__("divl %4":"=a" (block),"=d" (sec):"0" (block),"1" (0), + "r" (hd_info[dev].sect)); + __asm__("divl %4":"=a" (cyl),"=d" (head):"0" (block),"1" (0), + "r" (hd_info[dev].head)); + sec++; + nsect = CURRENT->nr_sectors; + if (reset) { + reset = 0; + recalibrate = 1; + reset_hd(CURRENT_DEV); + return; + } + if (recalibrate) { + recalibrate = 0; + hd_out(dev,hd_info[CURRENT_DEV].sect,0,0,0, + WIN_RESTORE,&recal_intr); + return; + } + if (CURRENT->cmd == WRITE) { + hd_out(dev,nsect,sec,head,cyl,WIN_WRITE,&write_intr); + for(i=0 ; i<3000 && !(r=inb_p(HD_STATUS)&DRQ_STAT) ; i++) + /* nothing */ ; + if (!r) { + bad_rw_intr(); + goto repeat; + } + port_write(HD_DATA,CURRENT->buffer,256); + } else if (CURRENT->cmd == READ) { + hd_out(dev,nsect,sec,head,cyl,WIN_READ,&read_intr); + } else + panic("unknown hd-command"); +} + +void hd_init(void) +{ + blk_dev[MAJOR_NR].request_fn = DEVICE_REQUEST; + set_intr_gate(0x2E,&hd_interrupt); + outb_p(inb_p(0x21)&0xfb,0x21); + outb(inb_p(0xA1)&0xbf,0xA1); +} diff --git a/linux-0.11-lab/0/linux/kernel/blk_drv/hd.o b/linux-0.11-lab/0/linux/kernel/blk_drv/hd.o new file mode 100644 index 0000000000000000000000000000000000000000..bf2b0d10bc58477ea1758f63f765ba3eab8d6225 GIT binary patch literal 15520 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/blk_drv/ll_rw_blk.c b/linux-0.11-lab/0/linux/kernel/blk_drv/ll_rw_blk.c new file mode 100644 index 0000000..f57d998 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/blk_drv/ll_rw_blk.c @@ -0,0 +1,165 @@ +/* + * linux/kernel/blk_dev/ll_rw.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * This handles all read/write requests to block devices + */ +#include +#include +#include +#include + +#include "blk.h" + +/* + * The request-struct contains all necessary data + * to load a nr of sectors into memory + */ +struct request request[NR_REQUEST]; + +/* + * used to wait on when there are no free requests + */ +struct task_struct * wait_for_request = NULL; + +/* blk_dev_struct is: + * do_request-address + * next-request + */ +struct blk_dev_struct blk_dev[NR_BLK_DEV] = { + { NULL, NULL }, /* no_dev */ + { NULL, NULL }, /* dev mem */ + { NULL, NULL }, /* dev fd */ + { NULL, NULL }, /* dev hd */ + { NULL, NULL }, /* dev ttyx */ + { NULL, NULL }, /* dev tty */ + { NULL, NULL } /* dev lp */ +}; + +static inline void lock_buffer(struct buffer_head * bh) +{ + cli(); + while (bh->b_lock) + sleep_on(&bh->b_wait); + bh->b_lock=1; + sti(); +} + +static inline void unlock_buffer(struct buffer_head * bh) +{ + if (!bh->b_lock) + printk("ll_rw_block.c: buffer not locked\n\r"); + bh->b_lock = 0; + wake_up(&bh->b_wait); +} + +/* + * add-request adds a request to the linked list. + * It disables interrupts so that it can muck with the + * request-lists in peace. + */ +static void add_request(struct blk_dev_struct * dev, struct request * req) +{ + struct request * tmp; + + req->next = NULL; + cli(); + if (req->bh) + req->bh->b_dirt = 0; + if (!(tmp = dev->current_request)) { + dev->current_request = req; + sti(); + (dev->request_fn)(); + return; + } + for ( ; tmp->next ; tmp=tmp->next) + if ((IN_ORDER(tmp,req) || + !IN_ORDER(tmp,tmp->next)) && + IN_ORDER(req,tmp->next)) + break; + req->next=tmp->next; + tmp->next=req; + sti(); +} + +static void make_request(int major,int rw, struct buffer_head * bh) +{ + struct request * req; + int rw_ahead; + +/* WRITEA/READA is special case - it is not really needed, so if the */ +/* buffer is locked, we just forget about it, else it's a normal read */ + if (rw_ahead = (rw == READA || rw == WRITEA)) { + if (bh->b_lock) + return; + if (rw == READA) + rw = READ; + else + rw = WRITE; + } + if (rw!=READ && rw!=WRITE) + panic("Bad block dev command, must be R/W/RA/WA"); + lock_buffer(bh); + if ((rw == WRITE && !bh->b_dirt) || (rw == READ && bh->b_uptodate)) { + unlock_buffer(bh); + return; + } +repeat: +/* we don't allow the write-requests to fill up the queue completely: + * we want some room for reads: they take precedence. The last third + * of the requests are only for reads. + */ + if (rw == READ) + req = request+NR_REQUEST; + else + req = request+((NR_REQUEST*2)/3); +/* find an empty request */ + while (--req >= request) + if (req->dev<0) + break; +/* if none found, sleep on new requests: check for rw_ahead */ + if (req < request) { + if (rw_ahead) { + unlock_buffer(bh); + return; + } + sleep_on(&wait_for_request); + goto repeat; + } +/* fill up the request-info, and add it to the queue */ + req->dev = bh->b_dev; + req->cmd = rw; + req->errors=0; + req->sector = bh->b_blocknr<<1; + req->nr_sectors = 2; + req->buffer = bh->b_data; + req->waiting = NULL; + req->bh = bh; + req->next = NULL; + add_request(major+blk_dev,req); +} + +void ll_rw_block(int rw, struct buffer_head * bh) +{ + unsigned int major; + + if ((major=MAJOR(bh->b_dev)) >= NR_BLK_DEV || + !(blk_dev[major].request_fn)) { + printk("Trying to read nonexistent block-device\n\r"); + return; + } + make_request(major,rw,bh); +} + +void blk_dev_init(void) +{ + int i; + + for (i=0 ; iYkGs}N`|^F* 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 + +#include +#include +#include +#include +#include +#include +#include + +#define MAJOR_NR 1 +#include "blk.h" + +char *rd_start; +int rd_length = 0; + +void do_rd_request(void) +{ + int len; + char *addr; + + INIT_REQUEST; + addr = rd_start + (CURRENT->sector << 9); + len = CURRENT->nr_sectors << 9; + if ((MINOR(CURRENT->dev) != 1) || (addr+len > rd_start+rd_length)) { + end_request(0); + goto repeat; + } + if (CURRENT-> cmd == WRITE) { + (void ) memcpy(addr, + CURRENT->buffer, + len); + } else if (CURRENT->cmd == READ) { + (void) memcpy(CURRENT->buffer, + addr, + len); + } else + panic("unknown ramdisk-command"); + end_request(1); + goto repeat; +} + +/* + * Returns amount of memory which needs to be reserved. + */ +long rd_init(long mem_start, int length) +{ + int i; + char *cp; + + blk_dev[MAJOR_NR].request_fn = DEVICE_REQUEST; + rd_start = (char *) mem_start; + rd_length = length; + cp = rd_start; + for (i=0; i < length; i++) + *cp++ = '\0'; + return(length); +} + +/* + * If the root device is the ram disk, try to load it. + * In order to do this, the root device is originally set to the + * floppy, and we later change it to be ram disk. + */ +void rd_load(void) +{ + struct buffer_head *bh; + struct super_block s; + int block = 256; /* Start at block 256 */ + int i = 1; + int nblocks; + char *cp; /* Move pointer */ + + if (!rd_length) + return; + printk("Ram disk: %d bytes, starting at 0x%x\n", rd_length, + (int) rd_start); + if (MAJOR(ROOT_DEV) != 2) + return; + bh = breada(ROOT_DEV,block+1,block,block+2,-1); + if (!bh) { + printk("Disk error while looking for ramdisk!\n"); + return; + } + __asm__ volatile ("cld"); /* by wyj */ + *((struct d_super_block *) &s) = *((struct d_super_block *) bh->b_data); + brelse(bh); + if (s.s_magic != SUPER_MAGIC) + /* No ram disk image present, assume normal floppy boot */ + return; + nblocks = s.s_nzones << s.s_log_zone_size; + if (nblocks > (rd_length >> BLOCK_SIZE_BITS)) { + printk("Ram disk image too big! (%d blocks, %d avail)\n", + nblocks, rd_length >> BLOCK_SIZE_BITS); + return; + } + printk("Loading %d bytes into ram disk... 0000k", + nblocks << BLOCK_SIZE_BITS); + cp = rd_start; + while (nblocks) { + if (nblocks > 2) + bh = breada(ROOT_DEV, block, block+1, block+2, -1); + else + bh = bread(ROOT_DEV, block); + if (!bh) { + printk("I/O error on block %d, aborting load\n", + block); + return; + } + (void) memcpy(cp, bh->b_data, BLOCK_SIZE); + brelse(bh); + printk("\010\010\010\010\010%4dk",i); + cp += BLOCK_SIZE; + block++; + nblocks--; + i++; + } + printk("\010\010\010\010\010done \n"); + ROOT_DEV=0x0101; +} diff --git a/linux-0.11-lab/0/linux/kernel/blk_drv/ramdisk.o b/linux-0.11-lab/0/linux/kernel/blk_drv/ramdisk.o new file mode 100644 index 0000000000000000000000000000000000000000..d37a922496b20c46741e78e22466958ee16e9dcd GIT binary patch literal 10664 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 azd^gt2s%I$JikGRTt|uA(-65=A^s1$?rygL literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/Makefile b/linux-0.11-lab/0/linux/kernel/chr_drv/Makefile new file mode 100644 index 0000000..9d4d8d1 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/chr_drv/Makefile @@ -0,0 +1,68 @@ +# +# Makefile for the FREAX-kernel character device drivers. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# + +AR =ar +AS =as +LD =ld +LDFLAGS =-s -x +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -finline-functions -nostdinc -fno-stack-protector -I../../include +CPP =gcc -E -nostdinc -I../../include + +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< + +OBJS = tty_io.o console.o keyboard.2.o serial.o rs_io.o \ + tty_ioctl.o + +chr_drv.a: $(OBJS) + $(AR) rcs chr_drv.a $(OBJS) + sync + +keyboard.2.s: keyboard.S ../../include/linux/config.h + $(CPP) -traditional keyboard.S -o keyboard.2.s + +clean: + rm -f core *.o *.a tmp_make keyboard.2.s + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +console.s console.o : console.c ../../include/linux/sched.h \ + ../../include/linux/head.h ../../include/linux/fs.h \ + ../../include/sys/types.h ../../include/linux/mm.h ../../include/signal.h \ + ../../include/linux/tty.h ../../include/termios.h ../../include/asm/io.h \ + ../../include/asm/system.h +serial.s serial.o : serial.c ../../include/linux/tty.h ../../include/termios.h \ + ../../include/linux/sched.h ../../include/linux/head.h \ + ../../include/linux/fs.h ../../include/sys/types.h ../../include/linux/mm.h \ + ../../include/signal.h ../../include/asm/system.h ../../include/asm/io.h +tty_io.s tty_io.o : tty_io.c ../../include/ctype.h ../../include/errno.h \ + ../../include/signal.h ../../include/sys/types.h \ + ../../include/linux/sched.h ../../include/linux/head.h \ + ../../include/linux/fs.h ../../include/linux/mm.h ../../include/linux/tty.h \ + ../../include/termios.h ../../include/asm/segment.h \ + ../../include/asm/system.h +tty_ioctl.s tty_ioctl.o : tty_ioctl.c ../../include/errno.h ../../include/termios.h \ + ../../include/linux/sched.h ../../include/linux/head.h \ + ../../include/linux/fs.h ../../include/sys/types.h ../../include/linux/mm.h \ + ../../include/signal.h ../../include/linux/kernel.h \ + ../../include/linux/tty.h ../../include/asm/io.h \ + ../../include/asm/segment.h ../../include/asm/system.h diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/chr_drv.a b/linux-0.11-lab/0/linux/kernel/chr_drv/chr_drv.a new file mode 100644 index 0000000000000000000000000000000000000000..d2f3869a9d5cd226117476be64275b50d1cf4aa7 GIT binary patch literal 68902 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ਞ(_ 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 E8yu$yWB>pF literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/console.c b/linux-0.11-lab/0/linux/kernel/chr_drv/console.c new file mode 100644 index 0000000..a12ffbf --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/chr_drv/console.c @@ -0,0 +1,710 @@ +/* + * linux/kernel/console.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * console.c + * + * This module implements the console io functions + * 'void con_init(void)' + * 'void con_write(struct tty_queue * queue)' + * Hopefully this will be a rather complete VT102 implementation. + * + * Beeping thanks to John T Kohl. + */ + +/* + * NOTE!!! We sometimes disable and enable interrupts for a short while + * (to put a word in video IO), but this will work even for keyboard + * interrupts. We know interrupts aren't enabled when getting a keyboard + * interrupt, as we use trap-gates. Hopefully all is well. + */ + +/* + * Code to check for different video-cards mostly by Galen Hunt, + * + */ + +#include +#include +#include +#include + +/* + * These are set up by the setup-routine at boot-time: + */ + +#define ORIG_X (*(unsigned char *)0x90000) +#define ORIG_Y (*(unsigned char *)0x90001) +#define ORIG_VIDEO_PAGE (*(unsigned short *)0x90004) +#define ORIG_VIDEO_MODE ((*(unsigned short *)0x90006) & 0xff) +#define ORIG_VIDEO_COLS (((*(unsigned short *)0x90006) & 0xff00) >> 8) +#define ORIG_VIDEO_LINES (25) +#define ORIG_VIDEO_EGA_AX (*(unsigned short *)0x90008) +#define ORIG_VIDEO_EGA_BX (*(unsigned short *)0x9000a) +#define ORIG_VIDEO_EGA_CX (*(unsigned short *)0x9000c) + +#define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ +#define VIDEO_TYPE_CGA 0x11 /* CGA Display */ +#define VIDEO_TYPE_EGAM 0x20 /* EGA/VGA in Monochrome Mode */ +#define VIDEO_TYPE_EGAC 0x21 /* EGA/VGA in Color Mode */ + +#define NPAR 16 + +extern void keyboard_interrupt(void); + +static unsigned char video_type; /* Type of display being used */ +static unsigned long video_num_columns; /* Number of text columns */ +static unsigned long video_size_row; /* Bytes per row */ +static unsigned long video_num_lines; /* Number of test lines */ +static unsigned char video_page; /* Initial video page */ +static unsigned long video_mem_start; /* Start of video RAM */ +static unsigned long video_mem_end; /* End of video RAM (sort of) */ +static unsigned short video_port_reg; /* Video register select port */ +static unsigned short video_port_val; /* Video register value port */ +static unsigned short video_erase_char; /* Char+Attrib to erase with */ + +static unsigned long origin; /* Used for EGA/VGA fast scroll */ +static unsigned long scr_end; /* Used for EGA/VGA fast scroll */ +static unsigned long pos; +static unsigned long x,y; +static unsigned long top,bottom; +static unsigned long state=0; +static unsigned long npar,par[NPAR]; +static unsigned long ques=0; +static unsigned char attr=0x07; + +static void sysbeep(void); + +/* + * this is what the terminal answers to a ESC-Z or csi0c + * query (= vt100 response). + */ +#define RESPONSE "\033[?1;2c" + +/* NOTE! gotoxy thinks x==video_num_columns is ok */ +static inline void gotoxy(unsigned int new_x,unsigned int new_y) +{ + if (new_x > video_num_columns || new_y >= video_num_lines) + return; + x=new_x; + y=new_y; + pos=origin + y*video_size_row + (x<<1); +} + +static inline void set_origin(void) +{ + cli(); + outb_p(12, video_port_reg); + outb_p(0xff&((origin-video_mem_start)>>9), video_port_val); + outb_p(13, video_port_reg); + outb_p(0xff&((origin-video_mem_start)>>1), video_port_val); + sti(); +} + +static void scrup(void) +{ + if (video_type == VIDEO_TYPE_EGAC || video_type == VIDEO_TYPE_EGAM) + { + if (!top && bottom == video_num_lines) { + origin += video_size_row; + pos += video_size_row; + scr_end += video_size_row; + if (scr_end > video_mem_end) { + __asm__("cld\n\t" + "rep\n\t" + "movsl\n\t" + "movl video_num_columns,%1\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((video_num_lines-1)*video_num_columns>>1), + "D" (video_mem_start), + "S" (origin) + ); + scr_end -= origin-video_mem_start; + pos -= origin-video_mem_start; + origin = video_mem_start; + } else { + __asm__("cld\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" (video_num_columns), + "D" (scr_end-video_size_row) + ); + } + set_origin(); + } else { + __asm__("cld\n\t" + "rep\n\t" + "movsl\n\t" + "movl video_num_columns,%%ecx\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((bottom-top-1)*video_num_columns>>1), + "D" (origin+video_size_row*top), + "S" (origin+video_size_row*(top+1)) + ); + } + } + else /* Not EGA/VGA */ + { + __asm__("cld\n\t" + "rep\n\t" + "movsl\n\t" + "movl video_num_columns,%%ecx\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((bottom-top-1)*video_num_columns>>1), + "D" (origin+video_size_row*top), + "S" (origin+video_size_row*(top+1)) + ); + } +} + +static void scrdown(void) +{ + if (video_type == VIDEO_TYPE_EGAC || video_type == VIDEO_TYPE_EGAM) + { + __asm__("std\n\t" + "rep\n\t" + "movsl\n\t" + "addl $2,%%edi\n\t" /* %edi has been decremented by 4 */ + "movl video_num_columns,%%ecx\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((bottom-top-1)*video_num_columns>>1), + "D" (origin+video_size_row*bottom-4), + "S" (origin+video_size_row*(bottom-1)-4) + ); + } + else /* Not EGA/VGA */ + { + __asm__("std\n\t" + "rep\n\t" + "movsl\n\t" + "addl $2,%%edi\n\t" /* %edi has been decremented by 4 */ + "movl video_num_columns,%%ecx\n\t" + "rep\n\t" + "stosw" + ::"a" (video_erase_char), + "c" ((bottom-top-1)*video_num_columns>>1), + "D" (origin+video_size_row*bottom-4), + "S" (origin+video_size_row*(bottom-1)-4) + ); + } +} + +static void lf(void) +{ + if (y+1top) { + y--; + pos -= video_size_row; + return; + } + scrdown(); +} + +static void cr(void) +{ + pos -= x<<1; + x=0; +} + +static void del(void) +{ + if (x) { + pos -= 2; + x--; + *(unsigned short *)pos = video_erase_char; + } +} + +static void csi_J(int par) +{ + long count __asm__("cx"); + long start __asm__("di"); + + switch (par) { + case 0: /* erase from cursor to end of display */ + count = (scr_end-pos)>>1; + start = pos; + break; + case 1: /* erase from start to cursor */ + count = (pos-origin)>>1; + start = origin; + break; + case 2: /* erase whole display */ + count = video_num_columns * video_num_lines; + start = origin; + break; + default: + return; + } + __asm__("cld\n\t" + "rep\n\t" + "stosw\n\t" + ::"c" (count), + "D" (start),"a" (video_erase_char) + ); +} + +static void csi_K(int par) +{ + long count __asm__("cx"); + long start __asm__("di"); + + switch (par) { + case 0: /* erase from cursor to end of line */ + if (x>=video_num_columns) + return; + count = video_num_columns-x; + start = pos; + break; + case 1: /* erase from start of line to cursor */ + start = pos - (x<<1); + count = (x>9), video_port_val); + outb_p(15, video_port_reg); + outb_p(0xff&((pos-video_mem_start)>>1), video_port_val); + sti(); +} + +static void respond(struct tty_struct * tty) +{ + char * p = RESPONSE; + + cli(); + while (*p) { + PUTCH(*p,tty->read_q); + p++; + } + sti(); + copy_to_cooked(tty); +} + +static void insert_char(void) +{ + int i=x; + unsigned short tmp, old = video_erase_char; + unsigned short * p = (unsigned short *) pos; + + while (i++=video_num_columns) + return; + i = x; + while (++i < video_num_columns) { + *p = *(p+1); + p++; + } + *p = video_erase_char; +} + +static void delete_line(void) +{ + int oldtop,oldbottom; + + oldtop=top; + oldbottom=bottom; + top=y; + bottom = video_num_lines; + scrup(); + top=oldtop; + bottom=oldbottom; +} + +static void csi_at(unsigned int nr) +{ + if (nr > video_num_columns) + nr = video_num_columns; + else if (!nr) + nr = 1; + while (nr--) + insert_char(); +} + +static void csi_L(unsigned int nr) +{ + if (nr > video_num_lines) + nr = video_num_lines; + else if (!nr) + nr = 1; + while (nr--) + insert_line(); +} + +static void csi_P(unsigned int nr) +{ + if (nr > video_num_columns) + nr = video_num_columns; + else if (!nr) + nr = 1; + while (nr--) + delete_char(); +} + +static void csi_M(unsigned int nr) +{ + if (nr > video_num_lines) + nr = video_num_lines; + else if (!nr) + nr=1; + while (nr--) + delete_line(); +} + +static int saved_x=0; +static int saved_y=0; + +static void save_cur(void) +{ + saved_x=x; + saved_y=y; +} + +static void restore_cur(void) +{ + gotoxy(saved_x, saved_y); +} + +void con_write(struct tty_struct * tty) +{ + int nr; + char c; + + nr = CHARS(tty->write_q); + while (nr--) { + GETCH(tty->write_q,c); + switch(state) { + case 0: + if (c>31 && c<127) { + if (x>=video_num_columns) { + x -= video_num_columns; + pos -= video_size_row; + lf(); + } + __asm__("movb attr,%%ah\n\t" + "movw %%ax,%1\n\t" + ::"a" (c),"m" (*(short *)pos) + ); + pos += 2; + x++; + } else if (c==27) + state=1; + else if (c==10 || c==11 || c==12) + lf(); + else if (c==13) + cr(); + else if (c==ERASE_CHAR(tty)) + del(); + else if (c==8) { + if (x) { + x--; + pos -= 2; + } + } else if (c==9) { + c=8-(x&7); + x += c; + pos += c<<1; + if (x>video_num_columns) { + x -= video_num_columns; + pos -= video_size_row; + lf(); + } + c=9; + } else if (c==7) + sysbeep(); + break; + case 1: + state=0; + if (c=='[') + state=2; + else if (c=='E') + gotoxy(0,y+1); + else if (c=='M') + ri(); + else if (c=='D') + lf(); + else if (c=='Z') + respond(tty); + else if (x=='7') + save_cur(); + else if (x=='8') + restore_cur(); + break; + case 2: + for(npar=0;npar='0' && c<='9') { + par[npar]=10*par[npar]+c-'0'; + break; + } else state=4; + case 4: + state=0; + switch(c) { + case 'G': case '`': + if (par[0]) par[0]--; + gotoxy(par[0],y); + break; + case 'A': + if (!par[0]) par[0]++; + gotoxy(x,y-par[0]); + break; + case 'B': case 'e': + if (!par[0]) par[0]++; + gotoxy(x,y+par[0]); + break; + case 'C': case 'a': + if (!par[0]) par[0]++; + gotoxy(x+par[0],y); + break; + case 'D': + if (!par[0]) par[0]++; + gotoxy(x-par[0],y); + break; + case 'E': + if (!par[0]) par[0]++; + gotoxy(0,y+par[0]); + break; + case 'F': + if (!par[0]) par[0]++; + gotoxy(0,y-par[0]); + break; + case 'd': + if (par[0]) par[0]--; + gotoxy(x,par[0]); + break; + case 'H': case 'f': + if (par[0]) par[0]--; + if (par[1]) par[1]--; + gotoxy(par[1],par[0]); + break; + case 'J': + csi_J(par[0]); + break; + case 'K': + csi_K(par[0]); + break; + case 'L': + csi_L(par[0]); + break; + case 'M': + csi_M(par[0]); + break; + case 'P': + csi_P(par[0]); + break; + case '@': + csi_at(par[0]); + break; + case 'm': + csi_m(); + break; + case 'r': + if (par[0]) par[0]--; + if (!par[1]) par[1] = video_num_lines; + if (par[0] < par[1] && + par[1] <= video_num_lines) { + top=par[0]; + bottom=par[1]; + } + break; + case 's': + save_cur(); + break; + case 'u': + restore_cur(); + break; + } + } + } + set_cursor(); +} + +/* + * void con_init(void); + * + * This routine initalizes console interrupts, and does nothing + * else. If you want the screen to clear, call tty_write with + * the appropriate escape-sequece. + * + * Reads the information preserved by setup.s to determine the current display + * type and sets everything accordingly. + */ +void con_init(void) +{ + register unsigned char a; + char *display_desc = "????"; + char *display_ptr; + + video_num_columns = ORIG_VIDEO_COLS; + video_size_row = video_num_columns * 2; + video_num_lines = ORIG_VIDEO_LINES; + video_page = ORIG_VIDEO_PAGE; + video_erase_char = 0x0720; + + if (ORIG_VIDEO_MODE == 7) /* Is this a monochrome display? */ + { + video_mem_start = 0xb0000; + video_port_reg = 0x3b4; + video_port_val = 0x3b5; + if ((ORIG_VIDEO_EGA_BX & 0xff) != 0x10) + { + video_type = VIDEO_TYPE_EGAM; + video_mem_end = 0xb8000; + display_desc = "EGAm"; + } + else + { + video_type = VIDEO_TYPE_MDA; + video_mem_end = 0xb2000; + display_desc = "*MDA"; + } + } + else /* If not, it is color. */ + { + video_mem_start = 0xb8000; + video_port_reg = 0x3d4; + video_port_val = 0x3d5; + if ((ORIG_VIDEO_EGA_BX & 0xff) != 0x10) + { + video_type = VIDEO_TYPE_EGAC; + video_mem_end = 0xbc000; + display_desc = "EGAc"; + } + else + { + video_type = VIDEO_TYPE_CGA; + video_mem_end = 0xba000; + display_desc = "*CGA"; + } + } + + /* Let the user known what kind of display driver we are using */ + + display_ptr = ((char *)video_mem_start) + video_size_row - 8; + while (*display_desc) + { + *display_ptr++ = *display_desc++; + display_ptr++; + } + + /* Initialize the variables used for scrolling (mostly EGA/VGA) */ + + origin = video_mem_start; + scr_end = video_mem_start + video_num_lines * video_size_row; + top = 0; + bottom = video_num_lines; + + gotoxy(ORIG_X,ORIG_Y); + set_trap_gate(0x21,&keyboard_interrupt); + outb_p(inb_p(0x21)&0xfd,0x21); + a=inb_p(0x61); + outb_p(a|0x80,0x61); + outb(a,0x61); +} +/* from bsd-net-2: */ + +void sysbeepstop(void) +{ + /* disable counter 2 */ + outb(inb_p(0x61)&0xFC, 0x61); +} + +int beepcount = 0; + +static void sysbeep(void) +{ + /* enable counter 2 */ + outb_p(inb_p(0x61)|3, 0x61); + /* set command for counter 2, 2 byte write */ + outb_p(0xB6, 0x43); + /* send 0x637 for 750 HZ */ + outb_p(0x37, 0x42); + outb(0x06, 0x42); + /* 1/8 second */ + beepcount = HZ/8; +} diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/console.o b/linux-0.11-lab/0/linux/kernel/chr_drv/console.o new file mode 100644 index 0000000000000000000000000000000000000000..cdb09cf249a683c556a1bd6a57bcc3dbe96270a4 GIT binary patch literal 20896 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" +# 1 "" +# 1 "keyboard.S" + + + + + + + + + + + + + +# 1 "../../include/linux/config.h" 1 + + + + + + + + + + + + + + + + + + + + + +# 36 "../../include/linux/config.h" + +# 47 "../../include/linux/config.h" + +# 14 "keyboard.S" 2 + +.text +.globl keyboard_interrupt + + + + +size = 1024 + +head = 4 +tail = 8 +proc_list = 12 +buf = 16 + +mode: .byte 0 +leds: .byte 2 +e0: .byte 0 + + + + + + +keyboard_interrupt: + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + push %ds + push %es + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + xor %al,%al + inb $0x60,%al + cmpb $0xe0,%al + je set_e0 + cmpb $0xe1,%al + je set_e1 + call key_table(,%eax,4) + movb $0,e0 +e0_e1: inb $0x61,%al + jmp 1f +1: jmp 1f +1: orb $0x80,%al + jmp 1f +1: jmp 1f +1: outb %al,$0x61 + jmp 1f +1: jmp 1f +1: andb $0x7F,%al + outb %al,$0x61 + movb $0x20,%al + outb %al,$0x20 + pushl $0 + call do_tty_interrupt + addl $4,%esp + pop %es + pop %ds + popl %edx + popl %ecx + popl %ebx + popl %eax + iret +set_e0: movb $1,e0 + jmp e0_e1 +set_e1: movb $2,e0 + jmp e0_e1 + + + + + + +put_queue: + pushl %ecx + pushl %edx + movl table_list,%edx # read-queue for console + movl head(%edx),%ecx +1: movb %al,buf(%edx,%ecx) + incl %ecx + andl $size-1,%ecx + cmpl tail(%edx),%ecx # buffer full - discard everything + je 3f + shrdl $8,%ebx,%eax + je 2f + shrl $8,%ebx + jmp 1b +2: movl %ecx,head(%edx) + movl proc_list(%edx),%ecx + testl %ecx,%ecx + je 3f + movl $0,(%ecx) +3: popl %edx + popl %ecx + ret + +ctrl: movb $0x04,%al + jmp 1f +alt: movb $0x10,%al +1: cmpb $0,e0 + je 2f + addb %al,%al +2: orb %al,mode + ret +unctrl: movb $0x04,%al + jmp 1f +unalt: movb $0x10,%al +1: cmpb $0,e0 + je 2f + addb %al,%al +2: notb %al + andb %al,mode + ret + +lshift: + orb $0x01,mode + ret +unlshift: + andb $0xfe,mode + ret +rshift: + orb $0x02,mode + ret +unrshift: + andb $0xfd,mode + ret + +caps: testb $0x80,mode + jne 1f + xorb $4,leds + xorb $0x40,mode + orb $0x80,mode +set_leds: + call kb_wait + movb $0xed,%al + outb %al,$0x60 + call kb_wait + movb leds,%al + outb %al,$0x60 + ret +uncaps: andb $0x7f,mode + ret +scroll: + xorb $1,leds + jmp set_leds +num: xorb $2,leds + jmp set_leds + + + + + +cursor: + subb $0x47,%al + jb 1f + cmpb $12,%al + ja 1f + jne cur2 + testb $0x0c,mode + je cur2 + testb $0x30,mode + jne reboot +cur2: cmpb $0x01,e0 + je cur + testb $0x02,leds + je cur + testb $0x03,mode + jne cur + xorl %ebx,%ebx + movb num_table(%eax),%al + jmp put_queue +1: ret + +cur: movb cur_table(%eax),%al + cmpb $'9,%al + ja ok_cur + movb $'~,%ah +ok_cur: shll $16,%eax + movw $0x5b1b,%ax + xorl %ebx,%ebx + jmp put_queue + + + + + +num_table: + .ascii "789 456 1230," + +cur_table: + .ascii "HA5 DGC YB623" + + + + +func: + pushl %eax + pushl %ecx + pushl %edx + call show_stat + popl %edx + popl %ecx + popl %eax + subb $0x3B,%al + jb end_func + cmpb $9,%al + jbe ok_func + subb $18,%al + cmpb $10,%al + jb end_func + cmpb $11,%al + ja end_func +ok_func: + cmpl $4,%ecx + jl end_func + movl func_table(,%eax,4),%eax + xorl %ebx,%ebx + jmp put_queue +end_func: + ret + + + + +func_table: + .long 0x415b5b1b,0x425b5b1b,0x435b5b1b,0x445b5b1b + .long 0x455b5b1b,0x465b5b1b,0x475b5b1b,0x485b5b1b + .long 0x495b5b1b,0x4a5b5b1b,0x4b5b5b1b,0x4c5b5b1b + +# 294 "keyboard.S" + +key_map: + .byte 0,27 + .ascii "1234567890-=" + .byte 127,9 + .ascii "qwertyuiop[]" + .byte 13,0 + .ascii "asdfghjkl;'" + .byte '`,0 + .ascii "\\zxcvbnm,./" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 + .byte '-,0,0,0,'+ + .byte 0,0,0,0,0,0,0 + .byte '< + .fill 10,1,0 + + +shift_map: + .byte 0,27 + .ascii "!@#$%^&*()_+" + .byte 127,9 + .ascii "QWERTYUIOP{}" + .byte 13,0 + .ascii "ASDFGHJKL:\"" + .byte '~,0 + .ascii "|ZXCVBNM<>?" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 + .byte '-,0,0,0,'+ + .byte 0,0,0,0,0,0,0 + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0@\0$\0\0{[]}\\\0" + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 + .fill 16,1,0 + .byte 0,0,0,0,0 + .byte 0,0,0,0,0,0,0 + .byte '| + .fill 10,1,0 + +# 449 "keyboard.S" + + + + +do_self: + lea alt_map,%ebx + testb $0x20,mode + jne 1f + lea shift_map,%ebx + testb $0x03,mode + jne 1f + lea key_map,%ebx +1: movb (%ebx,%eax),%al + orb %al,%al + je none + testb $0x4c,mode + je 2f + cmpb $'a,%al + jb 2f + cmpb $'},%al + ja 2f + subb $32,%al +2: testb $0x0c,mode + je 3f + cmpb $64,%al + jb 3f + cmpb $64+32,%al + jae 3f + subb $64,%al +3: testb $0x10,mode + je 4f + orb $0x80,%al +4: andl $0xff,%eax + xorl %ebx,%ebx + call put_queue +none: ret + + + + + + +minus: cmpb $1,e0 + jne do_self + movl $'/,%eax + xorl %ebx,%ebx + jmp put_queue + + + + + + +key_table: + .long none,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,ctrl,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,lshift,do_self + .long do_self,do_self,do_self,do_self + .long do_self,do_self,do_self,do_self + .long do_self,minus,rshift,do_self + .long alt,do_self,caps,func + .long func,func,func,func + .long func,func,func,func + .long func,num,scroll,cursor + .long cursor,cursor,do_self,cursor + .long cursor,cursor,do_self,cursor + .long cursor,cursor,cursor,cursor + .long none,none,do_self,func + .long func,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,unctrl,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,unlshift,none + .long none,none,none,none + .long none,none,none,none + .long none,none,unrshift,none + .long unalt,none,uncaps,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + .long none,none,none,none + + + + + +kb_wait: + pushl %eax +1: inb $0x64,%al + testb $0x02,%al + jne 1b + popl %eax + ret + + + + +reboot: + call kb_wait + movw $0x1234,0x472 + movb $0xfc,%al + outb %al,$0x64 +die: jmp die diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/keyboard.S b/linux-0.11-lab/0/linux/kernel/chr_drv/keyboard.S new file mode 100644 index 0000000..25210b4 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/chr_drv/keyboard.S @@ -0,0 +1,588 @@ +/* + * linux/kernel/keyboard.S + * + * (C) 1991 Linus Torvalds + */ + +/* + * Thanks to Alfred Leung for US keyboard patches + * Wolfgang Thiel for German keyboard patches + * Marc Corsini for the French keyboard + */ + +#include + +.text +.globl keyboard_interrupt + +/* + * these are for the keyboard read functions + */ +size = 1024 /* must be a power of two ! And MUST be the same + as in tty_io.c !!!! */ +head = 4 +tail = 8 +proc_list = 12 +buf = 16 + +mode: .byte 0 /* caps, alt, ctrl and shift mode */ +leds: .byte 2 /* num-lock, caps, scroll-lock mode (nom-lock on) */ +e0: .byte 0 + +/* + * con_int is the real interrupt routine that reads the + * keyboard scan-code and converts it into the appropriate + * ascii character(s). + */ +keyboard_interrupt: + pushl %eax + pushl %ebx + pushl %ecx + pushl %edx + push %ds + push %es + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + xor %al,%al /* %eax is scan code */ + inb $0x60,%al + cmpb $0xe0,%al + je set_e0 + cmpb $0xe1,%al + je set_e1 + call key_table(,%eax,4) + movb $0,e0 +e0_e1: inb $0x61,%al + jmp 1f +1: jmp 1f +1: orb $0x80,%al + jmp 1f +1: jmp 1f +1: outb %al,$0x61 + jmp 1f +1: jmp 1f +1: andb $0x7F,%al + outb %al,$0x61 + movb $0x20,%al + outb %al,$0x20 + pushl $0 + call do_tty_interrupt + addl $4,%esp + pop %es + pop %ds + popl %edx + popl %ecx + popl %ebx + popl %eax + iret +set_e0: movb $1,e0 + jmp e0_e1 +set_e1: movb $2,e0 + jmp e0_e1 + +/* + * This routine fills the buffer with max 8 bytes, taken from + * %ebx:%eax. (%edx is high). The bytes are written in the + * order %al,%ah,%eal,%eah,%bl,%bh ... until %eax is zero. + */ +put_queue: + pushl %ecx + pushl %edx + movl table_list,%edx # read-queue for console + movl head(%edx),%ecx +1: movb %al,buf(%edx,%ecx) + incl %ecx + andl $size-1,%ecx + cmpl tail(%edx),%ecx # buffer full - discard everything + je 3f + shrdl $8,%ebx,%eax + je 2f + shrl $8,%ebx + jmp 1b +2: movl %ecx,head(%edx) + movl proc_list(%edx),%ecx + testl %ecx,%ecx + je 3f + movl $0,(%ecx) +3: popl %edx + popl %ecx + ret + +ctrl: movb $0x04,%al + jmp 1f +alt: movb $0x10,%al +1: cmpb $0,e0 + je 2f + addb %al,%al +2: orb %al,mode + ret +unctrl: movb $0x04,%al + jmp 1f +unalt: movb $0x10,%al +1: cmpb $0,e0 + je 2f + addb %al,%al +2: notb %al + andb %al,mode + ret + +lshift: + orb $0x01,mode + ret +unlshift: + andb $0xfe,mode + ret +rshift: + orb $0x02,mode + ret +unrshift: + andb $0xfd,mode + ret + +caps: testb $0x80,mode + jne 1f + xorb $4,leds + xorb $0x40,mode + orb $0x80,mode +set_leds: + call kb_wait + movb $0xed,%al /* set leds command */ + outb %al,$0x60 + call kb_wait + movb leds,%al + outb %al,$0x60 + ret +uncaps: andb $0x7f,mode + ret +scroll: + xorb $1,leds + jmp set_leds +num: xorb $2,leds + jmp set_leds + +/* + * curosr-key/numeric keypad cursor keys are handled here. + * checking for numeric keypad etc. + */ +cursor: + subb $0x47,%al + jb 1f + cmpb $12,%al + ja 1f + jne cur2 /* check for ctrl-alt-del */ + testb $0x0c,mode + je cur2 + testb $0x30,mode + jne reboot +cur2: cmpb $0x01,e0 /* e0 forces cursor movement */ + je cur + testb $0x02,leds /* not num-lock forces cursor */ + je cur + testb $0x03,mode /* shift forces cursor */ + jne cur + xorl %ebx,%ebx + movb num_table(%eax),%al + jmp put_queue +1: ret + +cur: movb cur_table(%eax),%al + cmpb $'9,%al + ja ok_cur + movb $'~,%ah +ok_cur: shll $16,%eax + movw $0x5b1b,%ax + xorl %ebx,%ebx + jmp put_queue + +#if defined(KBD_FR) +num_table: + .ascii "789 456 1230." +#else +num_table: + .ascii "789 456 1230," +#endif +cur_table: + .ascii "HA5 DGC YB623" + +/* + * this routine handles function keys + */ +func: + pushl %eax + pushl %ecx + pushl %edx + call show_stat + popl %edx + popl %ecx + popl %eax + subb $0x3B,%al + jb end_func + cmpb $9,%al + jbe ok_func + subb $18,%al + cmpb $10,%al + jb end_func + cmpb $11,%al + ja end_func +ok_func: + cmpl $4,%ecx /* check that there is enough room */ + jl end_func + movl func_table(,%eax,4),%eax + xorl %ebx,%ebx + jmp put_queue +end_func: + ret + +/* + * function keys send F1:'esc [ [ A' F2:'esc [ [ B' etc. + */ +func_table: + .long 0x415b5b1b,0x425b5b1b,0x435b5b1b,0x445b5b1b + .long 0x455b5b1b,0x465b5b1b,0x475b5b1b,0x485b5b1b + .long 0x495b5b1b,0x4a5b5b1b,0x4b5b5b1b,0x4c5b5b1b + +#if defined(KBD_FINNISH) +key_map: + .byte 0,27 + .ascii "1234567890+'" + .byte 127,9 + .ascii "qwertyuiop}" + .byte 0,13,0 + .ascii "asdfghjkl|{" + .byte 0,0 + .ascii "'zxcvbnm,.-" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '< + .fill 10,1,0 + +shift_map: + .byte 0,27 + .ascii "!\"#$%&/()=?`" + .byte 127,9 + .ascii "QWERTYUIOP]^" + .byte 13,0 + .ascii "ASDFGHJKL\\[" + .byte 0,0 + .ascii "*ZXCVBNM;:_" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0@\0$\0\0{[]}\\\0" + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte 0,0,0,0,0 /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '| + .fill 10,1,0 + +#elif defined(KBD_US) + +key_map: + .byte 0,27 + .ascii "1234567890-=" + .byte 127,9 + .ascii "qwertyuiop[]" + .byte 13,0 + .ascii "asdfghjkl;'" + .byte '`,0 + .ascii "\\zxcvbnm,./" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '< + .fill 10,1,0 + + +shift_map: + .byte 0,27 + .ascii "!@#$%^&*()_+" + .byte 127,9 + .ascii "QWERTYUIOP{}" + .byte 13,0 + .ascii "ASDFGHJKL:\"" + .byte '~,0 + .ascii "|ZXCVBNM<>?" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0@\0$\0\0{[]}\\\0" + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte 0,0,0,0,0 /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '| + .fill 10,1,0 + +#elif defined(KBD_GR) + +key_map: + .byte 0,27 + .ascii "1234567890\\'" + .byte 127,9 + .ascii "qwertzuiop@+" + .byte 13,0 + .ascii "asdfghjkl[]^" + .byte 0,'# + .ascii "yxcvbnm,.-" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '< + .fill 10,1,0 + + +shift_map: + .byte 0,27 + .ascii "!\"#$%&/()=?`" + .byte 127,9 + .ascii "QWERTZUIOP\\*" + .byte 13,0 + .ascii "ASDFGHJKL{}~" + .byte 0,'' + .ascii "YXCVBNM;:_" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0@\0$\0\0{[]}\\\0" + .byte 0,0 + .byte '@,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte 0,0,0,0,0 /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '| + .fill 10,1,0 + + +#elif defined(KBD_FR) + +key_map: + .byte 0,27 + .ascii "&{\"'(-}_/@)=" + .byte 127,9 + .ascii "azertyuiop^$" + .byte 13,0 + .ascii "qsdfghjklm|" + .byte '`,0,42 /* coin sup gauche, don't know, [*|mu] */ + .ascii "wxcvbn,;:!" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '< + .fill 10,1,0 + +shift_map: + .byte 0,27 + .ascii "1234567890]+" + .byte 127,9 + .ascii "AZERTYUIOP<>" + .byte 13,0 + .ascii "QSDFGHJKLM%" + .byte '~,0,'# + .ascii "WXCVBN?./\\" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte '-,0,0,0,'+ /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '> + .fill 10,1,0 + +alt_map: + .byte 0,0 + .ascii "\0~#{[|`\\^@]}" + .byte 0,0 + .byte '@,0,0,0,0,0,0,0,0,0,0 + .byte '~,13,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0 + .byte 0,0,0,0,0,0,0,0,0,0,0 + .byte 0,0,0,0 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ + .byte 0,0,0,0,0 /* 4A-4E */ + .byte 0,0,0,0,0,0,0 /* 4F-55 */ + .byte '| + .fill 10,1,0 + +#else +#error "KBD-type not defined" +#endif +/* + * do_self handles "normal" keys, ie keys that don't change meaning + * and which have just one character returns. + */ +do_self: + lea alt_map,%ebx + testb $0x20,mode /* alt-gr */ + jne 1f + lea shift_map,%ebx + testb $0x03,mode + jne 1f + lea key_map,%ebx +1: movb (%ebx,%eax),%al + orb %al,%al + je none + testb $0x4c,mode /* ctrl or caps */ + je 2f + cmpb $'a,%al + jb 2f + cmpb $'},%al + ja 2f + subb $32,%al +2: testb $0x0c,mode /* ctrl */ + je 3f + cmpb $64,%al + jb 3f + cmpb $64+32,%al + jae 3f + subb $64,%al +3: testb $0x10,mode /* left alt */ + je 4f + orb $0x80,%al +4: andl $0xff,%eax + xorl %ebx,%ebx + call put_queue +none: ret + +/* + * minus has a routine of it's own, as a 'E0h' before + * the scan code for minus means that the numeric keypad + * slash was pushed. + */ +minus: cmpb $1,e0 + jne do_self + movl $'/,%eax + xorl %ebx,%ebx + jmp put_queue + +/* + * This table decides which routine to call when a scan-code has been + * gotten. Most routines just call do_self, or none, depending if + * they are make or break. + */ +key_table: + .long none,do_self,do_self,do_self /* 00-03 s0 esc 1 2 */ + .long do_self,do_self,do_self,do_self /* 04-07 3 4 5 6 */ + .long do_self,do_self,do_self,do_self /* 08-0B 7 8 9 0 */ + .long do_self,do_self,do_self,do_self /* 0C-0F + ' bs tab */ + .long do_self,do_self,do_self,do_self /* 10-13 q w e r */ + .long do_self,do_self,do_self,do_self /* 14-17 t y u i */ + .long do_self,do_self,do_self,do_self /* 18-1B o p } ^ */ + .long do_self,ctrl,do_self,do_self /* 1C-1F enter ctrl a s */ + .long do_self,do_self,do_self,do_self /* 20-23 d f g h */ + .long do_self,do_self,do_self,do_self /* 24-27 j k l | */ + .long do_self,do_self,lshift,do_self /* 28-2B { para lshift , */ + .long do_self,do_self,do_self,do_self /* 2C-2F z x c v */ + .long do_self,do_self,do_self,do_self /* 30-33 b n m , */ + .long do_self,minus,rshift,do_self /* 34-37 . - rshift * */ + .long alt,do_self,caps,func /* 38-3B alt sp caps f1 */ + .long func,func,func,func /* 3C-3F f2 f3 f4 f5 */ + .long func,func,func,func /* 40-43 f6 f7 f8 f9 */ + .long func,num,scroll,cursor /* 44-47 f10 num scr home */ + .long cursor,cursor,do_self,cursor /* 48-4B up pgup - left */ + .long cursor,cursor,do_self,cursor /* 4C-4F n5 right + end */ + .long cursor,cursor,cursor,cursor /* 50-53 dn pgdn ins del */ + .long none,none,do_self,func /* 54-57 sysreq ? < f11 */ + .long func,none,none,none /* 58-5B f12 ? ? ? */ + .long none,none,none,none /* 5C-5F ? ? ? ? */ + .long none,none,none,none /* 60-63 ? ? ? ? */ + .long none,none,none,none /* 64-67 ? ? ? ? */ + .long none,none,none,none /* 68-6B ? ? ? ? */ + .long none,none,none,none /* 6C-6F ? ? ? ? */ + .long none,none,none,none /* 70-73 ? ? ? ? */ + .long none,none,none,none /* 74-77 ? ? ? ? */ + .long none,none,none,none /* 78-7B ? ? ? ? */ + .long none,none,none,none /* 7C-7F ? ? ? ? */ + .long none,none,none,none /* 80-83 ? br br br */ + .long none,none,none,none /* 84-87 br br br br */ + .long none,none,none,none /* 88-8B br br br br */ + .long none,none,none,none /* 8C-8F br br br br */ + .long none,none,none,none /* 90-93 br br br br */ + .long none,none,none,none /* 94-97 br br br br */ + .long none,none,none,none /* 98-9B br br br br */ + .long none,unctrl,none,none /* 9C-9F br unctrl br br */ + .long none,none,none,none /* A0-A3 br br br br */ + .long none,none,none,none /* A4-A7 br br br br */ + .long none,none,unlshift,none /* A8-AB br br unlshift br */ + .long none,none,none,none /* AC-AF br br br br */ + .long none,none,none,none /* B0-B3 br br br br */ + .long none,none,unrshift,none /* B4-B7 br br unrshift br */ + .long unalt,none,uncaps,none /* B8-BB unalt br uncaps br */ + .long none,none,none,none /* BC-BF br br br br */ + .long none,none,none,none /* C0-C3 br br br br */ + .long none,none,none,none /* C4-C7 br br br br */ + .long none,none,none,none /* C8-CB br br br br */ + .long none,none,none,none /* CC-CF br br br br */ + .long none,none,none,none /* D0-D3 br br br br */ + .long none,none,none,none /* D4-D7 br br br br */ + .long none,none,none,none /* D8-DB br ? ? ? */ + .long none,none,none,none /* DC-DF ? ? ? ? */ + .long none,none,none,none /* E0-E3 e0 e1 ? ? */ + .long none,none,none,none /* E4-E7 ? ? ? ? */ + .long none,none,none,none /* E8-EB ? ? ? ? */ + .long none,none,none,none /* EC-EF ? ? ? ? */ + .long none,none,none,none /* F0-F3 ? ? ? ? */ + .long none,none,none,none /* F4-F7 ? ? ? ? */ + .long none,none,none,none /* F8-FB ? ? ? ? */ + .long none,none,none,none /* FC-FF ? ? ? ? */ + +/* + * kb_wait waits for the keyboard controller buffer to empty. + * there is no timeout - if the buffer doesn't empty, we hang. + */ +kb_wait: + pushl %eax +1: inb $0x64,%al + testb $0x02,%al + jne 1b + popl %eax + ret +/* + * This routine reboots the machine by asking the keyboard + * controller to pulse the reset-line low. + */ +reboot: + call kb_wait + movw $0x1234,0x472 /* don't do memory check */ + movb $0xfc,%al /* pulse reset and A20 low */ + outb %al,$0x64 +die: jmp die diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/rs_io.o b/linux-0.11-lab/0/linux/kernel/chr_drv/rs_io.o new file mode 100644 index 0000000000000000000000000000000000000000..9d7d5b3a22aa1a7d33dea95b723af176ee68e951 GIT binary patch literal 1320 zcma)5O=}ZT6upy7lN1_>vDAuUi$oC$(TZ-YF8rt{7SvR*(+bl`=7mYg$1w9^jTe}J1pL8J+VS-DUc@11#5ry}TuH|L!9&O7g8W*$#YU6UjU z!jd2kzZJlJAu zYUu}^X)*0615dy3#7CS5;3%o*n6o2-mX*|mBJ()SkJ>Kxy3mDOdS@N-cB{sLjja`nuw?{k1!T?BECWK1Ur++2eHxq=#!x{gli&& zBRH@@L{yj;>c8RMuaxqliKJ!!PW(mv0M`reH^_6neMo3eLAl-mBy=A^x!y36flz|$ z9Yaq056bmU5ZT?V>*Z0VgF%1b96oaqeG&Pkh$c>dL{JjkL^3ZF1^Vqn>-rt20MOw)mDl`5E4qoh_V zHiu%f3^vy+-ZaTqsdKQH=_9M_uuwBq{86e5Y7L#$RJ8J@4U1NVGqq%B7P>V(VAV>U z?KNO{nOQ2UnY@MR;}pv*t7+mQ_L+$Cmk2hbH&o7BkuiEb(opct5uPWFopkSn(*o}a PoD +#include +#include +#include + +#define WAKEUP_CHARS (TTY_BUF_SIZE/4) + +extern void rs1_interrupt(void); +extern void rs2_interrupt(void); + +static void init(int port) +{ + outb_p(0x80,port+3); /* set DLAB of line control reg */ + outb_p(0x30,port); /* LS of divisor (48 -> 2400 bps */ + outb_p(0x00,port+1); /* MS of divisor */ + outb_p(0x03,port+3); /* reset DLAB */ + outb_p(0x0b,port+4); /* set DTR,RTS, OUT_2 */ + outb_p(0x0d,port+1); /* enable all intrs but writes */ + (void)inb(port); /* read data port to reset things (?) */ +} + +void rs_init(void) +{ + set_intr_gate(0x24,rs1_interrupt); + set_intr_gate(0x23,rs2_interrupt); + init(tty_table[1].read_q.data); + init(tty_table[2].read_q.data); + outb(inb_p(0x21)&0xE7,0x21); +} + +/* + * This routine gets called when tty_write has put something into + * the write_queue. It must check wheter the queue is empty, and + * set the interrupt register accordingly + * + * void _rs_write(struct tty_struct * tty); + */ +void rs_write(struct tty_struct * tty) +{ + cli(); + if (!EMPTY(tty->write_q)) + outb(inb_p(tty->write_q.data+1)|0x02,tty->write_q.data+1); + sti(); +} diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/serial.o b/linux-0.11-lab/0/linux/kernel/chr_drv/serial.o new file mode 100644 index 0000000000000000000000000000000000000000..bf80e08be94a19c3982f10989e20a6e929a1d240 GIT binary patch literal 6752 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 +#include +#include + +#define ALRMMASK (1<<(SIGALRM-1)) +#define KILLMASK (1<<(SIGKILL-1)) +#define INTMASK (1<<(SIGINT-1)) +#define QUITMASK (1<<(SIGQUIT-1)) +#define TSTPMASK (1<<(SIGTSTP-1)) + +#include +#include +#include +#include + +#define _L_FLAG(tty,f) ((tty)->termios.c_lflag & f) +#define _I_FLAG(tty,f) ((tty)->termios.c_iflag & f) +#define _O_FLAG(tty,f) ((tty)->termios.c_oflag & f) + +#define L_CANON(tty) _L_FLAG((tty),ICANON) +#define L_ISIG(tty) _L_FLAG((tty),ISIG) +#define L_ECHO(tty) _L_FLAG((tty),ECHO) +#define L_ECHOE(tty) _L_FLAG((tty),ECHOE) +#define L_ECHOK(tty) _L_FLAG((tty),ECHOK) +#define L_ECHOCTL(tty) _L_FLAG((tty),ECHOCTL) +#define L_ECHOKE(tty) _L_FLAG((tty),ECHOKE) + +#define I_UCLC(tty) _I_FLAG((tty),IUCLC) +#define I_NLCR(tty) _I_FLAG((tty),INLCR) +#define I_CRNL(tty) _I_FLAG((tty),ICRNL) +#define I_NOCR(tty) _I_FLAG((tty),IGNCR) + +#define O_POST(tty) _O_FLAG((tty),OPOST) +#define O_NLCR(tty) _O_FLAG((tty),ONLCR) +#define O_CRNL(tty) _O_FLAG((tty),OCRNL) +#define O_NLRET(tty) _O_FLAG((tty),ONLRET) +#define O_LCUC(tty) _O_FLAG((tty),OLCUC) + +struct tty_struct tty_table[] = { + { + {ICRNL, /* change incoming CR to NL */ + OPOST|ONLCR, /* change outgoing NL to CRNL */ + 0, + ISIG | ICANON | ECHO | ECHOCTL | ECHOKE, + 0, /* console termio */ + INIT_C_CC}, + 0, /* initial pgrp */ + 0, /* initial stopped */ + con_write, + {0,0,0,0,""}, /* console read-queue */ + {0,0,0,0,""}, /* console write-queue */ + {0,0,0,0,""} /* console secondary queue */ + },{ + {0, /* no translation */ + 0, /* no translation */ + B2400 | CS8, + 0, + 0, + INIT_C_CC}, + 0, + 0, + rs_write, + {0x3f8,0,0,0,""}, /* rs 1 */ + {0x3f8,0,0,0,""}, + {0,0,0,0,""} + },{ + {0, /* no translation */ + 0, /* no translation */ + B2400 | CS8, + 0, + 0, + INIT_C_CC}, + 0, + 0, + rs_write, + {0x2f8,0,0,0,""}, /* rs 2 */ + {0x2f8,0,0,0,""}, + {0,0,0,0,""} + } +}; + +/* + * these are the tables used by the machine code handlers. + * you can implement pseudo-tty's or something by changing + * them. Currently not done. + */ +struct tty_queue * table_list[]={ + &tty_table[0].read_q, &tty_table[0].write_q, + &tty_table[1].read_q, &tty_table[1].write_q, + &tty_table[2].read_q, &tty_table[2].write_q + }; + +void tty_init(void) +{ + rs_init(); + con_init(); +} + +void tty_intr(struct tty_struct * tty, int mask) +{ + int i; + + if (tty->pgrp <= 0) + return; + for (i=0;ipgrp==tty->pgrp) + task[i]->signal |= mask; +} + +static void sleep_if_empty(struct tty_queue * queue) +{ + cli(); + while (!current->signal && EMPTY(*queue)) + interruptible_sleep_on(&queue->proc_list); + sti(); +} + +static void sleep_if_full(struct tty_queue * queue) +{ + if (!FULL(*queue)) + return; + cli(); + while (!current->signal && LEFT(*queue)<128) + interruptible_sleep_on(&queue->proc_list); + sti(); +} + +void wait_for_keypress(void) +{ + sleep_if_empty(&tty_table[0].secondary); +} + +void copy_to_cooked(struct tty_struct * tty) +{ + signed char c; + + while (!EMPTY(tty->read_q) && !FULL(tty->secondary)) { + GETCH(tty->read_q,c); + if (c==13) + if (I_CRNL(tty)) + c=10; + else if (I_NOCR(tty)) + continue; + else ; + else if (c==10 && I_NLCR(tty)) + c=13; + if (I_UCLC(tty)) + c=tolower(c); + if (L_CANON(tty)) { + if (c==KILL_CHAR(tty)) { + /* deal with killing the input line */ + while(!(EMPTY(tty->secondary) || + (c=LAST(tty->secondary))==10 || + c==EOF_CHAR(tty))) { + if (L_ECHO(tty)) { + if (c<32) + PUTCH(127,tty->write_q); + PUTCH(127,tty->write_q); + tty->write(tty); + } + DEC(tty->secondary.head); + } + continue; + } + if (c==ERASE_CHAR(tty)) { + if (EMPTY(tty->secondary) || + (c=LAST(tty->secondary))==10 || + c==EOF_CHAR(tty)) + continue; + if (L_ECHO(tty)) { + if (c<32) + PUTCH(127,tty->write_q); + PUTCH(127,tty->write_q); + tty->write(tty); + } + DEC(tty->secondary.head); + continue; + } + if (c==STOP_CHAR(tty)) { + tty->stopped=1; + continue; + } + if (c==START_CHAR(tty)) { + tty->stopped=0; + continue; + } + } + if (L_ISIG(tty)) { + if (c==INTR_CHAR(tty)) { + tty_intr(tty,INTMASK); + continue; + } + if (c==QUIT_CHAR(tty)) { + tty_intr(tty,QUITMASK); + continue; + } + } + if (c==10 || c==EOF_CHAR(tty)) + tty->secondary.data++; + if (L_ECHO(tty)) { + if (c==10) { + PUTCH(10,tty->write_q); + PUTCH(13,tty->write_q); + } else if (c<32) { + if (L_ECHOCTL(tty)) { + PUTCH('^',tty->write_q); + PUTCH(c+64,tty->write_q); + } + } else + PUTCH(c,tty->write_q); + tty->write(tty); + } + PUTCH(c,tty->secondary); + } + wake_up(&tty->secondary.proc_list); +} + +int tty_read(unsigned channel, char * buf, int nr) +{ + struct tty_struct * tty; + char c, * b=buf; + int minimum,time,flag=0; + long oldalarm; + + if (channel>2 || nr<0) return -1; + tty = &tty_table[channel]; + oldalarm = current->alarm; + time = 10L*tty->termios.c_cc[VTIME]; + minimum = tty->termios.c_cc[VMIN]; + if (time && !minimum) { + minimum=1; + if (flag=(!oldalarm || time+jiffiesalarm = time+jiffies; + } + if (minimum>nr) + minimum=nr; + while (nr>0) { + if (flag && (current->signal & ALRMMASK)) { + current->signal &= ~ALRMMASK; + break; + } + if (current->signal) + break; + if (EMPTY(tty->secondary) || (L_CANON(tty) && + !tty->secondary.data && LEFT(tty->secondary)>20)) { + sleep_if_empty(&tty->secondary); + continue; + } + do { + GETCH(tty->secondary,c); + if (c==EOF_CHAR(tty) || c==10) + tty->secondary.data--; + if (c==EOF_CHAR(tty) && L_CANON(tty)) + return (b-buf); + else { + put_fs_byte(c,b++); + if (!--nr) + break; + } + } while (nr>0 && !EMPTY(tty->secondary)); + if (time && !L_CANON(tty)) + if (flag=(!oldalarm || time+jiffiesalarm = time+jiffies; + else + current->alarm = oldalarm; + if (L_CANON(tty)) { + if (b-buf) + break; + } else if (b-buf >= minimum) + break; + } + current->alarm = oldalarm; + if (current->signal && !(b-buf)) + return -EINTR; + return (b-buf); +} + +int tty_write(unsigned channel, char * buf, int nr) +{ + static cr_flag=0; + struct tty_struct * tty; + char c, *b=buf; + + if (channel>2 || nr<0) return -1; + tty = channel + tty_table; + while (nr>0) { + sleep_if_full(&tty->write_q); + if (current->signal) + break; + while (nr>0 && !FULL(tty->write_q)) { + c=get_fs_byte(b); + if (O_POST(tty)) { + if (c=='\r' && O_CRNL(tty)) + c='\n'; + else if (c=='\n' && O_NLRET(tty)) + c='\r'; + if (c=='\n' && !cr_flag && O_NLCR(tty)) { + cr_flag = 1; + PUTCH(13,tty->write_q); + continue; + } + if (O_LCUC(tty)) + c=toupper(c); + } + b++; nr--; + cr_flag = 0; + PUTCH(c,tty->write_q); + } + tty->write(tty); + if (nr>0) + schedule(); + } + return (b-buf); +} + +/* + * Jeh, sometimes I really like the 386. + * This routine is called from an interrupt, + * and there should be absolutely no problem + * with sleeping even in an interrupt (I hope). + * Of course, if somebody proves me wrong, I'll + * hate intel for all time :-). We'll have to + * be careful and see to reinstating the interrupt + * chips before calling this, though. + * + * I don't think we sleep here under normal circumstances + * anyway, which is good, as the task sleeping might be + * totally innocent. + */ +void do_tty_interrupt(int tty) +{ + copy_to_cooked(tty_table+tty); +} + +void chr_dev_init(void) +{ +} diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/tty_io.o b/linux-0.11-lab/0/linux/kernel/chr_drv/tty_io.o new file mode 100644 index 0000000000000000000000000000000000000000..37e2b15961ebc5713d826d6c25e53571ac6fbb83 GIT binary patch literal 22504 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 O^kQA0pRj`M3jQCx0hyNo literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/tty_ioctl.c b/linux-0.11-lab/0/linux/kernel/chr_drv/tty_ioctl.c new file mode 100644 index 0000000..e4e3745 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/chr_drv/tty_ioctl.c @@ -0,0 +1,204 @@ +/* + * linux/kernel/chr_drv/tty_ioctl.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include + +#include +#include +#include + +#include +#include +#include + +static unsigned short quotient[] = { + 0, 2304, 1536, 1047, 857, + 768, 576, 384, 192, 96, + 64, 48, 24, 12, 6, 3 +}; + +static void change_speed(struct tty_struct * tty) +{ + unsigned short port,quot; + + if (!(port = tty->read_q.data)) + return; + quot = quotient[tty->termios.c_cflag & CBAUD]; + cli(); + outb_p(0x80,port+3); /* set DLAB */ + outb_p(quot & 0xff,port); /* LS of divisor */ + outb_p(quot >> 8,port+1); /* MS of divisor */ + outb(0x03,port+3); /* reset DLAB */ + sti(); +} + +static void flush(struct tty_queue * queue) +{ + cli(); + queue->head = queue->tail; + sti(); +} + +static void wait_until_sent(struct tty_struct * tty) +{ + /* do nothing - not implemented */ +} + +static void send_break(struct tty_struct * tty) +{ + /* do nothing - not implemented */ +} + +static int get_termios(struct tty_struct * tty, struct termios * termios) +{ + int i; + + verify_area(termios, sizeof (*termios)); + for (i=0 ; i< (sizeof (*termios)) ; i++) + put_fs_byte( ((char *)&tty->termios)[i] , i+(char *)termios ); + return 0; +} + +static int set_termios(struct tty_struct * tty, struct termios * termios) +{ + int i; + + for (i=0 ; i< (sizeof (*termios)) ; i++) + ((char *)&tty->termios)[i]=get_fs_byte(i+(char *)termios); + change_speed(tty); + return 0; +} + +static int get_termio(struct tty_struct * tty, struct termio * termio) +{ + int i; + struct termio tmp_termio; + + verify_area(termio, sizeof (*termio)); + tmp_termio.c_iflag = tty->termios.c_iflag; + tmp_termio.c_oflag = tty->termios.c_oflag; + tmp_termio.c_cflag = tty->termios.c_cflag; + tmp_termio.c_lflag = tty->termios.c_lflag; + tmp_termio.c_line = tty->termios.c_line; + for(i=0 ; i < NCC ; i++) + tmp_termio.c_cc[i] = tty->termios.c_cc[i]; + for (i=0 ; i< (sizeof (*termio)) ; i++) + put_fs_byte( ((char *)&tmp_termio)[i] , i+(char *)termio ); + return 0; +} + +/* + * This only works as the 386 is low-byt-first + */ +static int set_termio(struct tty_struct * tty, struct termio * termio) +{ + int i; + struct termio tmp_termio; + + for (i=0 ; i< (sizeof (*termio)) ; i++) + ((char *)&tmp_termio)[i]=get_fs_byte(i+(char *)termio); + *(unsigned short *)&tty->termios.c_iflag = tmp_termio.c_iflag; + *(unsigned short *)&tty->termios.c_oflag = tmp_termio.c_oflag; + *(unsigned short *)&tty->termios.c_cflag = tmp_termio.c_cflag; + *(unsigned short *)&tty->termios.c_lflag = tmp_termio.c_lflag; + tty->termios.c_line = tmp_termio.c_line; + for(i=0 ; i < NCC ; i++) + tty->termios.c_cc[i] = tmp_termio.c_cc[i]; + change_speed(tty); + return 0; +} + +int tty_ioctl(int dev, int cmd, int arg) +{ + struct tty_struct * tty; + if (MAJOR(dev) == 5) { + dev=current->tty; + if (dev<0) + panic("tty_ioctl: dev<0"); + } else + dev=MINOR(dev); + tty = dev + tty_table; + switch (cmd) { + case TCGETS: + return get_termios(tty,(struct termios *) arg); + case TCSETSF: + flush(&tty->read_q); /* fallthrough */ + case TCSETSW: + wait_until_sent(tty); /* fallthrough */ + case TCSETS: + return set_termios(tty,(struct termios *) arg); + case TCGETA: + return get_termio(tty,(struct termio *) arg); + case TCSETAF: + flush(&tty->read_q); /* fallthrough */ + case TCSETAW: + wait_until_sent(tty); /* fallthrough */ + case TCSETA: + return set_termio(tty,(struct termio *) arg); + case TCSBRK: + if (!arg) { + wait_until_sent(tty); + send_break(tty); + } + return 0; + case TCXONC: + return -EINVAL; /* not implemented */ + case TCFLSH: + if (arg==0) + flush(&tty->read_q); + else if (arg==1) + flush(&tty->write_q); + else if (arg==2) { + flush(&tty->read_q); + flush(&tty->write_q); + } else + return -EINVAL; + return 0; + case TIOCEXCL: + return -EINVAL; /* not implemented */ + case TIOCNXCL: + return -EINVAL; /* not implemented */ + case TIOCSCTTY: + return -EINVAL; /* set controlling term NI */ + case TIOCGPGRP: + verify_area((void *) arg,4); + put_fs_long(tty->pgrp,(unsigned long *) arg); + return 0; + case TIOCSPGRP: + tty->pgrp=get_fs_long((unsigned long *) arg); + return 0; + case TIOCOUTQ: + verify_area((void *) arg,4); + put_fs_long(CHARS(tty->write_q),(unsigned long *) arg); + return 0; + case TIOCINQ: + verify_area((void *) arg,4); + put_fs_long(CHARS(tty->secondary), + (unsigned long *) arg); + return 0; + case TIOCSTI: + return -EINVAL; /* not implemented */ + case TIOCGWINSZ: + return -EINVAL; /* not implemented */ + case TIOCSWINSZ: + return -EINVAL; /* not implemented */ + case TIOCMGET: + return -EINVAL; /* not implemented */ + case TIOCMBIS: + return -EINVAL; /* not implemented */ + case TIOCMBIC: + return -EINVAL; /* not implemented */ + case TIOCMSET: + return -EINVAL; /* not implemented */ + case TIOCGSOFTCAR: + return -EINVAL; /* not implemented */ + case TIOCSSOFTCAR: + return -EINVAL; /* not implemented */ + default: + return -EINVAL; + } +} diff --git a/linux-0.11-lab/0/linux/kernel/chr_drv/tty_ioctl.o b/linux-0.11-lab/0/linux/kernel/chr_drv/tty_ioctl.o new file mode 100644 index 0000000000000000000000000000000000000000..6fcf766d95e129c53038533553e2124de8516b4b GIT binary patch literal 10648 zcma)C4Rn-MdcNN`cfuDlGZ~T)0z{q2AmApG2}FqeNPr-q;6{lpC^}4LzDWiqnK(b; z=TH|n*e0ad;@PvS)fM!#cDuW7_w2SS6>Cx0)nluR9xU3mt-D)$P|(&ro-S2))91P0 z{U#H3PuoxLJn#G7_wT;<=eslEOY1h>WEh5UA47P=Bqzjo8=anZ1q(#Is1;kryTVrT zkQhBR`qo{iMlJ@y*CofrSXbBw(l>HC2&tsjs0<&H;qjiZFF9(CoR+5`lwhsonCV)M zcSch%4Wvf)hXbN$UWn7*c&9b;Zgpz>pbAU{->22jK<#k1=lB5#Ke`|;2ugg_KRB6! z&w!FJfz%7gP|6^}q?#y-=Tkm|Y{6<_^Dh9KOWJ>E=^g zMlRODQIPzFx!O_iaH9#51q>Ny=-}9|CniQca6ws+F3!>yyIw_?c2~!;uVAh zZ-TQP@UM)nsYGhcn5gDy_q|oJU|pJF(S^F8oBEg4<-=d8x=^WkcaG*PF+UfK-Gn^5M7*Q&=j~pYRm*QAMWOo3zj&Goi!zvOS2B#p`LI( z)knL7rMOLu2_YuoP-i9Pwi(Vt#w#N)21nNz7;*?h4q?bN97CyBBON^#Va^2y7R9O? zx#TT|pWs-=5A>UYTOtb6sMuTol3G_n&C&(y{$w~hLA9Q6bnJ|A(m3B=c`9K{yC*DQ84ybU%YH={3_XnxLm3J~ah9qZ0=JsFh z&{J&Ev{~lZOzAkrj;5*3Ud8HioxS1EQ*7F?I^X{gM+b)6A&L#I?o(xUkAhZJd;c^P zkAHwQ@&2HZ&650gXeQ0Z|gn$_yX*_^W z;~oT9Q!M@d&m zA3i;8G__^mO|E1evLjRUlNzpqM7T>A`~V{1kC5DHo&1iVNvg0j*w5 zNt$!}n$mkEpmIMxriEAn)2R4s4rLSQB-#}m3Knveq{O!vRejFmy>$>eawa6+ZdwWX z8jWrvEoBdadv7Og$)l8SA?=eNQr>eB6B6`)i}W3o2TlK%$owvcQD^!$lG)0H8%+P} zC8p8z*Fxs>gv>y1ZkJ}lrXL-eSzrc+(n;anM%T@ze;a!g6E*!$F&V|QoBk_GOo!=z zw#2M314TNxlT+Sl`q#jZ!>lp=U&ZhprppZUQSC0O-DLW|MF)!6VEVt#tQB*!>2Ifl z?M!Er>EFzB?k3Z1`p?rwF+HY#4qYo|tLdLt>e+7k|GC8MF#S8|;2s7|ngMJ);oZTy z^_%`J?1{4{gBt8cZoSXL=aA`tlCBeE3a0iYLD^!v~{ugy( z)HY=hh7~&)PRcgQyw*+nUA=>)}2LT2Y@DX1l51HWQ?fA3@JrbeaL>wGdc~IrZ>Ho%XAs;}g|X z4N?xr^f0|jUJ3AU(lXu!M?hN%u8xIVg~G~{zK*oC3Z%b4+OksVA>nN%?Xyw|%zq2% zpq0vIg*QUF4m9Mgq#NW3e0rmF-zdBkak;3)Q7b&Nk@;EgVs3r;I2GHeA!Hjy>b;({ zwDS3=@Gc>3$t9F8CGCT}O?W#<2jz0gZy;R<`62`&-C!khi-mVN=|;DjieV?cEY8bEj#JbQOoXi>2}M`!_O+}cR&uhlk^J6)55!&bSG>*VN=@Ob03Vc5kE&Eo=OP#K zyIgxUq^0~L%4$u%~R&OySDran=3*p-g*x{>eIYUo;vsFfp;!{W-u9dA^ zd0|}xQ} zxILnN44Inqe}vBI%Dx@;wd<)fpCs%NiN&t}oRK2usHHUTDMgCtNTU928ZLgTr1RyH z&SF<*)?w;&aKd?2-mZL|F6nh>y;`mpvx6NNZCzTJ%V=UA$sixDqFKLY=4&Xt9<5vX z@m=ALe$5m=Ys&m|IerRa)^3hy6WIsQUREBqmpp88J@6W6ZeoYdPXVt0oP;??^ocD1ZJg9S^S~OgTW5BGTPcI?}F{cLLJ;WXD z<(^uOo<=d}2Jn?jqhPQ%jCq0DDo0WuqFI~c<-Hr7&J(Iht3wn8#Zn_^{K(6uIYE9*<9xL+!L9BozA2(=L&d@7LF z4dgEi1hqh!FR;}!jQO(|H|RxNRC9)yKMQ+3f@JAo{;Z9)9871!*VZUKe7A7(HnENC z+DoaCopG)5Qa@=v#Tf5acOcYmfU&Lt*;$iTZqTnfL1#ydRkJQnNcYW|bh2vJ3gq6{ z#OYECgoOTPL(2UsL;4(+jw${Qlwo{^qTu&GNVtoQNTe12rw0?6V$yDn=Lf_T$yBa2 zlO8PYxlESdn-?N)_YK&Cg-Ac0mcHUe5{zE3a|7vY9(`E3{dPPF3JWQp=(jbQVkbm} zy+bxhtj2u0Z!n&5Y~au7$I^id98YtPw0f!{tDe4P^UEDTG?v#HCg;` z+qtIAwN2-m=GNgqbl`Sn9_5EQkKcxjikmAQ+O~OfNo>98N>6ONtJ7Nf^obKEo}TRe z8{LcD_FMdP-&zuv`8oIAx!>ji{%<_-Uh%CF>x6a8I{5F;SqGiZ;)&;u9V=S3MXR;= zo)tZM43D+a>N{rL0yHDF>a%XR^xSDmOk}j=%*n8|mu@LXg*rKmgqP!T&<_e-0 z)51yFC5DQHSSlZ5Mk0qj5W5#S#_~g$4pAKBYPXXrRYX&11-~I8$>$BH%uay zRvGPv%od4EHgCtWgE5X9gHLOtRHm5k7ln8_gT1@Y=2jMYRtaNMOGor(vWZ<>H3LKL zLQ2Q>WwBy)aeDW{KZmWdu$>7=+WCZAcDRbGm4eLFgifx>JeEm5k3}RB#as?Yk-+y* z*DjG)bxXt&30f+KbM4GpJekBgcjq9{AI}LjR7_F%Nd{|GhE#gWOk;M2@XZF&AvOP~ zvl<6BS8+feV`8W;HzaIUgXf=6F*2aA!9Wl8*;olSN~7i(LKHrY<>PE_m98@a>|?b# zF>CO(JC5RGBcwCf7u*k6UN{B@V(CFnBUU9>OIoiUZj`ht47Rshnb!X7fZaM+Ocq+R z`IbR@w{yg|L?dl&Etz<4Yt#|6?y_@(cBVDapNl1P!#q%scQS)qLFR0n2szLx9XikS z(lI6|a#?Ipv3~8^WuXOk^djA&b5gV{Dk`q+zP9#Aw0)r?6?Ht|@fiDV7sh_enB$Xj z6fYILGu3;JeY}#3)d6e7+;l2{mj!J)w47IUu{Kb5J31)mwJ?lEd&sRG$oV&!el+*8 z%`WQhM{_UI^kMD`Na}tC&AlLlRQBHhx>sRW_8f?}(D-uYL!W2R+-oj;M$N4O8G`IQ zntN?^#RtQ(-?UKbhH^Qp;F z;TMkl-T^FpU?JyVzf0xpOr&7%DTs(VNg}=YLK>kkmvscBlXh>h5A&SLLQT=}UYt|I zj;5C6xTv+UBT}y>ZGdFLTm-cxuOnhWTDN|Jgz0`*#XBPO%q)D3!tg*>K$+sfQ*kD zm-&!Z7Z@P*4glRp%?+3+T6umO<~nPN`QZ**%C8f&>l-A0LKf?JGuMyX$2DH=FBBHy z5`xhmOiKPXfp%>`iuL$IBfqG*k4xSIflIUREH2U^68drb?gU>Rw_%~PZx|Qfg-UVn z1?}2^6raG~Ps#)?Ie@-$e+%G`b*Dcc8tX@%-x_JdI`aAP3?cs9EiQQWv5jhU^@e8) zaUEpt({70lIt~QH-M>GLC~^z}<0>cGnb0 zb@=_IBAgG`b$LwoghKd05*W5x>+}~yW6W}YA*}l|khzcR&*fb#mrL>Sgexab{g(se z%OjANLjBwhU7pz{DugdBism^@p8G6}#xsk28_+$M$*%;@Cxpg-t8f!=0~&wqVE-22 zkI+~z^4oy!xlBF{-aV7a7r?vcG5G`F-E)}yAA)z!T=HK7@1C{f%O8*0k&_aS+EL|v z`AoAOT=|oaN3Gm)UcK2$0*{)x5(|5da`N$rYVqVGtF*rZ-aYqgkni!!`cGcQvv%&o zbu#77qc4u?LQ{T;EWfao-)u{Fj48Jo=W2NQZKdpjTYhgYztT<0%fEdL+qraVZ!C_x z@no{4Yu`|OFr83x=XRIHkPIx#i$D{H|HGIl|t}04FhN0jX?7%A>!omGPzI7 zKf(s0{u&&<#0NEUzZ%$QT(`tVjUkO()08jJ*sPJ~4dv|`J2Z05Q{JhuOC#4h<(o8i zYwXduRpWMzJ2WOW@@%1fM&po1?gPsAXxy(6uO(q%a6Te_)!~XG@;o7O|I)6Bh)t}< z2YHL`zd_?VjkjsMTO;=){qR>`;z5m%YCNX#+ZvB+JgxDJ#&<6|1t&$6)NuhF!BLE~#0`L3e;yhanXA>XKRp+^3dg7UQ* z`R6C{J2f8Ectqpl8u_K)gpepm+ohUWiO<3)`XT({^CX>8HBOyhcu4`@81k$-om z-Ct;{Eo(FHNK&d|CWGuv#~*lXEna7 zaV{=Xlt(qL(6~WkkH!Iw`!xQ(#)mXMuJM~1f1vS{#`79~LFAlUPTct#+lY{NYQ9h7 zfR-Q9{39BVYWZ`Te_i7_E&oLGCSGM6-*k;LiHLKp=9g<+t>rPz+nOKI{9(<1Q}chX z@l7rNh35TuRWja8BI2}b{#K0%jRU&>kmmnXfFQK zGstrU@%}+$2*^Fn^O?wVm&o&!ctGRB8hLI}ep2IEjTbfY&)V!?pi%ub2>ky5vO$7Z literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/exit.c b/linux-0.11-lab/0/linux/kernel/exit.c new file mode 100644 index 0000000..2406ebe --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/exit.c @@ -0,0 +1,197 @@ +/* + * linux/kernel/exit.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include +#include + +#include +#include +#include +#include + +int sys_pause(void); +int sys_close(int fd); + +void release(struct task_struct * p) +{ + int i; + + if (!p) + return; + for (i=1 ; i32) + return -EINVAL; + if (priv || (current->euid==p->euid) || suser()) + p->signal |= (1<<(sig-1)); + else + return -EPERM; + return 0; +} + +static void kill_session(void) +{ + struct task_struct **p = NR_TASKS + task; + + while (--p > &FIRST_TASK) { + if (*p && (*p)->session == current->session) + (*p)->signal |= 1<<(SIGHUP-1); + } +} + +/* + * XXX need to check permissions needed to send signals to process + * groups, etc. etc. kill() permissions semantics are tricky! + */ +int sys_kill(int pid,int sig) +{ + struct task_struct **p = NR_TASKS + task; + int err, retval = 0; + + if (!pid) while (--p > &FIRST_TASK) { + if (*p && (*p)->pgrp == current->pid) + if (err=send_sig(sig,*p,1)) + retval = err; + } else if (pid>0) while (--p > &FIRST_TASK) { + if (*p && (*p)->pid == pid) + if (err=send_sig(sig,*p,0)) + retval = err; + } else if (pid == -1) while (--p > &FIRST_TASK) + if (err = send_sig(sig,*p,0)) + retval = err; + else while (--p > &FIRST_TASK) + if (*p && (*p)->pgrp == -pid) + if (err = send_sig(sig,*p,0)) + retval = err; + return retval; +} + +static void tell_father(int pid) +{ + int i; + + if (pid) + for (i=0;ipid != pid) + continue; + task[i]->signal |= (1<<(SIGCHLD-1)); + return; + } +/* if we don't find any fathers, we just release ourselves */ +/* This is not really OK. Must change it to make father 1 */ + printk("BAD BAD - no father found\n\r"); + release(current); +} + +int do_exit(long code) +{ + int i; + + free_page_tables(get_base(current->ldt[1]),get_limit(0x0f)); + free_page_tables(get_base(current->ldt[2]),get_limit(0x17)); + for (i=0 ; ifather == current->pid) { + task[i]->father = 1; + if (task[i]->state == TASK_ZOMBIE) + /* assumption task[1] is always init */ + (void) send_sig(SIGCHLD, task[1], 1); + } + for (i=0 ; ifilp[i]) + sys_close(i); + iput(current->pwd); + current->pwd=NULL; + iput(current->root); + current->root=NULL; + iput(current->executable); + current->executable=NULL; + if (current->leader && current->tty >= 0) + tty_table[current->tty].pgrp = 0; + if (last_task_used_math == current) + last_task_used_math = NULL; + if (current->leader) + kill_session(); + current->state = TASK_ZOMBIE; + current->exit_code = code; + tell_father(current->father); + schedule(); + return (-1); /* just to suppress warnings */ +} + +int sys_exit(int error_code) +{ + return do_exit((error_code&0xff)<<8); +} + +int sys_waitpid(pid_t pid,unsigned long * stat_addr, int options) +{ + int flag, code; + struct task_struct ** p; + + verify_area(stat_addr,4); +repeat: + flag=0; + for(p = &LAST_TASK ; p > &FIRST_TASK ; --p) { + if (!*p || *p == current) + continue; + if ((*p)->father != current->pid) + continue; + if (pid>0) { + if ((*p)->pid != pid) + continue; + } else if (!pid) { + if ((*p)->pgrp != current->pgrp) + continue; + } else if (pid != -1) { + if ((*p)->pgrp != -pid) + continue; + } + switch ((*p)->state) { + case TASK_STOPPED: + if (!(options & WUNTRACED)) + continue; + put_fs_long(0x7f,stat_addr); + return (*p)->pid; + case TASK_ZOMBIE: + current->cutime += (*p)->utime; + current->cstime += (*p)->stime; + flag = (*p)->pid; + code = (*p)->exit_code; + release(*p); + put_fs_long(code,stat_addr); + return flag; + default: + flag=1; + continue; + } + } + if (flag) { + if (options & WNOHANG) + return 0; + current->state=TASK_INTERRUPTIBLE; + schedule(); + if (!(current->signal &= ~(1<<(SIGCHLD-1)))) + goto repeat; + else + return -EINTR; + } + return -ECHILD; +} + + diff --git a/linux-0.11-lab/0/linux/kernel/exit.o b/linux-0.11-lab/0/linux/kernel/exit.o new file mode 100644 index 0000000000000000000000000000000000000000..97c5057fd4da000378b2c23ca0dba2b274e9b855 GIT binary patch literal 11164 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 + +#include +#include +#include +#include + +extern void write_verify(unsigned long address); + +long last_pid=0; + +void verify_area(void * addr,int size) +{ + unsigned long start; + + start = (unsigned long) addr; + size += start & 0xfff; + start &= 0xfffff000; + start += get_base(current->ldt[2]); + while (size>0) { + size -= 4096; + write_verify(start); + start += 4096; + } +} + +int copy_mem(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; + + 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); + if (copy_page_tables(old_data_base,new_data_base,data_limit)) { + free_page_tables(new_data_base,data_limit); + return -ENOMEM; + } + return 0; +} + +/* + * Ok, this is the main fork-routine. It copies the system process + * information (task[nr]) and sets up the necessary registers. It + * also copies the data segment in it's entirety. + */ +int copy_process(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->tss.back_link = 0; + p->tss.esp0 = PAGE_SIZE + (long) p; + p->tss.ss0 = 0x10; + p->tss.eip = eip; + p->tss.eflags = eflags; + p->tss.eax = 0; + p->tss.ecx = ecx; + p->tss.edx = edx; + p->tss.ebx = ebx; + p->tss.esp = esp; + 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(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; +} + +int find_empty_process(void) +{ + int i; + + repeat: + if ((++last_pid)<0) last_pid=1; + for(i=0 ; ipid == last_pid) goto repeat; + for(i=1 ; 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 Mi^Z-!?KYSAen*aa+ literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/math/Makefile b/linux-0.11-lab/0/linux/kernel/math/Makefile new file mode 100644 index 0000000..b35d488 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/math/Makefile @@ -0,0 +1,43 @@ +# +# Makefile for the FREAX-kernel character device drivers. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# + +AR =ar +AS =as +LD =ld +LDFLAGS =-s -x +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -nostdinc -fno-stack-protector -I../../include +CPP =gcc -E -nostdinc -I../../include + +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< +.s.o: + $(AS) -o $*.o $< +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< + +OBJS = math_emulate.o + +math.a: $(OBJS) + $(AR) rcs math.a $(OBJS) + sync + +clean: + rm -f core *.o *.a tmp_make + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: diff --git a/linux-0.11-lab/0/linux/kernel/math/math.a b/linux-0.11-lab/0/linux/kernel/math/math.a new file mode 100644 index 0000000000000000000000000000000000000000..f92fb43a9c019f8e75bf744c65f88b59c8d4ba88 GIT binary patch literal 6628 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 + +#include +#include +#include + +void math_emulate(long edi, long esi, long ebp, long sys_call_ret, + long eax,long ebx,long ecx,long edx, + unsigned short fs,unsigned short es,unsigned short ds, + unsigned long eip,unsigned short cs,unsigned long eflags, + unsigned short ss, unsigned long esp) +{ + unsigned char first, second; + +/* 0x0007 means user code space */ + if (cs != 0x000F) { + printk("math_emulate: %04x:%08x\n\r",cs,eip); + panic("Math emulation needed in kernel"); + } + first = get_fs_byte((char *)((*&eip)++)); + second = get_fs_byte((char *)((*&eip)++)); + printk("%04x:%08x %02x %02x\n\r",cs,eip-2,first,second); + current->signal |= 1<<(SIGFPE-1); +} + +void math_error(void) +{ + __asm__("fnclex"); + if (last_task_used_math) + last_task_used_math->signal |= 1<<(SIGFPE-1); +} diff --git a/linux-0.11-lab/0/linux/kernel/math/math_emulate.o b/linux-0.11-lab/0/linux/kernel/math/math_emulate.o new file mode 100644 index 0000000000000000000000000000000000000000..8a98b22720edd26bc9b196e2d1b86549665ddef0 GIT binary patch literal 6464 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 + +/* + * This isn't the library routine, it is only used in the kernel. + * as such, we don't care about years<1970 etc, but assume everything + * is ok. Similarly, TZ etc is happily ignored. We just do everything + * as easily as possible. Let's find something public for the library + * routines (although I think minix times is public). + */ +/* + * PS. I hate whoever though up the year 1970 - couldn't they have gotten + * a leap-year instead? I also hate Gregorius, pope or no. I'm grumpy. + */ +#define MINUTE 60 +#define HOUR (60*MINUTE) +#define DAY (24*HOUR) +#define YEAR (365*DAY) + +/* interestingly, we assume leap-years */ +static int month[12] = { + 0, + DAY*(31), + DAY*(31+29), + DAY*(31+29+31), + DAY*(31+29+31+30), + DAY*(31+29+31+30+31), + DAY*(31+29+31+30+31+30), + DAY*(31+29+31+30+31+30+31), + DAY*(31+29+31+30+31+30+31+31), + DAY*(31+29+31+30+31+30+31+31+30), + DAY*(31+29+31+30+31+30+31+31+30+31), + DAY*(31+29+31+30+31+30+31+31+30+31+30) +}; + +long kernel_mktime(struct tm * tm) +{ + long res; + int year; + if (tm->tm_year < 70 ) tm->tm_year += 100; /* gohigh */ + year = tm->tm_year - 70; +/* magic offsets (y+1) needed to get leapyears right.*/ + res = YEAR*year + DAY*((year+1)/4); + res += month[tm->tm_mon]; +/* and (y+2) here. If it wasn't a leap-year, we have to adjust */ + if (tm->tm_mon>1 && ((year+2)%4)) + res -= DAY; + res += DAY*(tm->tm_mday-1); + res += HOUR*tm->tm_hour; + res += MINUTE*tm->tm_min; + res += tm->tm_sec; + return res; +} diff --git a/linux-0.11-lab/0/linux/kernel/mktime.o b/linux-0.11-lab/0/linux/kernel/mktime.o new file mode 100644 index 0000000000000000000000000000000000000000..6694bf8258168567f68b2aba8bfc5ed630e30698 GIT binary patch literal 2872 zcma)8U1%It6h3!mHraGH+f8=c=BL9R=z+QC zJLlZh2X+aMEv_t>trhe7 zs=+FMvsh7H_c`1WH#v6H&lF#_7Ezv9*R)o}g{=tMS}|I;&BYZj{7N|;Z9Xl?_laJb zy7!+sbi64(04lkZ^z#JEw@~X^<|*sGoj9@%qYI3-zKwt5w^gpqUj~T!PEd383^f<8 z5*2O|-T9N6-}eamWL(gJl4$n6A(|h2E>b)kOL|%2Nt}5PFW*T8(P1??!wQYF%COpD zFue+;jqZ;aTKk|*0Ft#II4RZEhrnBa!&WCpF}4Cntxo8-0mrQn^gX~ys}K5K;2vui za3An?3&%40fm0N+LM7Luwrebj!QH%qP@{PFZ$|B0mly;xE>pPX)Jg2cF5~jqj<1=E zhY-iO?9nD!cLZXD-J@6{INm?3=}2O4-(6lqCNC^>iQTb8#EkXFxcneQzY^j ztGFErVTL1-{gDF^k>ECTk{N?AnHY_52(>Xx)Mkr=y}s?i-pK?)jrF|qcrU!#Lu7`1 zFQbQ>HnKtNU{S?{b<<`}KFMAYAtn=WkM5+&M3&Rhc76;Lt)>d3#|T{J#~|E3A@0UH zd6kzHO|T+#TCCnYx$DpU%wJs-Bbgsx@RQRvR@s?bKYSJna`l3rj$BF>73&&%scXkDpCbUrK1xQ`%?p_ zW*V;7@Q;*vxFMzC3&SJ!(8!>#<*R`SFo|;~Nt_Rh{-|ZW&eP)8K+YOAIp2v`(i|5t zd6(__LdDC?kX`p`J}+uibIP{oob|{qJbHHN9lg{A-$Y1?s@gL!-S zBN1mE^5T3tFW>nM@!sQj^Q_aP`$J4UrLA^zH?rA;v#(!9l zgBc)OgxP>F5Bw(!k}2Q7b&W~#cYaM_$_cND?5(5uI+LR7MnXh#w zG`P#%nAqCq-~V;k_#GyCi}wmH8{YxJ+xEdL7= CPoF&i literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/panic.c b/linux-0.11-lab/0/linux/kernel/panic.c new file mode 100644 index 0000000..7d8a06b --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/panic.c @@ -0,0 +1,24 @@ +/* + * linux/kernel/panic.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * This function is used through-out the kernel (includeinh mm and fs) + * to indicate a major problem. + */ +#include +#include + +void sys_sync(void); /* it's really int */ + +volatile void panic(const char * s) +{ + printk("Kernel panic: %s\n\r",s); + if (current == task[0]) + printk("In swapper task - not syncing\n\r"); + else + sys_sync(); + for(;;); +} diff --git a/linux-0.11-lab/0/linux/kernel/panic.o b/linux-0.11-lab/0/linux/kernel/panic.o new file mode 100644 index 0000000000000000000000000000000000000000..da42b57864ffc04172b2020b3f3f9096af53eb86 GIT binary patch literal 5424 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 D&gTd! literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/printk.c b/linux-0.11-lab/0/linux/kernel/printk.c new file mode 100644 index 0000000..0daa097 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/printk.c @@ -0,0 +1,41 @@ +/* + * linux/kernel/printk.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * When in kernel-mode, we cannot use printf, as fs is liable to + * point to 'interesting' things. Make a printf with fs-saving, and + * all is well. + */ +#include +#include + +#include + +static char buf[1024]; + +extern int vsprintf(char * buf, const char * fmt, va_list args); + +int printk(const char *fmt, ...) +{ + va_list args; + int i; + + va_start(args, fmt); + i=vsprintf(buf,fmt,args); + va_end(args); + __asm__("push %%fs\n\t" + "push %%ds\n\t" + "pop %%fs\n\t" + "pushl %0\n\t" + "pushl $buf\n\t" + "pushl $0\n\t" + "call tty_write\n\t" + "addl $8,%%esp\n\t" + "popl %0\n\t" + "pop %%fs" + ::"r" (i):"ax","cx","dx"); + return i; +} diff --git a/linux-0.11-lab/0/linux/kernel/printk.o b/linux-0.11-lab/0/linux/kernel/printk.o new file mode 100644 index 0000000000000000000000000000000000000000..93ce6e40ca451b8b2b024367e2fd7f575b694368 GIT binary patch literal 2424 zcma)7&2Jk;6o2DgCr+F=bwa44L}e?vC4jtkz$&FcNl74zT1BEwQKbUW+Fsk+*lV-9 zPLry@Ap#ObAoTzO!66j~E?kfhSCAS$gv5Ou_hxtEEfNw>nt8wXJ@aOE z_N^B#y(okrMS?WyOGHgQw3H>Ar3WZWSGNC{eQz;e-d)Vk>@DU?d#m}G-PL>wvi^gf zXV2gNK0G{xoZEXPpBvjhF?RP#ll3=3%l1L)`q*8>=C%)Juisi90ly z>aykdDJiyw91=P9O5ADEu%2|>07X85BF&XXc={4!l&3=tH3#1S8mjc_B(nQ}NevS+ zX2q$@L|V&CXR=~^;Mj4be2}!vx%AWNhz0-DrLfy04cA?ur zdfS82aa)dS7wSE?8aN%-hsx~~{J^TN7rI_2u&Y7GqgKal7(Lf_8m?V4_zbZkpEj(u zmg5KHJGbm$t7}uS*=gHFw^s{_9lzk(H;c&L+bopKxw%5isuWA1qPT8*uH6dra=N4a zR-2X=NkmHv3+Ig4tCgM`^uoOr9`8wM?#;QfSt>sgY6;&}NaEII61P)gdPLWE&{P9z zJ`yH*3>Pw~?ZiT+l(?8lUAUK#--hXLwF9d{rXP4AZz|;3Eiec z$O^M5i?7IF5RtO2K#teF2H_ZVT$lH!>e|3629V~E?;3-Ml+A)1&)0;&c{txNhRXLk zFvsw|nRb!ymk`RCZ9HyAT=~6`G|KE@(H-d7eQUg`kCXV589b>lVJwlj!6Ly5PP@Nmnz+;^@S&-W3E%tEI~ z@kn{1j;@ME+C(083(}ch`{!E#R3zOA&vW cIpTsy{wm_%F-Lt_7ZcwB_FIU!0iJ;T4?BzyrvLx| literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/sched.c b/linux-0.11-lab/0/linux/kernel/sched.c new file mode 100644 index 0000000..15d839b --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/sched.c @@ -0,0 +1,412 @@ +/* + * linux/kernel/sched.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * 'sched.c' is the main kernel file. It contains scheduling primitives + * (sleep_on, wakeup, schedule etc) as well as a number of simple system + * call functions (type getpid(), which just extracts a field from + * current-task + */ +#include +#include +#include +#include +#include +#include +#include + +#include + +#define _S(nr) (1<<((nr)-1)) +#define _BLOCKABLE (~(_S(SIGKILL) | _S(SIGSTOP))) + +void show_task(int nr,struct task_struct * p) +{ + int i,j = 4096-sizeof(struct task_struct); + + printk("%d: pid=%d, state=%d, ",nr,p->pid,p->state); + i=0; + while (i>2 ] ; + +struct { + long * a; + short b; + } stack_start = { & user_stack [PAGE_SIZE>>2] , 0x10 }; +/* + * 'math_state_restore()' saves the current math information in the + * old math state array, and gets the new ones from the current task + */ +void math_state_restore() +{ + if (last_task_used_math == current) + return; + __asm__("fwait"); + if (last_task_used_math) { + __asm__("fnsave %0"::"m" (last_task_used_math->tss.i387)); + } + last_task_used_math=current; + if (current->used_math) { + __asm__("frstor %0"::"m" (current->tss.i387)); + } else { + __asm__("fninit"::); + current->used_math=1; + } +} + +/* + * 'schedule()' is the scheduler function. This is GOOD CODE! There + * probably won't be any reason to change this, as it should work well + * in all circumstances (ie gives IO-bound processes good response etc). + * The one thing you might take a look at is the signal-handler code here. + * + * NOTE!! Task 0 is the 'idle' task, which gets called when no other + * tasks can run. It can not be killed, and it cannot sleep. The 'state' + * information in task[0] is never used. + */ +void schedule(void) +{ + int i,next,c; + struct task_struct ** p; + +/* check alarm, wake up any interruptible tasks that have got a signal */ + + for(p = &LAST_TASK ; p > &FIRST_TASK ; --p) + if (*p) { + if ((*p)->alarm && (*p)->alarm < jiffies) { + (*p)->signal |= (1<<(SIGALRM-1)); + (*p)->alarm = 0; + } + if (((*p)->signal & ~(_BLOCKABLE & (*p)->blocked)) && + (*p)->state==TASK_INTERRUPTIBLE) + (*p)->state=TASK_RUNNING; + } + +/* this is the scheduler proper: */ + + while (1) { + c = -1; + next = 0; + i = NR_TASKS; + p = &task[NR_TASKS]; + while (--i) { + if (!*--p) + continue; + if ((*p)->state == TASK_RUNNING && (*p)->counter > c) + c = (*p)->counter, next = i; + } + if (c) break; + for(p = &LAST_TASK ; p > &FIRST_TASK ; --p) + if (*p) + (*p)->counter = ((*p)->counter >> 1) + + (*p)->priority; + } + switch_to(next); +} + +int sys_pause(void) +{ + current->state = TASK_INTERRUPTIBLE; + schedule(); + return 0; +} + +void sleep_on(struct task_struct **p) +{ + struct task_struct *tmp; + + if (!p) + return; + if (current == &(init_task.task)) + panic("task[0] trying to sleep"); + tmp = *p; + *p = current; + current->state = TASK_UNINTERRUPTIBLE; + schedule(); + if (tmp) + tmp->state=0; +} + +void interruptible_sleep_on(struct task_struct **p) +{ + struct task_struct *tmp; + + if (!p) + return; + if (current == &(init_task.task)) + panic("task[0] trying to sleep"); + tmp=*p; + *p=current; +repeat: current->state = TASK_INTERRUPTIBLE; + schedule(); + if (*p && *p != current) { + (**p).state=0; + goto repeat; + } + *p=NULL; + if (tmp) + tmp->state=0; +} + +void wake_up(struct task_struct **p) +{ + if (p && *p) { + (**p).state=0; + *p=NULL; + } +} + +/* + * OK, here are some floppy things that shouldn't be in the kernel + * proper. They are here because the floppy needs a timer, and this + * was the easiest way of doing it. + */ +static struct task_struct * wait_motor[4] = {NULL,NULL,NULL,NULL}; +static int mon_timer[4]={0,0,0,0}; +static int moff_timer[4]={0,0,0,0}; +unsigned char current_DOR = 0x0C; + +int ticks_to_floppy_on(unsigned int nr) +{ + extern unsigned char selected; + unsigned char mask = 0x10 << nr; + + if (nr>3) + panic("floppy_on: nr>3"); + moff_timer[nr]=10000; /* 100 s = very big :-) */ + cli(); /* use floppy_off to turn it off */ + mask |= current_DOR; + if (!selected) { + mask &= 0xFC; + mask |= nr; + } + if (mask != current_DOR) { + outb(mask,FD_DOR); + if ((mask ^ current_DOR) & 0xf0) + mon_timer[nr] = HZ/2; + else if (mon_timer[nr] < 2) + mon_timer[nr] = 2; + current_DOR = mask; + } + sti(); + return mon_timer[nr]; +} + +void floppy_on(unsigned int nr) +{ + cli(); + while (ticks_to_floppy_on(nr)) + sleep_on(nr+wait_motor); + sti(); +} + +void floppy_off(unsigned int nr) +{ + moff_timer[nr]=3*HZ; +} + +void do_floppy_timer(void) +{ + int i; + unsigned char mask = 0x10; + + for (i=0 ; i<4 ; i++,mask <<= 1) { + if (!(mask & current_DOR)) + continue; + if (mon_timer[i]) { + if (!--mon_timer[i]) + wake_up(i+wait_motor); + } else if (!moff_timer[i]) { + current_DOR &= ~mask; + outb(current_DOR,FD_DOR); + } else + moff_timer[i]--; + } +} + +#define TIME_REQUESTS 64 + +static struct timer_list { + long jiffies; + void (*fn)(); + struct timer_list * next; +} timer_list[TIME_REQUESTS], * next_timer = NULL; + +void add_timer(long jiffies, void (*fn)(void)) +{ + struct timer_list * p; + + if (!fn) + return; + cli(); + if (jiffies <= 0) + (fn)(); + else { + for (p = timer_list ; p < timer_list + TIME_REQUESTS ; p++) + if (!p->fn) + break; + if (p >= timer_list + TIME_REQUESTS) + panic("No more time requests free"); + p->fn = fn; + p->jiffies = jiffies; + p->next = next_timer; + next_timer = p; + while (p->next && p->next->jiffies < p->jiffies) { + p->jiffies -= p->next->jiffies; + fn = p->fn; + p->fn = p->next->fn; + p->next->fn = fn; + jiffies = p->jiffies; + p->jiffies = p->next->jiffies; + p->next->jiffies = jiffies; + p = p->next; + } + } + sti(); +} + +void do_timer(long cpl) +{ + extern int beepcount; + extern void sysbeepstop(void); + + if (beepcount) + if (!--beepcount) + sysbeepstop(); + + if (cpl) + current->utime++; + else + current->stime++; + + if (next_timer) { + next_timer->jiffies--; + while (next_timer && next_timer->jiffies <= 0) { + void (*fn)(void); + + fn = next_timer->fn; + next_timer->fn = NULL; + next_timer = next_timer->next; + (fn)(); + } + } + if (current_DOR & 0xf0) + do_floppy_timer(); + if ((--current->counter)>0) return; + current->counter=0; + if (!cpl) return; + schedule(); +} + +int sys_alarm(long seconds) +{ + int old = current->alarm; + + if (old) + old = (old - jiffies) / HZ; + current->alarm = (seconds>0)?(jiffies+HZ*seconds):0; + return (old); +} + +int sys_getpid(void) +{ + return current->pid; +} + +int sys_getppid(void) +{ + return current->father; +} + +int sys_getuid(void) +{ + return current->uid; +} + +int sys_geteuid(void) +{ + return current->euid; +} + +int sys_getgid(void) +{ + return current->gid; +} + +int sys_getegid(void) +{ + return current->egid; +} + +int sys_nice(long increment) +{ + if (current->priority-increment>0) + current->priority -= increment; + return 0; +} + +void sched_init(void) +{ + int i; + struct desc_struct * p; + + if (sizeof(struct sigaction) != 16) + panic("Struct sigaction MUST be 16 bytes"); + set_tss_desc(gdt+FIRST_TSS_ENTRY,&(init_task.task.tss)); + set_ldt_desc(gdt+FIRST_LDT_ENTRY,&(init_task.task.ldt)); + p = gdt+2+FIRST_TSS_ENTRY; + for(i=1;ia=p->b=0; + p++; + p->a=p->b=0; + p++; + } +/* Clear NT, so that we won't have troubles with that later on */ + __asm__("pushfl ; andl $0xffffbfff,(%esp) ; popfl"); + ltr(0); + lldt(0); + outb_p(0x36,0x43); /* binary, mode 3, LSB/MSB, ch 0 */ + outb_p(LATCH & 0xff , 0x40); /* LSB */ + outb(LATCH >> 8 , 0x40); /* MSB */ + set_intr_gate(0x20,&timer_interrupt); + outb(inb_p(0x21)&~0x01,0x21); + set_system_gate(0x80,&system_call); +} diff --git a/linux-0.11-lab/0/linux/kernel/sched.o b/linux-0.11-lab/0/linux/kernel/sched.o new file mode 100644 index 0000000000000000000000000000000000000000..8907e54fae556c36d88e61cb2d6e7dbb043a4216 GIT binary patch literal 22732 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 U-~)n>3HAxTA^3?P_htI|KkS5JegFUf literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/signal.c b/linux-0.11-lab/0/linux/kernel/signal.c new file mode 100644 index 0000000..8d5a65f --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/signal.c @@ -0,0 +1,129 @@ +/* + * linux/kernel/signal.c + * + * (C) 1991 Linus Torvalds + */ + +#include +#include +#include +#include +#include + +volatile void do_exit(int error_code); + +int sys_sgetmask() +{ + return current->blocked; +} + +int sys_ssetmask(int newmask) +{ + int old=current->blocked; + + current->blocked = newmask & ~(1<<(SIGKILL-1)); + return old; +} + +int sys_sigpending() +{ + return -ENOSYS; +} + +int sys_sigsuspend() +{ + return -ENOSYS; +} + +static inline void save_old(char * from,char * to) +{ + int i; + + verify_area(to, sizeof(struct sigaction)); + for (i=0 ; i< sizeof(struct sigaction) ; i++) { + put_fs_byte(*from,to); + from++; + to++; + } +} + +static inline void get_new(char * from,char * to) +{ + int i; + + for (i=0 ; i< sizeof(struct sigaction) ; i++) + *(to++) = get_fs_byte(from++); +} + +int sys_signal(int signum, long handler, long restorer) +{ + struct sigaction tmp; + + if (signum<1 || signum>32 || signum==SIGKILL) + return -1; + tmp.sa_handler = (void (*)(int)) handler; + tmp.sa_mask = 0; + tmp.sa_flags = SA_ONESHOT | SA_NOMASK; + tmp.sa_restorer = (void (*)(void)) restorer; + handler = (long) current->sigaction[signum-1].sa_handler; + current->sigaction[signum-1] = tmp; + return handler; +} + +int sys_sigaction(int signum, const struct sigaction * action, + struct sigaction * oldaction) +{ + struct sigaction tmp; + + if (signum<1 || signum>32 || signum==SIGKILL) + return -1; + tmp = current->sigaction[signum-1]; + get_new((char *) action, + (char *) (signum-1+current->sigaction)); + if (oldaction) + save_old((char *) &tmp,(char *) oldaction); + if (current->sigaction[signum-1].sa_flags & SA_NOMASK) + current->sigaction[signum-1].sa_mask = 0; + else + current->sigaction[signum-1].sa_mask |= (1<<(signum-1)); + return 0; +} + +void do_signal(long signr,long eax, long ebx, long ecx, long edx, + long fs, long es, long ds, + long eip, long cs, long eflags, + unsigned long * esp, long ss) +{ + unsigned long sa_handler; + long old_eip=eip; + struct sigaction * sa = current->sigaction + signr - 1; + int longs; + unsigned long * tmp_esp; + + sa_handler = (unsigned long) sa->sa_handler; + if (sa_handler==1) + return; + if (!sa_handler) { + if (signr==SIGCHLD) + return; + else + do_exit(1<<(signr-1)); + } + if (sa->sa_flags & SA_ONESHOT) + sa->sa_handler = NULL; + *(&eip) = sa_handler; + longs = (sa->sa_flags & SA_NOMASK)?7:8; + *(&esp) -= longs; + verify_area(esp,longs*4); + tmp_esp=esp; + put_fs_long((long) sa->sa_restorer,tmp_esp++); + put_fs_long(signr,tmp_esp++); + if (!(sa->sa_flags & SA_NOMASK)) + put_fs_long(current->blocked,tmp_esp++); + put_fs_long(eax,tmp_esp++); + put_fs_long(ecx,tmp_esp++); + put_fs_long(edx,tmp_esp++); + put_fs_long(eflags,tmp_esp++); + put_fs_long(old_eip,tmp_esp++); + current->blocked |= sa->sa_mask; +} diff --git a/linux-0.11-lab/0/linux/kernel/signal.o b/linux-0.11-lab/0/linux/kernel/signal.o new file mode 100644 index 0000000000000000000000000000000000000000..1970f39f72c6b0c63a277c6955a88089975ca4d3 GIT binary patch literal 8960 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/sys.c b/linux-0.11-lab/0/linux/kernel/sys.c new file mode 100644 index 0000000..695f287 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/sys.c @@ -0,0 +1,292 @@ +/* + * linux/kernel/sys.c + * + * (C) 1991 Linus Torvalds + */ + +#include + +#include +#include +#include +#include +#include +#include + +int sys_ftime() +{ + return -ENOSYS; +} + +int sys_break() +{ + return -ENOSYS; +} + +int sys_ptrace() +{ + return -ENOSYS; +} + +int sys_stty() +{ + return -ENOSYS; +} + +int sys_gtty() +{ + return -ENOSYS; +} + +int sys_rename() +{ + return -ENOSYS; +} + +int sys_prof() +{ + return -ENOSYS; +} + +int sys_setregid(int rgid, int egid) +{ + if (rgid>0) { + if ((current->gid == rgid) || + suser()) + current->gid = rgid; + else + return(-EPERM); + } + if (egid>0) { + if ((current->gid == egid) || + (current->egid == egid) || + suser()) { + current->egid = egid; + current->sgid = egid; + } else + return(-EPERM); + } + return 0; +} + +int sys_setgid(int gid) +{ +/* return(sys_setregid(gid, gid)); */ + if (suser()) + current->gid = current->egid = current->sgid = gid; + else if ((gid == current->gid) || (gid == current->sgid)) + current->egid = gid; + else + return -EPERM; + return 0; +} + +int sys_acct() +{ + return -ENOSYS; +} + +int sys_phys() +{ + return -ENOSYS; +} + +int sys_lock() +{ + return -ENOSYS; +} + +int sys_mpx() +{ + return -ENOSYS; +} + +int sys_ulimit() +{ + return -ENOSYS; +} + +int sys_time(long * tloc) +{ + int i; + + i = CURRENT_TIME; + if (tloc) { + verify_area(tloc,4); + put_fs_long(i,(unsigned long *)tloc); + } + return i; +} + +/* + * Unprivileged users may change the real user id to the effective uid + * or vice versa. + */ +int sys_setreuid(int ruid, int euid) +{ + int old_ruid = current->uid; + + if (ruid>0) { + if ((current->euid==ruid) || + (old_ruid == ruid) || + suser()) + current->uid = ruid; + else + return(-EPERM); + } + if (euid>0) { + if ((old_ruid == euid) || + (current->euid == euid) || + suser()) { + current->euid = euid; + current->suid = euid; + } else { + current->uid = old_ruid; + return(-EPERM); + } + } + return 0; +} + +int sys_setuid(int uid) +{ +/* return(sys_setreuid(uid, uid)); */ + if (suser()) + current->uid = current->euid = current->suid = uid; + else if ((uid == current->uid) || (uid == current->suid)) + current->euid = uid; + else + return -EPERM; + return(0); +} + +int sys_stime(long * tptr) +{ + if (!suser()) + return -EPERM; + startup_time = get_fs_long((unsigned long *)tptr) - jiffies/HZ; + return 0; +} + +int sys_times(struct tms * tbuf) +{ + if (tbuf) { + verify_area(tbuf,sizeof *tbuf); + put_fs_long(current->utime,(unsigned long *)&tbuf->tms_utime); + put_fs_long(current->stime,(unsigned long *)&tbuf->tms_stime); + put_fs_long(current->cutime,(unsigned long *)&tbuf->tms_cutime); + put_fs_long(current->cstime,(unsigned long *)&tbuf->tms_cstime); + } + return jiffies; +} + +int sys_brk(unsigned long end_data_seg) +{ + if (end_data_seg >= current->end_code && + end_data_seg < current->start_stack - 16384) + current->brk = end_data_seg; + return current->brk; +} + +/* + * This needs some heave checking ... + * I just haven't get the stomach for it. I also don't fully + * understand sessions/pgrp etc. Let somebody who does explain it. + */ +int sys_setpgid(int pid, int pgid) +{ + int i; + + if (!pid) + pid = current->pid; + if (!pgid) + pgid = current->pid; + for (i=0 ; ipid==pid) { + if (task[i]->leader) + return -EPERM; + if (task[i]->session != current->session) + return -EPERM; + task[i]->pgrp = pgid; + return 0; + } + return -ESRCH; +} + +int sys_getpgrp(void) +{ + return current->pgrp; +} + +int sys_setsid(void) +{ + if (current->leader && !suser()) + return -EPERM; + current->leader = 1; + current->session = current->pgrp = current->pid; + current->tty = -1; + return current->pgrp; +} + +int sys_getgroups() +{ + return -ENOSYS; +} + +int sys_setgroups() +{ + return -ENOSYS; +} + +int sys_uname(struct utsname * name) +{ + static struct utsname thisname = { + "linux .0","nodename","release ","version ","machine " + }; + int i; + + if (!name) return -ERROR; + verify_area(name,sizeof *name); + for(i=0;iumask; + + current->umask = mask & 0777; + return (old); +} diff --git a/linux-0.11-lab/0/linux/kernel/sys.o b/linux-0.11-lab/0/linux/kernel/sys.o new file mode 100644 index 0000000000000000000000000000000000000000..a691166c6ad2230733c9baaa0609d3b8fe779594 GIT binary patch literal 13088 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 M35GC+)VB!!4-!@J2mk;8 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/system_call.o b/linux-0.11-lab/0/linux/kernel/system_call.o new file mode 100644 index 0000000000000000000000000000000000000000..ddce0649262248d052f5c003cc697385b7d0d869 GIT binary patch literal 2520 zcma);U1%It6vxlzt5st*N@_%FyJCv5#+YcU6+wvEqzNo^(C8hE#)L@xkZzL2X~8v@an@S&Rx&BsEWdJp{#SsXi)OAGkh-}qT;9JQX7e?%TKm*uNczHFZD&j#eUX- z-eP1q*|~hG8>|2R#l2sJKm1H|g)d%yBiT7J^%Jj{Og?k`MEJ~(y{N-mHooev`{hb? z)m?Y1S>L}#gge5K>bW*l5q_OhPtP24mr$O6ZhhO_j$8Km$koVlv@cTLYK^;d${)8~ z+lL&Lx1xQ!8(r&q#T{L&mb$`cXO2z#BR%W!siRz6uyiCoeVwk;@aEDkKA*+SV*47K zs}X0Dw|(Mxa%20sk>To+Ti{}~*uKj1oGXo4Ty%1S2JMBMP-mgSs%yq~mSzkJtt4nL ztqPR}XKkBv{NJ`0f&2`0coX>9`9ylC_^7$vjq4`Y)o(+9v#>mm!#Qpzu6-W2Lb?4Z zGTofcfoW0^;UE4 zf$8xP;}Q5fCB6@Sx5W3uMnH zzs}q^_nMOjH(SkF0Lb}Y1Izi}1k3r~0ngy7x0>^wZ(R-1MQC$=h%SLA8ZjZd0`H$^ zH~xCxf)98P1M?5ypS^hI-{AYCadc5k;#=WQNxTRClElOC7o>dS;EKdaFP6Lb+|&RU z0$d94%K=^r@Y?}?H^3JHycXc~0Dm6ftpNWL;9moLOXFFn?{`;#DKU9i8J&nlX>24( zV^8B6#T8A`c!I_f6vcfqPNR_V*vR1o9f?K95^*eA+-TY)-Z3Sam}^X|u63TbLFG^Oj;S*h0%GDb+A+ znpM->;SwP#mC@2gLxUBHZkf5}pfrtmhHhGOB(gcpQnFm6RV)a1Kr3mfd5tn@sb4qD zLSaGbD5w_J*9@sEt<7gsnvyq#qRy*XL!Ct(DYIaiDb2P`OTii@w&$1Vm#yIY!jVPG z((-}??>%iQ-cjXLk@04_);(DNJg7dJD;j*-FJyH+tJyr+-4`2gGkP|kRK}y literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/kernel/system_call.s b/linux-0.11-lab/0/linux/kernel/system_call.s new file mode 100644 index 0000000..5f9b6b2 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/system_call.s @@ -0,0 +1,285 @@ +/* + * linux/kernel/system_call.s + * + * (C) 1991 Linus Torvalds + */ + +/* + * system_call.s contains the system-call low-level handling routines. + * This also contains the timer-interrupt handler, as some of the code is + * the same. The hd- and flopppy-interrupts are also here. + * + * NOTE: This code handles signal-recognition, which happens every time + * after a timer-interrupt and after each system call. Ordinary interrupts + * don't handle signal-recognition, as that would clutter them up totally + * unnecessarily. + * + * Stack layout in 'ret_from_system_call': + * + * 0(%esp) - %eax + * 4(%esp) - %ebx + * 8(%esp) - %ecx + * C(%esp) - %edx + * 10(%esp) - %fs + * 14(%esp) - %es + * 18(%esp) - %ds + * 1C(%esp) - %eip + * 20(%esp) - %cs + * 24(%esp) - %eflags + * 28(%esp) - %oldesp + * 2C(%esp) - %oldss + */ + +SIG_CHLD = 17 + +EAX = 0x00 +EBX = 0x04 +ECX = 0x08 +EDX = 0x0C +FS = 0x10 +ES = 0x14 +DS = 0x18 +EIP = 0x1C +CS = 0x20 +EFLAGS = 0x24 +OLDESP = 0x28 +OLDSS = 0x2C + +state = 0 # these are offsets into the task-struct. +counter = 4 +priority = 8 +signal = 12 +sigaction = 16 # MUST be 16 (=len of sigaction) +blocked = (33*16) + +# offsets within sigaction +sa_handler = 0 +sa_mask = 4 +sa_flags = 8 +sa_restorer = 12 + +nr_system_calls = 92 /* 72 the number of system*/ + +/* + * Ok, I get parallel printer interrupts while using the floppy for some + * strange reason. Urgel. Now I just ignore them. + */ +.globl system_call,sys_fork,timer_interrupt,sys_execve +.globl hd_interrupt,floppy_interrupt,parallel_interrupt +.globl device_not_available, coprocessor_error + +.align 4 +bad_sys_call: + movl $-1,%eax + iret +.align 4 +reschedule: + pushl $ret_from_sys_call + jmp schedule +.align 4 +system_call: + cmpl $nr_system_calls-1,%eax + ja bad_sys_call + push %ds + push %es + push %fs + pushl %edx + pushl %ecx # push %ebx,%ecx,%edx as parameters + pushl %ebx # to the system call + movl $0x10,%edx # set up ds,es to kernel space + mov %dx,%ds + mov %dx,%es + movl $0x17,%edx # fs points to local data space + mov %dx,%fs + call sys_call_table(,%eax,4) + pushl %eax + movl current,%eax + cmpl $0,state(%eax) # state + jne reschedule + cmpl $0,counter(%eax) # counter + je reschedule +ret_from_sys_call: + movl current,%eax # task[0] cannot have signals + cmpl task,%eax + je 3f + cmpw $0x0f,CS(%esp) # was old code segment supervisor ? + jne 3f + cmpw $0x17,OLDSS(%esp) # was stack segment = 0x17 ? + jne 3f + movl signal(%eax),%ebx + movl blocked(%eax),%ecx + notl %ecx + andl %ebx,%ecx + bsfl %ecx,%ecx + je 3f + btrl %ecx,%ebx + movl %ebx,signal(%eax) + incl %ecx + pushl %ecx + call do_signal + popl %eax +3: popl %eax + popl %ebx + popl %ecx + popl %edx + pop %fs + pop %es + pop %ds + iret + +.align 4 +coprocessor_error: + push %ds + push %es + push %fs + pushl %edx + pushl %ecx + pushl %ebx + pushl %eax + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + pushl $ret_from_sys_call + jmp math_error + +.align 2 +device_not_available: + push %ds + push %es + push %fs + pushl %edx + pushl %ecx + pushl %ebx + pushl %eax + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + pushl $ret_from_sys_call + clts # clear TS so that we can use math + movl %cr0,%eax + testl $0x4,%eax # EM (math emulation bit) + je math_state_restore + pushl %ebp + pushl %esi + pushl %edi + call math_emulate + popl %edi + popl %esi + popl %ebp + ret + +.align 4 +timer_interrupt: + push %ds # save ds,es and put kernel data space + push %es # into them. %fs is used by _system_call + push %fs + pushl %edx # we save %eax,%ecx,%edx as gcc doesn't + pushl %ecx # save those across function calls. %ebx + pushl %ebx # is saved as we use that in ret_sys_call + pushl %eax + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + incl jiffies + movb $0x20,%al # EOI to interrupt controller #1 + outb %al,$0x20 + movl CS(%esp),%eax + andl $3,%eax # %eax is CPL (0 or 3, 0=supervisor) + pushl %eax + call do_timer # 'do_timer(long CPL)' does everything from + addl $4,%esp # task switching to accounting ... + jmp ret_from_sys_call + +.align 4 +sys_execve: + lea EIP(%esp),%eax + pushl %eax + call do_execve + addl $4,%esp + ret + +.align 4 +sys_fork: + call find_empty_process + testl %eax,%eax + js 1f + push %gs + pushl %esi + pushl %edi + pushl %ebp + pushl %eax + call copy_process + addl $20,%esp +1: ret + +hd_interrupt: + pushl %eax + pushl %ecx + pushl %edx + push %ds + push %es + push %fs + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + movb $0x20,%al + outb %al,$0xA0 # EOI to interrupt controller #1 + jmp 1f # give port chance to breathe +1: jmp 1f +1: xorl %edx,%edx + xchgl do_hd,%edx + testl %edx,%edx + jne 1f + movl $unexpected_hd_interrupt,%edx +1: outb %al,$0x20 + call *%edx # "interesting" way of handling intr. + pop %fs + pop %es + pop %ds + popl %edx + popl %ecx + popl %eax + iret + +floppy_interrupt: + pushl %eax + pushl %ecx + pushl %edx + push %ds + push %es + push %fs + movl $0x10,%eax + mov %ax,%ds + mov %ax,%es + movl $0x17,%eax + mov %ax,%fs + movb $0x20,%al + outb %al,$0x20 # EOI to interrupt controller #1 + xorl %eax,%eax + xchgl do_floppy,%eax + testl %eax,%eax + jne 1f + movl $unexpected_floppy_interrupt,%eax +1: call *%eax # "interesting" way of handling intr. + pop %fs + pop %es + pop %ds + popl %edx + popl %ecx + popl %eax + iret + +parallel_interrupt: + pushl %eax + movb $0x20,%al + outb %al,$0x20 + popl %eax + iret diff --git a/linux-0.11-lab/0/linux/kernel/traps.c b/linux-0.11-lab/0/linux/kernel/traps.c new file mode 100644 index 0000000..f9bd8f1 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/traps.c @@ -0,0 +1,208 @@ +/* + * linux/kernel/traps.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * 'Traps.c' handles hardware traps and faults after we have saved some + * state in 'asm.s'. Currently mostly a debugging-aid, will be extended + * to mainly kill the offending process (probably by giving it a signal, + * but possibly by killing it outright if necessary). + */ +#include + +#include +#include +#include +#include +#include +#include + +#define get_seg_byte(seg,addr) ({ \ +register char __res; \ +__asm__("push %%fs;mov %%ax,%%fs;movb %%fs:%2,%%al;pop %%fs" \ + :"=a" (__res):"0" (seg),"m" (*(addr))); \ +__res;}) + +#define get_seg_long(seg,addr) ({ \ +register unsigned long __res; \ +__asm__("push %%fs;mov %%ax,%%fs;movl %%fs:%2,%%eax;pop %%fs" \ + :"=a" (__res):"0" (seg),"m" (*(addr))); \ +__res;}) + +#define _fs() ({ \ +register unsigned short __res; \ +__asm__("mov %%fs,%%ax":"=a" (__res):); \ +__res;}) + +int do_exit(long code); + +void page_exception(void); + +void divide_error(void); +void debug(void); +void nmi(void); +void int3(void); +void overflow(void); +void bounds(void); +void invalid_op(void); +void device_not_available(void); +void double_fault(void); +void coprocessor_segment_overrun(void); +void invalid_TSS(void); +void segment_not_present(void); +void stack_segment(void); +void general_protection(void); +void page_fault(void); +void coprocessor_error(void); +void reserved(void); +void parallel_interrupt(void); +void irq13(void); + +static void die(char * str,long esp_ptr,long nr) +{ + long * esp = (long *) esp_ptr; + int i; + + printk("%s: %04x\n\r",str,nr&0xffff); + printk("EIP:\t%04x:%p\nEFLAGS:\t%p\nESP:\t%04x:%p\n", + esp[1],esp[0],esp[2],esp[4],esp[3]); + printk("fs: %04x\n",_fs()); + printk("base: %p, limit: %p\n",get_base(current->ldt[1]),get_limit(0x17)); + if (esp[4] == 0x17) { + printk("Stack: "); + for (i=0;i<4;i++) + printk("%p ",get_seg_long(0x17,i+(long *)esp[3])); + printk("\n"); + } + str(i); + printk("Pid: %d, process nr: %d\n\r",current->pid,0xffff & i); + for(i=0;i<10;i++) + printk("%02x ",0xff & get_seg_byte(esp[1],(i+(char *)esp[0]))); + printk("\n\r"); + do_exit(11); /* play segment exception */ +} + +void do_double_fault(long esp, long error_code) +{ + die("double fault",esp,error_code); +} + +void do_general_protection(long esp, long error_code) +{ + die("general protection",esp,error_code); +} + +void do_divide_error(long esp, long error_code) +{ + die("divide error",esp,error_code); +} + +void do_int3(long * esp, long error_code, + long fs,long es,long ds, + long ebp,long esi,long edi, + long edx,long ecx,long ebx,long eax) +{ + int tr; + + __asm__("str %%ax":"=a" (tr):"0" (0)); + printk("eax\t\tebx\t\tecx\t\tedx\n\r%8x\t%8x\t%8x\t%8x\n\r", + eax,ebx,ecx,edx); + printk("esi\t\tedi\t\tebp\t\tesp\n\r%8x\t%8x\t%8x\t%8x\n\r", + esi,edi,ebp,(long) esp); + printk("\n\rds\tes\tfs\ttr\n\r%4x\t%4x\t%4x\t%4x\n\r", + ds,es,fs,tr); + printk("EIP: %8x CS: %4x EFLAGS: %8x\n\r",esp[0],esp[1],esp[2]); +} + +void do_nmi(long esp, long error_code) +{ + die("nmi",esp,error_code); +} + +void do_debug(long esp, long error_code) +{ + die("debug",esp,error_code); +} + +void do_overflow(long esp, long error_code) +{ + die("overflow",esp,error_code); +} + +void do_bounds(long esp, long error_code) +{ + die("bounds",esp,error_code); +} + +void do_invalid_op(long esp, long error_code) +{ + die("invalid operand",esp,error_code); +} + +void do_device_not_available(long esp, long error_code) +{ + die("device not available",esp,error_code); +} + +void do_coprocessor_segment_overrun(long esp, long error_code) +{ + die("coprocessor segment overrun",esp,error_code); +} + +void do_invalid_TSS(long esp,long error_code) +{ + die("invalid TSS",esp,error_code); +} + +void do_segment_not_present(long esp,long error_code) +{ + die("segment not present",esp,error_code); +} + +void do_stack_segment(long esp,long error_code) +{ + die("stack segment",esp,error_code); +} + +void do_coprocessor_error(long esp, long error_code) +{ + if (last_task_used_math != current) + return; + die("coprocessor error",esp,error_code); +} + +void do_reserved(long esp, long error_code) +{ + die("reserved (15,17-47) error",esp,error_code); +} + +void trap_init(void) +{ + int i; + + set_trap_gate(0,÷_error); + set_trap_gate(1,&debug); + set_trap_gate(2,&nmi); + set_system_gate(3,&int3); /* int3-5 can be called from all */ + set_system_gate(4,&overflow); + set_system_gate(5,&bounds); + set_trap_gate(6,&invalid_op); + set_trap_gate(7,&device_not_available); + set_trap_gate(8,&double_fault); + set_trap_gate(9,&coprocessor_segment_overrun); + set_trap_gate(10,&invalid_TSS); + set_trap_gate(11,&segment_not_present); + set_trap_gate(12,&stack_segment); + set_trap_gate(13,&general_protection); + set_trap_gate(14,&page_fault); + set_trap_gate(15,&reserved); + set_trap_gate(16,&coprocessor_error); + for (i=17;i<48;i++) + set_trap_gate(i,&reserved); + set_trap_gate(45,&irq13); + outb_p(inb_p(0x21)&0xfb,0x21); + outb(inb_p(0xA1)&0xdf,0xA1); + set_trap_gate(39,¶llel_interrupt); +} diff --git a/linux-0.11-lab/0/linux/kernel/traps.o b/linux-0.11-lab/0/linux/kernel/traps.o new file mode 100644 index 0000000000000000000000000000000000000000..51de46fe88ac98ea479385c2c283bf030d1f46cd GIT binary patch literal 12972 zcma)C3zQVqnZ8wBJ@icVJY;5I5Li1hgwf0sMwt-Q;h};-g8~r|ZF;(^XIgr?JNatw+FB@QkU{nALiAE{cJ` zI^c5c=H=Wlu14ROT^dBdn{~=JSGTq^#JQ_s(|(}oeiF|-Jg$t>W6yY5KKh}T6XRz6 z5td7edmAj>il2w)=os^h7J7V7J4-!L z{it@VD3jM>cwBAcGsm6>wj1B6XKD7MH2a?2cc%WSll4#Vp|GKL=@`09)oz*IuhlTI zwLE&N_x3xV9es5kO4SN~KBb7n`2da1|MC3!(NpuLG5Ih}Ub>*k-_zuH*<^XSMWijZ z0of}OK=!#IAWM-3vNn(FqC&?fPTP%QyH#vAi|rYoZM)d65!-cQyIyShqUbK$KYG&Z zpb#v#kM^U3R(8x*Z9jTy`82I@9ZkN6*I@bvyMZR3zo5x_n(Vuv$!#=oE@-liCMz#! zlB3Bb7c{w_CU3oYp&A{b$$wtZ&KOe3vD3+~sSl4CV~xi{Oy(Fgb#eofo2E@}Ve-5w zl7H<6k1&~I<>cUAavPI55KW!j&18<`lasxY_c57+-PFnbOkO>0@){KkplQ&MA zyqU>cr%m3*7c?j5PARqEQc>z7rN zEL)hXx%RqsE3V%F4snA|uaeqB4a5o#ymRf5bZR(Nq*$Xi6l3x2%OYxFE~0AG`cwky zM0+Hc&&HiXA(F|HBe#X!i$`Els}kALK-!5UW2JOa4LTVoA4}7`=){YuY(^zgJ5mWJ z;^gz$yi!hVq`KM};4RKu0wrJAH&X5Uu`0?bq?pRvKn}M;Zfd)l+C%}V)yYD2F%Oeo zgqrxdq1<+fAcIIGvT6g0-wR2ahiVvQhEpox43q{{c88Nsrn5WMK(>@g6jUm+BbH7j zBH0}3l}W&AM=I__GTCAzwj-8G$53|_&r0)T^O1rxIP7GK5eCYaGUWgpH*8Qkjo!Ju zQ-GZ+u)VccMI^7qXqMmMBqD7+SG4ym?dV;4nY87{Fs)l?D%_37a5uh=#l<50c>Q>W zho&{-%jiM@4m6>FbtAxvsX&l|vIa!56zqNpyC4VRKo!>|RdmVXH-oqHw0Hu+O)J;| z!;lqBq4cIXqn=756c50A4^phi4%nMU)k$cotw%s=`ccj&1IA5Xgsr^@M#g#?Df@2N z7&lY4>>Lt}TPTO@hpFE{Ic)!$`i<>XN;QN}Q{F^z_4C4g3k7IWzoOhK`dI&F}*(PJ(0vgw5-)t#_N@1I#D69FJ#@S({E2 zl`(V+$Z6zLC@ABupCZgz6FuQ`u&-i9r{L~(s*noIM`~a2j;|ny{d?$xZXuQ30DUk@ zYtxP(@8C9OXW9KQ48|yj?DNzQj6)9Fx8fd*Q?9kSH3%lYjC-AZka3dicM*FVZ3gMv zYJZ!)LzLU>U9?XzuXg((#=nblr`<>2?UcLiS(MX^zu116Hp7&c*jF)5hH|gnNI6US z3Oh_WNBK&7E91Y9@=_J}0Gu0wMYg1UC5=kVK-t?U@1ShjTpk5?Qnu{9%y@+6A^SmQ zyz3$8!)Q-7WAK}}Rn1rkRe#0XzMrf$E?f?Wh*QJfN=OJ5h_KwTg3zb!%d^u&yDpGz2<&c$3<&@D* zIcz24c>W!f8?0nDtBg*{O^~7QqTFJC9`TKChM%XZsA6||1I7PRdQtFIL7f$}LtrzeE}D zqCC%XSn%bPBR0CLGOnWBYGJ}s#?_SDEKFGnLutk`S+_xY-(nxQ60Z z%YEn8Qr>3YfV*)6<%B(#E%xpN+H*)%)dTpBx=nkDs#*t`KWXY}i*KMij0gX!6y1#()maclfNLYvp` z1vNIP+0OvEvRlL?&Wh$5uQ&-cdp;~LN7~A=+d8Jft>sHdYK81YyX6s2jaPt$ne#B? z+}ec7Envc-hY+CIE#9qOVb#oCu8GGiHRpL2YU|Rn$EmW1JCdWVJP%>;I7pA!ma@nH zl|5n=c?g3?h*>7@fycMpQau&YrAm5@CV3>KRL$r$=AcJHD1MoQo6)s&N<%X{t2yM^ zHNg%oFRZ1R9agh>U?a**d6to8z7(3ZBFY47Yv#+N)7odT2W*#zsphOf7czHVi@Vpl zzbV&arx#l4Aq+KtA3b&tl|3%4)-~T<;UNqjMYisJ<7JPHWsmzRJcPlcfq6Xe#j?i( zWse6cJcPl6qoq0ieA(kz*<-xILl`_hjb~?mKmJjD>ZLcA#!<-9^UCss@~2nyt#VuZ9XU zYNHXTv+ZT}yKJKo6IiVZghPuP#;7Nm@1pqB0QvvI#EUjTr_8GBkR!L z^2wF1-OOM)y4iwpv$uja!OyMCqB)+|Cp@oacu6JcH49!oI@?Bz&8%WET09YBZ>Mq1 z99@QrSQr0!ij-}x6ehT~@tQfyQH^;M`FM)?6UFruSajgw;D-m{-g(noC(8G+i>on6 zhVf=yE$#+13O}Q>vn!Q}r%MT^E1k-eMwCxc*j4aRr3&#OC($`XzhXX?D|E&ge8`Du z<*uAlKst(&B*Lzc8qCDfkkPR)ccwCfo{T=?7C7*tVcc9Q1$Gtx@NUZtym;^C+wKpY zDRklAXu-U+DRj_W+W5i=?AOf0yqU``0vJ^{RPA^&)MdWCajKLPCsJ31zHp=b)?f2& zv%N|FcQuFZ`u{6UFE$7cle!%4c5M2n?dh6WOS5haL6y#R;bnj~3nS zH@49EV$|J8V}A}c+N%^VDkqbOCSt{yD#W76bPP)-G=AKP4y201v7AapGk9>@vB!_b zim72omE1cf_#Ranjup16WUM&kIyOMS45?I(s7> z!?ApP=&IC`zAGWe(}_sOV5B3N#X(C)G9MduI&xX;pq)IFDHg=(NR~40kx2onOt!*WgI>PIcs24B!YO%CiW2uq8%6!l(D0XoqNwkn$Srw=Uo?u-57dAahet8W6Dw61%I1ra3PU`z zZq+rE9d^1hr9`nSTjv)|Mb}{ehj87TmDd6CZCu#9gKF=c~n~vcT6w!I36TKE;bhGoIE0##)8AFb?qCA-@w`P1O<|cZlVeVtY8<0%llq(s{ zVdDnTeRWF1GDNA|U_PfDJ|hIxuLRpdA91-c(-`a!iNhaqP8HFtEP64^&YVc)-IFjp z0k@=HUGUnvuVEB@3$Kk==He1QGxtqkGpb=kV{IzuqgyBM{qE)o^} z9_aO6#jk%Ddc7m@>mP?+?>nIHH&4}BTu6NjKfR9k+rJFGUakA}Z$PitY`WP zetjGCdVTHJ_d~B&(SH4A==ECJujdyqy(0GO+2(rP>(@UDy@*&DC*8xDC=K&T>?8)Tj8+4y?Sx?FRYlxYc77+{*>*XNdGoM=3W5@C^*46sbX?;-m z>tS^$^#+2l9&7_$k2R3B4@C8kIB@?bpF)dUCfRMkE+Rq)xwPGT!TtHZ)q_<$bj+7} zo$oMY?E_I25RadG^`*rW6#jT&3_xs8#$&a0JokVcobAZ#4Xo?Gz(lzikH5Ww+U_6b zdxtS%=GxHifY@pM_hIM1boq`zNm)O))36I^0=+K6Bar>|XhJ;O+;PwQ6dhG;(6j1e(I9q1o z3aC1T?pMB;`Zs0fwddO>@lJ3(hs{L&t_Ih07x_kTJ!g?8!1Y{3&JWIdjv_CB>$!=1 zH@KdY$oGNkxrqEBa6Jc+KMJnr9`a-0dd?w#0bI{D~EgL@0`RFllagiK0JxF*ddWnc{Z;%9{&+ zu0$(Ve&ADVXlUhr{MK7muDP*(h2H((%#8!TIfIw?T99RJ4@s}ku~G$_a+d+Ue{Zap z-+D*t3&LeSsJ8Gg(5dEUXq`wqe^hVBJ=N9%hUMk<#L}KeWR*2{>&Z&H4N$Iap9g{s-ms^1=E$$)zuB=``GU8%Jfd8vX)akvRrJ?(W`m+@b3R6FAp-6e_ziMmBX?s zop#cEsA!>5u84lP2|okFDd%q!9rLj8qr#61e@gfd$T121M)bcGeGU3MV9vyx45a=>LHA=k_~XLALOb}s zB>bns-E&Xa)nZCwdLNK+t`dH`@OuT12%Zvjzf!}#24f-pIt14X76d;b=zf&G)LUz? zzTXl3{|KHZVzFr9bdy+3d^_eB;R^)Yh?twN624OKdSV+ss|k+@CW)6R^|!+J2;NV; zT&Yh9KP-5Zh{fn};ZF%ZOT=GRoDu#b!B>b_GyYEaTY_v81C!q@;zF#K1tY{Rd}$WG zOz;|FH$D~$zfJH?Vh`4R!bb$}A!1?hknm3m9wIJL>Py0(5IjNb#piwD{~`Dy@d~AW zE&O%C-xIG?DuR=BmcL!Fmk9ff!fzA2leiRr_$2(K;B!PQvJp-hSY(BXxSo)&yb@T}nL zf;={+J?D9%`*9Z7CVZvfR>71Y=Uv*53UXd0=X^>$CCD$2;x@ry!Mgws?!I@3`>&!uEBfCF{!#Q7hrIm1F8CY~<$6W< zYl6QMeG}ecmUn^RWklFtCw!CO?V=wM{-EFi(SJ_(alx;P{w3k(1YZ+<9ro|ccfQ~P zBJ%AQ{vN?iqR$JzPw+v}9~J&Dg2zSwL*YLcJSX}P#v +#include + +/* we use this so that we can do without the ctype library */ +#define is_digit(c) ((c) >= '0' && (c) <= '9') + +static int skip_atoi(const char **s) +{ + int i=0; + + while (is_digit(**s)) + i = i*10 + *((*s)++) - '0'; + return i; +} + +#define ZEROPAD 1 /* pad with zero */ +#define SIGN 2 /* unsigned/signed long */ +#define PLUS 4 /* show plus */ +#define SPACE 8 /* space if plus */ +#define LEFT 16 /* left justified */ +#define SPECIAL 32 /* 0x */ +#define SMALL 64 /* use 'abcdef' instead of 'ABCDEF' */ + +#define do_div(n,base) ({ \ +int __res; \ +__asm__("divl %4":"=a" (n),"=d" (__res):"0" (n),"1" (0),"r" (base)); \ +__res; }) + +static char * number(char * str, int num, int base, int size, int precision + ,int type) +{ + char c,sign,tmp[36]; + const char *digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + int i; + + if (type&SMALL) digits="0123456789abcdefghijklmnopqrstuvwxyz"; + if (type&LEFT) type &= ~ZEROPAD; + if (base<2 || base>36) + return 0; + c = (type & ZEROPAD) ? '0' : ' ' ; + if (type&SIGN && num<0) { + sign='-'; + num = -num; + } else + sign=(type&PLUS) ? '+' : ((type&SPACE) ? ' ' : 0); + if (sign) size--; + if (type&SPECIAL) + if (base==16) size -= 2; + else if (base==8) size--; + i=0; + if (num==0) + tmp[i++]='0'; + else while (num!=0) + tmp[i++]=digits[do_div(num,base)]; + if (i>precision) precision=i; + size -= precision; + if (!(type&(ZEROPAD+LEFT))) + while(size-->0) + *str++ = ' '; + if (sign) + *str++ = sign; + if (type&SPECIAL) + if (base==8) + *str++ = '0'; + else if (base==16) { + *str++ = '0'; + *str++ = digits[33]; + } + if (!(type&LEFT)) + while(size-->0) + *str++ = c; + while(i0) + *str++ = tmp[i]; + while(size-->0) + *str++ = ' '; + return str; +} + +int vsprintf(char *buf, const char *fmt, va_list args) +{ + int len; + int i; + char * str; + char *s; + int *ip; + + int flags; /* flags to number() */ + + int field_width; /* width of output field */ + int precision; /* min. # of digits for integers; max + number of chars for from string */ + int qualifier; /* 'h', 'l', or 'L' for integer fields */ + + for (str=buf ; *fmt ; ++fmt) { + if (*fmt != '%') { + *str++ = *fmt; + continue; + } + + /* process flags */ + flags = 0; + repeat: + ++fmt; /* this also skips first '%' */ + switch (*fmt) { + case '-': flags |= LEFT; goto repeat; + case '+': flags |= PLUS; goto repeat; + case ' ': flags |= SPACE; goto repeat; + case '#': flags |= SPECIAL; goto repeat; + case '0': flags |= ZEROPAD; goto repeat; + } + + /* get field width */ + field_width = -1; + if (is_digit(*fmt)) + field_width = skip_atoi(&fmt); + else if (*fmt == '*') { + /* it's the next argument */ + field_width = va_arg(args, int); + if (field_width < 0) { + field_width = -field_width; + flags |= LEFT; + } + } + + /* get the precision */ + precision = -1; + if (*fmt == '.') { + ++fmt; + if (is_digit(*fmt)) + precision = skip_atoi(&fmt); + else if (*fmt == '*') { + /* it's the next argument */ + precision = va_arg(args, int); + } + if (precision < 0) + precision = 0; + } + + /* get the conversion qualifier */ + qualifier = -1; + if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L') { + qualifier = *fmt; + ++fmt; + } + + switch (*fmt) { + case 'c': + if (!(flags & LEFT)) + while (--field_width > 0) + *str++ = ' '; + *str++ = (unsigned char) va_arg(args, int); + while (--field_width > 0) + *str++ = ' '; + break; + + case 's': + s = va_arg(args, char *); + len = strlen(s); + if (precision < 0) + precision = len; + else if (len > precision) + len = precision; + + if (!(flags & LEFT)) + while (len < field_width--) + *str++ = ' '; + for (i = 0; i < len; ++i) + *str++ = *s++; + while (len < field_width--) + *str++ = ' '; + break; + + case 'o': + str = number(str, va_arg(args, unsigned long), 8, + field_width, precision, flags); + break; + + case 'p': + if (field_width == -1) { + field_width = 8; + flags |= ZEROPAD; + } + str = number(str, + (unsigned long) va_arg(args, void *), 16, + field_width, precision, flags); + break; + + case 'x': + flags |= SMALL; + case 'X': + str = number(str, va_arg(args, unsigned long), 16, + field_width, precision, flags); + break; + + case 'd': + case 'i': + flags |= SIGN; + case 'u': + str = number(str, va_arg(args, unsigned long), 10, + field_width, precision, flags); + break; + + case 'n': + ip = va_arg(args, int *); + *ip = (str - buf); + break; + + default: + if (*fmt != '%') + *str++ = '%'; + if (*fmt) + *str++ = *fmt; + else + --fmt; + break; + } + } + *str = '\0'; + return str-buf; +} diff --git a/linux-0.11-lab/0/linux/kernel/vsprintf.o b/linux-0.11-lab/0/linux/kernel/vsprintf.o new file mode 100644 index 0000000000000000000000000000000000000000..5acfe6576413e77d5a31e400e048fdd1e4ad4bf8 GIT binary patch literal 6156 zcmbVQdu&_P89(>>#<`7C$9d4DD+32y)|S{wS_3YG)@@yyHXa0;LLh4QgH?oSOxhoX^$-3)fTpl^_ThLI~&egP$N_3+l`+fJE zo7`k*t9GP&e&6?STX&U;*vlc%u!oDGfUEKgu@P=ZU?3s9R8%Z z(iUSP>QfOXD7`yYWx7InX=*`C?feo~OJ`1Qj5FcR)5hg4(0ft8$fZXVbLS+mKUZtD z5J!0BB8ZZp7?ucxH8fPjky^k>TC8CKO|6! zzavnKZxeWnZxTqw*Jx+Yp>ZcT7dHxO<8ajk9FHo#i^s0b%^^^zxK50%)4fK-mr}r{ z#>3ZW3=0xshn8V8hsZOX&!Ek3K&S0t&-bfC)$vfl;@9Uxd6t9 zQc9~4rWvhFP*Hsar%)s$OY3S+#VlQian)P#^cWppW#n12d{ApPW@zuMGMCd@4s2wc zK|bZ-zgX#6qgbqz@mFOW>-Ar(F2xYZG8IJ(BVc$G1xFF6;88wPnne_But;Y(N;`4> z&_y8;Io2(WhM^GOks;Vbhd)83T4?7KZ^Do*-SEUNX*B8!(-xb94n|wZ;xOOEmL@;H zi(OuN4wv=(G>nVNIK%v#aSCeaXaGIH5U?E4RTa@O6WTbDQA~8=U*<$3mv)mIY@s=Q zIrKuLXKv8zcTMjJyX*Cq>#M?7`2Y8H;h!SSlfsvL{l3bUqkAsEkJ%5&^5ZS46C{P$h3BYO%8MOk|-{t;TF^)ah#|yQIo)}Nxbv>i#w}a7MYi9!qh;r=*66qHf1vHbhjzE`dH9izM<2s% z*n(cHC!R?5_NCI_?#~QlbA$Wx1x??7;NYPrN$)NPV^Q&JveA~zj*Vh`txaz`=)0VF zrC#Tg!tFTp6}n#~dkcEUOBnkIkLCXz*b{Boe5?l@!BNE!nj$@pUivM%Pl-qCDCH=> z4wRKf^bX}t^or!XpFlAcN@}pfrKO6a~>;J7!XtjRRuoLcrL8&_U- z+QxaxD2B9_Yu1#;nRGizDm6>Am-|SRqVzFN?=4MZHa!$ao{YMxDTf3% z>T;1=sh4vdF0)#FoNIUOrm-~V+B`Q=8U?2VLWe@a$_SCw5=CKBrL@{z?Q*zRxhthA zr{`-3wt_j_cf0O!?LidgM{#1+1|a%VMJg=>Gfb)^JtX9;tt+*Gb* ztTecYRfP-Oq|0t&G^Dff zjGjm`w!bi#$64qN#L1|jC1Ux$K#G1RU_H}WL8Dk^EJu~pdZYnoQIhK`0kZQo=Nqk# z%8uv=37sdMhQLQn)SUVh7oeASp>qVNbGCA+Q-3tYDUzN!x$MXnQ?l*Q#{1WowKw0)YK6n zS8HG_Qw?PG8Pm@$=L=Rco$}V2PTlDIKn~u}`52fk>Y8R}o2EXRQk(pfj;DvcrqOYy z;~M)=e_d9vj(WC`?#m_&?Xa3Jlj$PcqMFl=Y^QnMC)2bV5t9o>(Et zv_pf*`PGJ5H`Z6n^|N>?mS_9)SSAgVJlk>q9`819Fc1m^z5an%KAyTay&-fb=y)dK z_4j%Gy}5z3=I_nN29o~49CAqJAxvj8>1@*9t7qd{I+ra#l+F1IS}fl0AI#^pWL(ST z+5T8}CSB0jU_Kd77oazv5%ymq-Ivx1NdL(sYe?k=k_}lsp*7?R{%rC<1KjHe{f&X9 zCVwW@)6mET4gJY{Hko0C{`6pXOv|NNJ~^0-X$;$#yE5m^c5K^rw|C8+9zCn+e0Kiz zy2&*SH3b8W!L?jUhoFW!H0jBQm~>c`R+THtQ5*;_WOVAN(d&V2ajS;B&0Q<+ajRQS zyXhQy@r3bMuMbP7#nCTYO1L3d0*`eEvu*CZj-!fc&jN)*16r&Hh~+UcWl{NLCZHt` zYAle5X)zY)DHK?Mg!vp75S>W&=zZPkY;O)~CLQbP$tU-7O(Dt0vVGV!rZE@M;#mfW z#{%)(z(5lFE0D$71+XjlT5_9Ys@q(DOyWA*&Co*$8E!$d(a#I}ZAD|$=xw&lq5G$sbM0@)zY|^t@fhx9?{b1GHj2 zVWVmIk9f&=i4e`wqmRu+aq+_RKt^%tv)YQg542?il6?t(f3OKGasXp?f0yBp>Q4UX z&m_wqeT|Wg`O*fS$Ct|n%ZV5x_NbsOJy!)|>mail>CiJN(30N)J$tiU{~SW1ttALS z@32jg@}u@sJob59!93`^(mX2hSo0v-+EXCeEAaPAB1E&|+GEnt`*{0%A;h*Z>rMWs z?iADR?+OC?A+wt0&*Ck#%N6#IIZIBs_}@O_?GcDq%(Wq1y02ujLd5arz>cQvXx(N1 zIllPNITlrp{L@ZaXpZ@4T;^c-2(vYZS&0RK!>qWSuVCK*Yu%ew$oIB|VQy{vo>_P& zh!>+ZMxQqH9g7ynBjHk_4@$yYQ6j<~EDYf%KpBhOM&sB#?E*Ulb_v`oFd;A{Fe7kK zpeFF3K-z=k_bGu#1e*IF@?(NOF7R1_KN5IC;0pp@6!;5)Ck37o_=><+1->D0THqOh zZwq`+;5mWs3p_9IV}UaQKNWaU;AMe-7kEYBRe{$8($=FoC<0Z1{=75sy3THX+|AFf4Gpzy}DS|BT>&EO@gX@b`NmpAq;sfo7f< z_fdYpO(M@7f=>&~3Op#re tmp_make + (for i in *.c;do echo -n `echo $$i | sed 's,\.c,\.s,'`" "; \ + $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +_exit.s _exit.o : _exit.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +close.s close.o : close.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +ctype.s ctype.o : ctype.c ../include/ctype.h +dup.s dup.o : dup.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +errno.s errno.o : errno.c +execve.s execve.o : execve.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +malloc.s malloc.o : malloc.c ../include/linux/kernel.h ../include/linux/mm.h \ + ../include/asm/system.h +open.s open.o : open.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h ../include/stdarg.h +setsid.s setsid.o : setsid.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h +string.s string.o : string.c ../include/string.h +wait.s wait.o : wait.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h ../include/sys/wait.h +write.s write.o : write.c ../include/unistd.h ../include/sys/stat.h \ + ../include/sys/types.h ../include/sys/times.h ../include/sys/utsname.h \ + ../include/utime.h diff --git a/linux-0.11-lab/0/linux/lib/_exit.c b/linux-0.11-lab/0/linux/lib/_exit.c new file mode 100644 index 0000000..c0c9d69 --- /dev/null +++ b/linux-0.11-lab/0/linux/lib/_exit.c @@ -0,0 +1,13 @@ +/* + * linux/lib/_exit.c + * + * (C) 1991 Linus Torvalds + */ + +#define __LIBRARY__ +#include + +volatile void _exit(int exit_code) +{ + __asm__("int $0x80"::"a" (__NR_exit),"b" (exit_code)); +} diff --git a/linux-0.11-lab/0/linux/lib/_exit.o b/linux-0.11-lab/0/linux/lib/_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..04229e90d130407cf5356bdac84c753b533235f4 GIT binary patch literal 1992 zcma)7&u<$=6n^8i6BDOylYnRxgf>!919aC8HK-H{g%ko5MWRq~s8F=FC-#bXH|(xy zS|NUj3y4z>hzkduN(oKlttQ8~1Zabz`rqA-Gz>6dHxVy`)-w zeh#QsZ~O}8)f;hANUb)%Mx|>0WNh;{j5PND z#>g0MH$<*{;%6~x@;GLt{%)VZY#N7VDB0DAaS;yahQKC@x1iR4sny_Sj51B~c$Da& z&z(E}e4J*5f6UYwrxV>tro*C>=0T!wcJ||BdKh%W&COsx>UX-O0&`#T__i)?9cbC! zx$bZIz3@WV^Mgs04aS$^^B11;gOMNXrIWY__OfWAgM$?5bp~aeAg&Jfrpcg)(e$sgLJ6H=w*9r>!QDLy+2KgX<0?^%+yGm zpKkWTZtuxb%l16X38Zdc6ZJ_`tu5B;U!jZc8_;I@{z|*~Wo_qvn@1tcZ%vA*4_;&? zA3Id&!$QJgR74W?^IXDA?}tO(pN@9pWG{uu;Hclv^v6|eltsx%A6vkdxCMwW;UJw% zG(K3Epd%r=Tz04oqsP0ZtE~9{5sy1>5AOnr_o{lvXd|s-5Zmh~SE#Iz^E(S2j`)B2 zb>ZXIFbw0}B(UUc=O91il;GWYkwfq$41NX<=6eyttpSuDG2S7tbH$6{*>`3C+GKt^>e0=$_K@Xv)aG4e$HF~ly7Y5%KAumFsl3bxv~$uaaRP&R*>~ow#`BT)By^5kJSRI|)z{^(f1IBD z_@9MxwGztJjFep$$|&CK);JkORmeNmDXwo-tdzOKBl3hDJR(mPXA#(gWp>Lw)a4s) zDp2UzBJ2uHV&BOhu^hh@QP|cxIS$;0)psnvWcd}#uUdZ1^7k$0`DL83mHA$%M)_^1 Mf7;r8aQtKBUyA6>L;wH) literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/lib/close.c b/linux-0.11-lab/0/linux/lib/close.c new file mode 100644 index 0000000..afd8364 --- /dev/null +++ b/linux-0.11-lab/0/linux/lib/close.c @@ -0,0 +1,10 @@ +/* + * linux/lib/close.c + * + * (C) 1991 Linus Torvalds + */ + +#define __LIBRARY__ +#include + +_syscall1(int,close,int,fd) diff --git a/linux-0.11-lab/0/linux/lib/close.o b/linux-0.11-lab/0/linux/lib/close.o new file mode 100644 index 0000000000000000000000000000000000000000..a80ba5284931b40ab6a906bea4c618b8b4d73713 GIT binary patch literal 2224 zcma)7&2Jk;6o0e3{%D*UCn=C9NGwt+Qef8!H4v4Sexy(pP!EL)B#@%Dy|!1ichmi# zX%(PSghUk%R0u^#9FTh9PpCLmDi;p)QVF=hfg2nO95`?&zc)J*Z%**!c^|*`=DnFW zp4ksye*G081Zfgv(%2&U#mqe|DHiDfP0<@$zc+4`0c^jyFnj&p_t&nUUYOk4T$rSd z@;21p8qELx=_b#)^#HW>ZR4FgpTV*iB1^Qv#a*x_+n^V6L55Xf&9F-QAxx_jgee(D z@iRp6VQFs=pR(lB$R-n`>D!JnLoLN6od$IQ9+}RlpJ~6vm5 z^@%#eDDmA6&&a|cNxSYKKfRK{n7L29idKqp6+N_!-k(MZnX)hm`k~*oxwXS6>`O(a zqGS-osl6wnIfzDnGt9baGfJG$zuX)KVYcBcxy#GW&}%oBasa$dejJApojG^GUbS29 zirccCkr#Ic$AZHv&)ZJlc6!k$NS$8njeKW4!V>%#U=Sjy@AR^;lLk?k016`~NxjZR zXFZNmzmrBWt*ym=f}N`McLrX(+kzyx>Ze!MeUd1hSzSG1FJ5S8VVdPDah}bjwfw_u=%-D|gF|GlEui@mUqofal=d-Md< zAh#2ZMm`SE4bdGJ9nZU!&+!Lqvcvh>{||p0L45D|S~Kx|Fa9C*n=lW29|tI^;$q-O z(-<7X7o6>b%2v+@U4&gEo$qOY9RFW&ydFJ=^KiZ$RupO9671so8c2Q(7_YB{q1Sf; zx}F0SZwsyvD~h!5JZ!DA>oN?R6-C;24tBBbr>NTi#&vmrx-Ks5o_sqkq8ozDYM z%=ZAJ<5(udE*eJFT?iN6?} zkNeIwi}~&&?qOh>bUtlsS;Q^+fMK29xBsZ5J@*iSC-1 z&nG)3lP1RoG?VZ_Dv(Ls!7-WWfbKQl-D#XqF@pQD`(Ebneg0kpK7=8Vp6|Z^`#=G^>I;ot?WOg Jqz!4n{ulF`_R9bO literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/lib/ctype.c b/linux-0.11-lab/0/linux/lib/ctype.c new file mode 100644 index 0000000..877e629 --- /dev/null +++ b/linux-0.11-lab/0/linux/lib/ctype.c @@ -0,0 +1,35 @@ +/* + * linux/lib/ctype.c + * + * (C) 1991 Linus Torvalds + */ + +#include + +char _ctmp; +unsigned char _ctype[] = {0x00, /* EOF */ +_C,_C,_C,_C,_C,_C,_C,_C, /* 0-7 */ +_C,_C|_S,_C|_S,_C|_S,_C|_S,_C|_S,_C,_C, /* 8-15 */ +_C,_C,_C,_C,_C,_C,_C,_C, /* 16-23 */ +_C,_C,_C,_C,_C,_C,_C,_C, /* 24-31 */ +_S|_SP,_P,_P,_P,_P,_P,_P,_P, /* 32-39 */ +_P,_P,_P,_P,_P,_P,_P,_P, /* 40-47 */ +_D,_D,_D,_D,_D,_D,_D,_D, /* 48-55 */ +_D,_D,_P,_P,_P,_P,_P,_P, /* 56-63 */ +_P,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U, /* 64-71 */ +_U,_U,_U,_U,_U,_U,_U,_U, /* 72-79 */ +_U,_U,_U,_U,_U,_U,_U,_U, /* 80-87 */ +_U,_U,_U,_P,_P,_P,_P,_P, /* 88-95 */ +_P,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L, /* 96-103 */ +_L,_L,_L,_L,_L,_L,_L,_L, /* 104-111 */ +_L,_L,_L,_L,_L,_L,_L,_L, /* 112-119 */ +_L,_L,_L,_P,_P,_P,_P,_C, /* 120-127 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 128-143 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 144-159 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 160-175 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 176-191 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 192-207 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 208-223 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 224-239 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; /* 240-255 */ + diff --git a/linux-0.11-lab/0/linux/lib/ctype.o b/linux-0.11-lab/0/linux/lib/ctype.o new file mode 100644 index 0000000000000000000000000000000000000000..acd65e6a3869dcf4ecb16245dcd9f21e6856c20c GIT binary patch literal 1908 zcmcgtOK;Oa5Z;Yl`bZlRr97$%luE4#2s;S`RJF8FBB+9@9*}xLf?_*PViDVs<3Ni9 z`~q(L0B%U!xbSDVaN!4lxFJ-&+4Ux_=z$X>&CcuFnf2_$Z|?2f=bSS|oM~)qG4@WA zk-89NmS=McD&>@-GLbUI@_qg|=_5+~TY|8Lzeob^3d)>76rVc2n*VRvD5;CGI)4bs z*HdfA+<;+%H5$-ZU7u_~(fO1CG4YX{GZ#n|eV*7M$MlntL+7VH!C<_=S8~OymRro_ z&oP$ayjkQ$?>nnU-72u4kLY+Y6cVm^}~9P?}_=LdCEQ&ajIZ zIscWL!zfMy_MbB+KJ2@uBcPRT=)09**orIRzzEzIm7W(24~(i=s~J7Zu2iK1qs@lF z!0QBVtK@X8Xq0B)y>uxf+jnBW&$f5>N{v$8Ts7+@!?z-*yWw45y;(9kC8HhsUTm}@ z%Xf`_=moJG!RZC4=^E`};KW`S4B!evV-Q=;Gov4cvFpTPMA@l`D9yGTjkQvF&mIQx zP}VZ84TV*EU8|eb`eo_G77Y&l*s>wxNXo9#V)r0sX3L5#X4-=RGb6WWwp@GI+4q8W zh>*}N+m77l>8KT1LC3`e382+09l4q5gud?v$Q@wuCK@6?Ml}52hDF*q@TmkY@9220 zy2nciF1gC=4%sRQy#yw@1g86>a9b%1#g$o2>EtI|o0NnU?kenQ<%FD_Wb7#<&Zszu zbZw~KEwGvcm3@G*NlHR0whLS76#52(j<+HedjLneZVz>-4%LM!YLopKtmZ&vzhRU~ zNl3*!*rd~U6RqGbeU_>iDMlP8QsKS;cSRuNpm47eoC?XiudMN!3UH~tpeW(qj$xy< zQ(k$!WpEw`;w#kC;8`&BIS;0ur1Sj*?ks$YD9=fh_Ur8XQ5tjnZ$bIfD + +_syscall1(int,dup,int,fd) diff --git a/linux-0.11-lab/0/linux/lib/dup.o b/linux-0.11-lab/0/linux/lib/dup.o new file mode 100644 index 0000000000000000000000000000000000000000..db9a7a81905d536743a71bac0ad2fb102e9303dc GIT binary patch literal 2200 zcma)7&2Jl35TCcZ{%D*UCjpTtNEj)F1lYAhEr<%GDJfJ1)I&>=fJ3yl*Y>LRZn_`T zt-^;CA+-tzDuf~=Zv6{5(R<;*pJngp3NK}0{9nWZJ!GCfQ)bbjZL+N~8RcHdf>zy9N$kFTFvn%>!7nx=7a z7vk?Vp6~r~lh@pO0NVMs_TKH!fh<;$CEmd-4r6+fG3bSikztisGOWUPV5U{@gM6QKj-SRH#6SWn^;1i3PKKtny;zsf9Ch?7Tj|_sW7mZG{45 zmNRq4JW;VlW|bW?Sen2S3ok7o_hXzNLwAHFE?v{x5Den_g!rd=7_&ShoQ!ash97i> zY1bpd-klDwNdrGly3QawyMhdD9ulvkk)l{e2Q8!bmr+2RG>H9v;C1WV*lc|~2&1Ha zz|a_kBd-yp-J}u5cHmuZ4E-P-+f8S6)gHR-Ml(}jZj%>9K}e_1UZ`)>Th5x(s@o$s z>I{ziN7tUO+x@!T3rBup_ab-X*;^qpdl8g=fS{h;OM_10hd~Tg5ZZC#b}rgmQJ8q0 zB#dZtGxB0=P?g;oxDgG*pf5KN`&Yf>%9ck`O{X_Dj@6ehw9_C-vr_EmQi)bSTx~hc z)=H)&e8(AytLI2;m&M|=WnDvi`Cxc3$pblAE$gPcw{ z8hJQ2CqQ!?G(2low#FN5$_8h(|DXABIPqOCDrdgq`HxV)1B=ifQa;S?3GjT$^QT4$Mxtn9EaoWv7kuXn!x$`IQSSkuCIWh>syDc*FeO3 zf{Vj~B5gYdtYtP`2B@>3NZZZ==ktz{w+0>O<^AcrxTpu>?IFOs&}q`~TqyGKt|17= z;doORI^HG7yoUG9bQj>)Oq4U*cx)@K{qEpdcv^a7llJ>W`DxR=>}Aq$zxFScpEloz zu(t1&)yMD)jQl=6%kASK*z`VTAnR`cA~gYSvY?3TV`8pzGX5JM?4RIxcZvTY9FP0X zIrH&;!*|L#H0gL6Yo6CzboYVQGe7t@WSq~yn6ppFlwVvP%m3NF!jvbv53!z4c0wji zPXHv7@Ds|BN!-B+ndpGdz;|~R-KtE?vM=hH=O1PERKvc4ArPAHzQDv;1scfxV*ZHY z{Ie2h{u9h`j>}5lQ2e;!rxbrfae0Rj$7PK5A1M8&ip#vXoP2IiZUFxaTkQ2g literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/lib/errno.c b/linux-0.11-lab/0/linux/lib/errno.c new file mode 100644 index 0000000..50aca2e --- /dev/null +++ b/linux-0.11-lab/0/linux/lib/errno.c @@ -0,0 +1,7 @@ +/* + * linux/lib/errno.c + * + * (C) 1991 Linus Torvalds + */ + +int errno; diff --git a/linux-0.11-lab/0/linux/lib/errno.o b/linux-0.11-lab/0/linux/lib/errno.o new file mode 100644 index 0000000000000000000000000000000000000000..2b68237de5d516e34b24195231b0aca298879d71 GIT binary patch literal 1472 zcma)6OK;Oa5T1=w3Ydmg1wmB_8L5aA;Z4#;RaIVx3Mvrltw)6HWYZdIyK>f04m|FN zQzg#)0?zylPW%tJawy;IdK)8wV5HfZ`R3c5eT@C~{^JKi2y!CGqe(;*G;F4COq*tD zhF0J=P23c#u;RT5?9d1qnU)x*JchjHRFY|6bK+WS-uGIIt=UUNjXrs;4gZ$^aQ@yx z<1%g4zI(q1Z~h2j6(cu&0sWJ$A$%|qR4VNU>bGy@>F%Qa;Q7` zILy?`&VG`WhhbOtdf|Q)ce)n97~6@owY?K;27S3M`$3pS#bEDFvbw$&gu6jF%F{%L zqasRGc#z{XssNZ|SX70hG8^b5&&GhVJRIw2@H{*ya;*kBFDBdC+T7d-+BC)B- zS4tE0-t_vi+h4XQksQBDbri$u!rDFOX?3Vc4kI0rjK^b=h1!=x6_>kDlWdeDW&9|P z3-zL&jfyDSRhVE2ymRMcZIXjLO%oAA%n@OM*0>xf%W?lD%bcN^;Fz@=wUp6kTr zwgEVwb048-;uCSXM?mUzzo0JH;kwgMSN92gHwP|#hPK(M#N`si?DM%dHD^0`P{Vn9=cGS3H+G;zUhcI0wwV1*e(!;SW6KSHBFC{e%O4g?Ao$4$9}9h4P)$ z*E_(yFvp3j>tbi?c$2;#JDlzBe=d&eJK?xqkz?M?M7)#kwU}pKsGhICB+oxPNy78Y z2`7+8zBwmXVV$EN$0z>-^SiR&i@-<2cO$So-!t2bm0e(qhB5y<;QWRHWd6 + +_syscall3(int,execve,const char *,file,char **,argv,char **,envp) diff --git a/linux-0.11-lab/0/linux/lib/execve.o b/linux-0.11-lab/0/linux/lib/execve.o new file mode 100644 index 0000000000000000000000000000000000000000..250d3960bb4f0002c32cd56d11ed8f4363a47a21 GIT binary patch literal 2340 zcma)7OKclO82)E>{Yad;c_9)d5=L?%Ja(NBtBOkc!i5s3id3i&qE%SiV|#_Y8`kSI zt)hYyA%ViB2Sh;}kSZijy>KZvP!SIyPF#BJg$qbLB*cM3`Tp6RcyoeZp8x%te|E-i zK7HmHAp~g)li3v7PPm z7;R;D!TvJN`0qP6IP%s#z|Pm>uipL^Qk>Hg&w>|mW_BVv8WS?C+&5qiEAummX=OY= zBE!gi&PtL0RM~QOl$8Am#Ik|J=rS+^=Mf)&2Auf>NQ^RTT%*igC8;#mtV}H><+Hyj z>2c*5QO>#vF8=~h&iX=O=0`ZS@x3Y}Cd8rQRKYCH6(_`GcKm)=%2X&Eg9=?IY#!Y? z;`pptJW_bF@bK)~6g!`o`QWKpF@***6kFD&j2WVAb)T3!h1HkIEamK=NDxTly4w{lkZpp@`bQ&Bo@V$Q2bUN{e zkWtyq5%C<(LuB*cff%hnjSNy%IzdlX{6RCS1by3=mnvP)A8gr+&eD?Ib?cSISOHv5 zN(?K>F!TeG{^kaqK6}1YD^;Bpr&_XmZrJD?^_Eu-m+W@QZUsFrvRk3sllDe{4?%`d zdOj*iyEX6|kr()VsQke0M{eVFdm{`Y*@%LWT3%OTJAJS1%Vw$3aYO2Nf-oxW>G;Fi zC&W(P6&YRLkmQE#P3i`IyTp#`>!Iuuovzi6lorm{2Yxh&o3@`AC~4{HQq@_kJ`!tr zmeY&?;>tM^+j%iJW?AoG_V~f0#x7C;JV_mZ8ss#BUQc4b zj*me)IGlK}ag6M&tHX$U|3CNvIPsg3O`Q40r$14)G0b6&C@w}#Tpj#q5{rHK*wJ$v!~Xx}$NlISPQv+qU?u@=TZEkMuZ!f@q2vBCSh~Lx;B^dGT7~d7 zGYM$hImnu4(^n8m%p{;~XCbHSS`fye*T^HAQU%tCYa1lBUI-d(gI^Q$|&cpde zv2;G31IO^b8IIv4_$y`=W*e{VglfNK4E#~$5hLx#GhklBMSU=dLfbxs%zXT;5xoY# z6&(c1{V}|cmEOmEY99w-)BBhJpDuMB!VTy&=(_2eY`c&n`W+PSE*-$)d^~rqna+0x z!^7LZ2Rh%LB4N^ci~hKmw(tMf<^1UiEbCpzQKtIhh8avkvnepui4GN}I@z>5HWa{_ zgukp5n8Xttf{6+6x52=7cM>PWbJf6eNj>fA--O~9o+>a2r04rDfVi^25ILUdeF^2i zGl4^YkSS)mkmyxB{J1XrpGxTS303z9`j->gWr{o-iF`Go??}6iL K2`zydkpBhBxe2NO literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/lib/lib.a b/linux-0.11-lab/0/linux/lib/lib.a new file mode 100644 index 0000000000000000000000000000000000000000..0944ab9b445a35144a211b8b311d1288299547ba GIT binary patch literal 34170 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 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/lib/malloc.c b/linux-0.11-lab/0/linux/lib/malloc.c new file mode 100644 index 0000000..d7c95d5 --- /dev/null +++ b/linux-0.11-lab/0/linux/lib/malloc.c @@ -0,0 +1,232 @@ +/* + * malloc.c --- a general purpose kernel memory allocator for Linux. + * + * Written by Theodore Ts'o (tytso@mit.edu), 11/29/91 + * + * This routine is written to be as fast as possible, so that it + * can be called from the interrupt level. + * + * Limitations: maximum size of memory we can allocate using this routine + * is 4k, the size of a page in Linux. + * + * The general game plan is that each page (called a bucket) will only hold + * objects of a given size. When all of the object on a page are released, + * the page can be returned to the general free pool. When malloc() is + * called, it looks for the smallest bucket size which will fulfill its + * request, and allocate a piece of memory from that bucket pool. + * + * Each bucket has as its control block a bucket descriptor which keeps + * track of how many objects are in use on that page, and the free list + * for that page. Like the buckets themselves, bucket descriptors are + * stored on pages requested from get_free_page(). However, unlike buckets, + * pages devoted to bucket descriptor pages are never released back to the + * system. Fortunately, a system should probably only need 1 or 2 bucket + * descriptor pages, since a page can hold 256 bucket descriptors (which + * corresponds to 1 megabyte worth of bucket pages.) If the kernel is using + * that much allocated memory, it's probably doing something wrong. :-) + * + * Note: malloc() and free() both call get_free_page() and free_page() + * in sections of code where interrupts are turned off, to allow + * malloc() and free() to be safely called from an interrupt routine. + * (We will probably need this functionality when networking code, + * particularily things like NFS, is added to Linux.) However, this + * presumes that get_free_page() and free_page() are interrupt-level + * safe, which they may not be once paging is added. If this is the + * case, we will need to modify malloc() to keep a few unused pages + * "pre-allocated" so that it can safely draw upon those pages if + * it is called from an interrupt routine. + * + * Another concern is that get_free_page() should not sleep; if it + * does, the code is carefully ordered so as to avoid any race + * conditions. The catch is that if malloc() is called re-entrantly, + * there is a chance that unecessary pages will be grabbed from the + * system. Except for the pages for the bucket descriptor page, the + * extra pages will eventually get released back to the system, though, + * so it isn't all that bad. + */ + +#include +#include +#include + +struct bucket_desc { /* 16 bytes */ + void *page; + struct bucket_desc *next; + void *freeptr; + unsigned short refcnt; + unsigned short bucket_size; +}; + +struct _bucket_dir { /* 8 bytes */ + int size; + struct bucket_desc *chain; +}; + +/* + * The following is the where we store a pointer to the first bucket + * descriptor for a given size. + * + * If it turns out that the Linux kernel allocates a lot of objects of a + * specific size, then we may want to add that specific size to this list, + * since that will allow the memory to be allocated more efficiently. + * However, since an entire page must be dedicated to each specific size + * on this list, some amount of temperance must be exercised here. + * + * Note that this list *must* be kept in order. + */ +struct _bucket_dir bucket_dir[] = { + { 16, (struct bucket_desc *) 0}, + { 32, (struct bucket_desc *) 0}, + { 64, (struct bucket_desc *) 0}, + { 128, (struct bucket_desc *) 0}, + { 256, (struct bucket_desc *) 0}, + { 512, (struct bucket_desc *) 0}, + { 1024, (struct bucket_desc *) 0}, + { 2048, (struct bucket_desc *) 0}, + { 4096, (struct bucket_desc *) 0}, + { 0, (struct bucket_desc *) 0}}; /* End of list marker */ + +/* + * This contains a linked list of free bucket descriptor blocks + */ +struct bucket_desc *free_bucket_desc = (struct bucket_desc *) 0; + +/* + * This routine initializes a bucket description page. + */ +static inline void init_bucket_desc() +{ + struct bucket_desc *bdesc, *first; + int i; + + first = bdesc = (struct bucket_desc *) get_free_page(); + if (!bdesc) + panic("Out of memory in init_bucket_desc()"); + for (i = PAGE_SIZE/sizeof(struct bucket_desc); i > 1; i--) { + bdesc->next = bdesc+1; + bdesc++; + } + /* + * This is done last, to avoid race conditions in case + * get_free_page() sleeps and this routine gets called again.... + */ + bdesc->next = free_bucket_desc; + free_bucket_desc = first; +} + +void *malloc(unsigned int len) +{ + struct _bucket_dir *bdir; + struct bucket_desc *bdesc; + void *retval; + + /* + * First we search the bucket_dir to find the right bucket change + * for this request. + */ + for (bdir = bucket_dir; bdir->size; bdir++) + if (bdir->size >= len) + break; + if (!bdir->size) { + printk("malloc called with impossibly large argument (%d)\n", + len); + panic("malloc: bad arg"); + } + /* + * Now we search for a bucket descriptor which has free space + */ + cli(); /* Avoid race conditions */ + for (bdesc = bdir->chain; bdesc; bdesc = bdesc->next) + if (bdesc->freeptr) + break; + /* + * If we didn't find a bucket with free space, then we'll + * allocate a new one. + */ + if (!bdesc) { + char *cp; + int i; + + if (!free_bucket_desc) + init_bucket_desc(); + bdesc = free_bucket_desc; + free_bucket_desc = bdesc->next; + bdesc->refcnt = 0; + bdesc->bucket_size = bdir->size; + bdesc->page = bdesc->freeptr = (void *) (cp = get_free_page()); + if (!cp) + panic("Out of memory in kernel malloc()"); + /* Set up the chain of free objects */ + for (i=PAGE_SIZE/bdir->size; i > 1; i--) { + *((char **) cp) = cp + bdir->size; + cp += bdir->size; + } + *((char **) cp) = 0; + bdesc->next = bdir->chain; /* OK, link it in! */ + bdir->chain = bdesc; + } + retval = (void *) bdesc->freeptr; + bdesc->freeptr = *((void **) retval); + bdesc->refcnt++; + sti(); /* OK, we're safe again */ + return(retval); +} + +/* + * Here is the free routine. If you know the size of the object that you + * are freeing, then free_s() will use that information to speed up the + * search for the bucket descriptor. + * + * We will #define a macro so that "free(x)" is becomes "free_s(x, 0)" + */ +void free_s(void *obj, int size) +{ + void *page; + struct _bucket_dir *bdir; + struct bucket_desc *bdesc, *prev; + + /* Calculate what page this object lives in */ + page = (void *) ((unsigned long) obj & 0xfffff000); + /* Now search the buckets looking for that page */ + for (bdir = bucket_dir; bdir->size; bdir++) { + prev = 0; + /* If size is zero then this conditional is always false */ + if (bdir->size < size) + continue; + for (bdesc = bdir->chain; bdesc; bdesc = bdesc->next) { + if (bdesc->page == page) + goto found; + prev = bdesc; + } + } + panic("Bad address passed to kernel free_s()"); +found: + cli(); /* To avoid race conditions */ + *((void **)obj) = bdesc->freeptr; + bdesc->freeptr = obj; + bdesc->refcnt--; + if (bdesc->refcnt == 0) { + /* + * We need to make sure that prev is still accurate. It + * may not be, if someone rudely interrupted us.... + */ + if ((prev && (prev->next != bdesc)) || + (!prev && (bdir->chain != bdesc))) + for (prev = bdir->chain; prev; prev = prev->next) + if (prev->next == bdesc) + break; + if (prev) + prev->next = bdesc->next; + else { + if (bdir->chain != bdesc) + panic("malloc bucket chains corrupted"); + bdir->chain = bdesc->next; + } + free_page((unsigned long) bdesc->page); + bdesc->next = free_bucket_desc; + free_bucket_desc = bdesc; + } + sti(); + return; +} + diff --git a/linux-0.11-lab/0/linux/lib/malloc.o b/linux-0.11-lab/0/linux/lib/malloc.o new file mode 100644 index 0000000000000000000000000000000000000000..83667757057ff0915c7c4ad6ae9f4d0c0160ea5d GIT binary patch literal 4880 zcma)AS!`Ta89sOBdNTId@?Fn#g3%ipE_#~_of1bL9E?Nob`ab!I zi+!(7T-}TyePri5q3N3vn|36JywH3rg7ig|=;VdqFN>4|Y6uD0$b_k=Ozh-m4gGIv zI%LD9cRm58cWNkl@`4|l?@)}?Ahli*ydk0WLLZY-Bqxr*atWsx2y&Iz zQ1g(^z4->@t0pdP##;1&99S)`$%Svb1UW~T9|qN>$66&9Xz+Mw{to(0$ucMAd%z^5 zsx45e1P1PsQe}d~6C!wxTZ1Ve4odw4tl?9LEbGU0OQ?zs$Z02#;(*FHF*VeDKiCAS z-K?TEkDk2Hdh$HH5xPtGEf9AhAMBq*z}?ygU-|`*FUMK ztQwMHeY;T9`P+36j^gt$ylB#2GF+vqk9thnNjbH}1CY=vxtnf0Gl3(3^_R`jIHd8* z8W#_1NDFL@QH>^mWin7}?XuCyX7W@C@xE~mx?b5WIx02> zLEA>-eBN_wHK&@X)i9V}akSy6=ei>`X{hs2NjkalOrczJauv@Ds=k{SJ(#+hwQa3M zSSyK3=UF}9VptKO1z?*sSO$bsFtF|*DZ*bMeP}EFgIxg~u_Au} z6Mq+-b?$9Q4&$><&7*IwWFLi44Io-&J8t<=Zfh zuznSU0PRfU2DBaQ8kyeDA?b9`Sr0OU2D#py6BO)cJS7lTyR|yr84Jf(#@nrqNZYL_ zL8ldt$6^~}n_^ZcR;)#Y<79SrZouN(ts(|!Anb%Xk_5380fbngNgT0g8Zqd^phJo0 zwskX9Cju zNweIX?UuE(lL>Y7h@GANm`>+XX7_Z{UhooUY0ViTWeyGLH}QqUZRjoQM!W^R{I!7S zmOl0A9PLml87BOOu!f?Y!K?_`p&53U+3iDTMRrAw%}qZTZrnUG+b0DNM^4W~x4zOd zcUJLdB42u8`jP3`nak1Z!OL`vZdvM2=^#gDF8}!K-1VLZ!cDuj{c`4s+5WlN{u5Gp zCQ_03a3mc2&dZ2<{T<2s=tIAV1aot9W~9TxTXVCoU7q`DPfy6kyhbZQIWKC3$6VpL zqd6SdEH6aCo2cr0!d#LCPu%yZhn(%sV0uG(&`FgtUT%C#;S(F~bW&qZYP3=+_^DAZ zQ*u+)3eLUjL0Bjk3uQMo8kBQ>p@RD>HCnEuYJMhnFje&`zMJzao*b(FG8X;gm6F?E z4)T6~rIsqYhx-vGIFcGjuUnTYX0rVQN`O9#bdehK_m5UN2mer}C~#eR;^s?UEDiz> zb<-|Rk5iU+tf-AwJl_e*wZd2#cQdarbroa9tC=y^xX6-KJ@=4UW;)r#jsR(Dn0prXBggk@H{;7>{|~kFP%76)3yw1cv>#(bDMt54>`qijVOamt&f}2U75-!=og0Gw}>>uwHJ9zw?*k zVq5;#Fyq&cK;Fz+xr9Z7Fy$*i6k1kU+M82p?76~AExfF9wCBn%wXkSeVnBsu1(rl% zS&4c+F3&k7!}!|a@iDDt=IzM;F3l5I$9r$$9{|s}@Luh}eD>U=e+0a_Td6;AlYZ&d zc;7oz_om8c$nboG#_$)36w0@znkg4@I+Cb*c#IC3mutyL?S&9F)`yXU)gZ)2fg$X_ z&ydIDG8(HyY@X+dusaJ3VMD#B`IpGU@1Nx1XJhWfE{*Ge9Ov`o;eUWU>>IIB8MjD; z{EI-!*J9g{9{`fyP5gimdniZTtVZq*-Z%J91Yu$6c}9r*KN4a$5ixs+*l1i!%GYb$ zs&SV_-ci(NHOjjK{NtMcipJ+O{!rr!M2z!_=6|j6ipGCveJkgWcpuWZR^#17_>XAb z( +#include + +int open(const char * filename, int flag, ...) +{ + register int res; + va_list arg; + + va_start(arg,flag); + __asm__("int $0x80" + :"=a" (res) + :"0" (__NR_open),"b" (filename),"c" (flag), + "d" (va_arg(arg,int))); + if (res>=0) + return res; + errno = -res; + return -1; +} diff --git a/linux-0.11-lab/0/linux/lib/open.o b/linux-0.11-lab/0/linux/lib/open.o new file mode 100644 index 0000000000000000000000000000000000000000..eb38332f48e0690a11dc41caa62a86db34a03b87 GIT binary patch literal 2368 zcma)7O>Epm6nw;(6kAZC{2)Bl^=nKyu03Ai(Na| z-jY`3H?7ntLbL}|A#teG3m2}aoTwByR4NFGOQc>nZ~(ypxNzW5zBl$H?g^ee?|Xmq zX6DU|=e_4nJuieHMS^tN)rjgw;;BfOq`fpmXV!lo{Ahk+-}-H1V}7E4^Atp&u?e>R zi?KO)D~IUK*C$55dw*l=^1U@!(iN( zX(0j9jQsZyH6!;cKsR!pACso#zht8*d@gJ#f#*5%RXe5dU897_%(!^MRWOmYuGSm?3Ev9ZMd#Mr_J zr)SO%Q54rv54*)DrR#f86B%oft{xAhLY-?Q+}myKB~zJw0u;ooab1F@RU8;k8}g>9}fC zHw^uNPA;D{=gf*dV^>V8%Dqo~?HMxSPz_I?$Ec^t;m)d#dteVnsRka!o?jTsY$+*p+ji`(#bno= z*deObz7wD-k7UAGeDss<>BB@TX)%!c^SlG)}obR2!2TIF9L4G?wK*2Y3l_M}UfW zeoUXBW!Ev2S;rpu)H;SBXNS5C@>V^al_>Um8H;d|Y=PGn+3)@i<12 z%BOUNS-U}h-dA?U2VZB_vm>ysR-N?HcivN_W3n02<&N$ebh)!xy?W6p;6X@u3v?JrmgQ#~3lt xWNI&`cr?ZN6c + +_syscall0(pid_t,setsid) diff --git a/linux-0.11-lab/0/linux/lib/setsid.o b/linux-0.11-lab/0/linux/lib/setsid.o new file mode 100644 index 0000000000000000000000000000000000000000..7511f7c4a222329aaa1dc0b3b033b4453e6416f0 GIT binary patch literal 2244 zcma)7&2QX96o0dJHffSBn-AJVEyAEwgb#ZYxTR$;*NOkQf0xep z9su^gt$%X|f=!Lsstv3T1FcX7GzuaWdz@Uw9{T~r`jPz6v%t1J7Dky=D&vn)rzXB8 zvB&S{QuQa0u_Hig@+2^UA=PKMfU94UoqP_sa%V@z-vVQO$Ec!a)QQ^MlvO)cn^CjX z`cb$n$<)+YsNi%&tlH_R7pE@IVFg-0flQt{w^&%7TD&~RndcWixv;3C;b!!i$}6^x|a zILVxcTpHcDA2gytCu_v18wJ-Jy)YW=xGUc3s@wBhjg>+H+>#(kqF63ox#p}nP4AS~ zblkq5w7V~bCr`cLxSNi<5%jTZ6~%6v`Ry%t zJBhQPoyCc)uO~r@t?CW5yM7|QINB_>65a?{5ZMkp>zU+6xwy7=+F8EV8bsNkSdjbt zAeUC(TWxwP&8G`3{__IVjjN*eCe*QM+rEjqQqM*b^5(78=C^A2y}fj|pZP7&EGcN$ za7obfvS23@uj6OFc&!vIq_PvV2Ak_)v=PIU^M0$91n-ose&R=)*kx$~OJgP=hj{I{ z-w)6|FG6KJRJ*8DF(>G*=hZFN{D1J{aKculs-1cE%Ree@gkuZmrY=8KbWc+dl%FI3jEC1ula{k^86;|HSp@{kH>2Pr{@Sp66cyF|$GuIiK`VP5G!PH2n!u zG;UeznU8+?IR(9><<~WRQ&T?2^lNF_BSpM-wfvE$`8sf5xn|n)d7utt{^S1u<;VW3 literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/lib/string.c b/linux-0.11-lab/0/linux/lib/string.c new file mode 100644 index 0000000..1182e63 --- /dev/null +++ b/linux-0.11-lab/0/linux/lib/string.c @@ -0,0 +1,14 @@ +/* + * linux/lib/string.c + * + * (C) 1991 Linus Torvalds + */ + +#ifndef __GNUC__ +#error I want gcc! +#endif + +#define extern +#define inline +#define __LIBRARY__ +#include diff --git a/linux-0.11-lab/0/linux/lib/string.o b/linux-0.11-lab/0/linux/lib/string.o new file mode 100644 index 0000000000000000000000000000000000000000..840f038b2beb337cf418b004cd61fe5f8badc3b6 GIT binary patch literal 6380 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 b$T5+-MNW%6E;57|# +#include + +_syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options) + +pid_t wait(int * wait_stat) +{ + return waitpid(-1,wait_stat,0); +} diff --git a/linux-0.11-lab/0/linux/lib/wait.o b/linux-0.11-lab/0/linux/lib/wait.o new file mode 100644 index 0000000000000000000000000000000000000000..ba0290563e3e14c314e77ea37c75283d77b2c810 GIT binary patch literal 2584 zcma)8ONbmr7_RE>nVszHPG*xe*(Cu-oZ$MHo?WwOjCpL_#25)NM598KNzY90PUBAZ z+TD{E!3T?A*wca<#N2`h4}u~{@R~r(!9&Q!lb~J{Bd91IqQvj(uG;B=y5WicgWjcWgF)BvHvr9M2%Ll8QFAYGs{8Dvn`MGN4t2fT= ztqv`ntqzG(`DL&_l{x?U^+iTrx(!;oQa*Nh>E_VYz10Ghu$K{JUA3w-|L|AhGj#b! z*wV6=duYQ6jN~u~I1fkw_0EQY_Y3)DK>va+rCU z^Il39zQvqo8cs6_QLI5{USo)mBXUb=ebFp!Dvii>`SM1juZm)E7gTWCAk5PC;^V~w z>#;MXNAq&F+&!LJ?i)X_o{=+S=bsptaLea}Sx94yG1P{rQcx^R-yyD9i&{)R_-`5C zOEVVxF}ufijAPZCF$^wW9Td6aoD`h^8sZRUDQ}gAF(-EnH%r=f-Sb-uy|!DAPDi3I z3USi$V!Oo@@##f3vOBzrJ>QGsHu$7oE}6|i`83W{<_li}jJe~4 z_j~QQ9z-?YJy~Dy{NAbBq&+oNTX357$y9;4Dcmsh1A#+t#A5%Uqm|jpw7t!quGG3t z*y`-`wr+c*Qk$>T=7O#l*XBZ}>(&+nTrW3-(({qptY1z4s_#_Y!I9wW(=)a{B&M%SMlK0?9K+ggjf2n}#gw zZFHRn%t7K^7JEvCC1bWUcCu91bGc+OZilk*o{QO1xlzJbYe%QMvC{;`VTv8ih3he02{Wqk0q zDA@#(-brC~*7+WUhW`KM$MxtKCSksx$tcpcNyypt%|Q4BI<7B=q1QJ9UdMnHZ$kK- zj3RA20$KAkJ&JF#LPn9c@$=8t{Uy^E?oZcs!Rr{Ncmes&kWr*<4&-b;F_`v=`vAL| z?^W=O;l4@Nkm0$8i(S{8kRz6Bh zq<1lA_ff#&%g}KjYcX_RM!;uF9fsi|beeQs;%ZIsqiimec-6%)2Jvh=oijeUb-$$u|sqO6i|b_`JfG6*d(v5RvbklFuvrP~jH}uMpvP YL&@JMOxBB!p8KZ#n8FIsfIOq{ABC4WX#fBK literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/lib/write.c b/linux-0.11-lab/0/linux/lib/write.c new file mode 100644 index 0000000..df52e74 --- /dev/null +++ b/linux-0.11-lab/0/linux/lib/write.c @@ -0,0 +1,10 @@ +/* + * linux/lib/write.c + * + * (C) 1991 Linus Torvalds + */ + +#define __LIBRARY__ +#include + +_syscall3(int,write,int,fd,const char *,buf,off_t,count) diff --git a/linux-0.11-lab/0/linux/lib/write.o b/linux-0.11-lab/0/linux/lib/write.o new file mode 100644 index 0000000000000000000000000000000000000000..3aae21041d4ba6dc5244299e04aa1f571eb6f14b GIT binary patch literal 2376 zcma)8OK%)S5U!rtm%Yx$4<5E0i9y&BF9UKToQIG=R070wS-C6I5-5FH@mjsCjA#nt8gw*Q zo?gHA;@Ovk5Tr?vNkc@`%_&b^iaENECg`=@KgRdYR*xO9Z|`DtdhhkB^~3ugp01AV z?o`KUtFQ<4_i^U`{B(n79^3`(-Wq@F=C?p9XHG0b7r%iOFqlp%K}N3l4OAnS{~5x} z<^3Qb!zg~mMp3#BA#)hklQOLMqjVI$hsYm*iP00_Oq^1D{xx`^(@yQiJ{6jS4iMXo z{alfw#puftl}f)#BvbDvG?L?tqi=$hp8+#(%iLl@9Is53&B|xO-=77W@+EsX8J+pP8cV6bJ+I|~bT&u!M`l>xj-t#E+$dr=gGbmrUzYt^bdi%#9L z`)<_gp7c*FK5g0SmfZ>aeqwhbx9`~-A+C%U!RQA_?b)3{&`SI;h+zssJ5JozJN8Bt zCSEHEBOD<1*8{I@wYqLZaW{+->(IuxPo8@i#wHc&U-7sQ)C+@ki_MKjdt)qF=ZuuTZ+V$^CWgkVsSiTJPQ2Yu+$LlaDcRLpdnf5q{B^c+sY`EIk4lJ?C5 zXZQChl3#<3_m{`e`&)so=Rl<;fG=1{N&C(NYn@%c09dS~qJ&Nqso^Kl(`4xgLp5}trRl`1*=cfdDX z8iqi6{{96RuPl&^`@)iI$C7{G1e*RZOVo5OwafYN^ST^&I+bgwd?S@_r?Q#K9!uo= bB*kB*lK&0iJaRwyaCz?>cQKU~qyhXd?!6OW literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/mm/Makefile b/linux-0.11-lab/0/linux/mm/Makefile new file mode 100644 index 0000000..e0bcd73 --- /dev/null +++ b/linux-0.11-lab/0/linux/mm/Makefile @@ -0,0 +1,38 @@ +AR =ar +AS =as +LD =ld +LDFLAGS =-m elf_i386 -Ttext 0 -e startup_32 +CC =gcc -march=i386 +CFLAGS =-w -g -fstrength-reduce -fomit-frame-pointer -mcld \ + -finline-functions -nostdinc -fno-stack-protector -I../include +CPP =gcc -E -nostdinc -I../include + +.c.o: + $(CC) $(CFLAGS) \ + -c -o $*.o $< +.s.o: + $(AS) -o $*.o $< +.c.s: + $(CC) $(CFLAGS) \ + -S -o $*.s $< + +OBJS = memory.o page.o + +all: mm.o + +mm.o: $(OBJS) + $(LD) -r -o mm.o $(OBJS) + +clean: + rm -f core *.o *.a tmp_make + for i in *.c;do rm -f `basename $$i .c`.s;done + +dep: + sed '/\#\#\# Dependencies/q' < Makefile > tmp_make + (for i in *.c;do $(CPP) -M $$i;done) >> tmp_make + cp tmp_make Makefile + +### Dependencies: +memory.o : memory.c ../include/signal.h ../include/sys/types.h \ + ../include/asm/system.h ../include/linux/sched.h ../include/linux/head.h \ + ../include/linux/fs.h ../include/linux/mm.h ../include/linux/kernel.h diff --git a/linux-0.11-lab/0/linux/mm/memory.c b/linux-0.11-lab/0/linux/mm/memory.c new file mode 100644 index 0000000..0ffa375 --- /dev/null +++ b/linux-0.11-lab/0/linux/mm/memory.c @@ -0,0 +1,431 @@ +/* + * linux/mm/memory.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * demand-loading started 01.12.91 - seems it is high on the list of + * things wanted, and it should be easy to implement. - Linus + */ + +/* + * Ok, demand-loading was easy, shared pages a little bit tricker. Shared + * pages started 02.12.91, seems to work. - Linus. + * + * Tested sharing by executing about 30 /bin/sh: under the old kernel it + * would have taken more than the 6M I have free, but it worked well as + * far as I could see. + * + * Also corrected some "invalidate()"s - I wasn't doing enough of them. + */ + +#include + +#include + +#include +#include +#include + +volatile void do_exit(long code); + +static inline volatile void oom(void) +{ + printk("out of memory\n\r"); + do_exit(SIGSEGV); +} + +#define invalidate() \ +__asm__("movl %%eax,%%cr3"::"a" (0)) + +/* these are not to be changed without changing head.s etc */ +#define LOW_MEM 0x100000 +#define PAGING_MEMORY (15*1024*1024) +#define PAGING_PAGES (PAGING_MEMORY>>12) +#define MAP_NR(addr) (((addr)-LOW_MEM)>>12) +#define USED 100 + +#define CODE_SPACE(addr) ((((addr)+4095)&~4095) < \ +current->start_code + current->end_code) + +static long HIGH_MEMORY = 0; + +#define copy_page(from,to) \ +__asm__("cld ; rep ; movsl"::"S" (from),"D" (to),"c" (1024)) + +static unsigned char mem_map [ PAGING_PAGES ] = {0,}; + +/* + * Get physical address of first (actually last :-) free page, and mark it + * used. If no free pages left, return 0. + */ +unsigned long get_free_page(void) +{ +register unsigned long __res asm("ax"); + +__asm__("std ; repne ; scasb\n\t" + "jne 1f\n\t" + "movb $1,1(%%edi)\n\t" + "sall $12,%%ecx\n\t" + "addl %2,%%ecx\n\t" + "movl %%ecx,%%edx\n\t" + "movl $1024,%%ecx\n\t" + "leal 4092(%%edx),%%edi\n\t" + "rep ; stosl\n\t" + "movl %%edx,%%eax\n\t" + "1:" + "cld\n\t" /* by wyj */ + :"=a" (__res) + :"0" (0),"i" (LOW_MEM),"c" (PAGING_PAGES), + "D" (mem_map+PAGING_PAGES-1) + ); +return __res; +} + +/* + * Free a page of memory at physical address 'addr'. Used by + * 'free_page_tables()' + */ +void free_page(unsigned long addr) +{ + if (addr < LOW_MEM) return; + if (addr >= HIGH_MEMORY) + panic("trying to free nonexistent page"); + addr -= LOW_MEM; + addr >>= 12; + if (mem_map[addr]--) return; + mem_map[addr]=0; + panic("trying to free free page"); +} + +/* + * This function frees a continuos block of page tables, as needed + * by 'exit()'. As does copy_page_tables(), this handles only 4Mb blocks. + */ +int free_page_tables(unsigned long from,unsigned long size) +{ + unsigned long *pg_table; + unsigned long * dir, nr; + + if (from & 0x3fffff) + panic("free_page_tables called with wrong alignment"); + if (!from) + panic("Trying to free up swapper memory space"); + size = (size + 0x3fffff) >> 22; + dir = (unsigned long *) ((from>>20) & 0xffc); /* _pg_dir = 0 */ + for ( ; size-->0 ; dir++) { + if (!(1 & *dir)) + continue; + pg_table = (unsigned long *) (0xfffff000 & *dir); + for (nr=0 ; nr<1024 ; nr++) { + if (1 & *pg_table) + free_page(0xfffff000 & *pg_table); + *pg_table = 0; + pg_table++; + } + free_page(0xfffff000 & *dir); + *dir = 0; + } + invalidate(); + return 0; +} + +/* + * Well, here is one of the most complicated functions in mm. It + * copies a range of linerar addresses by copying only the pages. + * Let's hope this is bug-free, 'cause this one I don't want to debug :-) + * + * Note! We don't copy just any chunks of memory - addresses have to + * be divisible by 4Mb (one page-directory entry), as this makes the + * function easier. It's used only by fork anyway. + * + * NOTE 2!! When from==0 we are copying kernel space for the first + * fork(). Then we DONT want to copy a full page-directory entry, as + * that would lead to some serious memory waste - we just copy the + * first 160 pages - 640kB. Even that is more than we need, but it + * doesn't take any more memory - we don't copy-on-write in the low + * 1 Mb-range, so the pages can be shared with the kernel. Thus the + * special case for nr=xxxx. + */ +int copy_page_tables(unsigned long from,unsigned long to,long size) +{ + unsigned long * from_page_table; + unsigned long * to_page_table; + unsigned long this_page; + unsigned long * from_dir, * to_dir; + unsigned long nr; + + if ((from&0x3fffff) || (to&0x3fffff)) + panic("copy_page_tables called with wrong alignment"); + from_dir = (unsigned long *) ((from>>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: 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; + 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 + * out of memory (either when trying to access page-table or + * page.) + */ +unsigned long put_page(unsigned long page,unsigned long address) +{ + unsigned long tmp, *page_table; + +/* NOTE !!! This uses the fact that _pg_dir=0 */ + + if (page < LOW_MEM || page >= HIGH_MEMORY) + printk("Trying to put page %p at %p\n",page,address); + if (mem_map[(page-LOW_MEM)>>12] != 1) + printk("mem_map disagrees with %p at %p\n",page,address); + page_table = (unsigned long *) ((address>>20) & 0xffc); + if ((*page_table)&1) + page_table = (unsigned long *) (0xfffff000 & *page_table); + else { + if (!(tmp=get_free_page())) + return 0; + *page_table = tmp|7; + page_table = (unsigned long *) tmp; + } + page_table[(address>>12) & 0x3ff] = page | 7; +/* no need for invalidate */ + return page; +} + +void un_wp_page(unsigned long * table_entry) +{ + unsigned long old_page,new_page; + + old_page = 0xfffff000 & *table_entry; + if (old_page >= LOW_MEM && mem_map[MAP_NR(old_page)]==1) { + *table_entry |= 2; + invalidate(); + return; + } + if (!(new_page=get_free_page())) + oom(); + if (old_page >= LOW_MEM) + mem_map[MAP_NR(old_page)]--; + *table_entry = new_page | 7; + invalidate(); + copy_page(old_page,new_page); +} + +/* + * This routine handles present pages, when users try to write + * to a shared page. It is done by copying the page to a new address + * and decrementing the shared-page counter for the old page. + * + * If it's in code space we exit with a segment error. + */ +void do_wp_page(unsigned long error_code,unsigned long address) +{ +#if 0 +/* we cannot do this yet: the estdio library writes to code space */ +/* stupid, stupid. I really want the libc.a from GNU */ + if (CODE_SPACE(address)) + do_exit(SIGSEGV); +#endif + un_wp_page((unsigned long *) + (((address>>10) & 0xffc) + (0xfffff000 & + *((unsigned long *) ((address>>20) &0xffc))))); + +} + +void write_verify(unsigned long address) +{ + unsigned long page; + + if (!( (page = *((unsigned long *) ((address>>20) & 0xffc)) )&1)) + return; + page &= 0xfffff000; + page += ((address>>10) & 0xffc); + if ((3 & *(unsigned long *) page) == 1) /* non-writeable, present */ + un_wp_page((unsigned long *) page); + return; +} + +void get_empty_page(unsigned long address) +{ + unsigned long tmp; + + if (!(tmp=get_free_page()) || !put_page(tmp,address)) { + free_page(tmp); /* 0 is ok - ignored */ + oom(); + } +} + +/* + * try_to_share() checks the page at address "address" in the task "p", + * to see if it exists, and if it is clean. If so, share it with the current + * task. + * + * NOTE! This assumes we have checked that p != current, and that they + * share the same executable. + */ +static int try_to_share(unsigned long address, struct task_struct * p) +{ + unsigned long from; + unsigned long to; + unsigned long from_page; + unsigned long to_page; + unsigned long phys_addr; + + from_page = to_page = ((address>>20) & 0xffc); + from_page += ((p->start_code>>20) & 0xffc); + to_page += ((current->start_code>>20) & 0xffc); +/* is there a page-directory at from? */ + from = *(unsigned long *) from_page; + if (!(from & 1)) + return 0; + from &= 0xfffff000; + from_page = from + ((address>>10) & 0xffc); + phys_addr = *(unsigned long *) from_page; +/* is the page clean and present? */ + if ((phys_addr & 0x41) != 0x01) + return 0; + phys_addr &= 0xfffff000; + if (phys_addr >= HIGH_MEMORY || phys_addr < LOW_MEM) + return 0; + to = *(unsigned long *) to_page; + if (!(to & 1)) + if (to = get_free_page()) + *(unsigned long *) to_page = to | 7; + else + oom(); + to &= 0xfffff000; + to_page = to + ((address>>10) & 0xffc); + if (1 & *(unsigned long *) to_page) + panic("try_to_share: to_page already exists"); +/* share them: write-protect */ + *(unsigned long *) from_page &= ~2; + *(unsigned long *) to_page = *(unsigned long *) from_page; + invalidate(); + phys_addr -= LOW_MEM; + phys_addr >>= 12; + mem_map[phys_addr]++; + return 1; +} + +/* + * share_page() tries to find a process that could share a page with + * the current one. Address is the address of the wanted page relative + * to the current data space. + * + * We first check if it is at all feasible by checking executable->i_count. + * It should be >1 if there are other tasks sharing this inode. + */ +static int share_page(unsigned long address) +{ + struct task_struct ** p; + + if (!current->executable) + return 0; + if (current->executable->i_count < 2) + return 0; + for (p = &LAST_TASK ; p > &FIRST_TASK ; --p) { + if (!*p) + continue; + if (current == *p) + continue; + if ((*p)->executable != current->executable) + continue; + if (try_to_share(address,*p)) + return 1; + } + return 0; +} + +void do_no_page(unsigned long error_code,unsigned long address) +{ + int nr[4]; + unsigned long tmp; + unsigned long page; + int block,i; + + 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 mem_init(long start_mem, long end_mem) +{ + int i; + + HIGH_MEMORY = end_mem; + for (i=0 ; i>= 12; + while (end_mem-->0) + mem_map[i++]=0; +} + +void calc_mem(void) +{ + int i,j,k,free=0; + long * pg_tbl; + + for(i=0 ; i5I8yebbsjY3b+28NJ=ba4L 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 WJ>8K)@)PG@pEzRdVi(KKAO0KJhD)6Q literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/mm/page.o b/linux-0.11-lab/0/linux/mm/page.o new file mode 100644 index 0000000000000000000000000000000000000000..da4852668a6d8b88d91c428ae8572bb3d4d2090d GIT binary patch literal 640 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 N^|Cbi(V*L${{d;jp)>#h literal 0 HcmV?d00001 diff --git a/linux-0.11-lab/0/linux/tools/build.c b/linux-0.11-lab/0/linux/tools/build.c new file mode 100644 index 0000000..8b8c7ab --- /dev/null +++ b/linux-0.11-lab/0/linux/tools/build.c @@ -0,0 +1,171 @@ +/* + * linux/tools/build.c + * + * (C) 1991 Linus Torvalds + */ + +/* + * This file builds a disk-image from three different files: + * + * - bootsect: max 510 bytes of 8086 machine code, loads the rest + * - setup: max 4 sectors of 8086 machine code, sets up system parm + * - system: 80386 code for actual system + * + * It does some checking that all files are of the correct type, and + * just writes the result to stdout, removing headers and padding to + * the right amount. It also writes some system data to stderr. + */ + +/* + * Changes by tytso to allow root device specification + */ + +#include /* fprintf */ +#include +#include /* contains exit */ +#include /* unistd.h needs this */ +#include +#include +#include /* contains read/write */ +#include + +#define MAJOR(a) (((unsigned)(a))>>8) +#define MINOR(a) ((a)&0xff) + +#define MINIX_HEADER 32 +#define GCC_HEADER 0x80 /* 0x1000 */ /* by wyj */ + +#define SYS_SIZE 0x3000 + +#define DEFAULT_MAJOR_ROOT 0x03 //0x02 /* by wyj */ +#define DEFAULT_MINOR_ROOT 0x00 //0x1d + +/* max nr of sectors of setup: don't change unless you also change + * bootsect etc */ +#define SETUP_SECTS 4 + +#define STRINGIFY(x) #x + +void die(char * str) +{ + fprintf(stderr,"%s\n",str); + exit(1); +} + +void usage(void) +{ + die("Usage: build bootsect setup system [rootdev] [> image]"); +} + +int main(int argc, char ** argv) +{ + int i,c,id; + char buf[1024*4]; /* by wyj */ + char major_root, minor_root; + struct stat sb; + + if ((argc != 4) && (argc != 5)) + usage(); + if (argc == 5) { + if (strcmp(argv[4], "FLOPPY")) { + if (stat(argv[4], &sb)) { + perror(argv[4]); + die("Couldn't stat root device."); + } + major_root = MAJOR(sb.st_rdev); + minor_root = MINOR(sb.st_rdev); + } else { + major_root = 0; + minor_root = 0; + } + } else { + major_root = DEFAULT_MAJOR_ROOT; + minor_root = DEFAULT_MINOR_ROOT; + } + fprintf(stderr, "Root device is (%d, %d)\n", major_root, minor_root); + if ((major_root != 2) && (major_root != 3) && + (major_root != 0)) { + fprintf(stderr, "Illegal root device (major = %d)\n", + major_root); + die("Bad root device --- major #"); + } + for (i=0;i0 ; i+=c ) + if (write(1,buf,c)!=c) + die("Write call failed"); + close (id); + if (i > SETUP_SECTS*512) + die("Setup exceeds " STRINGIFY(SETUP_SECTS) + " sectors - rewrite build/boot/setup"); + fprintf(stderr,"Setup is %d bytes.\n",i); + for (c=0 ; c sizeof(buf)) + c = sizeof(buf); + if (write(1,buf,c) != c) + die("Write call failed"); + i += c; + } + + if ((id=open(argv[3],O_RDONLY,0))<0) + die("Unable to open 'system'"); + if (read(id,buf,GCC_HEADER) != GCC_HEADER) + die("Unable to read header of 'system'"); +// if (((long *) buf)[5] != 0) +// die("Non-GCC header of 'system'"); + for (i=0 ; (c=read(id,buf,sizeof buf))>0 ; i+=c ) + if (write(1,buf,c)!=c) + die("Write call failed"); + close(id); + fprintf(stderr,"System is %d bytes.\n",i); + if (i > SYS_SIZE*16) + die("System is too big"); + return(0); +} diff --git a/linux-0.11-lab/0/linux/tools/system b/linux-0.11-lab/0/linux/tools/system new file mode 100644 index 0000000000000000000000000000000000000000..cdec13498fa56de2a8a9c9f8d06d839b764ef75e GIT binary patch literal 286057 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