From 041650fedd8fae3e5d27b593ec226c9160cc2ea6 Mon Sep 17 00:00:00 2001 From: unknown <2232324209@qq.com> Date: Mon, 4 Jul 2022 10:21:54 +0800 Subject: [PATCH] finish all,bird --- linux-0.11-lab/0/linux/-p2.orig | 0 linux-0.11-lab/0/linux/Image | Bin 139440 -> 139408 bytes linux-0.11-lab/0/linux/System.map | 1167 ++++++++-------- linux-0.11-lab/0/linux/System.map.2 | 1192 ++++++++--------- linux-0.11-lab/0/linux/fs/fs.o | Bin 155698 -> 155698 bytes linux-0.11-lab/0/linux/fs/mysystem_call.o | Bin 8984 -> 8984 bytes linux-0.11-lab/0/linux/init/main.c | 4 +- linux-0.11-lab/0/linux/init/main.c.rej | 12 + linux-0.11-lab/0/linux/init/main.o | Bin 12464 -> 9404 bytes .../0/linux/kernel/blk_drv/blk_drv.a | Bin 52196 -> 52196 bytes .../0/linux/kernel/chr_drv/chr_drv.a | Bin 71260 -> 71616 bytes .../0/linux/kernel/chr_drv/mouse.2.o | Bin 652 -> 592 bytes .../0/linux/kernel/chr_drv/mouse.2.s | 15 - linux-0.11-lab/0/linux/kernel/chr_drv/mouse.S | 15 - .../0/linux/kernel/chr_drv/tty_io.c | 27 +- .../0/linux/kernel/chr_drv/tty_io.o | Bin 23832 -> 24248 bytes linux-0.11-lab/0/linux/kernel/math/math.a | Bin 6624 -> 6624 bytes linux-0.11-lab/0/linux/kernel/system_call.s | 1 + .../0/linux/kernel/system_call.s.rej | 14 + linux-0.11-lab/0/linux/lib/lib.a | Bin 34382 -> 34382 bytes linux-0.11-lab/0/linux/mm/memory.c.orig | 434 ++++++ linux-0.11-lab/0/linux/mm/memory.c.rej | 12 + linux-0.11-lab/0/linux/tools/system | Bin 307197 -> 305713 bytes linux-0.11-lab/b/bird.c | 8 +- linux-0.11-lab/bochsout.txt | 62 +- linux-0.11-lab/cur/linux/-p2.orig | 0 linux-0.11-lab/cur/linux/Image | Bin 139440 -> 139408 bytes linux-0.11-lab/cur/linux/System.map | 1167 ++++++++-------- linux-0.11-lab/cur/linux/System.map.2 | 1192 ++++++++--------- linux-0.11-lab/cur/linux/fs/fs.o | Bin 155698 -> 155698 bytes linux-0.11-lab/cur/linux/fs/mysystem_call.o | Bin 8984 -> 8984 bytes linux-0.11-lab/cur/linux/init/main.c | 4 +- linux-0.11-lab/cur/linux/init/main.c.rej | 12 + linux-0.11-lab/cur/linux/init/main.o | Bin 12464 -> 9404 bytes .../cur/linux/kernel/blk_drv/blk_drv.a | Bin 52196 -> 52196 bytes .../cur/linux/kernel/chr_drv/chr_drv.a | Bin 71260 -> 71616 bytes .../cur/linux/kernel/chr_drv/mouse.2.o | Bin 652 -> 592 bytes .../cur/linux/kernel/chr_drv/mouse.2.s | 15 - .../cur/linux/kernel/chr_drv/mouse.S | 15 - .../cur/linux/kernel/chr_drv/tty_io.c | 27 +- .../cur/linux/kernel/chr_drv/tty_io.o | Bin 23832 -> 24248 bytes linux-0.11-lab/cur/linux/kernel/math/math.a | Bin 6624 -> 6624 bytes linux-0.11-lab/cur/linux/kernel/system_call.s | 1 + .../cur/linux/kernel/system_call.s.rej | 14 + linux-0.11-lab/cur/linux/lib/lib.a | Bin 34382 -> 34382 bytes linux-0.11-lab/cur/linux/mm/memory.c.orig | 434 ++++++ linux-0.11-lab/cur/linux/mm/memory.c.rej | 12 + linux-0.11-lab/cur/linux/tools/system | Bin 307197 -> 305713 bytes linux-0.11-lab/images/rootimage-0.11 | Bin 10485760 -> 10485760 bytes 49 files changed, 3365 insertions(+), 2491 deletions(-) create mode 100644 linux-0.11-lab/0/linux/-p2.orig create mode 100644 linux-0.11-lab/0/linux/init/main.c.rej create mode 100644 linux-0.11-lab/0/linux/kernel/system_call.s.rej create mode 100644 linux-0.11-lab/0/linux/mm/memory.c.orig create mode 100644 linux-0.11-lab/0/linux/mm/memory.c.rej create mode 100644 linux-0.11-lab/cur/linux/-p2.orig create mode 100644 linux-0.11-lab/cur/linux/init/main.c.rej create mode 100644 linux-0.11-lab/cur/linux/kernel/system_call.s.rej create mode 100644 linux-0.11-lab/cur/linux/mm/memory.c.orig create mode 100644 linux-0.11-lab/cur/linux/mm/memory.c.rej diff --git a/linux-0.11-lab/0/linux/-p2.orig b/linux-0.11-lab/0/linux/-p2.orig new file mode 100644 index 0000000..e69de29 diff --git a/linux-0.11-lab/0/linux/Image b/linux-0.11-lab/0/linux/Image index cb1654e45afe90ee4ab038763e104c6b63f957b0..afc995b42776e46fe187ca797e3df91b6bfa1710 100644 GIT binary patch delta 27949 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 delta 27992 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 ZUq!r!6}&}!5*`uzfDHEPh$qwO{{_9!EU5qh diff --git a/linux-0.11-lab/0/linux/System.map b/linux-0.11-lab/0/linux/System.map index 9ea110b..c271942 100644 --- a/linux-0.11-lab/0/linux/System.map +++ b/linux-0.11-lab/0/linux/System.map @@ -27,585 +27,588 @@ 0000693b t printf 0000698a T init 00006c02 T print_nr -00006c34 T show_task -00006cb9 T show_stat -00006cff T math_state_restore -00006d5d T schedule -00006f0f T sys_pause -00006f25 T sleep_on -00006f84 T interruptible_sleep_on -0000703f T ticks_to_floppy_on -0000710a T floppy_on -00007139 T floppy_off -00007149 T do_floppy_timer -00007341 T sys_timercreate -000073c2 T do_timer -000075a5 T sys_alarm -00007624 T sys_getpid -00007630 T sys_getppid -0000763c T sys_getuid -0000764b T sys_geteuid -0000765b T sys_getgid -0000766b T sys_getegid -0000767a T sys_nice -000076a5 T sched_init -00007834 t bad_sys_call -0000783c t reschedule -00007848 T system_call -00007883 t ret_from_sys_call -000078cc T coprocessor_error -000078ee T device_not_available -00007928 T timer_interrupt -00007960 T sys_execve -00007970 T sys_execve2 -00007980 T sys_fork -00007998 T hd_interrupt -000079d4 T floppy_interrupt -00007a0a T parallel_interrupt -00007a11 t _get_base -00007a43 t die -00007c25 T do_double_fault -00007c48 T do_general_protection -00007c6b T do_divide_error -00007c8e T do_int3 -00007d56 T do_nmi -00007d79 T do_debug -00007d9c T do_overflow -00007dbf T do_bounds -00007de2 T do_invalid_op -00007e05 T do_device_not_available -00007e28 T do_coprocessor_segment_overrun -00007e4b T do_invalid_TSS -00007e6e T do_segment_not_present -00007e91 T do_stack_segment -00007eb4 T do_coprocessor_error -00007ee8 T do_reserved -00007f0b T trap_init -000081ef T divide_error -000081f4 t no_error_code -00008224 T debug -0000822b T nmi -00008232 T int3 -00008239 T overflow -00008240 T bounds -00008247 T invalid_op -0000824e T coprocessor_segment_overrun -00008255 T reserved -0000825c T irq13 -00008271 T double_fault -00008276 t error_code -000082a8 T invalid_TSS -000082af T segment_not_present -000082b6 T stack_segment -000082bd T general_protection -000082c4 t _get_base -000082f6 T verify_area -0000835d T copy_mem -000084b7 T copy_process -00008964 T find_empty_process -000089f8 T panic -00008a33 T printk -00008a84 t skip_atoi -00008adf t number -00008d50 T vsprintf -000091dc t get_fs_long -000091f2 t put_fs_byte -0000920a t put_fs_long -00009216 T sys_ftime -0000921c T sys_break -00009222 T sys_ptrace -00009228 T sys_stty -0000922e T sys_gtty -00009234 T sys_rename -0000923a T sys_prof -00009240 T sys_setregid -000092f9 T sys_setgid -00009390 T sys_acct -00009396 T sys_phys -0000939c T sys_lock -000093a2 T sys_mpx -000093a8 T sys_ulimit -000093ae T sys_time -0000940a T sys_setreuid -000094ec T sys_setuid -00009581 T sys_stime -000095d7 T sys_times -00009677 T sys_brk -000096b9 T sys_setpgid -00009792 T sys_getpgrp -0000979e T sys_setsid -00009818 T sys_getgroups -0000981e T sys_setgroups -00009824 T sys_uname -0000988d T sys_sethostname -00009893 T sys_getrlimit -00009899 T sys_setrlimit -0000989f T sys_getrusage -000098a5 T sys_gettimeofday -000098ab T sys_settimeofday -000098b1 T sys_umask -000098e4 t _get_base -00009916 t put_fs_long -00009922 T release -00009986 t send_sig -00009a05 t kill_session -00009a5f T sys_kill -00009c0f t tell_father -00009c99 T do_exit -00009ecd T sys_exit -00009ee6 T sys_waitpid -0000a10c t get_fs_byte -0000a11a t put_fs_byte -0000a132 t put_fs_long -0000a13e T sys_sgetmask -0000a14a T sys_ssetmask -0000a176 T sys_sigpending -0000a17c T sys_sigsuspend -0000a182 t save_old -0000a1d5 t get_new -0000a215 T sys_signal -0000a299 T sys_sigaction -0000a3a3 T do_signal -0000a58f T kernel_mktime -0000a6d4 t get_fs_long -0000a6ea T sys_init_graphics -0000a82c T sys_repaint -0000a91d t put_fs_long -0000a929 T post_message -0000a984 T sys_get_message -0000aa34 t oom -0000aa53 T get_free_page -0000aa8f T free_page -0000aafe T free_page_tables -0000abfd T copy_page_tables -0000ad7e T put_page -0000ae6a T un_wp_page -0000af22 T do_wp_page -0000afad T get_empty_page -0000afed t try_to_share -0000b17f t share_page -0000b233 T do_no_page -0000b395 T mem_init -0000b409 T calc_mem -0000b4fe T page_fault -0000b535 t get_fs_long -0000b54b T sys_ustat -0000b551 T sys_utime -0000b5fe T sys_access -0000b6da T sys_chdir -0000b74e T sys_chroot -0000b7c2 T sys_chmod -0000b85c T sys_chown -0000b8d7 T sys_open -0000bb7a T sys_creat -0000bb9d T sys_close -0000bc6c T sys_lseek -0000bd83 T sys_read -0000bf76 T sys_write -0000c124 t lock_inode -0000c151 t unlock_inode -0000c16f T invalidate_inodes -0000c1de T sync_inodes -0000c235 t _bmap -0000c621 T bmap -0000c644 T create_block -0000c667 T iput -0000c7d6 T get_empty_inode -0000c92b T get_pipe_inode -0000c9a0 T iget -0000cb65 t read_inode -0000cd9b T sys_sync -0000cdfe T sync_dev -0000cef7 T invalidate_buffers -0000cf69 T check_disk_change -0000d013 t remove_from_queues -0000d10a t insert_into_queues -0000d1cf t find_buffer -0000d237 T get_hash_table -0000d2b9 T getblk -0000d457 T brelse -0000d4a0 T bread -0000d525 T bread_page -0000d647 T breada -0000d73c T buffer_init -0000d86b t lock_super -0000d898 t free_super -0000d8dd T get_super -0000d94c T put_super -0000da1f t read_super -0000dd62 T sys_umount -0000dec3 T sys_mount -0000e034 T mount_root -0000e242 t get_fs_byte -0000e250 t put_fs_byte -0000e268 T block_write -0000e3ba T block_read -0000e4e5 t get_fs_byte -0000e4f3 t put_fs_byte -0000e50b t rw_ttyx -0000e553 t rw_tty -0000e5a3 t rw_ram -0000e5a9 t rw_mem -0000e5af t rw_kmem -0000e5b5 t rw_port -0000e64f t rw_memory -0000e725 T rw_char -0000e78f t get_fs_byte -0000e79d t put_fs_byte -0000e7b5 T file_read -0000e960 T file_write -0000eb5a t put_fs_byte -0000eb72 t cp_stat -0000ec49 T sys_stat -0000ec93 T sys_lstat -0000ecae T sys_fstat -0000ed0b T sys_readlink -0000ed11 t _get_base -0000ed43 t get_fs_byte -0000ed51 t get_fs_long -0000ed67 t put_fs_byte -0000ed7f t put_fs_long -0000ed8b t get_fs -0000ed9f t get_ds -0000edb3 t set_fs -0000edba T sys_uselib -0000edc0 t create_tables -0000ef0b t count -0000ef4a t copy_strings -0000f106 t change_ldt -0000f289 T do_execve -0000fd0b t oom -0000fd2a T do_execve2 -000108f5 t get_fs_byte -00010903 t put_fs_byte -0001091b t put_fs_long -00010927 T read_pipe -00010bfc T sys_pipe -00010dfe t get_fs_byte -00010e0c t permission -00010ead t match -00010f15 t find_entry -0001136f t get_dir -0001155c t dir_namei -000115db T namei -000116f1 T open_namei -00011a44 T sys_mknod -00011c74 T sys_mkdir -00012025 t empty_dir -00012203 T sys_rmdir -0001255b T sys_unlink -000127fc T sys_symlink -00012802 T sys_link -00012a5c T free_block -00012bce T new_block -00012d72 T free_inode -00012ed9 T new_inode -000130b3 t dupfd -0001318d T sys_dup2 -000131b4 T sys_dup -000131cf T sys_fcntl -0001330e T sys_ioctl -000133df t free_ind -0001347e t free_dind -0001351d T truncate -00013652 T sys_select -00013658 t put_fs_byte -00013670 T sys_getdents -00013836 T sys_sleep -00013873 T sys_something -00013879 T sys_getcwd -00013a85 t lock_buffer -00013ab2 t unlock_buffer -00013ca4 t make_request -00013e48 T ll_rw_block -00013ea1 T blk_dev_init -00013eef t unlock_buffer -00013f24 t end_request -00013fd5 T floppy_deselect -0001400c T floppy_change -00014092 t setup_DMA -00014148 t output_byte -000141be t result -0001427b t bad_flp_intr -000142da t rw_interrupt -000143c9 T setup_rw_floppy -0001448a t seek_interrupt -000144e3 t transfer -00014618 t recal_interrupt -00014662 T unexpected_floppy_interrupt -000146a7 t recalibrate_floppy -00014709 t reset_interrupt -0001474e t reset_floppy -000147cb t floppy_on_interrupt -00014836 t do_fd_request -00014a3a T floppy_init -00014a8c t unlock_buffer -00014ac1 t end_request -00014b60 T sys_setup -00014f13 t controller_ready -00014fa7 t hd_out -00015094 t drive_busy -000150fa t reset_controller -00015177 t reset_hd -0001520f T unexpected_hd_interrupt -00015222 t bad_rw_intr -00015260 t read_intr -00015386 t recal_intr -000153a0 t do_hd_request -000156a1 T hd_init -0001571b t unlock_buffer -00015750 t end_request -000157ef t do_rd_request -00015925 T rd_init -0001597b T rd_load -00015c27 t get_fs_byte -00015c35 t put_fs_byte -00015c4d T tty_init -00015c5e T tty_intr -00015cd2 t sleep_if_empty -00015d0a t sleep_if_full -00015d7e T copy_to_cooked -00016339 T tty_read -000166a7 T tty_write -000168b9 T do_tty_interrupt -000168e1 T chr_dev_init -000168e2 T readmouse -00016a21 t gotoxy -00016a6f t set_origin -00016ad5 t scrup -00016cc5 t scrdown -00016dbc t lf -00016df2 t ri -00016e28 t cr -00016e49 t del -00016e7b t csi_J -00016f0c t csi_K -00016fbe T csi_m -00017025 t set_cursor -0001708b t respond -000170e3 t insert_char -00017146 t insert_line -0001718a t delete_char -000171e8 t delete_line -0001722c t csi_at -0001726a t csi_L -000172a8 t csi_P -000172e6 t csi_M -00017324 t save_cur -00017339 t restore_cur -00017358 T con_write -000179e6 T con_init -00017ccb T sysbeepstop -00017cf4 t sysbeep -00017d52 t mode -00017d53 t leds -00017d54 t e0 -00017d55 T keyboard_interrupt -00017d7e t e0_e1 -00017da9 t set_e0 -00017db2 t set_e1 -00017dbb t put_queue -00017df4 t ctrl -00017e0c t unctrl -00017e10 t unalt -00017e26 t lshift -00017e2e t unlshift -00017e36 t rshift -00017e3e t unrshift -00017e46 t caps -00017e68 t set_leds -00017e7e t uncaps -00017e86 t scroll -00017e8f t num -00017e98 t cursor -00017eb8 t cur2 -00017ee1 t cur -00017eed t ok_cur -00017efb t num_table -00017f08 t cur_table -00017f15 t func -00017f32 t ok_func -00017f45 t end_func -00017f46 t func_table -00017f76 t key_map -00017fd7 t shift_map -00018099 t do_self -00018101 t none -00018102 t minus -00018117 t key_table -00018517 t kb_wait -00018520 t reboot -00018532 t die -00018534 t init -000185a9 T rs_init -0001862c T rs_write -0001867c T rs1_interrupt -00018684 T rs2_interrupt -00018689 t rs_int -000186a0 t rep_int -000186bd t end -000186cb t jmp_table -000186dc t modem_status -000186e4 t line_status -000186ec t read_char -00018773 t get_fs_byte -00018781 t get_fs_long -00018797 t put_fs_byte -000187af t put_fs_long -000187bb t change_speed -00018839 t flush -0001884b t send_break -0001884c t get_termios -000188a8 t set_termios -000188f8 t get_termio -000189c0 t set_termio -00018a84 T tty_ioctl -00018d82 T mouse_interrupt -00018dce t get_fs_byte -00018ddc T math_emulate -00018ebf T math_error -00018edf T _exit -00018eef T open -00018f38 T close -00018fac T dup -00018fe3 T setsid -00019012 T execve -000190af T strcpy -000190cb T strncpy -000190f0 T strcat -0001911b T strncat -00019150 T strcmp -00019177 T strncmp -000191a5 T strchr -000191d2 T strrchr -00019201 T strspn -0001923e T strcspn -0001927b T strpbrk -000192b2 T strstr -000192eb T strlen -0001930e T strtok -00019391 T memcpy -000193b1 T memmove -00019405 T memcmp -0001942f T memchr -00019467 T memset -0001948b t init_bucket_desc -000194f4 T malloc -00019680 T free_s -0001d968 d envp_rc -0001d97c d envp -0001d9a0 D sys_call_table -0001db20 D NR_syscalls -0001db40 d init_task -0001eb40 D current -0001eb60 D task -0001ec60 D stack_start -0001ec68 D current_DOR -0001ec80 d thisname.1955 -0001ecc0 d month -0001ed00 d last_inode.1935 -0001ed04 D start_buffer -0001ed20 d crw_table -0001ed40 d ioctl_table -0001ed60 d floppy_type -0001ee20 d cur_spec1 -0001ee24 d cur_rate -0001ee28 d floppy -0001ee2c d current_track -0001ee30 d callable.1844 -0001ee40 D tty_table -00021360 D table_list -00021380 d quotient -000213a0 D _ctype -000214c0 D bucket_dir -00021510 B __bss_start -00021510 D _edata -00021520 b printbuf -00021920 b memory_end -00021924 b buffer_memory_end -00021928 b main_memory_start -00021940 B jiffies -00021944 B startup_time -00021948 B last_task_used_math -0002194c B user_timer_list -00021960 b mon_timer -00021970 b moff_timer -00021980 b timer_list -00021c80 b next_timer -00021c84 B last_pid -00021ca0 b buf -000220a0 B msg_que_fron -000220a4 B msg_que_rear -000220c0 b HIGH_MEMORY -000220e0 b mem_map -00022fe0 B inode_table -000236e0 B nr_buffers -000236e4 b free_list -000236e8 b buffer_wait -000236ec B ROOT_DEV -00023720 B blk_dev -00023758 B do_floppy -0002375c B selected -00023764 b recalibrate -00023768 b reset -0002376c b seek -00023770 b reply_buffer -00023777 b current_drive -00023778 b sector -00023779 b head -0002377a b track -0002377b b seek_track -0002377c b command -00023780 B do_hd -000237a0 B hd_info -000237d0 b recalibrate -000237d4 b reset -000237d8 b NR_HD -000237e0 b hd -00023830 B rd_length -00023834 b mouse_input_count -00023835 b mouse_left_down -00023836 b mouse_right_down -00023837 b mouse_left_move -00023838 b mouse_down_move -0002383c b mouse_x_position -00023840 b mouse_y_position -00023844 b cr_flag.1923 -00023860 B beepcount -00023864 b video_type -00023868 b video_num_columns -0002386c b video_size_row -00023870 b video_num_lines -00023874 b video_page -00023878 b video_mem_start -0002387c b video_mem_end -00023880 b video_port_reg -00023882 b video_port_val -00023884 b video_erase_char -00023888 b origin -0002388c b scr_end -00023890 b pos -00023894 b x -00023898 b y -0002389c b top -000238a0 b bottom -000238a4 b state -000238a8 b npar -000238c0 b par -00023900 b ques -00023904 b saved_x -00023908 b saved_y -0002390c B free_bucket_desc -00023920 B drive_info -00023940 B msg_que -00025940 B user_stack -00026940 B hash_table -00026e20 B super_block -00027180 B file_table -00027580 B request -00027a00 B rd_start -00027a04 B _ctmp -00027a08 B errno -00027a0c B ___strtok -00027a10 B end -00027a10 B _end +00006c04 T show_task +00006c89 T show_stat +00006ccf T math_state_restore +00006d2d T schedule +00006edf T sys_pause +00006ef5 T sleep_on +00006f54 T interruptible_sleep_on +0000700f T ticks_to_floppy_on +000070da T floppy_on +00007109 T floppy_off +00007119 T do_floppy_timer +00007311 T sys_timercreate +00007392 T do_timer +00007575 T sys_alarm +000075f4 T sys_getpid +00007600 T sys_getppid +0000760c T sys_getuid +0000761b T sys_geteuid +0000762b T sys_getgid +0000763b T sys_getegid +0000764a T sys_nice +00007675 T sched_init +00007804 t bad_sys_call +0000780c t reschedule +00007818 T system_call +00007853 t ret_from_sys_call +0000789c T coprocessor_error +000078be T device_not_available +000078f8 T timer_interrupt +00007930 T sys_execve +00007940 T sys_execve2 +00007950 T sys_fork +00007968 T hd_interrupt +000079a4 T floppy_interrupt +000079da T parallel_interrupt +000079e1 t _get_base +00007a13 t die +00007bf5 T do_double_fault +00007c18 T do_general_protection +00007c3b T do_divide_error +00007c5e T do_int3 +00007d26 T do_nmi +00007d49 T do_debug +00007d6c T do_overflow +00007d8f T do_bounds +00007db2 T do_invalid_op +00007dd5 T do_device_not_available +00007df8 T do_coprocessor_segment_overrun +00007e1b T do_invalid_TSS +00007e3e T do_segment_not_present +00007e61 T do_stack_segment +00007e84 T do_coprocessor_error +00007eb8 T do_reserved +00007edb T trap_init +000081bf T divide_error +000081c4 t no_error_code +000081f4 T debug +000081fb T nmi +00008202 T int3 +00008209 T overflow +00008210 T bounds +00008217 T invalid_op +0000821e T coprocessor_segment_overrun +00008225 T reserved +0000822c T irq13 +00008241 T double_fault +00008246 t error_code +00008278 T invalid_TSS +0000827f T segment_not_present +00008286 T stack_segment +0000828d T general_protection +00008294 t _get_base +000082c6 T verify_area +0000832d T copy_mem +00008487 T copy_process +00008934 T find_empty_process +000089c8 T panic +00008a03 T printk +00008a54 t skip_atoi +00008aaf t number +00008d20 T vsprintf +000091ac t get_fs_long +000091c2 t put_fs_byte +000091da t put_fs_long +000091e6 T sys_ftime +000091ec T sys_break +000091f2 T sys_ptrace +000091f8 T sys_stty +000091fe T sys_gtty +00009204 T sys_rename +0000920a T sys_prof +00009210 T sys_setregid +000092c9 T sys_setgid +00009360 T sys_acct +00009366 T sys_phys +0000936c T sys_lock +00009372 T sys_mpx +00009378 T sys_ulimit +0000937e T sys_time +000093da T sys_setreuid +000094bc T sys_setuid +00009551 T sys_stime +000095a7 T sys_times +00009647 T sys_brk +00009689 T sys_setpgid +00009762 T sys_getpgrp +0000976e T sys_setsid +000097e8 T sys_getgroups +000097ee T sys_setgroups +000097f4 T sys_uname +0000985d T sys_sethostname +00009863 T sys_getrlimit +00009869 T sys_setrlimit +0000986f T sys_getrusage +00009875 T sys_gettimeofday +0000987b T sys_settimeofday +00009881 T sys_umask +000098b4 t _get_base +000098e6 t put_fs_long +000098f2 T release +00009956 t send_sig +000099d5 t kill_session +00009a2f T sys_kill +00009bdf t tell_father +00009c69 T do_exit +00009e9d T sys_exit +00009eb6 T sys_waitpid +0000a0dc t get_fs_byte +0000a0ea t put_fs_byte +0000a102 t put_fs_long +0000a10e T sys_sgetmask +0000a11a T sys_ssetmask +0000a146 T sys_sigpending +0000a14c T sys_sigsuspend +0000a152 t save_old +0000a1a5 t get_new +0000a1e5 T sys_signal +0000a269 T sys_sigaction +0000a373 T do_signal +0000a55f T kernel_mktime +0000a6a4 t get_fs_long +0000a6ba T sys_init_graphics +0000a7fc T sys_repaint +0000a8ed t put_fs_long +0000a8f9 T post_message +0000a954 T sys_get_message +0000aa04 t oom +0000aa23 T get_free_page +0000aa5f T free_page +0000aace T free_page_tables +0000abcd T copy_page_tables +0000ad4e T put_page +0000ae3a T un_wp_page +0000aef2 T do_wp_page +0000af7d T get_empty_page +0000afbd t try_to_share +0000b14f t share_page +0000b203 T do_no_page +0000b365 T mem_init +0000b3d9 T calc_mem +0000b4ce T page_fault +0000b505 t get_fs_long +0000b51b T sys_ustat +0000b521 T sys_utime +0000b5ce T sys_access +0000b6aa T sys_chdir +0000b71e T sys_chroot +0000b792 T sys_chmod +0000b82c T sys_chown +0000b8a7 T sys_open +0000bb4a T sys_creat +0000bb6d T sys_close +0000bc3c T sys_lseek +0000bd53 T sys_read +0000bf46 T sys_write +0000c0f4 t lock_inode +0000c121 t unlock_inode +0000c13f T invalidate_inodes +0000c1ae T sync_inodes +0000c205 t _bmap +0000c5f1 T bmap +0000c614 T create_block +0000c637 T iput +0000c7a6 T get_empty_inode +0000c8fb T get_pipe_inode +0000c970 T iget +0000cb35 t read_inode +0000cd6b T sys_sync +0000cdce T sync_dev +0000cec7 T invalidate_buffers +0000cf39 T check_disk_change +0000cfe3 t remove_from_queues +0000d0da t insert_into_queues +0000d19f t find_buffer +0000d207 T get_hash_table +0000d289 T getblk +0000d427 T brelse +0000d470 T bread +0000d4f5 T bread_page +0000d617 T breada +0000d70c T buffer_init +0000d83b t lock_super +0000d868 t free_super +0000d8ad T get_super +0000d91c T put_super +0000d9ef t read_super +0000dd32 T sys_umount +0000de93 T sys_mount +0000e004 T mount_root +0000e212 t get_fs_byte +0000e220 t put_fs_byte +0000e238 T block_write +0000e38a T block_read +0000e4b5 t get_fs_byte +0000e4c3 t put_fs_byte +0000e4db t rw_ttyx +0000e523 t rw_tty +0000e573 t rw_ram +0000e579 t rw_mem +0000e57f t rw_kmem +0000e585 t rw_port +0000e61f t rw_memory +0000e6f5 T rw_char +0000e75f t get_fs_byte +0000e76d t put_fs_byte +0000e785 T file_read +0000e930 T file_write +0000eb2a t put_fs_byte +0000eb42 t cp_stat +0000ec19 T sys_stat +0000ec63 T sys_lstat +0000ec7e T sys_fstat +0000ecdb T sys_readlink +0000ece1 t _get_base +0000ed13 t get_fs_byte +0000ed21 t get_fs_long +0000ed37 t put_fs_byte +0000ed4f t put_fs_long +0000ed5b t get_fs +0000ed6f t get_ds +0000ed83 t set_fs +0000ed8a T sys_uselib +0000ed90 t create_tables +0000eedb t count +0000ef1a t copy_strings +0000f0d6 t change_ldt +0000f259 T do_execve +0000fcdb t oom +0000fcfa T do_execve2 +000108c5 t get_fs_byte +000108d3 t put_fs_byte +000108eb t put_fs_long +000108f7 T read_pipe +00010bcc T sys_pipe +00010dce t get_fs_byte +00010ddc t permission +00010e7d t match +00010ee5 t find_entry +0001133f t get_dir +0001152c t dir_namei +000115ab T namei +000116c1 T open_namei +00011a14 T sys_mknod +00011c44 T sys_mkdir +00011ff5 t empty_dir +000121d3 T sys_rmdir +0001252b T sys_unlink +000127cc T sys_symlink +000127d2 T sys_link +00012a2c T free_block +00012b9e T new_block +00012d42 T free_inode +00012ea9 T new_inode +00013083 t dupfd +0001315d T sys_dup2 +00013184 T sys_dup +0001319f T sys_fcntl +000132de T sys_ioctl +000133af t free_ind +0001344e t free_dind +000134ed T truncate +00013622 T sys_select +00013628 t put_fs_byte +00013640 T sys_getdents +00013806 T sys_sleep +00013843 T sys_something +00013849 T sys_getcwd +00013a55 t lock_buffer +00013a82 t unlock_buffer +00013c74 t make_request +00013e18 T ll_rw_block +00013e71 T blk_dev_init +00013ebf t unlock_buffer +00013ef4 t end_request +00013fa5 T floppy_deselect +00013fdc T floppy_change +00014062 t setup_DMA +00014118 t output_byte +0001418e t result +0001424b t bad_flp_intr +000142aa t rw_interrupt +00014399 T setup_rw_floppy +0001445a t seek_interrupt +000144b3 t transfer +000145e8 t recal_interrupt +00014632 T unexpected_floppy_interrupt +00014677 t recalibrate_floppy +000146d9 t reset_interrupt +0001471e t reset_floppy +0001479b t floppy_on_interrupt +00014806 t do_fd_request +00014a0a T floppy_init +00014a5c t unlock_buffer +00014a91 t end_request +00014b30 T sys_setup +00014ee3 t controller_ready +00014f77 t hd_out +00015064 t drive_busy +000150ca t reset_controller +00015147 t reset_hd +000151df T unexpected_hd_interrupt +000151f2 t bad_rw_intr +00015230 t read_intr +00015356 t recal_intr +00015370 t do_hd_request +00015671 T hd_init +000156eb t unlock_buffer +00015720 t end_request +000157bf t do_rd_request +000158f5 T rd_init +0001594b T rd_load +00015bf7 t get_fs_byte +00015c05 t put_fs_byte +00015c1d T tty_init +00015c2e T tty_intr +00015ca2 t sleep_if_empty +00015cda t sleep_if_full +00015d4e T copy_to_cooked +00016309 T tty_read +00016677 T tty_write +00016889 T do_tty_interrupt +000168b1 T chr_dev_init +000168b2 T readmouse +00016a4b t gotoxy +00016a99 t set_origin +00016aff t scrup +00016cef t scrdown +00016de6 t lf +00016e1c t ri +00016e52 t cr +00016e73 t del +00016ea5 t csi_J +00016f36 t csi_K +00016fe8 T csi_m +0001704f t set_cursor +000170b5 t respond +0001710d t insert_char +00017170 t insert_line +000171b4 t delete_char +00017212 t delete_line +00017256 t csi_at +00017294 t csi_L +000172d2 t csi_P +00017310 t csi_M +0001734e t save_cur +00017363 t restore_cur +00017382 T con_write +00017a10 T con_init +00017cf5 T sysbeepstop +00017d1e t sysbeep +00017d7c t mode +00017d7d t leds +00017d7e t e0 +00017d7f T keyboard_interrupt +00017da8 t e0_e1 +00017dd3 t set_e0 +00017ddc t set_e1 +00017de5 t put_queue +00017e1e t ctrl +00017e36 t unctrl +00017e3a t unalt +00017e50 t lshift +00017e58 t unlshift +00017e60 t rshift +00017e68 t unrshift +00017e70 t caps +00017e92 t set_leds +00017ea8 t uncaps +00017eb0 t scroll +00017eb9 t num +00017ec2 t cursor +00017ee2 t cur2 +00017f0b t cur +00017f17 t ok_cur +00017f25 t num_table +00017f32 t cur_table +00017f3f t func +00017f5c t ok_func +00017f6f t end_func +00017f70 t func_table +00017fa0 t key_map +00018001 t shift_map +000180c3 t do_self +0001812b t none +0001812c t minus +00018141 t key_table +00018541 t kb_wait +0001854a t reboot +0001855c t die +0001855e t init +000185d3 T rs_init +00018656 T rs_write +000186a4 T rs1_interrupt +000186ac T rs2_interrupt +000186b1 t rs_int +000186c8 t rep_int +000186e5 t end +000186f3 t jmp_table +00018704 t modem_status +0001870c t line_status +00018714 t read_char +0001879b t get_fs_byte +000187a9 t get_fs_long +000187bf t put_fs_byte +000187d7 t put_fs_long +000187e3 t change_speed +00018861 t flush +00018873 t send_break +00018874 t get_termios +000188d0 t set_termios +00018920 t get_termio +000189e8 t set_termio +00018aac T tty_ioctl +00018daa T mouse_interrupt +00018dcf t get_fs_byte +00018ddd T math_emulate +00018ec0 T math_error +00018ee0 T _exit +00018ef0 T open +00018f39 T close +00018fad T dup +00018fe4 T setsid +00019013 T execve +000190b0 T strcpy +000190cc T strncpy +000190f1 T strcat +0001911c T strncat +00019151 T strcmp +00019178 T strncmp +000191a6 T strchr +000191d3 T strrchr +00019202 T strspn +0001923f T strcspn +0001927c T strpbrk +000192b3 T strstr +000192ec T strlen +0001930f T strtok +00019392 T memcpy +000193b2 T memmove +00019406 T memcmp +00019430 T memchr +00019468 T memset +0001948c t init_bucket_desc +000194f5 T malloc +00019681 T free_s +0001d948 d envp_rc +0001d95c d envp +0001d980 D sys_call_table +0001db00 D NR_syscalls +0001db20 d init_task +0001eb20 D current +0001eb40 D task +0001ec40 D stack_start +0001ec48 D current_DOR +0001ec60 d thisname.1955 +0001eca0 d month +0001ece0 d last_inode.1935 +0001ece4 D start_buffer +0001ed00 d crw_table +0001ed20 d ioctl_table +0001ed40 d floppy_type +0001ee00 d cur_spec1 +0001ee04 d cur_rate +0001ee08 d floppy +0001ee0c d current_track +0001ee10 d callable.1844 +0001ee20 D tty_table +00021340 D table_list +00021360 d quotient +00021380 D _ctype +000214a0 D bucket_dir +000214f0 B __bss_start +000214f0 D _edata +00021500 b printbuf +00021900 b memory_end +00021904 b buffer_memory_end +00021908 b main_memory_start +00021920 B jiffies +00021924 B startup_time +00021928 B last_task_used_math +0002192c B user_timer_list +00021940 b mon_timer +00021950 b moff_timer +00021960 b timer_list +00021c60 b next_timer +00021c64 B last_pid +00021c80 b buf +00022080 B msg_que_fron +00022084 B msg_que_rear +000220a0 b HIGH_MEMORY +000220c0 b mem_map +00022fc0 B inode_table +000236c0 B nr_buffers +000236c4 b free_list +000236c8 b buffer_wait +000236cc B ROOT_DEV +00023700 B blk_dev +00023738 B do_floppy +0002373c B selected +00023744 b recalibrate +00023748 b reset +0002374c b seek +00023750 b reply_buffer +00023757 b current_drive +00023758 b sector +00023759 b head +0002375a b track +0002375b b seek_track +0002375c b command +00023760 B do_hd +00023780 B hd_info +000237b0 b recalibrate +000237b4 b reset +000237b8 b NR_HD +000237c0 b hd +00023810 B rd_length +00023814 b mouse_input_count +00023815 b mouse_left_down +00023816 b mouse_right_down +00023817 b mouse_center_down +00023818 b mouse_left_move +00023819 b mouse_down_move +0002381a b mouse_x_overflow +0002381b b mouse_y_overflow +0002381c b mouse_x_position +00023820 b mouse_y_position +00023824 b cr_flag.1923 +00023840 B beepcount +00023844 b video_type +00023848 b video_num_columns +0002384c b video_size_row +00023850 b video_num_lines +00023854 b video_page +00023858 b video_mem_start +0002385c b video_mem_end +00023860 b video_port_reg +00023862 b video_port_val +00023864 b video_erase_char +00023868 b origin +0002386c b scr_end +00023870 b pos +00023874 b x +00023878 b y +0002387c b top +00023880 b bottom +00023884 b state +00023888 b npar +000238a0 b par +000238e0 b ques +000238e4 b saved_x +000238e8 b saved_y +000238ec B free_bucket_desc +00023900 B drive_info +00023920 B msg_que +00025920 B user_stack +00026920 B hash_table +00026e00 B super_block +00027160 B file_table +00027560 B request +000279e0 B rd_start +000279e4 B _ctmp +000279e8 B errno +000279ec B ___strtok +000279f0 B end +000279f0 B _end diff --git a/linux-0.11-lab/0/linux/System.map.2 b/linux-0.11-lab/0/linux/System.map.2 index 67da62e..309b32a 100644 --- a/linux-0.11-lab/0/linux/System.map.2 +++ b/linux-0.11-lab/0/linux/System.map.2 @@ -208,7 +208,7 @@ LOAD lib/lib.a *(.iplt) .iplt 0x0000000000000000 0x0 boot/head.o -.text 0x0000000000000000 0x197f7 +.text 0x0000000000000000 0x197f8 *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) @@ -220,7 +220,7 @@ LOAD lib/lib.a 0x0000000000005000 tmp_floppy_area 0x00000000000054c0 idt 0x0000000000005cc0 gdt - .text 0x00000000000064c0 0x773 init/main.o + .text 0x00000000000064c0 0x743 init/main.o 0x00000000000064c0 fork 0x00000000000064ef pause 0x000000000000651e setup @@ -229,338 +229,338 @@ LOAD lib/lib.a 0x00000000000067c8 main 0x000000000000698a init 0x0000000000006c02 print_nr - *fill* 0x0000000000006c33 0x1 - .text 0x0000000000006c34 0x3e00 kernel/kernel.o - 0x0000000000006c34 show_task - 0x0000000000006cb9 show_stat - 0x0000000000006cff math_state_restore - 0x0000000000006d5d schedule - 0x0000000000006f0f sys_pause - 0x0000000000006f25 sleep_on - 0x0000000000006f84 interruptible_sleep_on - 0x0000000000007017 wake_up - 0x000000000000703f ticks_to_floppy_on - 0x000000000000710a floppy_on - 0x0000000000007139 floppy_off - 0x0000000000007149 do_floppy_timer - 0x000000000000721d add_timer - 0x0000000000007341 sys_timercreate - 0x00000000000073c2 do_timer - 0x00000000000075a5 sys_alarm - 0x0000000000007624 sys_getpid - 0x0000000000007630 sys_getppid - 0x000000000000763c sys_getuid - 0x000000000000764b sys_geteuid - 0x000000000000765b sys_getgid - 0x000000000000766b sys_getegid - 0x000000000000767a sys_nice - 0x00000000000076a5 sched_init - 0x0000000000007848 system_call - 0x00000000000078cc coprocessor_error - 0x00000000000078ee device_not_available - 0x0000000000007928 timer_interrupt - 0x0000000000007960 sys_execve - 0x0000000000007970 sys_execve2 - 0x0000000000007980 sys_fork - 0x0000000000007998 hd_interrupt - 0x00000000000079d4 floppy_interrupt - 0x0000000000007a0a parallel_interrupt - 0x0000000000007c25 do_double_fault - 0x0000000000007c48 do_general_protection - 0x0000000000007c6b do_divide_error - 0x0000000000007c8e do_int3 - 0x0000000000007d56 do_nmi - 0x0000000000007d79 do_debug - 0x0000000000007d9c do_overflow - 0x0000000000007dbf do_bounds - 0x0000000000007de2 do_invalid_op - 0x0000000000007e05 do_device_not_available - 0x0000000000007e28 do_coprocessor_segment_overrun - 0x0000000000007e4b do_invalid_TSS - 0x0000000000007e6e do_segment_not_present - 0x0000000000007e91 do_stack_segment - 0x0000000000007eb4 do_coprocessor_error - 0x0000000000007ee8 do_reserved - 0x0000000000007f0b trap_init - 0x00000000000081ef divide_error - 0x0000000000008224 debug - 0x000000000000822b nmi - 0x0000000000008232 int3 - 0x0000000000008239 overflow - 0x0000000000008240 bounds - 0x0000000000008247 invalid_op - 0x000000000000824e coprocessor_segment_overrun - 0x0000000000008255 reserved - 0x000000000000825c irq13 - 0x0000000000008271 double_fault - 0x00000000000082a8 invalid_TSS - 0x00000000000082af segment_not_present - 0x00000000000082b6 stack_segment - 0x00000000000082bd general_protection - 0x00000000000082f6 verify_area - 0x000000000000835d copy_mem - 0x00000000000084b7 copy_process - 0x0000000000008964 find_empty_process - 0x00000000000089f8 panic - 0x0000000000008a33 printk - 0x0000000000008d50 vsprintf - 0x0000000000009216 sys_ftime - 0x000000000000921c sys_break - 0x0000000000009222 sys_ptrace - 0x0000000000009228 sys_stty - 0x000000000000922e sys_gtty - 0x0000000000009234 sys_rename - 0x000000000000923a sys_prof - 0x0000000000009240 sys_setregid - 0x00000000000092f9 sys_setgid - 0x0000000000009390 sys_acct - 0x0000000000009396 sys_phys - 0x000000000000939c sys_lock - 0x00000000000093a2 sys_mpx - 0x00000000000093a8 sys_ulimit - 0x00000000000093ae sys_time - 0x000000000000940a sys_setreuid - 0x00000000000094ec sys_setuid - 0x0000000000009581 sys_stime - 0x00000000000095d7 sys_times - 0x0000000000009677 sys_brk - 0x00000000000096b9 sys_setpgid - 0x0000000000009792 sys_getpgrp - 0x000000000000979e sys_setsid - 0x0000000000009818 sys_getgroups - 0x000000000000981e sys_setgroups - 0x0000000000009824 sys_uname - 0x000000000000988d sys_sethostname - 0x0000000000009893 sys_getrlimit - 0x0000000000009899 sys_setrlimit - 0x000000000000989f sys_getrusage - 0x00000000000098a5 sys_gettimeofday - 0x00000000000098ab sys_settimeofday - 0x00000000000098b1 sys_umask - 0x0000000000009922 release - 0x0000000000009a5f sys_kill - 0x0000000000009c99 do_exit - 0x0000000000009ecd sys_exit - 0x0000000000009ee6 sys_waitpid - 0x000000000000a13e sys_sgetmask - 0x000000000000a14a sys_ssetmask - 0x000000000000a176 sys_sigpending - 0x000000000000a17c sys_sigsuspend - 0x000000000000a215 sys_signal - 0x000000000000a299 sys_sigaction - 0x000000000000a3a3 do_signal - 0x000000000000a58f kernel_mktime - 0x000000000000a6ea sys_init_graphics - 0x000000000000a82c sys_repaint - 0x000000000000a929 post_message - 0x000000000000a984 sys_get_message - .text 0x000000000000aa34 0xb01 mm/mm.o - 0x000000000000aa53 get_free_page - 0x000000000000aa8f free_page - 0x000000000000aafe free_page_tables - 0x000000000000abfd copy_page_tables - 0x000000000000ad7e put_page - 0x000000000000ae6a un_wp_page - 0x000000000000af22 do_wp_page - 0x000000000000af54 write_verify - 0x000000000000afad get_empty_page - 0x000000000000b233 do_no_page - 0x000000000000b395 mem_init - 0x000000000000b409 calc_mem - 0x000000000000b4fe page_fault - .text 0x000000000000b535 0x8550 fs/fs.o - 0x000000000000b54b sys_ustat - 0x000000000000b551 sys_utime - 0x000000000000b5fe sys_access - 0x000000000000b6da sys_chdir - 0x000000000000b74e sys_chroot - 0x000000000000b7c2 sys_chmod - 0x000000000000b85c sys_chown - 0x000000000000b8d7 sys_open - 0x000000000000bb7a sys_creat - 0x000000000000bb9d sys_close - 0x000000000000bc6c sys_lseek - 0x000000000000bd83 sys_read - 0x000000000000bf76 sys_write - 0x000000000000c16f invalidate_inodes - 0x000000000000c1de sync_inodes - 0x000000000000c621 bmap - 0x000000000000c644 create_block - 0x000000000000c667 iput - 0x000000000000c7d6 get_empty_inode - 0x000000000000c92b get_pipe_inode - 0x000000000000c9a0 iget - 0x000000000000cd9b sys_sync - 0x000000000000cdfe sync_dev - 0x000000000000cef7 invalidate_buffers - 0x000000000000cf69 check_disk_change - 0x000000000000d237 get_hash_table - 0x000000000000d2b9 getblk - 0x000000000000d457 brelse - 0x000000000000d4a0 bread - 0x000000000000d525 bread_page - 0x000000000000d647 breada - 0x000000000000d73c buffer_init - 0x000000000000d8dd get_super - 0x000000000000d94c put_super - 0x000000000000dd62 sys_umount - 0x000000000000dec3 sys_mount - 0x000000000000e034 mount_root - 0x000000000000e268 block_write - 0x000000000000e3ba block_read - 0x000000000000e725 rw_char - 0x000000000000e7b5 file_read - 0x000000000000e960 file_write - 0x000000000000ec49 sys_stat - 0x000000000000ec93 sys_lstat - 0x000000000000ecae sys_fstat - 0x000000000000ed0b sys_readlink - 0x000000000000edba sys_uselib - 0x000000000000f289 do_execve - 0x000000000000fd2a do_execve2 - 0x0000000000010927 read_pipe - 0x0000000000010a7d write_pipe - 0x0000000000010bfc sys_pipe - 0x00000000000115db namei - 0x00000000000116f1 open_namei - 0x0000000000011a44 sys_mknod - 0x0000000000011c74 sys_mkdir - 0x0000000000012203 sys_rmdir - 0x000000000001255b sys_unlink - 0x00000000000127fc sys_symlink - 0x0000000000012802 sys_link - 0x0000000000012a5c free_block - 0x0000000000012bce new_block - 0x0000000000012d72 free_inode - 0x0000000000012ed9 new_inode - 0x000000000001318d sys_dup2 - 0x00000000000131b4 sys_dup - 0x00000000000131cf sys_fcntl - 0x000000000001330e sys_ioctl - 0x000000000001351d truncate - 0x0000000000013652 sys_select - 0x0000000000013670 sys_getdents - 0x0000000000013836 sys_sleep - 0x0000000000013873 sys_something - 0x0000000000013879 sys_getcwd - .text 0x0000000000013a85 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x0000000000013e48 ll_rw_block - 0x0000000000013ea1 blk_dev_init - .text 0x0000000000013eef 0xb9d kernel/blk_drv/blk_drv.a(floppy.o) - 0x0000000000013fd5 floppy_deselect - 0x000000000001400c floppy_change - 0x00000000000143c9 setup_rw_floppy - 0x0000000000014662 unexpected_floppy_interrupt - 0x0000000000014a3a floppy_init - .text 0x0000000000014a8c 0xc8f kernel/blk_drv/blk_drv.a(hd.o) - 0x0000000000014b60 sys_setup - 0x000000000001520f unexpected_hd_interrupt - 0x00000000000156a1 hd_init - .text 0x000000000001571b 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x0000000000015925 rd_init - 0x000000000001597b rd_load - .text 0x0000000000015c27 0xdfa kernel/chr_drv/chr_drv.a(tty_io.o) - 0x0000000000015c4d tty_init - 0x0000000000015c5e tty_intr - 0x0000000000015d6b wait_for_keypress - 0x0000000000015d7e copy_to_cooked - 0x0000000000016339 tty_read - 0x00000000000166a7 tty_write - 0x00000000000168b9 do_tty_interrupt - 0x00000000000168e1 chr_dev_init - 0x00000000000168e2 readmouse - .text 0x0000000000016a21 0x1331 kernel/chr_drv/chr_drv.a(console.o) - 0x0000000000016fbe csi_m - 0x0000000000017358 con_write - 0x00000000000179e6 con_init - 0x0000000000017ccb sysbeepstop - .text 0x0000000000017d52 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o) - 0x0000000000017d55 keyboard_interrupt - .text 0x0000000000018534 0x145 kernel/chr_drv/chr_drv.a(serial.o) - 0x00000000000185a9 rs_init - 0x000000000001862c rs_write - *fill* 0x0000000000018679 0x3 - .text 0x000000000001867c 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o) - 0x000000000001867c rs1_interrupt - 0x0000000000018684 rs2_interrupt - .text 0x0000000000018773 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o) - 0x0000000000018a84 tty_ioctl - .text 0x0000000000018d82 0x4c kernel/chr_drv/chr_drv.a(mouse.2.o) - 0x0000000000018d82 mouse_interrupt - .text 0x0000000000018dce 0x111 kernel/math/math.a(math_emulate.o) - 0x0000000000018ddc math_emulate - 0x0000000000018ebf math_error - .text 0x0000000000018edf 0x0 lib/lib.a(ctype.o) - .text 0x0000000000018edf 0x10 lib/lib.a(_exit.o) - 0x0000000000018edf _exit - .text 0x0000000000018eef 0x49 lib/lib.a(open.o) - 0x0000000000018eef open - .text 0x0000000000018f38 0x37 lib/lib.a(close.o) - 0x0000000000018f38 close - .text 0x0000000000018f6f 0x0 lib/lib.a(errno.o) - .text 0x0000000000018f6f 0x3d lib/lib.a(write.o) - 0x0000000000018f6f write - .text 0x0000000000018fac 0x37 lib/lib.a(dup.o) - 0x0000000000018fac dup - .text 0x0000000000018fe3 0x2f lib/lib.a(setsid.o) - 0x0000000000018fe3 setsid - .text 0x0000000000019012 0x3d lib/lib.a(execve.o) - 0x0000000000019012 execve - .text 0x000000000001904f 0x60 lib/lib.a(wait.o) - 0x000000000001904f waitpid - 0x000000000001908c wait - .text 0x00000000000190af 0x3dc lib/lib.a(string.o) - 0x00000000000190af strcpy - 0x00000000000190cb strncpy - 0x00000000000190f0 strcat - 0x000000000001911b strncat - 0x0000000000019150 strcmp - 0x0000000000019177 strncmp - 0x00000000000191a5 strchr - 0x00000000000191d2 strrchr - 0x0000000000019201 strspn - 0x000000000001923e strcspn - 0x000000000001927b strpbrk - 0x00000000000192b2 strstr - 0x00000000000192eb strlen - 0x000000000001930e strtok - 0x0000000000019391 memcpy - 0x00000000000193b1 memmove - 0x0000000000019405 memcmp - 0x000000000001942f memchr - 0x0000000000019467 memset - .text 0x000000000001948b 0x36c lib/lib.a(malloc.o) - 0x00000000000194f4 malloc - 0x0000000000019680 free_s + *fill* 0x0000000000006c03 0x1 + .text 0x0000000000006c04 0x3e00 kernel/kernel.o + 0x0000000000006c04 show_task + 0x0000000000006c89 show_stat + 0x0000000000006ccf math_state_restore + 0x0000000000006d2d schedule + 0x0000000000006edf sys_pause + 0x0000000000006ef5 sleep_on + 0x0000000000006f54 interruptible_sleep_on + 0x0000000000006fe7 wake_up + 0x000000000000700f ticks_to_floppy_on + 0x00000000000070da floppy_on + 0x0000000000007109 floppy_off + 0x0000000000007119 do_floppy_timer + 0x00000000000071ed add_timer + 0x0000000000007311 sys_timercreate + 0x0000000000007392 do_timer + 0x0000000000007575 sys_alarm + 0x00000000000075f4 sys_getpid + 0x0000000000007600 sys_getppid + 0x000000000000760c sys_getuid + 0x000000000000761b sys_geteuid + 0x000000000000762b sys_getgid + 0x000000000000763b sys_getegid + 0x000000000000764a sys_nice + 0x0000000000007675 sched_init + 0x0000000000007818 system_call + 0x000000000000789c coprocessor_error + 0x00000000000078be device_not_available + 0x00000000000078f8 timer_interrupt + 0x0000000000007930 sys_execve + 0x0000000000007940 sys_execve2 + 0x0000000000007950 sys_fork + 0x0000000000007968 hd_interrupt + 0x00000000000079a4 floppy_interrupt + 0x00000000000079da parallel_interrupt + 0x0000000000007bf5 do_double_fault + 0x0000000000007c18 do_general_protection + 0x0000000000007c3b do_divide_error + 0x0000000000007c5e do_int3 + 0x0000000000007d26 do_nmi + 0x0000000000007d49 do_debug + 0x0000000000007d6c do_overflow + 0x0000000000007d8f do_bounds + 0x0000000000007db2 do_invalid_op + 0x0000000000007dd5 do_device_not_available + 0x0000000000007df8 do_coprocessor_segment_overrun + 0x0000000000007e1b do_invalid_TSS + 0x0000000000007e3e do_segment_not_present + 0x0000000000007e61 do_stack_segment + 0x0000000000007e84 do_coprocessor_error + 0x0000000000007eb8 do_reserved + 0x0000000000007edb trap_init + 0x00000000000081bf divide_error + 0x00000000000081f4 debug + 0x00000000000081fb nmi + 0x0000000000008202 int3 + 0x0000000000008209 overflow + 0x0000000000008210 bounds + 0x0000000000008217 invalid_op + 0x000000000000821e coprocessor_segment_overrun + 0x0000000000008225 reserved + 0x000000000000822c irq13 + 0x0000000000008241 double_fault + 0x0000000000008278 invalid_TSS + 0x000000000000827f segment_not_present + 0x0000000000008286 stack_segment + 0x000000000000828d general_protection + 0x00000000000082c6 verify_area + 0x000000000000832d copy_mem + 0x0000000000008487 copy_process + 0x0000000000008934 find_empty_process + 0x00000000000089c8 panic + 0x0000000000008a03 printk + 0x0000000000008d20 vsprintf + 0x00000000000091e6 sys_ftime + 0x00000000000091ec sys_break + 0x00000000000091f2 sys_ptrace + 0x00000000000091f8 sys_stty + 0x00000000000091fe sys_gtty + 0x0000000000009204 sys_rename + 0x000000000000920a sys_prof + 0x0000000000009210 sys_setregid + 0x00000000000092c9 sys_setgid + 0x0000000000009360 sys_acct + 0x0000000000009366 sys_phys + 0x000000000000936c sys_lock + 0x0000000000009372 sys_mpx + 0x0000000000009378 sys_ulimit + 0x000000000000937e sys_time + 0x00000000000093da sys_setreuid + 0x00000000000094bc sys_setuid + 0x0000000000009551 sys_stime + 0x00000000000095a7 sys_times + 0x0000000000009647 sys_brk + 0x0000000000009689 sys_setpgid + 0x0000000000009762 sys_getpgrp + 0x000000000000976e sys_setsid + 0x00000000000097e8 sys_getgroups + 0x00000000000097ee sys_setgroups + 0x00000000000097f4 sys_uname + 0x000000000000985d sys_sethostname + 0x0000000000009863 sys_getrlimit + 0x0000000000009869 sys_setrlimit + 0x000000000000986f sys_getrusage + 0x0000000000009875 sys_gettimeofday + 0x000000000000987b sys_settimeofday + 0x0000000000009881 sys_umask + 0x00000000000098f2 release + 0x0000000000009a2f sys_kill + 0x0000000000009c69 do_exit + 0x0000000000009e9d sys_exit + 0x0000000000009eb6 sys_waitpid + 0x000000000000a10e sys_sgetmask + 0x000000000000a11a sys_ssetmask + 0x000000000000a146 sys_sigpending + 0x000000000000a14c sys_sigsuspend + 0x000000000000a1e5 sys_signal + 0x000000000000a269 sys_sigaction + 0x000000000000a373 do_signal + 0x000000000000a55f kernel_mktime + 0x000000000000a6ba sys_init_graphics + 0x000000000000a7fc sys_repaint + 0x000000000000a8f9 post_message + 0x000000000000a954 sys_get_message + .text 0x000000000000aa04 0xb01 mm/mm.o + 0x000000000000aa23 get_free_page + 0x000000000000aa5f free_page + 0x000000000000aace free_page_tables + 0x000000000000abcd copy_page_tables + 0x000000000000ad4e put_page + 0x000000000000ae3a un_wp_page + 0x000000000000aef2 do_wp_page + 0x000000000000af24 write_verify + 0x000000000000af7d get_empty_page + 0x000000000000b203 do_no_page + 0x000000000000b365 mem_init + 0x000000000000b3d9 calc_mem + 0x000000000000b4ce page_fault + .text 0x000000000000b505 0x8550 fs/fs.o + 0x000000000000b51b sys_ustat + 0x000000000000b521 sys_utime + 0x000000000000b5ce sys_access + 0x000000000000b6aa sys_chdir + 0x000000000000b71e sys_chroot + 0x000000000000b792 sys_chmod + 0x000000000000b82c sys_chown + 0x000000000000b8a7 sys_open + 0x000000000000bb4a sys_creat + 0x000000000000bb6d sys_close + 0x000000000000bc3c sys_lseek + 0x000000000000bd53 sys_read + 0x000000000000bf46 sys_write + 0x000000000000c13f invalidate_inodes + 0x000000000000c1ae sync_inodes + 0x000000000000c5f1 bmap + 0x000000000000c614 create_block + 0x000000000000c637 iput + 0x000000000000c7a6 get_empty_inode + 0x000000000000c8fb get_pipe_inode + 0x000000000000c970 iget + 0x000000000000cd6b sys_sync + 0x000000000000cdce sync_dev + 0x000000000000cec7 invalidate_buffers + 0x000000000000cf39 check_disk_change + 0x000000000000d207 get_hash_table + 0x000000000000d289 getblk + 0x000000000000d427 brelse + 0x000000000000d470 bread + 0x000000000000d4f5 bread_page + 0x000000000000d617 breada + 0x000000000000d70c buffer_init + 0x000000000000d8ad get_super + 0x000000000000d91c put_super + 0x000000000000dd32 sys_umount + 0x000000000000de93 sys_mount + 0x000000000000e004 mount_root + 0x000000000000e238 block_write + 0x000000000000e38a block_read + 0x000000000000e6f5 rw_char + 0x000000000000e785 file_read + 0x000000000000e930 file_write + 0x000000000000ec19 sys_stat + 0x000000000000ec63 sys_lstat + 0x000000000000ec7e sys_fstat + 0x000000000000ecdb sys_readlink + 0x000000000000ed8a sys_uselib + 0x000000000000f259 do_execve + 0x000000000000fcfa do_execve2 + 0x00000000000108f7 read_pipe + 0x0000000000010a4d write_pipe + 0x0000000000010bcc sys_pipe + 0x00000000000115ab namei + 0x00000000000116c1 open_namei + 0x0000000000011a14 sys_mknod + 0x0000000000011c44 sys_mkdir + 0x00000000000121d3 sys_rmdir + 0x000000000001252b sys_unlink + 0x00000000000127cc sys_symlink + 0x00000000000127d2 sys_link + 0x0000000000012a2c free_block + 0x0000000000012b9e new_block + 0x0000000000012d42 free_inode + 0x0000000000012ea9 new_inode + 0x000000000001315d sys_dup2 + 0x0000000000013184 sys_dup + 0x000000000001319f sys_fcntl + 0x00000000000132de sys_ioctl + 0x00000000000134ed truncate + 0x0000000000013622 sys_select + 0x0000000000013640 sys_getdents + 0x0000000000013806 sys_sleep + 0x0000000000013843 sys_something + 0x0000000000013849 sys_getcwd + .text 0x0000000000013a55 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000013e18 ll_rw_block + 0x0000000000013e71 blk_dev_init + .text 0x0000000000013ebf 0xb9d kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000013fa5 floppy_deselect + 0x0000000000013fdc floppy_change + 0x0000000000014399 setup_rw_floppy + 0x0000000000014632 unexpected_floppy_interrupt + 0x0000000000014a0a floppy_init + .text 0x0000000000014a5c 0xc8f kernel/blk_drv/blk_drv.a(hd.o) + 0x0000000000014b30 sys_setup + 0x00000000000151df unexpected_hd_interrupt + 0x0000000000015671 hd_init + .text 0x00000000000156eb 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x00000000000158f5 rd_init + 0x000000000001594b rd_load + .text 0x0000000000015bf7 0xe54 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x0000000000015c1d tty_init + 0x0000000000015c2e tty_intr + 0x0000000000015d3b wait_for_keypress + 0x0000000000015d4e copy_to_cooked + 0x0000000000016309 tty_read + 0x0000000000016677 tty_write + 0x0000000000016889 do_tty_interrupt + 0x00000000000168b1 chr_dev_init + 0x00000000000168b2 readmouse + .text 0x0000000000016a4b 0x1331 kernel/chr_drv/chr_drv.a(console.o) + 0x0000000000016fe8 csi_m + 0x0000000000017382 con_write + 0x0000000000017a10 con_init + 0x0000000000017cf5 sysbeepstop + .text 0x0000000000017d7c 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o) + 0x0000000000017d7f keyboard_interrupt + .text 0x000000000001855e 0x145 kernel/chr_drv/chr_drv.a(serial.o) + 0x00000000000185d3 rs_init + 0x0000000000018656 rs_write + *fill* 0x00000000000186a3 0x1 + .text 0x00000000000186a4 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o) + 0x00000000000186a4 rs1_interrupt + 0x00000000000186ac rs2_interrupt + .text 0x000000000001879b 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x0000000000018aac tty_ioctl + .text 0x0000000000018daa 0x25 kernel/chr_drv/chr_drv.a(mouse.2.o) + 0x0000000000018daa mouse_interrupt + .text 0x0000000000018dcf 0x111 kernel/math/math.a(math_emulate.o) + 0x0000000000018ddd math_emulate + 0x0000000000018ec0 math_error + .text 0x0000000000018ee0 0x0 lib/lib.a(ctype.o) + .text 0x0000000000018ee0 0x10 lib/lib.a(_exit.o) + 0x0000000000018ee0 _exit + .text 0x0000000000018ef0 0x49 lib/lib.a(open.o) + 0x0000000000018ef0 open + .text 0x0000000000018f39 0x37 lib/lib.a(close.o) + 0x0000000000018f39 close + .text 0x0000000000018f70 0x0 lib/lib.a(errno.o) + .text 0x0000000000018f70 0x3d lib/lib.a(write.o) + 0x0000000000018f70 write + .text 0x0000000000018fad 0x37 lib/lib.a(dup.o) + 0x0000000000018fad dup + .text 0x0000000000018fe4 0x2f lib/lib.a(setsid.o) + 0x0000000000018fe4 setsid + .text 0x0000000000019013 0x3d lib/lib.a(execve.o) + 0x0000000000019013 execve + .text 0x0000000000019050 0x60 lib/lib.a(wait.o) + 0x0000000000019050 waitpid + 0x000000000001908d wait + .text 0x00000000000190b0 0x3dc lib/lib.a(string.o) + 0x00000000000190b0 strcpy + 0x00000000000190cc strncpy + 0x00000000000190f1 strcat + 0x000000000001911c strncat + 0x0000000000019151 strcmp + 0x0000000000019178 strncmp + 0x00000000000191a6 strchr + 0x00000000000191d3 strrchr + 0x0000000000019202 strspn + 0x000000000001923f strcspn + 0x000000000001927c strpbrk + 0x00000000000192b3 strstr + 0x00000000000192ec strlen + 0x000000000001930f strtok + 0x0000000000019392 memcpy + 0x00000000000193b2 memmove + 0x0000000000019406 memcmp + 0x0000000000019430 memchr + 0x0000000000019468 memset + .text 0x000000000001948c 0x36c lib/lib.a(malloc.o) + 0x00000000000194f5 malloc + 0x0000000000019681 free_s *(.gnu.warning) .fini *(SORT(.fini)) - 0x00000000000197f7 PROVIDE (__etext, .) - 0x00000000000197f7 PROVIDE (_etext, .) - 0x00000000000197f7 PROVIDE (etext, .) + 0x00000000000197f8 PROVIDE (__etext, .) + 0x00000000000197f8 PROVIDE (_etext, .) + 0x00000000000197f8 PROVIDE (etext, .) -.rodata 0x00000000000197f8 0x14cb +.rodata 0x00000000000197f8 0x14af *(.rodata .rodata.* .gnu.linkonce.r.*) - .rodata 0x00000000000197f8 0xc9 init/main.o - *fill* 0x00000000000198c1 0x3 - .rodata 0x00000000000198c4 0x438 kernel/kernel.o - .rodata 0x0000000000019cfc 0x18f mm/mm.o - *fill* 0x0000000000019e8b 0x1 - .rodata 0x0000000000019e8c 0x63c fs/fs.o - .rodata 0x000000000001a4c8 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - *fill* 0x000000000001a542 0x2 - .rodata 0x000000000001a544 0x133 kernel/blk_drv/blk_drv.a(floppy.o) - *fill* 0x000000000001a677 0x1 - .rodata 0x000000000001a678 0x19b kernel/blk_drv/blk_drv.a(hd.o) - *fill* 0x000000000001a813 0x1 - .rodata 0x000000000001a814 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o) - .rodata 0x000000000001a99c 0x17d kernel/chr_drv/chr_drv.a(console.o) - *fill* 0x000000000001ab19 0x3 - .rodata 0x000000000001ab1c 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .rodata 0x000000000001ab9c 0x52 kernel/math/math.a(math_emulate.o) - *fill* 0x000000000001abee 0x2 - .rodata 0x000000000001abf0 0xd3 lib/lib.a(malloc.o) + .rodata 0x00000000000197f8 0xad init/main.o + *fill* 0x00000000000198a5 0x3 + .rodata 0x00000000000198a8 0x438 kernel/kernel.o + .rodata 0x0000000000019ce0 0x18f mm/mm.o + *fill* 0x0000000000019e6f 0x1 + .rodata 0x0000000000019e70 0x63c fs/fs.o + .rodata 0x000000000001a4ac 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + *fill* 0x000000000001a526 0x2 + .rodata 0x000000000001a528 0x133 kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x000000000001a65b 0x1 + .rodata 0x000000000001a65c 0x19b kernel/blk_drv/blk_drv.a(hd.o) + *fill* 0x000000000001a7f7 0x1 + .rodata 0x000000000001a7f8 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o) + .rodata 0x000000000001a980 0x17d kernel/chr_drv/chr_drv.a(console.o) + *fill* 0x000000000001aafd 0x3 + .rodata 0x000000000001ab00 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .rodata 0x000000000001ab80 0x52 kernel/math/math.a(math_emulate.o) + *fill* 0x000000000001abd2 0x2 + .rodata 0x000000000001abd4 0xd3 lib/lib.a(malloc.o) .rodata1 *(.rodata1) @@ -568,52 +568,52 @@ LOAD lib/lib.a .eh_frame_hdr *(.eh_frame_hdr) -.eh_frame 0x000000000001acc4 0x2c80 +.eh_frame 0x000000000001aca8 0x2c7c *(.eh_frame) - .eh_frame 0x000000000001acc4 0x120 init/main.o - .eh_frame 0x000000000001ade4 0xbb0 kernel/kernel.o + .eh_frame 0x000000000001aca8 0x11c init/main.o + .eh_frame 0x000000000001adc4 0xbb0 kernel/kernel.o 0xcd0 (size before relaxing) - .eh_frame 0x000000000001b994 0x194 mm/mm.o + .eh_frame 0x000000000001b974 0x194 mm/mm.o 0x1ac (size before relaxing) - .eh_frame 0x000000000001bb28 0xea4 fs/fs.o + .eh_frame 0x000000000001bb08 0xea4 fs/fs.o 0x1054 (size before relaxing) - .eh_frame 0x000000000001c9cc 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .eh_frame 0x000000000001c9ac 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) 0xb0 (size before relaxing) - .eh_frame 0x000000000001ca64 0x23c kernel/blk_drv/blk_drv.a(floppy.o) + .eh_frame 0x000000000001ca44 0x23c kernel/blk_drv/blk_drv.a(floppy.o) 0x254 (size before relaxing) - .eh_frame 0x000000000001cca0 0x1e8 kernel/blk_drv/blk_drv.a(hd.o) + .eh_frame 0x000000000001cc80 0x1e8 kernel/blk_drv/blk_drv.a(hd.o) 0x200 (size before relaxing) - .eh_frame 0x000000000001ce88 0xac kernel/blk_drv/blk_drv.a(ramdisk.o) + .eh_frame 0x000000000001ce68 0xac kernel/blk_drv/blk_drv.a(ramdisk.o) 0xc4 (size before relaxing) - .eh_frame 0x000000000001cf34 0x148 kernel/chr_drv/chr_drv.a(tty_io.o) + .eh_frame 0x000000000001cf14 0x148 kernel/chr_drv/chr_drv.a(tty_io.o) 0x160 (size before relaxing) - .eh_frame 0x000000000001d07c 0x2c0 kernel/chr_drv/chr_drv.a(console.o) + .eh_frame 0x000000000001d05c 0x2c0 kernel/chr_drv/chr_drv.a(console.o) 0x2d8 (size before relaxing) - .eh_frame 0x000000000001d33c 0x54 kernel/chr_drv/chr_drv.a(serial.o) + .eh_frame 0x000000000001d31c 0x54 kernel/chr_drv/chr_drv.a(serial.o) 0x6c (size before relaxing) - .eh_frame 0x000000000001d390 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .eh_frame 0x000000000001d370 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o) 0x160 (size before relaxing) - .eh_frame 0x000000000001d4d8 0x5c kernel/math/math.a(math_emulate.o) + .eh_frame 0x000000000001d4b8 0x5c kernel/math/math.a(math_emulate.o) 0x74 (size before relaxing) - .eh_frame 0x000000000001d534 0x1c lib/lib.a(_exit.o) + .eh_frame 0x000000000001d514 0x1c lib/lib.a(_exit.o) 0x34 (size before relaxing) - .eh_frame 0x000000000001d550 0x24 lib/lib.a(open.o) + .eh_frame 0x000000000001d530 0x24 lib/lib.a(open.o) 0x3c (size before relaxing) - .eh_frame 0x000000000001d574 0x20 lib/lib.a(close.o) + .eh_frame 0x000000000001d554 0x20 lib/lib.a(close.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001d594 0x20 lib/lib.a(write.o) + .eh_frame 0x000000000001d574 0x20 lib/lib.a(write.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001d5b4 0x20 lib/lib.a(dup.o) + .eh_frame 0x000000000001d594 0x20 lib/lib.a(dup.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001d5d4 0x18 lib/lib.a(setsid.o) + .eh_frame 0x000000000001d5b4 0x18 lib/lib.a(setsid.o) 0x30 (size before relaxing) - .eh_frame 0x000000000001d5ec 0x20 lib/lib.a(execve.o) + .eh_frame 0x000000000001d5cc 0x20 lib/lib.a(execve.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001d60c 0x38 lib/lib.a(wait.o) + .eh_frame 0x000000000001d5ec 0x38 lib/lib.a(wait.o) 0x50 (size before relaxing) - .eh_frame 0x000000000001d644 0x2b0 lib/lib.a(string.o) + .eh_frame 0x000000000001d624 0x2b0 lib/lib.a(string.o) 0x2c8 (size before relaxing) - .eh_frame 0x000000000001d8f4 0x50 lib/lib.a(malloc.o) + .eh_frame 0x000000000001d8d4 0x50 lib/lib.a(malloc.o) 0x68 (size before relaxing) .gcc_except_table @@ -621,7 +621,7 @@ LOAD lib/lib.a .exception_ranges *(.exception_ranges .exception_ranges*) - 0x000000000001d944 . = . + 0x000000000001d924 . = . .eh_frame *(.eh_frame) @@ -639,22 +639,22 @@ LOAD lib/lib.a *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) -.preinit_array 0x000000000001d944 0x0 - 0x000000000001d944 PROVIDE (__preinit_array_start, .) +.preinit_array 0x000000000001d924 0x0 + 0x000000000001d924 PROVIDE (__preinit_array_start, .) *(.preinit_array) - 0x000000000001d944 PROVIDE (__preinit_array_end, .) + 0x000000000001d924 PROVIDE (__preinit_array_end, .) -.init_array 0x000000000001d944 0x0 - 0x000000000001d944 PROVIDE (__init_array_start, .) +.init_array 0x000000000001d924 0x0 + 0x000000000001d924 PROVIDE (__init_array_start, .) *(SORT(.init_array.*) SORT(.ctors.*)) *(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors) - 0x000000000001d944 PROVIDE (__init_array_end, .) + 0x000000000001d924 PROVIDE (__init_array_end, .) -.fini_array 0x000000000001d944 0x0 - 0x000000000001d944 PROVIDE (__fini_array_start, .) +.fini_array 0x000000000001d924 0x0 + 0x000000000001d924 PROVIDE (__fini_array_start, .) *(SORT(.fini_array.*) SORT(.dtors.*)) *(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors) - 0x000000000001d944 PROVIDE (__fini_array_end, .) + 0x000000000001d924 PROVIDE (__fini_array_end, .) .ctors *crtbegin.o(.ctors) @@ -684,152 +684,152 @@ LOAD lib/lib.a *(.got) *(.igot) -.got.plt 0x000000000001d944 0x0 +.got.plt 0x000000000001d924 0x0 *(.got.plt) *(.igot.plt) .igot.plt 0x0000000000000000 0x0 boot/head.o -.data 0x000000000001d960 0x3bb0 +.data 0x000000000001d940 0x3bb0 *(.data .data.* .gnu.linkonce.d.*) - .data 0x000000000001d960 0x0 boot/head.o - .data 0x000000000001d960 0x28 init/main.o - *fill* 0x000000000001d988 0x18 - .data 0x000000000001d9a0 0x1350 kernel/kernel.o - 0x000000000001d9a0 sys_call_table - 0x000000000001db20 NR_syscalls - 0x000000000001eb40 current - 0x000000000001eb60 task - 0x000000000001ec60 stack_start - 0x000000000001ec68 current_DOR - .data 0x000000000001ecf0 0x0 mm/mm.o - *fill* 0x000000000001ecf0 0x10 - .data 0x000000000001ed00 0x60 fs/fs.o - 0x000000000001ed04 start_buffer - .data 0x000000000001ed60 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .data 0x000000000001ed60 0xcd kernel/blk_drv/blk_drv.a(floppy.o) - *fill* 0x000000000001ee2d 0x3 - .data 0x000000000001ee30 0x4 kernel/blk_drv/blk_drv.a(hd.o) - .data 0x000000000001ee34 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) - *fill* 0x000000000001ee34 0xc - .data 0x000000000001ee40 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o) - 0x000000000001ee40 tty_table - 0x0000000000021360 table_list - .data 0x0000000000021378 0x1 kernel/chr_drv/chr_drv.a(console.o) - .data 0x0000000000021379 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) - .data 0x0000000000021379 0x0 kernel/chr_drv/chr_drv.a(serial.o) - .data 0x0000000000021379 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) - *fill* 0x0000000000021379 0x7 - .data 0x0000000000021380 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .data 0x00000000000213a0 0x0 kernel/chr_drv/chr_drv.a(mouse.2.o) - .data 0x00000000000213a0 0x0 kernel/math/math.a(math_emulate.o) - .data 0x00000000000213a0 0x101 lib/lib.a(ctype.o) - 0x00000000000213a0 _ctype - .data 0x00000000000214a1 0x0 lib/lib.a(_exit.o) - .data 0x00000000000214a1 0x0 lib/lib.a(open.o) - .data 0x00000000000214a1 0x0 lib/lib.a(close.o) - .data 0x00000000000214a1 0x0 lib/lib.a(errno.o) - .data 0x00000000000214a1 0x0 lib/lib.a(write.o) - .data 0x00000000000214a1 0x0 lib/lib.a(dup.o) - .data 0x00000000000214a1 0x0 lib/lib.a(setsid.o) - .data 0x00000000000214a1 0x0 lib/lib.a(execve.o) - .data 0x00000000000214a1 0x0 lib/lib.a(wait.o) - .data 0x00000000000214a1 0x0 lib/lib.a(string.o) - *fill* 0x00000000000214a1 0x1f - .data 0x00000000000214c0 0x50 lib/lib.a(malloc.o) - 0x00000000000214c0 bucket_dir + .data 0x000000000001d940 0x0 boot/head.o + .data 0x000000000001d940 0x28 init/main.o + *fill* 0x000000000001d968 0x18 + .data 0x000000000001d980 0x1350 kernel/kernel.o + 0x000000000001d980 sys_call_table + 0x000000000001db00 NR_syscalls + 0x000000000001eb20 current + 0x000000000001eb40 task + 0x000000000001ec40 stack_start + 0x000000000001ec48 current_DOR + .data 0x000000000001ecd0 0x0 mm/mm.o + *fill* 0x000000000001ecd0 0x10 + .data 0x000000000001ece0 0x60 fs/fs.o + 0x000000000001ece4 start_buffer + .data 0x000000000001ed40 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .data 0x000000000001ed40 0xcd kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x000000000001ee0d 0x3 + .data 0x000000000001ee10 0x4 kernel/blk_drv/blk_drv.a(hd.o) + .data 0x000000000001ee14 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) + *fill* 0x000000000001ee14 0xc + .data 0x000000000001ee20 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x000000000001ee20 tty_table + 0x0000000000021340 table_list + .data 0x0000000000021358 0x1 kernel/chr_drv/chr_drv.a(console.o) + .data 0x0000000000021359 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .data 0x0000000000021359 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .data 0x0000000000021359 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + *fill* 0x0000000000021359 0x7 + .data 0x0000000000021360 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .data 0x0000000000021380 0x0 kernel/chr_drv/chr_drv.a(mouse.2.o) + .data 0x0000000000021380 0x0 kernel/math/math.a(math_emulate.o) + .data 0x0000000000021380 0x101 lib/lib.a(ctype.o) + 0x0000000000021380 _ctype + .data 0x0000000000021481 0x0 lib/lib.a(_exit.o) + .data 0x0000000000021481 0x0 lib/lib.a(open.o) + .data 0x0000000000021481 0x0 lib/lib.a(close.o) + .data 0x0000000000021481 0x0 lib/lib.a(errno.o) + .data 0x0000000000021481 0x0 lib/lib.a(write.o) + .data 0x0000000000021481 0x0 lib/lib.a(dup.o) + .data 0x0000000000021481 0x0 lib/lib.a(setsid.o) + .data 0x0000000000021481 0x0 lib/lib.a(execve.o) + .data 0x0000000000021481 0x0 lib/lib.a(wait.o) + .data 0x0000000000021481 0x0 lib/lib.a(string.o) + *fill* 0x0000000000021481 0x1f + .data 0x00000000000214a0 0x50 lib/lib.a(malloc.o) + 0x00000000000214a0 bucket_dir .data1 *(.data1) - 0x0000000000021510 _edata = . - 0x0000000000021510 PROVIDE (edata, .) - 0x0000000000021510 . = . - 0x0000000000021510 __bss_start = . + 0x00000000000214f0 _edata = . + 0x00000000000214f0 PROVIDE (edata, .) + 0x00000000000214f0 . = . + 0x00000000000214f0 __bss_start = . -.bss 0x0000000000021520 0x64f0 +.bss 0x0000000000021500 0x64f0 *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) - .bss 0x0000000000021520 0x0 boot/head.o - .bss 0x0000000000021520 0x40c init/main.o - *fill* 0x000000000002192c 0x14 - .bss 0x0000000000021940 0x768 kernel/kernel.o - 0x0000000000021940 jiffies - 0x0000000000021944 startup_time - 0x0000000000021948 last_task_used_math - 0x000000000002194c user_timer_list - 0x0000000000021c84 last_pid - 0x00000000000220a0 msg_que_fron - 0x00000000000220a4 msg_que_rear - *fill* 0x00000000000220a8 0x18 - .bss 0x00000000000220c0 0xf20 mm/mm.o - .bss 0x0000000000022fe0 0x710 fs/fs.o - 0x0000000000022fe0 inode_table - 0x00000000000236e0 nr_buffers - 0x00000000000236ec ROOT_DEV - *fill* 0x00000000000236f0 0x10 - .bss 0x0000000000023700 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x0000000000023700 wait_for_request - 0x0000000000023720 blk_dev - .bss 0x0000000000023758 0x25 kernel/blk_drv/blk_drv.a(floppy.o) - 0x0000000000023758 do_floppy - 0x000000000002375c selected - 0x0000000000023760 wait_on_floppy_select - *fill* 0x000000000002377d 0x3 - .bss 0x0000000000023780 0xb0 kernel/blk_drv/blk_drv.a(hd.o) - 0x0000000000023780 do_hd - 0x00000000000237a0 hd_info - .bss 0x0000000000023830 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x0000000000023830 rd_length - .bss 0x0000000000023834 0x14 kernel/chr_drv/chr_drv.a(tty_io.o) - *fill* 0x0000000000023848 0x18 - .bss 0x0000000000023860 0xac kernel/chr_drv/chr_drv.a(console.o) - 0x0000000000023860 beepcount - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(serial.o) - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(mouse.2.o) - .bss 0x000000000002390c 0x0 kernel/math/math.a(math_emulate.o) - .bss 0x000000000002390c 0x0 lib/lib.a(ctype.o) - .bss 0x000000000002390c 0x0 lib/lib.a(_exit.o) - .bss 0x000000000002390c 0x0 lib/lib.a(open.o) - .bss 0x000000000002390c 0x0 lib/lib.a(close.o) - .bss 0x000000000002390c 0x0 lib/lib.a(errno.o) - .bss 0x000000000002390c 0x0 lib/lib.a(write.o) - .bss 0x000000000002390c 0x0 lib/lib.a(dup.o) - .bss 0x000000000002390c 0x0 lib/lib.a(setsid.o) - .bss 0x000000000002390c 0x0 lib/lib.a(execve.o) - .bss 0x000000000002390c 0x0 lib/lib.a(wait.o) - .bss 0x000000000002390c 0x0 lib/lib.a(string.o) - .bss 0x000000000002390c 0x4 lib/lib.a(malloc.o) - 0x000000000002390c free_bucket_desc + .bss 0x0000000000021500 0x0 boot/head.o + .bss 0x0000000000021500 0x40c init/main.o + *fill* 0x000000000002190c 0x14 + .bss 0x0000000000021920 0x768 kernel/kernel.o + 0x0000000000021920 jiffies + 0x0000000000021924 startup_time + 0x0000000000021928 last_task_used_math + 0x000000000002192c user_timer_list + 0x0000000000021c64 last_pid + 0x0000000000022080 msg_que_fron + 0x0000000000022084 msg_que_rear + *fill* 0x0000000000022088 0x18 + .bss 0x00000000000220a0 0xf20 mm/mm.o + .bss 0x0000000000022fc0 0x710 fs/fs.o + 0x0000000000022fc0 inode_table + 0x00000000000236c0 nr_buffers + 0x00000000000236cc ROOT_DEV + *fill* 0x00000000000236d0 0x10 + .bss 0x00000000000236e0 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x00000000000236e0 wait_for_request + 0x0000000000023700 blk_dev + .bss 0x0000000000023738 0x25 kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000023738 do_floppy + 0x000000000002373c selected + 0x0000000000023740 wait_on_floppy_select + *fill* 0x000000000002375d 0x3 + .bss 0x0000000000023760 0xb0 kernel/blk_drv/blk_drv.a(hd.o) + 0x0000000000023760 do_hd + 0x0000000000023780 hd_info + .bss 0x0000000000023810 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x0000000000023810 rd_length + .bss 0x0000000000023814 0x14 kernel/chr_drv/chr_drv.a(tty_io.o) + *fill* 0x0000000000023828 0x18 + .bss 0x0000000000023840 0xac kernel/chr_drv/chr_drv.a(console.o) + 0x0000000000023840 beepcount + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(mouse.2.o) + .bss 0x00000000000238ec 0x0 kernel/math/math.a(math_emulate.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(ctype.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(_exit.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(open.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(close.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(errno.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(write.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(dup.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(setsid.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(execve.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(wait.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(string.o) + .bss 0x00000000000238ec 0x4 lib/lib.a(malloc.o) + 0x00000000000238ec free_bucket_desc *(COMMON) - *fill* 0x0000000000023910 0x10 - COMMON 0x0000000000023920 0x20 init/main.o - 0x0000000000023920 drive_info - COMMON 0x0000000000023940 0x3000 kernel/kernel.o - 0x0000000000023940 msg_que - 0x0000000000025940 user_stack - COMMON 0x0000000000026940 0xc40 fs/fs.o - 0x0000000000026940 hash_table - 0x0000000000026e20 super_block - 0x0000000000027180 file_table - COMMON 0x0000000000027580 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x0000000000027580 request - COMMON 0x0000000000027a00 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x0000000000027a00 rd_start - COMMON 0x0000000000027a04 0x1 lib/lib.a(ctype.o) - 0x0000000000027a04 _ctmp - *fill* 0x0000000000027a05 0x3 - COMMON 0x0000000000027a08 0x4 lib/lib.a(errno.o) - 0x0000000000027a08 errno - COMMON 0x0000000000027a0c 0x4 lib/lib.a(string.o) - 0x0000000000027a0c ___strtok - 0x0000000000027a10 . = ALIGN ((. != 0x0)?0x4:0x1) - 0x0000000000027a10 . = ALIGN (0x4) - 0x0000000000027a10 . = SEGMENT_START ("ldata-segment", .) - 0x0000000000027a10 . = ALIGN (0x4) - 0x0000000000027a10 _end = . - 0x0000000000027a10 PROVIDE (end, .) + *fill* 0x00000000000238f0 0x10 + COMMON 0x0000000000023900 0x20 init/main.o + 0x0000000000023900 drive_info + COMMON 0x0000000000023920 0x3000 kernel/kernel.o + 0x0000000000023920 msg_que + 0x0000000000025920 user_stack + COMMON 0x0000000000026920 0xc40 fs/fs.o + 0x0000000000026920 hash_table + 0x0000000000026e00 super_block + 0x0000000000027160 file_table + COMMON 0x0000000000027560 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000027560 request + COMMON 0x00000000000279e0 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x00000000000279e0 rd_start + COMMON 0x00000000000279e4 0x1 lib/lib.a(ctype.o) + 0x00000000000279e4 _ctmp + *fill* 0x00000000000279e5 0x3 + COMMON 0x00000000000279e8 0x4 lib/lib.a(errno.o) + 0x00000000000279e8 errno + COMMON 0x00000000000279ec 0x4 lib/lib.a(string.o) + 0x00000000000279ec ___strtok + 0x00000000000279f0 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x00000000000279f0 . = ALIGN (0x4) + 0x00000000000279f0 . = SEGMENT_START ("ldata-segment", .) + 0x00000000000279f0 . = ALIGN (0x4) + 0x00000000000279f0 _end = . + 0x00000000000279f0 PROVIDE (end, .) .stab *(.stab) @@ -946,98 +946,98 @@ LOAD lib/lib.a .debug_pubnames *(.debug_pubnames) -.debug_info 0x0000000000000000 0x18cb8 +.debug_info 0x0000000000000000 0x186f2 *(.debug_info .gnu.linkonce.wi.*) - .debug_info 0x0000000000000000 0xb9b init/main.o - .debug_info 0x0000000000000b9b 0x5680 kernel/kernel.o - .debug_info 0x000000000000621b 0xb2b mm/mm.o - .debug_info 0x0000000000006d46 0xaef6 fs/fs.o - .debug_info 0x0000000000011c3c 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_info 0x000000000001256e 0xc9f kernel/blk_drv/blk_drv.a(floppy.o) - .debug_info 0x000000000001320d 0xd5f kernel/blk_drv/blk_drv.a(hd.o) - .debug_info 0x0000000000013f6c 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_info 0x0000000000014a41 0xb71 kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_info 0x00000000000155b2 0xdcc kernel/chr_drv/chr_drv.a(console.o) - .debug_info 0x000000000001637e 0x85c kernel/chr_drv/chr_drv.a(serial.o) - .debug_info 0x0000000000016bda 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_info 0x0000000000017721 0x7b5 kernel/math/math.a(math_emulate.o) - .debug_info 0x0000000000017ed6 0x66 lib/lib.a(ctype.o) - .debug_info 0x0000000000017f3c 0x7e lib/lib.a(_exit.o) - .debug_info 0x0000000000017fba 0xd7 lib/lib.a(open.o) - .debug_info 0x0000000000018091 0x9e lib/lib.a(close.o) - .debug_info 0x000000000001812f 0x36 lib/lib.a(errno.o) - .debug_info 0x0000000000018165 0xd0 lib/lib.a(write.o) - .debug_info 0x0000000000018235 0x9e lib/lib.a(dup.o) - .debug_info 0x00000000000182d3 0x9c lib/lib.a(setsid.o) - .debug_info 0x000000000001836f 0xd2 lib/lib.a(execve.o) - .debug_info 0x0000000000018441 0xf4 lib/lib.a(wait.o) - .debug_info 0x0000000000018535 0x55e lib/lib.a(string.o) - .debug_info 0x0000000000018a93 0x225 lib/lib.a(malloc.o) - -.debug_abbrev 0x0000000000000000 0x4a10 + .debug_info 0x0000000000000000 0x59f init/main.o + .debug_info 0x000000000000059f 0x5680 kernel/kernel.o + .debug_info 0x0000000000005c1f 0xb2b mm/mm.o + .debug_info 0x000000000000674a 0xaef6 fs/fs.o + .debug_info 0x0000000000011640 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_info 0x0000000000011f72 0xc9f kernel/blk_drv/blk_drv.a(floppy.o) + .debug_info 0x0000000000012c11 0xd5f kernel/blk_drv/blk_drv.a(hd.o) + .debug_info 0x0000000000013970 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_info 0x0000000000014445 0xba7 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_info 0x0000000000014fec 0xdcc kernel/chr_drv/chr_drv.a(console.o) + .debug_info 0x0000000000015db8 0x85c kernel/chr_drv/chr_drv.a(serial.o) + .debug_info 0x0000000000016614 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_info 0x000000000001715b 0x7b5 kernel/math/math.a(math_emulate.o) + .debug_info 0x0000000000017910 0x66 lib/lib.a(ctype.o) + .debug_info 0x0000000000017976 0x7e lib/lib.a(_exit.o) + .debug_info 0x00000000000179f4 0xd7 lib/lib.a(open.o) + .debug_info 0x0000000000017acb 0x9e lib/lib.a(close.o) + .debug_info 0x0000000000017b69 0x36 lib/lib.a(errno.o) + .debug_info 0x0000000000017b9f 0xd0 lib/lib.a(write.o) + .debug_info 0x0000000000017c6f 0x9e lib/lib.a(dup.o) + .debug_info 0x0000000000017d0d 0x9c lib/lib.a(setsid.o) + .debug_info 0x0000000000017da9 0xd2 lib/lib.a(execve.o) + .debug_info 0x0000000000017e7b 0xf4 lib/lib.a(wait.o) + .debug_info 0x0000000000017f6f 0x55e lib/lib.a(string.o) + .debug_info 0x00000000000184cd 0x225 lib/lib.a(malloc.o) + +.debug_abbrev 0x0000000000000000 0x49c6 *(.debug_abbrev) - .debug_abbrev 0x0000000000000000 0x253 init/main.o - .debug_abbrev 0x0000000000000253 0x11f5 kernel/kernel.o - .debug_abbrev 0x0000000000001448 0x20b mm/mm.o - .debug_abbrev 0x0000000000001653 0x1c1d fs/fs.o - .debug_abbrev 0x0000000000003270 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_abbrev 0x00000000000033d9 0x27d kernel/blk_drv/blk_drv.a(floppy.o) - .debug_abbrev 0x0000000000003656 0x23c kernel/blk_drv/blk_drv.a(hd.o) - .debug_abbrev 0x0000000000003892 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_abbrev 0x0000000000003a3a 0x279 kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_abbrev 0x0000000000003cb3 0x26b kernel/chr_drv/chr_drv.a(console.o) - .debug_abbrev 0x0000000000003f1e 0x175 kernel/chr_drv/chr_drv.a(serial.o) - .debug_abbrev 0x0000000000004093 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_abbrev 0x0000000000004220 0x163 kernel/math/math.a(math_emulate.o) - .debug_abbrev 0x0000000000004383 0x3e lib/lib.a(ctype.o) - .debug_abbrev 0x00000000000043c1 0x51 lib/lib.a(_exit.o) - .debug_abbrev 0x0000000000004412 0x97 lib/lib.a(open.o) - .debug_abbrev 0x00000000000044a9 0x75 lib/lib.a(close.o) - .debug_abbrev 0x000000000000451e 0x2c lib/lib.a(errno.o) - .debug_abbrev 0x000000000000454a 0xa1 lib/lib.a(write.o) - .debug_abbrev 0x00000000000045eb 0x75 lib/lib.a(dup.o) - .debug_abbrev 0x0000000000004660 0x73 lib/lib.a(setsid.o) - .debug_abbrev 0x00000000000046d3 0x85 lib/lib.a(execve.o) - .debug_abbrev 0x0000000000004758 0xb6 lib/lib.a(wait.o) - .debug_abbrev 0x000000000000480e 0xe9 lib/lib.a(string.o) - .debug_abbrev 0x00000000000048f7 0x119 lib/lib.a(malloc.o) - -.debug_line 0x0000000000000000 0x4c66 + .debug_abbrev 0x0000000000000000 0x209 init/main.o + .debug_abbrev 0x0000000000000209 0x11f5 kernel/kernel.o + .debug_abbrev 0x00000000000013fe 0x20b mm/mm.o + .debug_abbrev 0x0000000000001609 0x1c1d fs/fs.o + .debug_abbrev 0x0000000000003226 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_abbrev 0x000000000000338f 0x27d kernel/blk_drv/blk_drv.a(floppy.o) + .debug_abbrev 0x000000000000360c 0x23c kernel/blk_drv/blk_drv.a(hd.o) + .debug_abbrev 0x0000000000003848 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_abbrev 0x00000000000039f0 0x279 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_abbrev 0x0000000000003c69 0x26b kernel/chr_drv/chr_drv.a(console.o) + .debug_abbrev 0x0000000000003ed4 0x175 kernel/chr_drv/chr_drv.a(serial.o) + .debug_abbrev 0x0000000000004049 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_abbrev 0x00000000000041d6 0x163 kernel/math/math.a(math_emulate.o) + .debug_abbrev 0x0000000000004339 0x3e lib/lib.a(ctype.o) + .debug_abbrev 0x0000000000004377 0x51 lib/lib.a(_exit.o) + .debug_abbrev 0x00000000000043c8 0x97 lib/lib.a(open.o) + .debug_abbrev 0x000000000000445f 0x75 lib/lib.a(close.o) + .debug_abbrev 0x00000000000044d4 0x2c lib/lib.a(errno.o) + .debug_abbrev 0x0000000000004500 0xa1 lib/lib.a(write.o) + .debug_abbrev 0x00000000000045a1 0x75 lib/lib.a(dup.o) + .debug_abbrev 0x0000000000004616 0x73 lib/lib.a(setsid.o) + .debug_abbrev 0x0000000000004689 0x85 lib/lib.a(execve.o) + .debug_abbrev 0x000000000000470e 0xb6 lib/lib.a(wait.o) + .debug_abbrev 0x00000000000047c4 0xe9 lib/lib.a(string.o) + .debug_abbrev 0x00000000000048ad 0x119 lib/lib.a(malloc.o) + +.debug_line 0x0000000000000000 0x4c33 *(.debug_line .debug_line.* .debug_line_end) - .debug_line 0x0000000000000000 0x1f5 init/main.o - .debug_line 0x00000000000001f5 0x1083 kernel/kernel.o - .debug_line 0x0000000000001278 0x276 mm/mm.o - .debug_line 0x00000000000014ee 0x1fa2 fs/fs.o - .debug_line 0x0000000000003490 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_line 0x0000000000003627 0x24c kernel/blk_drv/blk_drv.a(floppy.o) - .debug_line 0x0000000000003873 0x2bf kernel/blk_drv/blk_drv.a(hd.o) - .debug_line 0x0000000000003b32 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_line 0x0000000000003c92 0x373 kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_line 0x0000000000004005 0x3b7 kernel/chr_drv/chr_drv.a(console.o) - .debug_line 0x00000000000043bc 0xd9 kernel/chr_drv/chr_drv.a(serial.o) - .debug_line 0x0000000000004495 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_line 0x0000000000004670 0xe1 kernel/math/math.a(math_emulate.o) - .debug_line 0x0000000000004751 0x28 lib/lib.a(ctype.o) - .debug_line 0x0000000000004779 0x39 lib/lib.a(_exit.o) - .debug_line 0x00000000000047b2 0x62 lib/lib.a(open.o) - .debug_line 0x0000000000004814 0x5c lib/lib.a(close.o) - .debug_line 0x0000000000004870 0x28 lib/lib.a(errno.o) - .debug_line 0x0000000000004898 0x76 lib/lib.a(write.o) - .debug_line 0x000000000000490e 0x5a lib/lib.a(dup.o) - .debug_line 0x0000000000004968 0x77 lib/lib.a(setsid.o) - .debug_line 0x00000000000049df 0x5d lib/lib.a(execve.o) - .debug_line 0x0000000000004a3c 0x7a lib/lib.a(wait.o) - .debug_line 0x0000000000004ab6 0xc6 lib/lib.a(string.o) - .debug_line 0x0000000000004b7c 0xea lib/lib.a(malloc.o) + .debug_line 0x0000000000000000 0x1b9 init/main.o + .debug_line 0x00000000000001b9 0x1083 kernel/kernel.o + .debug_line 0x000000000000123c 0x276 mm/mm.o + .debug_line 0x00000000000014b2 0x1fa2 fs/fs.o + .debug_line 0x0000000000003454 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_line 0x00000000000035eb 0x24c kernel/blk_drv/blk_drv.a(floppy.o) + .debug_line 0x0000000000003837 0x2bf kernel/blk_drv/blk_drv.a(hd.o) + .debug_line 0x0000000000003af6 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_line 0x0000000000003c56 0x37c kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_line 0x0000000000003fd2 0x3b7 kernel/chr_drv/chr_drv.a(console.o) + .debug_line 0x0000000000004389 0xd9 kernel/chr_drv/chr_drv.a(serial.o) + .debug_line 0x0000000000004462 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_line 0x000000000000463d 0xe1 kernel/math/math.a(math_emulate.o) + .debug_line 0x000000000000471e 0x28 lib/lib.a(ctype.o) + .debug_line 0x0000000000004746 0x39 lib/lib.a(_exit.o) + .debug_line 0x000000000000477f 0x62 lib/lib.a(open.o) + .debug_line 0x00000000000047e1 0x5c lib/lib.a(close.o) + .debug_line 0x000000000000483d 0x28 lib/lib.a(errno.o) + .debug_line 0x0000000000004865 0x76 lib/lib.a(write.o) + .debug_line 0x00000000000048db 0x5a lib/lib.a(dup.o) + .debug_line 0x0000000000004935 0x77 lib/lib.a(setsid.o) + .debug_line 0x00000000000049ac 0x5d lib/lib.a(execve.o) + .debug_line 0x0000000000004a09 0x7a lib/lib.a(wait.o) + .debug_line 0x0000000000004a83 0xc6 lib/lib.a(string.o) + .debug_line 0x0000000000004b49 0xea lib/lib.a(malloc.o) .debug_frame *(.debug_frame) -.debug_str 0x0000000000000000 0x22d6 +.debug_str 0x0000000000000000 0x230a *(.debug_str) - .debug_str 0x0000000000000000 0x3bd init/main.o - 0x46e (size before relaxing) - .debug_str 0x00000000000003bd 0x966 kernel/kernel.o + .debug_str 0x0000000000000000 0x1c5 init/main.o + 0x212 (size before relaxing) + .debug_str 0x00000000000001c5 0xb5e kernel/kernel.o 0x27de (size before relaxing) .debug_str 0x0000000000000d23 0x181 mm/mm.o 0x4dc (size before relaxing) @@ -1051,39 +1051,39 @@ LOAD lib/lib.a 0x5e4 (size before relaxing) .debug_str 0x0000000000001c75 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o) 0x586 (size before relaxing) - .debug_str 0x0000000000001cb8 0x180 kernel/chr_drv/chr_drv.a(tty_io.o) - 0x568 (size before relaxing) - .debug_str 0x0000000000001e38 0x1b9 kernel/chr_drv/chr_drv.a(console.o) + .debug_str 0x0000000000001cb8 0x1b4 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x59c (size before relaxing) + .debug_str 0x0000000000001e6c 0x1b9 kernel/chr_drv/chr_drv.a(console.o) 0x5b3 (size before relaxing) - .debug_str 0x0000000000001ff1 0x1a kernel/chr_drv/chr_drv.a(serial.o) + .debug_str 0x0000000000002025 0x1a kernel/chr_drv/chr_drv.a(serial.o) 0x3f8 (size before relaxing) - .debug_str 0x000000000000200b 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_str 0x000000000000203f 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o) 0x4a3 (size before relaxing) - .debug_str 0x0000000000002096 0x6c kernel/math/math.a(math_emulate.o) + .debug_str 0x00000000000020ca 0x6c kernel/math/math.a(math_emulate.o) 0x38e (size before relaxing) - .debug_str 0x0000000000002102 0x89 lib/lib.a(ctype.o) + .debug_str 0x0000000000002136 0x89 lib/lib.a(ctype.o) 0xb2 (size before relaxing) - .debug_str 0x000000000000218b 0x8 lib/lib.a(_exit.o) + .debug_str 0x00000000000021bf 0x8 lib/lib.a(_exit.o) 0xf0 (size before relaxing) .debug_str 0x0000000000000000 0x8 lib/lib.a(open.o) 0x100 (size before relaxing) - .debug_str 0x0000000000002193 0x8 lib/lib.a(close.o) + .debug_str 0x00000000000021c7 0x8 lib/lib.a(close.o) 0xf2 (size before relaxing) - .debug_str 0x000000000000219b 0x8 lib/lib.a(errno.o) + .debug_str 0x00000000000021cf 0x8 lib/lib.a(errno.o) 0x8f (size before relaxing) .debug_str 0x0000000000000000 0x8 lib/lib.a(write.o) 0xfe (size before relaxing) - .debug_str 0x00000000000021a3 0x6 lib/lib.a(dup.o) + .debug_str 0x00000000000021d7 0x6 lib/lib.a(dup.o) 0xea (size before relaxing) - .debug_str 0x00000000000021a9 0x9 lib/lib.a(setsid.o) + .debug_str 0x00000000000021dd 0x9 lib/lib.a(setsid.o) 0xfa (size before relaxing) - .debug_str 0x00000000000021b2 0x9 lib/lib.a(execve.o) + .debug_str 0x00000000000021e6 0x9 lib/lib.a(execve.o) 0x103 (size before relaxing) - .debug_str 0x00000000000021bb 0x11 lib/lib.a(wait.o) + .debug_str 0x00000000000021ef 0x11 lib/lib.a(wait.o) 0x110 (size before relaxing) - .debug_str 0x00000000000021cc 0x93 lib/lib.a(string.o) + .debug_str 0x0000000000002200 0x93 lib/lib.a(string.o) 0x143 (size before relaxing) - .debug_str 0x000000000000225f 0x77 lib/lib.a(malloc.o) + .debug_str 0x0000000000002293 0x77 lib/lib.a(malloc.o) 0x15e (size before relaxing) .debug_loc diff --git a/linux-0.11-lab/0/linux/fs/fs.o b/linux-0.11-lab/0/linux/fs/fs.o index b25b603a70e16621f31b299982389ca235675929..888ab03984c5f20050aeddd7642b61645d8399ff 100644 GIT binary patch delta 723 zcmX}p!D|yi6bA4&Gdp9J$svadIaEkNMQhZpRvT;8s?|->B&IcmZks}Dve6PDVgd>t zDjq$E2xS%j0IyQSAYOX$APAlW@1kb~q2S5)ZAmY?zxU0|+nt%MZFg(ief&<$`4<97 zM7mfeQgg7QizW6voY0Su--MI;2lCoqLzFU`@Inwh^TpB`3}>YYikt-~JZYX_VO)$$ z^AEG*A}7tu-I3@(UMyX~?2MyuzxRqoY4-0Gb!p!27SV^i*c_3L z{=+@oF9qI#X>%j#?0Y@S$pSx|OwjKXL?A^w`aCPzb$p3z_d%1?DD2oCd<;(5*7`kC zSvYB1jV`IWyiNP!#Sy|i1QYQG6R-kg>8Gik$ ph_C#5e?!dkm|GQx#cJeL#e``0?^H!^$6bCyB$C{y|I?S{^naD{gQ)-j delta 723 zcmX}p&1(}u7zXfnW_HFblS2*_a;T7kiq@#9RvT;8s?|->ByMX8O^IO5ZnUfrF#!b+ z6^|Z7gtCf%fLAGE5HG!W5Cl(xchR$gAoS$>Y)Mb^d!PB9+1zqBx7^3?#DaG&l0>8{ zH6pbDJGxS3FTyGP2>Eq5t$!eI{53=wvjHzf@iR}XoI-bAnr4NwCW?YIPcShlCZ*ZN z=%gr0^Kz#r-d7SUmoU02%><_2K;cXC5d)Hw4rp(HlO+%IK5 zx(Rp%>Fjwuk4FFDRox}FlZyu3vS>;X#GmIy)WS|=dk+Fq9pL zw0oqE!WrA?c1azBN7$SnhqL+xZ=njWG|?!fqxgAMjIE=G^Z{Hvc^}92dIeIak*D-H z@+mmY`2?vVoY5ZM;S4;&`3X|faMrf(pCok_9{I<;eH#gJ|uM>`5_yw zw}(aEhQZJU8{Qgv(uO@==mI7bIcLwpGn}uHx(LtmTz2wHbDWd9jJRa+D05(yk4fqZ z=-YsK6>QkU9kvHA+uO_%*s^znKB+Q%Q@glpC5pe-#Hxtm>AHBz-}9+1a@_o?i?7_g lza|#B&-KMY(Toeem=eL@jxYNE+~yl1ktXU4etNQ&{SV4Hhc*BJ diff --git a/linux-0.11-lab/0/linux/fs/mysystem_call.o b/linux-0.11-lab/0/linux/fs/mysystem_call.o index 8796801ba2d9c1e9274496f6a4108f3d846cb48a..0f0be5e74a0ad118db7bf616047b0f82d39c29e6 100644 GIT binary patch delta 704 zcmX}pO=}ZT6b9fk_p6C#0uj3CB48?h8*8eqjas$U7^@VlF@;W=ODKP#q`i}#9}a>itx z^qF0~iXSg3_ZB5 zG9x4M$bXX9l!L){7bvfnPUm|eUPGKb?vg$M8{ULZ!a0sN9+IxWKF6Je^eMQ=alcP` z0v;7hei|OLf8_zS^Eiy`@(yv-enR>(@?#urcZNlUqwdgEj_wUT z#Ze-Iu3$q=a`7BIEBOZLd3a9tinAN4OHTS4;swT;)WJphOw!lECGH9vV2h8(;v4V^ z-xn@`AwTGDlD-MA+b#UpTR~dqwil%D__3@~=V4*4bR^f=Zp1vu}c)h{5 T!k7K|P&Rw}h}whq2m1OS1o?El delta 704 zcmX}p&ubGw6bJCP^Jb=rvw;Xb^bjx=e;aG6t&Li>)flT3tTBZqq+reNma;;`ZP8ot zs5e=Z3VId134z``c0$eFJYSOm+6FQ}>5-A_ zVOBk&{3ls-IUansZRG{&bUyClHRO`V0r3e~yG{5coO98}L*feTyQr5CpMr}n>i3B! z;8C&Ur{OX4S6;x?*M_J>ew_Zvk8h(v=7p@B9gTKLQYAizJZD}ZpMibJCy8rt(F||~ z=iyPw&k$dL$6W8xS>lUu$%Xj1S-5QGaTwX<9dhB?6XMIrkGXKWH!LbH42G_{@cz(K zE=*+56>O+UE}nyDCEp;Phv#IkIJ=>`RZobq|6~;+yb2vxWb9D^BZf&5P4_?zvpeq+gb`>3@~=V4*4bR^f=(PTv$}ykPLH T@MV9#Bb&W_MC*h12m1UE7J+z4 diff --git a/linux-0.11-lab/0/linux/init/main.c b/linux-0.11-lab/0/linux/init/main.c index 2c526ff..9398c3f 100644 --- a/linux-0.11-lab/0/linux/init/main.c +++ b/linux-0.11-lab/0/linux/init/main.c @@ -217,7 +217,5 @@ void init(void) } void print_nr(int sid) -{ - if (sid > 86) - printk(" --syscall: sid=%d, pid=%d\n", sid, current->pid); +{; } diff --git a/linux-0.11-lab/0/linux/init/main.c.rej b/linux-0.11-lab/0/linux/init/main.c.rej new file mode 100644 index 0000000..375d6cd --- /dev/null +++ b/linux-0.11-lab/0/linux/init/main.c.rej @@ -0,0 +1,12 @@ +--- init/main.c 2016-08-08 09:40:13.000000000 +0800 ++++ init/main.c 2021-07-06 14:16:56.000000000 +0800 +@@ -208,3 +208,9 @@ + } + _exit(0); /* NOTE! _exit, not exit() */ + } ++ ++void print_nr(int sid) ++{ ++ if (sid > 86) ++ printk(" --syscall: sid=%d, pid=%d\n", sid, current->pid); ++} diff --git a/linux-0.11-lab/0/linux/init/main.o b/linux-0.11-lab/0/linux/init/main.o index a674bc4e2f49065c133fef5c7b77df264b1d8209..b7b0dd0bdd3f816a99cd56a7259df7982ce5b25e 100644 GIT binary patch delta 3377 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 Xf_Di1mEaLU?y+hA--5MRpUD3&*I=S( 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 index 86085dd765a3568af03234e1ffa4ddb00ae09702..e8afe6b9da87292d9031194b7a7bb4d22fb791e5 100644 GIT binary patch delta 70 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 MKI7?nGsDD2oIX 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 delta 4819 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 diff --git a/linux-0.11-lab/0/linux/kernel/math/math.a b/linux-0.11-lab/0/linux/kernel/math/math.a index 3a0b5513775efdf6c95fcf23d60ce6b96cd5c0ff..d852aec567a4c67f0507f226161d499259e3756a 100644 GIT binary patch delta 27 dcmaE0{J?mE44b8afrW+fM5QPwYhzQKBmjAW2o3-M delta 27 dcmaE0{J?mE44Z|Sg@J*|M5QPwYhzQKBmjAU2nqlI diff --git a/linux-0.11-lab/0/linux/kernel/system_call.s b/linux-0.11-lab/0/linux/kernel/system_call.s index 9dab7b8..1964701 100644 --- a/linux-0.11-lab/0/linux/kernel/system_call.s +++ b/linux-0.11-lab/0/linux/kernel/system_call.s @@ -1,3 +1,4 @@ + /* * linux/kernel/system_call.s * diff --git a/linux-0.11-lab/0/linux/kernel/system_call.s.rej b/linux-0.11-lab/0/linux/kernel/system_call.s.rej new file mode 100644 index 0000000..438b7a7 --- /dev/null +++ b/linux-0.11-lab/0/linux/kernel/system_call.s.rej @@ -0,0 +1,14 @@ +--- kernel/system_call.s 2015-09-03 20:21:09.000000000 +0800 ++++ kernel/system_call.s 2021-07-06 14:18:56.000000000 +0800 +@@ -91,6 +91,11 @@ + mov %dx,%es + movl $0x17,%edx # fs points to local data space + mov %dx,%fs ++ ++ pushl %eax #by wyj ++ call print_nr ++ popl %eax ++ + call sys_call_table(,%eax,4) + pushl %eax + movl current,%eax diff --git a/linux-0.11-lab/0/linux/lib/lib.a b/linux-0.11-lab/0/linux/lib/lib.a index c9062adf76204bed9f6fddfc53e15cdd9f95a01e..05fa7381dd716bc773c7651327fbaf1be1cd1fcd 100644 GIT binary patch delta 185 zcmX@t!*s5PX@U%!rGbHkg~>*xD~u4P@#F+)vCTqE6W9@a@y+`=nK@v50XK=w4+N_? zq5RDW(o9gc30QBP${kjSoXO?{tywU+O(w6PMwo2=U?T++-Yno&24e%Yi*H`+AIt^S S4sl8pha@Z5m7C>@^@RZdlQ4Gx delta 185 zcmX@t!*s5PX@U%!g_)(Px%oz=D~v# + +#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; + + /*if (current->pid > 5) + printk(" --do_no_page: address=%x, pid=%d\n", address, current->pid);*/ + + 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 ; ipid > 5) ++ printk(" --do_no_page: address=%x, pid=%d\n", address, current->pid); ++ + address &= 0xfffff000; + tmp = address - current->start_code; + if (!current->executable || tmp >= current->end_data) { diff --git a/linux-0.11-lab/0/linux/tools/system b/linux-0.11-lab/0/linux/tools/system index b70d186de579e7d4c7c4c9d6a8cc4d7f5227a289..d81b861f2a8dea5965425f7146dfc7bb76b42014 100644 GIT binary patch delta 88033 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 delta 89346 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

W3I7xL^*YJzWDO8sLk=SVmo zCHa@CAgjdmBgWzITzyvGVQq#*Di;v_l7N0+821I5jlE0S2Se&Dp?xGtEm#bklt3&# zjCA7vTSUkHoJ7tLNlSXm41++(;BwpAw%SfAriTT zs{YHZd}U{~b$e07HCe9FTRT&$v3`u2jh5H;Rg`}SJF*0?&Di1W-UUaOHbKl8si$NCbxi3of$|O} zLoFuykF$Ev%FYH!fd1p19-_0QL}MjKtsv18E>n7Rz!w`xq{WoRL%Ja*>;_eS**%3| zDZ+>zr{FxlRa8fW1LO}9UkbiqRu6?7GIX}oJqe}1Mh-}SUbryxGIV@F4e&O38qo^? zuTh*lh-^<5z1LzIIT*HicXDMbTGT9lccup)fp8E7AI8I`Bham%=a>+K)ZAfej6wX9 z)W}SERw&MW^x)&h<3tgBm__iRpAt1Q?}VxTG6Z3_(~26f2MCiPNC1T(Ooku<2tlG# z)V94T1YvpzVxXz^z+pwe(RrXAa4(6UG2nOwA^~0j zM}Swr5%46kSTZT2IY0&+MEeDJ1snnMNoFQBWnh2|IOwOFK>;%0AXnJ~){x8`${QCT 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 diff --git a/linux-0.11-lab/b/bird.c b/linux-0.11-lab/b/bird.c index a53720a..f26e73c 100644 --- a/linux-0.11-lab/b/bird.c +++ b/linux-0.11-lab/b/bird.c @@ -10,7 +10,7 @@ #define MAX_BARRIER 20 -#define CLOCK_TRIGGER 400 +#define CLOCK_TRIGGER 20 #define DROP_PER_TRIGGER 1 #define UP_PER_CLICK 10 #define LEFT_PER_TRIGGER 1 @@ -127,9 +127,9 @@ int main() init_graphics(); /*Graphical interface*/ if(init_all()!=0)/*initialize*/ - {printf("bird error 1\n");return -1;} + {/*printf("bird error 1\n");*/return -1;} while(1) - { //sleep(1); + { /*sleep(1);*/ get_message(&msg); if(msg.mid<0) continue; @@ -138,7 +138,7 @@ int main() else {bird.y += DROP_PER_TRIGGER;} if(paint_all() != 0) - {printf("bird error 2\n");return -1;} + {/*printf("bird error 2\n");*/return -1;} for (i = fron; i != rear; i = (i+1)%MAX_BARRIER) /*Determine if the game has failed*/ if (barrier[i].x < bird.x+bird.dx && bird.x < barrier[i].x+barrier[i].dx) if (barrier[i].y < bird.y+bird.dy && bird.y < barrier[i].y+barrier[i].dy) diff --git a/linux-0.11-lab/bochsout.txt b/linux-0.11-lab/bochsout.txt index a24074f..f3298dc 100644 --- a/linux-0.11-lab/bochsout.txt +++ b/linux-0.11-lab/bochsout.txt @@ -31,7 +31,7 @@ 00000000000i[ ] Sound support: no 00000000000i[ ] USB support: no 00000000000i[ ] VGA extension support: vbe -00000000000i[MEM0 ] allocated memory at 0xb5852008. after alignment, vector=0xb5853000 +00000000000i[MEM0 ] allocated memory at 0xb5888008. after alignment, vector=0xb5889000 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') @@ -42,7 +42,7 @@ 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: Sun Jul 3 18:58:25 2022 (time0=1656871105) +00000000000i[CMOS ] Setting initial clock to: Mon Jul 4 03:19:14 2022 (time0=1656901154) 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 @@ -60,7 +60,7 @@ 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.WB8N6e' +00000000000i[IMG ] 'vvfat' disk opened: directory is 'b/', redolog is 'b//vvfat.dir.KIuras' 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 @@ -186,10 +186,10 @@ 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 -00002706255i[XGUI ] charmap update. Font is 9 x 16 00005872240i[BIOS ] IDE time out +00005918880i[XGUI ] charmap update. Font is 9 x 16 00051753879i[BIOS ] Booting from 0000:7c00 -00096956900i[FLOPPY] partial read() on floppy image returns 176/512 +00096956900i[FLOPPY] partial read() on floppy image returns 144/512 00097123565i[FLOPPY] read() on floppy image returns 0 00097290230i[FLOPPY] read() on floppy image returns 0 00097456895i[FLOPPY] read() on floppy image returns 0 @@ -307,29 +307,29 @@ 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 -00466849828i[FLOPPY] controller reset in software -00474778409i[FLOPPY] io_write: config control register: 0x00 -01161045000i[XGUI ] Mouse capture on -04416915000i[ ] cpu loop quit, shutting down simulator -04416915000i[CPU0 ] CPU is in protected mode (active) -04416915000i[CPU0 ] CS.mode = 32 bit -04416915000i[CPU0 ] SS.mode = 32 bit -04416915000i[CPU0 ] EFER = 0x00000000 -04416915000i[CPU0 ] | EAX=00fc1000 EBX=00090080 ECX=000055f0 EDX=00000000 -04416915000i[CPU0 ] | ESP=0001eaec EBP=0002692c ESI=000900a0 EDI=00023940 -04416915000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df IF tf sf zf AF pf cf -04416915000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D -04416915000i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 00ffffff 1 1 -04416915000i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 00ffffff 1 1 -04416915000i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 00ffffff 1 1 -04416915000i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 00ffffff 1 1 -04416915000i[CPU0 ] | FS:0017( 0002| 1| 3) 00000000 0009ffff 1 1 -04416915000i[CPU0 ] | GS:0017( 0002| 1| 3) 00000000 0009ffff 1 1 -04416915000i[CPU0 ] | EIP=00006dce (00006dce) -04416915000i[CPU0 ] | CR0=0x8000001b CR2=0x0805740c -04416915000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000 -04416915000i[CPU0 ] 0x00006dce>> mov eax, dword ptr ss:[esp+16] : 8B442410 -04416915000i[CMOS ] Last time is 1656871399 (Sun Jul 3 19:03:19 2022) -04416915000i[XGUI ] Exit -04416915000i[ ] restoring default signal behavior -04416915000i[SIM ] quit_sim called with exit code 1 +00256196027i[FLOPPY] controller reset in software +00264175642i[FLOPPY] io_write: config control register: 0x00 +00635370000i[XGUI ] Mouse capture on +01277235000i[ ] cpu loop quit, shutting down simulator +01277235000i[CPU0 ] CPU is in protected mode (active) +01277235000i[CPU0 ] CS.mode = 32 bit +01277235000i[CPU0 ] SS.mode = 32 bit +01277235000i[CPU0 ] EFER = 0x00000000 +01277235000i[CPU0 ] | EAX=000000c8 EBX=000011e4 ECX=00000000 EDX=00000000 +01277235000i[CPU0 ] | ESP=00fadfac EBP=03fffed8 ESI=00000000 EDI=00023920 +01277235000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df IF tf SF zf af pf CF +01277235000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D +01277235000i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 00ffffff 1 1 +01277235000i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 00ffffff 1 1 +01277235000i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 00ffffff 1 1 +01277235000i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 00ffffff 1 1 +01277235000i[CPU0 ] | FS:0017( 0002| 1| 3) 10000000 03ffffff 1 1 +01277235000i[CPU0 ] | GS:0017( 0002| 1| 3) 10000000 03ffffff 1 1 +01277235000i[CPU0 ] | EIP=0000a891 (0000a891) +01277235000i[CPU0 ] | CR0=0x8000001b CR2=0x10001000 +01277235000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000 +01277235000i[CPU0 ] 0x0000a891>> mov edx, dword ptr ss:[esp+28] : 8B54241C +01277235000i[CMOS ] Last time is 1656901239 (Mon Jul 4 03:20:39 2022) +01277235000i[XGUI ] Exit +01277235000i[ ] restoring default signal behavior +01277235000i[SIM ] quit_sim called with exit code 1 diff --git a/linux-0.11-lab/cur/linux/-p2.orig b/linux-0.11-lab/cur/linux/-p2.orig new file mode 100644 index 0000000..e69de29 diff --git a/linux-0.11-lab/cur/linux/Image b/linux-0.11-lab/cur/linux/Image index cb1654e45afe90ee4ab038763e104c6b63f957b0..afc995b42776e46fe187ca797e3df91b6bfa1710 100644 GIT binary patch delta 27949 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 delta 27992 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 ZUq!r!6}&}!5*`uzfDHEPh$qwO{{_9!EU5qh diff --git a/linux-0.11-lab/cur/linux/System.map b/linux-0.11-lab/cur/linux/System.map index 9ea110b..c271942 100644 --- a/linux-0.11-lab/cur/linux/System.map +++ b/linux-0.11-lab/cur/linux/System.map @@ -27,585 +27,588 @@ 0000693b t printf 0000698a T init 00006c02 T print_nr -00006c34 T show_task -00006cb9 T show_stat -00006cff T math_state_restore -00006d5d T schedule -00006f0f T sys_pause -00006f25 T sleep_on -00006f84 T interruptible_sleep_on -0000703f T ticks_to_floppy_on -0000710a T floppy_on -00007139 T floppy_off -00007149 T do_floppy_timer -00007341 T sys_timercreate -000073c2 T do_timer -000075a5 T sys_alarm -00007624 T sys_getpid -00007630 T sys_getppid -0000763c T sys_getuid -0000764b T sys_geteuid -0000765b T sys_getgid -0000766b T sys_getegid -0000767a T sys_nice -000076a5 T sched_init -00007834 t bad_sys_call -0000783c t reschedule -00007848 T system_call -00007883 t ret_from_sys_call -000078cc T coprocessor_error -000078ee T device_not_available -00007928 T timer_interrupt -00007960 T sys_execve -00007970 T sys_execve2 -00007980 T sys_fork -00007998 T hd_interrupt -000079d4 T floppy_interrupt -00007a0a T parallel_interrupt -00007a11 t _get_base -00007a43 t die -00007c25 T do_double_fault -00007c48 T do_general_protection -00007c6b T do_divide_error -00007c8e T do_int3 -00007d56 T do_nmi -00007d79 T do_debug -00007d9c T do_overflow -00007dbf T do_bounds -00007de2 T do_invalid_op -00007e05 T do_device_not_available -00007e28 T do_coprocessor_segment_overrun -00007e4b T do_invalid_TSS -00007e6e T do_segment_not_present -00007e91 T do_stack_segment -00007eb4 T do_coprocessor_error -00007ee8 T do_reserved -00007f0b T trap_init -000081ef T divide_error -000081f4 t no_error_code -00008224 T debug -0000822b T nmi -00008232 T int3 -00008239 T overflow -00008240 T bounds -00008247 T invalid_op -0000824e T coprocessor_segment_overrun -00008255 T reserved -0000825c T irq13 -00008271 T double_fault -00008276 t error_code -000082a8 T invalid_TSS -000082af T segment_not_present -000082b6 T stack_segment -000082bd T general_protection -000082c4 t _get_base -000082f6 T verify_area -0000835d T copy_mem -000084b7 T copy_process -00008964 T find_empty_process -000089f8 T panic -00008a33 T printk -00008a84 t skip_atoi -00008adf t number -00008d50 T vsprintf -000091dc t get_fs_long -000091f2 t put_fs_byte -0000920a t put_fs_long -00009216 T sys_ftime -0000921c T sys_break -00009222 T sys_ptrace -00009228 T sys_stty -0000922e T sys_gtty -00009234 T sys_rename -0000923a T sys_prof -00009240 T sys_setregid -000092f9 T sys_setgid -00009390 T sys_acct -00009396 T sys_phys -0000939c T sys_lock -000093a2 T sys_mpx -000093a8 T sys_ulimit -000093ae T sys_time -0000940a T sys_setreuid -000094ec T sys_setuid -00009581 T sys_stime -000095d7 T sys_times -00009677 T sys_brk -000096b9 T sys_setpgid -00009792 T sys_getpgrp -0000979e T sys_setsid -00009818 T sys_getgroups -0000981e T sys_setgroups -00009824 T sys_uname -0000988d T sys_sethostname -00009893 T sys_getrlimit -00009899 T sys_setrlimit -0000989f T sys_getrusage -000098a5 T sys_gettimeofday -000098ab T sys_settimeofday -000098b1 T sys_umask -000098e4 t _get_base -00009916 t put_fs_long -00009922 T release -00009986 t send_sig -00009a05 t kill_session -00009a5f T sys_kill -00009c0f t tell_father -00009c99 T do_exit -00009ecd T sys_exit -00009ee6 T sys_waitpid -0000a10c t get_fs_byte -0000a11a t put_fs_byte -0000a132 t put_fs_long -0000a13e T sys_sgetmask -0000a14a T sys_ssetmask -0000a176 T sys_sigpending -0000a17c T sys_sigsuspend -0000a182 t save_old -0000a1d5 t get_new -0000a215 T sys_signal -0000a299 T sys_sigaction -0000a3a3 T do_signal -0000a58f T kernel_mktime -0000a6d4 t get_fs_long -0000a6ea T sys_init_graphics -0000a82c T sys_repaint -0000a91d t put_fs_long -0000a929 T post_message -0000a984 T sys_get_message -0000aa34 t oom -0000aa53 T get_free_page -0000aa8f T free_page -0000aafe T free_page_tables -0000abfd T copy_page_tables -0000ad7e T put_page -0000ae6a T un_wp_page -0000af22 T do_wp_page -0000afad T get_empty_page -0000afed t try_to_share -0000b17f t share_page -0000b233 T do_no_page -0000b395 T mem_init -0000b409 T calc_mem -0000b4fe T page_fault -0000b535 t get_fs_long -0000b54b T sys_ustat -0000b551 T sys_utime -0000b5fe T sys_access -0000b6da T sys_chdir -0000b74e T sys_chroot -0000b7c2 T sys_chmod -0000b85c T sys_chown -0000b8d7 T sys_open -0000bb7a T sys_creat -0000bb9d T sys_close -0000bc6c T sys_lseek -0000bd83 T sys_read -0000bf76 T sys_write -0000c124 t lock_inode -0000c151 t unlock_inode -0000c16f T invalidate_inodes -0000c1de T sync_inodes -0000c235 t _bmap -0000c621 T bmap -0000c644 T create_block -0000c667 T iput -0000c7d6 T get_empty_inode -0000c92b T get_pipe_inode -0000c9a0 T iget -0000cb65 t read_inode -0000cd9b T sys_sync -0000cdfe T sync_dev -0000cef7 T invalidate_buffers -0000cf69 T check_disk_change -0000d013 t remove_from_queues -0000d10a t insert_into_queues -0000d1cf t find_buffer -0000d237 T get_hash_table -0000d2b9 T getblk -0000d457 T brelse -0000d4a0 T bread -0000d525 T bread_page -0000d647 T breada -0000d73c T buffer_init -0000d86b t lock_super -0000d898 t free_super -0000d8dd T get_super -0000d94c T put_super -0000da1f t read_super -0000dd62 T sys_umount -0000dec3 T sys_mount -0000e034 T mount_root -0000e242 t get_fs_byte -0000e250 t put_fs_byte -0000e268 T block_write -0000e3ba T block_read -0000e4e5 t get_fs_byte -0000e4f3 t put_fs_byte -0000e50b t rw_ttyx -0000e553 t rw_tty -0000e5a3 t rw_ram -0000e5a9 t rw_mem -0000e5af t rw_kmem -0000e5b5 t rw_port -0000e64f t rw_memory -0000e725 T rw_char -0000e78f t get_fs_byte -0000e79d t put_fs_byte -0000e7b5 T file_read -0000e960 T file_write -0000eb5a t put_fs_byte -0000eb72 t cp_stat -0000ec49 T sys_stat -0000ec93 T sys_lstat -0000ecae T sys_fstat -0000ed0b T sys_readlink -0000ed11 t _get_base -0000ed43 t get_fs_byte -0000ed51 t get_fs_long -0000ed67 t put_fs_byte -0000ed7f t put_fs_long -0000ed8b t get_fs -0000ed9f t get_ds -0000edb3 t set_fs -0000edba T sys_uselib -0000edc0 t create_tables -0000ef0b t count -0000ef4a t copy_strings -0000f106 t change_ldt -0000f289 T do_execve -0000fd0b t oom -0000fd2a T do_execve2 -000108f5 t get_fs_byte -00010903 t put_fs_byte -0001091b t put_fs_long -00010927 T read_pipe -00010bfc T sys_pipe -00010dfe t get_fs_byte -00010e0c t permission -00010ead t match -00010f15 t find_entry -0001136f t get_dir -0001155c t dir_namei -000115db T namei -000116f1 T open_namei -00011a44 T sys_mknod -00011c74 T sys_mkdir -00012025 t empty_dir -00012203 T sys_rmdir -0001255b T sys_unlink -000127fc T sys_symlink -00012802 T sys_link -00012a5c T free_block -00012bce T new_block -00012d72 T free_inode -00012ed9 T new_inode -000130b3 t dupfd -0001318d T sys_dup2 -000131b4 T sys_dup -000131cf T sys_fcntl -0001330e T sys_ioctl -000133df t free_ind -0001347e t free_dind -0001351d T truncate -00013652 T sys_select -00013658 t put_fs_byte -00013670 T sys_getdents -00013836 T sys_sleep -00013873 T sys_something -00013879 T sys_getcwd -00013a85 t lock_buffer -00013ab2 t unlock_buffer -00013ca4 t make_request -00013e48 T ll_rw_block -00013ea1 T blk_dev_init -00013eef t unlock_buffer -00013f24 t end_request -00013fd5 T floppy_deselect -0001400c T floppy_change -00014092 t setup_DMA -00014148 t output_byte -000141be t result -0001427b t bad_flp_intr -000142da t rw_interrupt -000143c9 T setup_rw_floppy -0001448a t seek_interrupt -000144e3 t transfer -00014618 t recal_interrupt -00014662 T unexpected_floppy_interrupt -000146a7 t recalibrate_floppy -00014709 t reset_interrupt -0001474e t reset_floppy -000147cb t floppy_on_interrupt -00014836 t do_fd_request -00014a3a T floppy_init -00014a8c t unlock_buffer -00014ac1 t end_request -00014b60 T sys_setup -00014f13 t controller_ready -00014fa7 t hd_out -00015094 t drive_busy -000150fa t reset_controller -00015177 t reset_hd -0001520f T unexpected_hd_interrupt -00015222 t bad_rw_intr -00015260 t read_intr -00015386 t recal_intr -000153a0 t do_hd_request -000156a1 T hd_init -0001571b t unlock_buffer -00015750 t end_request -000157ef t do_rd_request -00015925 T rd_init -0001597b T rd_load -00015c27 t get_fs_byte -00015c35 t put_fs_byte -00015c4d T tty_init -00015c5e T tty_intr -00015cd2 t sleep_if_empty -00015d0a t sleep_if_full -00015d7e T copy_to_cooked -00016339 T tty_read -000166a7 T tty_write -000168b9 T do_tty_interrupt -000168e1 T chr_dev_init -000168e2 T readmouse -00016a21 t gotoxy -00016a6f t set_origin -00016ad5 t scrup -00016cc5 t scrdown -00016dbc t lf -00016df2 t ri -00016e28 t cr -00016e49 t del -00016e7b t csi_J -00016f0c t csi_K -00016fbe T csi_m -00017025 t set_cursor -0001708b t respond -000170e3 t insert_char -00017146 t insert_line -0001718a t delete_char -000171e8 t delete_line -0001722c t csi_at -0001726a t csi_L -000172a8 t csi_P -000172e6 t csi_M -00017324 t save_cur -00017339 t restore_cur -00017358 T con_write -000179e6 T con_init -00017ccb T sysbeepstop -00017cf4 t sysbeep -00017d52 t mode -00017d53 t leds -00017d54 t e0 -00017d55 T keyboard_interrupt -00017d7e t e0_e1 -00017da9 t set_e0 -00017db2 t set_e1 -00017dbb t put_queue -00017df4 t ctrl -00017e0c t unctrl -00017e10 t unalt -00017e26 t lshift -00017e2e t unlshift -00017e36 t rshift -00017e3e t unrshift -00017e46 t caps -00017e68 t set_leds -00017e7e t uncaps -00017e86 t scroll -00017e8f t num -00017e98 t cursor -00017eb8 t cur2 -00017ee1 t cur -00017eed t ok_cur -00017efb t num_table -00017f08 t cur_table -00017f15 t func -00017f32 t ok_func -00017f45 t end_func -00017f46 t func_table -00017f76 t key_map -00017fd7 t shift_map -00018099 t do_self -00018101 t none -00018102 t minus -00018117 t key_table -00018517 t kb_wait -00018520 t reboot -00018532 t die -00018534 t init -000185a9 T rs_init -0001862c T rs_write -0001867c T rs1_interrupt -00018684 T rs2_interrupt -00018689 t rs_int -000186a0 t rep_int -000186bd t end -000186cb t jmp_table -000186dc t modem_status -000186e4 t line_status -000186ec t read_char -00018773 t get_fs_byte -00018781 t get_fs_long -00018797 t put_fs_byte -000187af t put_fs_long -000187bb t change_speed -00018839 t flush -0001884b t send_break -0001884c t get_termios -000188a8 t set_termios -000188f8 t get_termio -000189c0 t set_termio -00018a84 T tty_ioctl -00018d82 T mouse_interrupt -00018dce t get_fs_byte -00018ddc T math_emulate -00018ebf T math_error -00018edf T _exit -00018eef T open -00018f38 T close -00018fac T dup -00018fe3 T setsid -00019012 T execve -000190af T strcpy -000190cb T strncpy -000190f0 T strcat -0001911b T strncat -00019150 T strcmp -00019177 T strncmp -000191a5 T strchr -000191d2 T strrchr -00019201 T strspn -0001923e T strcspn -0001927b T strpbrk -000192b2 T strstr -000192eb T strlen -0001930e T strtok -00019391 T memcpy -000193b1 T memmove -00019405 T memcmp -0001942f T memchr -00019467 T memset -0001948b t init_bucket_desc -000194f4 T malloc -00019680 T free_s -0001d968 d envp_rc -0001d97c d envp -0001d9a0 D sys_call_table -0001db20 D NR_syscalls -0001db40 d init_task -0001eb40 D current -0001eb60 D task -0001ec60 D stack_start -0001ec68 D current_DOR -0001ec80 d thisname.1955 -0001ecc0 d month -0001ed00 d last_inode.1935 -0001ed04 D start_buffer -0001ed20 d crw_table -0001ed40 d ioctl_table -0001ed60 d floppy_type -0001ee20 d cur_spec1 -0001ee24 d cur_rate -0001ee28 d floppy -0001ee2c d current_track -0001ee30 d callable.1844 -0001ee40 D tty_table -00021360 D table_list -00021380 d quotient -000213a0 D _ctype -000214c0 D bucket_dir -00021510 B __bss_start -00021510 D _edata -00021520 b printbuf -00021920 b memory_end -00021924 b buffer_memory_end -00021928 b main_memory_start -00021940 B jiffies -00021944 B startup_time -00021948 B last_task_used_math -0002194c B user_timer_list -00021960 b mon_timer -00021970 b moff_timer -00021980 b timer_list -00021c80 b next_timer -00021c84 B last_pid -00021ca0 b buf -000220a0 B msg_que_fron -000220a4 B msg_que_rear -000220c0 b HIGH_MEMORY -000220e0 b mem_map -00022fe0 B inode_table -000236e0 B nr_buffers -000236e4 b free_list -000236e8 b buffer_wait -000236ec B ROOT_DEV -00023720 B blk_dev -00023758 B do_floppy -0002375c B selected -00023764 b recalibrate -00023768 b reset -0002376c b seek -00023770 b reply_buffer -00023777 b current_drive -00023778 b sector -00023779 b head -0002377a b track -0002377b b seek_track -0002377c b command -00023780 B do_hd -000237a0 B hd_info -000237d0 b recalibrate -000237d4 b reset -000237d8 b NR_HD -000237e0 b hd -00023830 B rd_length -00023834 b mouse_input_count -00023835 b mouse_left_down -00023836 b mouse_right_down -00023837 b mouse_left_move -00023838 b mouse_down_move -0002383c b mouse_x_position -00023840 b mouse_y_position -00023844 b cr_flag.1923 -00023860 B beepcount -00023864 b video_type -00023868 b video_num_columns -0002386c b video_size_row -00023870 b video_num_lines -00023874 b video_page -00023878 b video_mem_start -0002387c b video_mem_end -00023880 b video_port_reg -00023882 b video_port_val -00023884 b video_erase_char -00023888 b origin -0002388c b scr_end -00023890 b pos -00023894 b x -00023898 b y -0002389c b top -000238a0 b bottom -000238a4 b state -000238a8 b npar -000238c0 b par -00023900 b ques -00023904 b saved_x -00023908 b saved_y -0002390c B free_bucket_desc -00023920 B drive_info -00023940 B msg_que -00025940 B user_stack -00026940 B hash_table -00026e20 B super_block -00027180 B file_table -00027580 B request -00027a00 B rd_start -00027a04 B _ctmp -00027a08 B errno -00027a0c B ___strtok -00027a10 B end -00027a10 B _end +00006c04 T show_task +00006c89 T show_stat +00006ccf T math_state_restore +00006d2d T schedule +00006edf T sys_pause +00006ef5 T sleep_on +00006f54 T interruptible_sleep_on +0000700f T ticks_to_floppy_on +000070da T floppy_on +00007109 T floppy_off +00007119 T do_floppy_timer +00007311 T sys_timercreate +00007392 T do_timer +00007575 T sys_alarm +000075f4 T sys_getpid +00007600 T sys_getppid +0000760c T sys_getuid +0000761b T sys_geteuid +0000762b T sys_getgid +0000763b T sys_getegid +0000764a T sys_nice +00007675 T sched_init +00007804 t bad_sys_call +0000780c t reschedule +00007818 T system_call +00007853 t ret_from_sys_call +0000789c T coprocessor_error +000078be T device_not_available +000078f8 T timer_interrupt +00007930 T sys_execve +00007940 T sys_execve2 +00007950 T sys_fork +00007968 T hd_interrupt +000079a4 T floppy_interrupt +000079da T parallel_interrupt +000079e1 t _get_base +00007a13 t die +00007bf5 T do_double_fault +00007c18 T do_general_protection +00007c3b T do_divide_error +00007c5e T do_int3 +00007d26 T do_nmi +00007d49 T do_debug +00007d6c T do_overflow +00007d8f T do_bounds +00007db2 T do_invalid_op +00007dd5 T do_device_not_available +00007df8 T do_coprocessor_segment_overrun +00007e1b T do_invalid_TSS +00007e3e T do_segment_not_present +00007e61 T do_stack_segment +00007e84 T do_coprocessor_error +00007eb8 T do_reserved +00007edb T trap_init +000081bf T divide_error +000081c4 t no_error_code +000081f4 T debug +000081fb T nmi +00008202 T int3 +00008209 T overflow +00008210 T bounds +00008217 T invalid_op +0000821e T coprocessor_segment_overrun +00008225 T reserved +0000822c T irq13 +00008241 T double_fault +00008246 t error_code +00008278 T invalid_TSS +0000827f T segment_not_present +00008286 T stack_segment +0000828d T general_protection +00008294 t _get_base +000082c6 T verify_area +0000832d T copy_mem +00008487 T copy_process +00008934 T find_empty_process +000089c8 T panic +00008a03 T printk +00008a54 t skip_atoi +00008aaf t number +00008d20 T vsprintf +000091ac t get_fs_long +000091c2 t put_fs_byte +000091da t put_fs_long +000091e6 T sys_ftime +000091ec T sys_break +000091f2 T sys_ptrace +000091f8 T sys_stty +000091fe T sys_gtty +00009204 T sys_rename +0000920a T sys_prof +00009210 T sys_setregid +000092c9 T sys_setgid +00009360 T sys_acct +00009366 T sys_phys +0000936c T sys_lock +00009372 T sys_mpx +00009378 T sys_ulimit +0000937e T sys_time +000093da T sys_setreuid +000094bc T sys_setuid +00009551 T sys_stime +000095a7 T sys_times +00009647 T sys_brk +00009689 T sys_setpgid +00009762 T sys_getpgrp +0000976e T sys_setsid +000097e8 T sys_getgroups +000097ee T sys_setgroups +000097f4 T sys_uname +0000985d T sys_sethostname +00009863 T sys_getrlimit +00009869 T sys_setrlimit +0000986f T sys_getrusage +00009875 T sys_gettimeofday +0000987b T sys_settimeofday +00009881 T sys_umask +000098b4 t _get_base +000098e6 t put_fs_long +000098f2 T release +00009956 t send_sig +000099d5 t kill_session +00009a2f T sys_kill +00009bdf t tell_father +00009c69 T do_exit +00009e9d T sys_exit +00009eb6 T sys_waitpid +0000a0dc t get_fs_byte +0000a0ea t put_fs_byte +0000a102 t put_fs_long +0000a10e T sys_sgetmask +0000a11a T sys_ssetmask +0000a146 T sys_sigpending +0000a14c T sys_sigsuspend +0000a152 t save_old +0000a1a5 t get_new +0000a1e5 T sys_signal +0000a269 T sys_sigaction +0000a373 T do_signal +0000a55f T kernel_mktime +0000a6a4 t get_fs_long +0000a6ba T sys_init_graphics +0000a7fc T sys_repaint +0000a8ed t put_fs_long +0000a8f9 T post_message +0000a954 T sys_get_message +0000aa04 t oom +0000aa23 T get_free_page +0000aa5f T free_page +0000aace T free_page_tables +0000abcd T copy_page_tables +0000ad4e T put_page +0000ae3a T un_wp_page +0000aef2 T do_wp_page +0000af7d T get_empty_page +0000afbd t try_to_share +0000b14f t share_page +0000b203 T do_no_page +0000b365 T mem_init +0000b3d9 T calc_mem +0000b4ce T page_fault +0000b505 t get_fs_long +0000b51b T sys_ustat +0000b521 T sys_utime +0000b5ce T sys_access +0000b6aa T sys_chdir +0000b71e T sys_chroot +0000b792 T sys_chmod +0000b82c T sys_chown +0000b8a7 T sys_open +0000bb4a T sys_creat +0000bb6d T sys_close +0000bc3c T sys_lseek +0000bd53 T sys_read +0000bf46 T sys_write +0000c0f4 t lock_inode +0000c121 t unlock_inode +0000c13f T invalidate_inodes +0000c1ae T sync_inodes +0000c205 t _bmap +0000c5f1 T bmap +0000c614 T create_block +0000c637 T iput +0000c7a6 T get_empty_inode +0000c8fb T get_pipe_inode +0000c970 T iget +0000cb35 t read_inode +0000cd6b T sys_sync +0000cdce T sync_dev +0000cec7 T invalidate_buffers +0000cf39 T check_disk_change +0000cfe3 t remove_from_queues +0000d0da t insert_into_queues +0000d19f t find_buffer +0000d207 T get_hash_table +0000d289 T getblk +0000d427 T brelse +0000d470 T bread +0000d4f5 T bread_page +0000d617 T breada +0000d70c T buffer_init +0000d83b t lock_super +0000d868 t free_super +0000d8ad T get_super +0000d91c T put_super +0000d9ef t read_super +0000dd32 T sys_umount +0000de93 T sys_mount +0000e004 T mount_root +0000e212 t get_fs_byte +0000e220 t put_fs_byte +0000e238 T block_write +0000e38a T block_read +0000e4b5 t get_fs_byte +0000e4c3 t put_fs_byte +0000e4db t rw_ttyx +0000e523 t rw_tty +0000e573 t rw_ram +0000e579 t rw_mem +0000e57f t rw_kmem +0000e585 t rw_port +0000e61f t rw_memory +0000e6f5 T rw_char +0000e75f t get_fs_byte +0000e76d t put_fs_byte +0000e785 T file_read +0000e930 T file_write +0000eb2a t put_fs_byte +0000eb42 t cp_stat +0000ec19 T sys_stat +0000ec63 T sys_lstat +0000ec7e T sys_fstat +0000ecdb T sys_readlink +0000ece1 t _get_base +0000ed13 t get_fs_byte +0000ed21 t get_fs_long +0000ed37 t put_fs_byte +0000ed4f t put_fs_long +0000ed5b t get_fs +0000ed6f t get_ds +0000ed83 t set_fs +0000ed8a T sys_uselib +0000ed90 t create_tables +0000eedb t count +0000ef1a t copy_strings +0000f0d6 t change_ldt +0000f259 T do_execve +0000fcdb t oom +0000fcfa T do_execve2 +000108c5 t get_fs_byte +000108d3 t put_fs_byte +000108eb t put_fs_long +000108f7 T read_pipe +00010bcc T sys_pipe +00010dce t get_fs_byte +00010ddc t permission +00010e7d t match +00010ee5 t find_entry +0001133f t get_dir +0001152c t dir_namei +000115ab T namei +000116c1 T open_namei +00011a14 T sys_mknod +00011c44 T sys_mkdir +00011ff5 t empty_dir +000121d3 T sys_rmdir +0001252b T sys_unlink +000127cc T sys_symlink +000127d2 T sys_link +00012a2c T free_block +00012b9e T new_block +00012d42 T free_inode +00012ea9 T new_inode +00013083 t dupfd +0001315d T sys_dup2 +00013184 T sys_dup +0001319f T sys_fcntl +000132de T sys_ioctl +000133af t free_ind +0001344e t free_dind +000134ed T truncate +00013622 T sys_select +00013628 t put_fs_byte +00013640 T sys_getdents +00013806 T sys_sleep +00013843 T sys_something +00013849 T sys_getcwd +00013a55 t lock_buffer +00013a82 t unlock_buffer +00013c74 t make_request +00013e18 T ll_rw_block +00013e71 T blk_dev_init +00013ebf t unlock_buffer +00013ef4 t end_request +00013fa5 T floppy_deselect +00013fdc T floppy_change +00014062 t setup_DMA +00014118 t output_byte +0001418e t result +0001424b t bad_flp_intr +000142aa t rw_interrupt +00014399 T setup_rw_floppy +0001445a t seek_interrupt +000144b3 t transfer +000145e8 t recal_interrupt +00014632 T unexpected_floppy_interrupt +00014677 t recalibrate_floppy +000146d9 t reset_interrupt +0001471e t reset_floppy +0001479b t floppy_on_interrupt +00014806 t do_fd_request +00014a0a T floppy_init +00014a5c t unlock_buffer +00014a91 t end_request +00014b30 T sys_setup +00014ee3 t controller_ready +00014f77 t hd_out +00015064 t drive_busy +000150ca t reset_controller +00015147 t reset_hd +000151df T unexpected_hd_interrupt +000151f2 t bad_rw_intr +00015230 t read_intr +00015356 t recal_intr +00015370 t do_hd_request +00015671 T hd_init +000156eb t unlock_buffer +00015720 t end_request +000157bf t do_rd_request +000158f5 T rd_init +0001594b T rd_load +00015bf7 t get_fs_byte +00015c05 t put_fs_byte +00015c1d T tty_init +00015c2e T tty_intr +00015ca2 t sleep_if_empty +00015cda t sleep_if_full +00015d4e T copy_to_cooked +00016309 T tty_read +00016677 T tty_write +00016889 T do_tty_interrupt +000168b1 T chr_dev_init +000168b2 T readmouse +00016a4b t gotoxy +00016a99 t set_origin +00016aff t scrup +00016cef t scrdown +00016de6 t lf +00016e1c t ri +00016e52 t cr +00016e73 t del +00016ea5 t csi_J +00016f36 t csi_K +00016fe8 T csi_m +0001704f t set_cursor +000170b5 t respond +0001710d t insert_char +00017170 t insert_line +000171b4 t delete_char +00017212 t delete_line +00017256 t csi_at +00017294 t csi_L +000172d2 t csi_P +00017310 t csi_M +0001734e t save_cur +00017363 t restore_cur +00017382 T con_write +00017a10 T con_init +00017cf5 T sysbeepstop +00017d1e t sysbeep +00017d7c t mode +00017d7d t leds +00017d7e t e0 +00017d7f T keyboard_interrupt +00017da8 t e0_e1 +00017dd3 t set_e0 +00017ddc t set_e1 +00017de5 t put_queue +00017e1e t ctrl +00017e36 t unctrl +00017e3a t unalt +00017e50 t lshift +00017e58 t unlshift +00017e60 t rshift +00017e68 t unrshift +00017e70 t caps +00017e92 t set_leds +00017ea8 t uncaps +00017eb0 t scroll +00017eb9 t num +00017ec2 t cursor +00017ee2 t cur2 +00017f0b t cur +00017f17 t ok_cur +00017f25 t num_table +00017f32 t cur_table +00017f3f t func +00017f5c t ok_func +00017f6f t end_func +00017f70 t func_table +00017fa0 t key_map +00018001 t shift_map +000180c3 t do_self +0001812b t none +0001812c t minus +00018141 t key_table +00018541 t kb_wait +0001854a t reboot +0001855c t die +0001855e t init +000185d3 T rs_init +00018656 T rs_write +000186a4 T rs1_interrupt +000186ac T rs2_interrupt +000186b1 t rs_int +000186c8 t rep_int +000186e5 t end +000186f3 t jmp_table +00018704 t modem_status +0001870c t line_status +00018714 t read_char +0001879b t get_fs_byte +000187a9 t get_fs_long +000187bf t put_fs_byte +000187d7 t put_fs_long +000187e3 t change_speed +00018861 t flush +00018873 t send_break +00018874 t get_termios +000188d0 t set_termios +00018920 t get_termio +000189e8 t set_termio +00018aac T tty_ioctl +00018daa T mouse_interrupt +00018dcf t get_fs_byte +00018ddd T math_emulate +00018ec0 T math_error +00018ee0 T _exit +00018ef0 T open +00018f39 T close +00018fad T dup +00018fe4 T setsid +00019013 T execve +000190b0 T strcpy +000190cc T strncpy +000190f1 T strcat +0001911c T strncat +00019151 T strcmp +00019178 T strncmp +000191a6 T strchr +000191d3 T strrchr +00019202 T strspn +0001923f T strcspn +0001927c T strpbrk +000192b3 T strstr +000192ec T strlen +0001930f T strtok +00019392 T memcpy +000193b2 T memmove +00019406 T memcmp +00019430 T memchr +00019468 T memset +0001948c t init_bucket_desc +000194f5 T malloc +00019681 T free_s +0001d948 d envp_rc +0001d95c d envp +0001d980 D sys_call_table +0001db00 D NR_syscalls +0001db20 d init_task +0001eb20 D current +0001eb40 D task +0001ec40 D stack_start +0001ec48 D current_DOR +0001ec60 d thisname.1955 +0001eca0 d month +0001ece0 d last_inode.1935 +0001ece4 D start_buffer +0001ed00 d crw_table +0001ed20 d ioctl_table +0001ed40 d floppy_type +0001ee00 d cur_spec1 +0001ee04 d cur_rate +0001ee08 d floppy +0001ee0c d current_track +0001ee10 d callable.1844 +0001ee20 D tty_table +00021340 D table_list +00021360 d quotient +00021380 D _ctype +000214a0 D bucket_dir +000214f0 B __bss_start +000214f0 D _edata +00021500 b printbuf +00021900 b memory_end +00021904 b buffer_memory_end +00021908 b main_memory_start +00021920 B jiffies +00021924 B startup_time +00021928 B last_task_used_math +0002192c B user_timer_list +00021940 b mon_timer +00021950 b moff_timer +00021960 b timer_list +00021c60 b next_timer +00021c64 B last_pid +00021c80 b buf +00022080 B msg_que_fron +00022084 B msg_que_rear +000220a0 b HIGH_MEMORY +000220c0 b mem_map +00022fc0 B inode_table +000236c0 B nr_buffers +000236c4 b free_list +000236c8 b buffer_wait +000236cc B ROOT_DEV +00023700 B blk_dev +00023738 B do_floppy +0002373c B selected +00023744 b recalibrate +00023748 b reset +0002374c b seek +00023750 b reply_buffer +00023757 b current_drive +00023758 b sector +00023759 b head +0002375a b track +0002375b b seek_track +0002375c b command +00023760 B do_hd +00023780 B hd_info +000237b0 b recalibrate +000237b4 b reset +000237b8 b NR_HD +000237c0 b hd +00023810 B rd_length +00023814 b mouse_input_count +00023815 b mouse_left_down +00023816 b mouse_right_down +00023817 b mouse_center_down +00023818 b mouse_left_move +00023819 b mouse_down_move +0002381a b mouse_x_overflow +0002381b b mouse_y_overflow +0002381c b mouse_x_position +00023820 b mouse_y_position +00023824 b cr_flag.1923 +00023840 B beepcount +00023844 b video_type +00023848 b video_num_columns +0002384c b video_size_row +00023850 b video_num_lines +00023854 b video_page +00023858 b video_mem_start +0002385c b video_mem_end +00023860 b video_port_reg +00023862 b video_port_val +00023864 b video_erase_char +00023868 b origin +0002386c b scr_end +00023870 b pos +00023874 b x +00023878 b y +0002387c b top +00023880 b bottom +00023884 b state +00023888 b npar +000238a0 b par +000238e0 b ques +000238e4 b saved_x +000238e8 b saved_y +000238ec B free_bucket_desc +00023900 B drive_info +00023920 B msg_que +00025920 B user_stack +00026920 B hash_table +00026e00 B super_block +00027160 B file_table +00027560 B request +000279e0 B rd_start +000279e4 B _ctmp +000279e8 B errno +000279ec B ___strtok +000279f0 B end +000279f0 B _end diff --git a/linux-0.11-lab/cur/linux/System.map.2 b/linux-0.11-lab/cur/linux/System.map.2 index 67da62e..309b32a 100644 --- a/linux-0.11-lab/cur/linux/System.map.2 +++ b/linux-0.11-lab/cur/linux/System.map.2 @@ -208,7 +208,7 @@ LOAD lib/lib.a *(.iplt) .iplt 0x0000000000000000 0x0 boot/head.o -.text 0x0000000000000000 0x197f7 +.text 0x0000000000000000 0x197f8 *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) @@ -220,7 +220,7 @@ LOAD lib/lib.a 0x0000000000005000 tmp_floppy_area 0x00000000000054c0 idt 0x0000000000005cc0 gdt - .text 0x00000000000064c0 0x773 init/main.o + .text 0x00000000000064c0 0x743 init/main.o 0x00000000000064c0 fork 0x00000000000064ef pause 0x000000000000651e setup @@ -229,338 +229,338 @@ LOAD lib/lib.a 0x00000000000067c8 main 0x000000000000698a init 0x0000000000006c02 print_nr - *fill* 0x0000000000006c33 0x1 - .text 0x0000000000006c34 0x3e00 kernel/kernel.o - 0x0000000000006c34 show_task - 0x0000000000006cb9 show_stat - 0x0000000000006cff math_state_restore - 0x0000000000006d5d schedule - 0x0000000000006f0f sys_pause - 0x0000000000006f25 sleep_on - 0x0000000000006f84 interruptible_sleep_on - 0x0000000000007017 wake_up - 0x000000000000703f ticks_to_floppy_on - 0x000000000000710a floppy_on - 0x0000000000007139 floppy_off - 0x0000000000007149 do_floppy_timer - 0x000000000000721d add_timer - 0x0000000000007341 sys_timercreate - 0x00000000000073c2 do_timer - 0x00000000000075a5 sys_alarm - 0x0000000000007624 sys_getpid - 0x0000000000007630 sys_getppid - 0x000000000000763c sys_getuid - 0x000000000000764b sys_geteuid - 0x000000000000765b sys_getgid - 0x000000000000766b sys_getegid - 0x000000000000767a sys_nice - 0x00000000000076a5 sched_init - 0x0000000000007848 system_call - 0x00000000000078cc coprocessor_error - 0x00000000000078ee device_not_available - 0x0000000000007928 timer_interrupt - 0x0000000000007960 sys_execve - 0x0000000000007970 sys_execve2 - 0x0000000000007980 sys_fork - 0x0000000000007998 hd_interrupt - 0x00000000000079d4 floppy_interrupt - 0x0000000000007a0a parallel_interrupt - 0x0000000000007c25 do_double_fault - 0x0000000000007c48 do_general_protection - 0x0000000000007c6b do_divide_error - 0x0000000000007c8e do_int3 - 0x0000000000007d56 do_nmi - 0x0000000000007d79 do_debug - 0x0000000000007d9c do_overflow - 0x0000000000007dbf do_bounds - 0x0000000000007de2 do_invalid_op - 0x0000000000007e05 do_device_not_available - 0x0000000000007e28 do_coprocessor_segment_overrun - 0x0000000000007e4b do_invalid_TSS - 0x0000000000007e6e do_segment_not_present - 0x0000000000007e91 do_stack_segment - 0x0000000000007eb4 do_coprocessor_error - 0x0000000000007ee8 do_reserved - 0x0000000000007f0b trap_init - 0x00000000000081ef divide_error - 0x0000000000008224 debug - 0x000000000000822b nmi - 0x0000000000008232 int3 - 0x0000000000008239 overflow - 0x0000000000008240 bounds - 0x0000000000008247 invalid_op - 0x000000000000824e coprocessor_segment_overrun - 0x0000000000008255 reserved - 0x000000000000825c irq13 - 0x0000000000008271 double_fault - 0x00000000000082a8 invalid_TSS - 0x00000000000082af segment_not_present - 0x00000000000082b6 stack_segment - 0x00000000000082bd general_protection - 0x00000000000082f6 verify_area - 0x000000000000835d copy_mem - 0x00000000000084b7 copy_process - 0x0000000000008964 find_empty_process - 0x00000000000089f8 panic - 0x0000000000008a33 printk - 0x0000000000008d50 vsprintf - 0x0000000000009216 sys_ftime - 0x000000000000921c sys_break - 0x0000000000009222 sys_ptrace - 0x0000000000009228 sys_stty - 0x000000000000922e sys_gtty - 0x0000000000009234 sys_rename - 0x000000000000923a sys_prof - 0x0000000000009240 sys_setregid - 0x00000000000092f9 sys_setgid - 0x0000000000009390 sys_acct - 0x0000000000009396 sys_phys - 0x000000000000939c sys_lock - 0x00000000000093a2 sys_mpx - 0x00000000000093a8 sys_ulimit - 0x00000000000093ae sys_time - 0x000000000000940a sys_setreuid - 0x00000000000094ec sys_setuid - 0x0000000000009581 sys_stime - 0x00000000000095d7 sys_times - 0x0000000000009677 sys_brk - 0x00000000000096b9 sys_setpgid - 0x0000000000009792 sys_getpgrp - 0x000000000000979e sys_setsid - 0x0000000000009818 sys_getgroups - 0x000000000000981e sys_setgroups - 0x0000000000009824 sys_uname - 0x000000000000988d sys_sethostname - 0x0000000000009893 sys_getrlimit - 0x0000000000009899 sys_setrlimit - 0x000000000000989f sys_getrusage - 0x00000000000098a5 sys_gettimeofday - 0x00000000000098ab sys_settimeofday - 0x00000000000098b1 sys_umask - 0x0000000000009922 release - 0x0000000000009a5f sys_kill - 0x0000000000009c99 do_exit - 0x0000000000009ecd sys_exit - 0x0000000000009ee6 sys_waitpid - 0x000000000000a13e sys_sgetmask - 0x000000000000a14a sys_ssetmask - 0x000000000000a176 sys_sigpending - 0x000000000000a17c sys_sigsuspend - 0x000000000000a215 sys_signal - 0x000000000000a299 sys_sigaction - 0x000000000000a3a3 do_signal - 0x000000000000a58f kernel_mktime - 0x000000000000a6ea sys_init_graphics - 0x000000000000a82c sys_repaint - 0x000000000000a929 post_message - 0x000000000000a984 sys_get_message - .text 0x000000000000aa34 0xb01 mm/mm.o - 0x000000000000aa53 get_free_page - 0x000000000000aa8f free_page - 0x000000000000aafe free_page_tables - 0x000000000000abfd copy_page_tables - 0x000000000000ad7e put_page - 0x000000000000ae6a un_wp_page - 0x000000000000af22 do_wp_page - 0x000000000000af54 write_verify - 0x000000000000afad get_empty_page - 0x000000000000b233 do_no_page - 0x000000000000b395 mem_init - 0x000000000000b409 calc_mem - 0x000000000000b4fe page_fault - .text 0x000000000000b535 0x8550 fs/fs.o - 0x000000000000b54b sys_ustat - 0x000000000000b551 sys_utime - 0x000000000000b5fe sys_access - 0x000000000000b6da sys_chdir - 0x000000000000b74e sys_chroot - 0x000000000000b7c2 sys_chmod - 0x000000000000b85c sys_chown - 0x000000000000b8d7 sys_open - 0x000000000000bb7a sys_creat - 0x000000000000bb9d sys_close - 0x000000000000bc6c sys_lseek - 0x000000000000bd83 sys_read - 0x000000000000bf76 sys_write - 0x000000000000c16f invalidate_inodes - 0x000000000000c1de sync_inodes - 0x000000000000c621 bmap - 0x000000000000c644 create_block - 0x000000000000c667 iput - 0x000000000000c7d6 get_empty_inode - 0x000000000000c92b get_pipe_inode - 0x000000000000c9a0 iget - 0x000000000000cd9b sys_sync - 0x000000000000cdfe sync_dev - 0x000000000000cef7 invalidate_buffers - 0x000000000000cf69 check_disk_change - 0x000000000000d237 get_hash_table - 0x000000000000d2b9 getblk - 0x000000000000d457 brelse - 0x000000000000d4a0 bread - 0x000000000000d525 bread_page - 0x000000000000d647 breada - 0x000000000000d73c buffer_init - 0x000000000000d8dd get_super - 0x000000000000d94c put_super - 0x000000000000dd62 sys_umount - 0x000000000000dec3 sys_mount - 0x000000000000e034 mount_root - 0x000000000000e268 block_write - 0x000000000000e3ba block_read - 0x000000000000e725 rw_char - 0x000000000000e7b5 file_read - 0x000000000000e960 file_write - 0x000000000000ec49 sys_stat - 0x000000000000ec93 sys_lstat - 0x000000000000ecae sys_fstat - 0x000000000000ed0b sys_readlink - 0x000000000000edba sys_uselib - 0x000000000000f289 do_execve - 0x000000000000fd2a do_execve2 - 0x0000000000010927 read_pipe - 0x0000000000010a7d write_pipe - 0x0000000000010bfc sys_pipe - 0x00000000000115db namei - 0x00000000000116f1 open_namei - 0x0000000000011a44 sys_mknod - 0x0000000000011c74 sys_mkdir - 0x0000000000012203 sys_rmdir - 0x000000000001255b sys_unlink - 0x00000000000127fc sys_symlink - 0x0000000000012802 sys_link - 0x0000000000012a5c free_block - 0x0000000000012bce new_block - 0x0000000000012d72 free_inode - 0x0000000000012ed9 new_inode - 0x000000000001318d sys_dup2 - 0x00000000000131b4 sys_dup - 0x00000000000131cf sys_fcntl - 0x000000000001330e sys_ioctl - 0x000000000001351d truncate - 0x0000000000013652 sys_select - 0x0000000000013670 sys_getdents - 0x0000000000013836 sys_sleep - 0x0000000000013873 sys_something - 0x0000000000013879 sys_getcwd - .text 0x0000000000013a85 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x0000000000013e48 ll_rw_block - 0x0000000000013ea1 blk_dev_init - .text 0x0000000000013eef 0xb9d kernel/blk_drv/blk_drv.a(floppy.o) - 0x0000000000013fd5 floppy_deselect - 0x000000000001400c floppy_change - 0x00000000000143c9 setup_rw_floppy - 0x0000000000014662 unexpected_floppy_interrupt - 0x0000000000014a3a floppy_init - .text 0x0000000000014a8c 0xc8f kernel/blk_drv/blk_drv.a(hd.o) - 0x0000000000014b60 sys_setup - 0x000000000001520f unexpected_hd_interrupt - 0x00000000000156a1 hd_init - .text 0x000000000001571b 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x0000000000015925 rd_init - 0x000000000001597b rd_load - .text 0x0000000000015c27 0xdfa kernel/chr_drv/chr_drv.a(tty_io.o) - 0x0000000000015c4d tty_init - 0x0000000000015c5e tty_intr - 0x0000000000015d6b wait_for_keypress - 0x0000000000015d7e copy_to_cooked - 0x0000000000016339 tty_read - 0x00000000000166a7 tty_write - 0x00000000000168b9 do_tty_interrupt - 0x00000000000168e1 chr_dev_init - 0x00000000000168e2 readmouse - .text 0x0000000000016a21 0x1331 kernel/chr_drv/chr_drv.a(console.o) - 0x0000000000016fbe csi_m - 0x0000000000017358 con_write - 0x00000000000179e6 con_init - 0x0000000000017ccb sysbeepstop - .text 0x0000000000017d52 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o) - 0x0000000000017d55 keyboard_interrupt - .text 0x0000000000018534 0x145 kernel/chr_drv/chr_drv.a(serial.o) - 0x00000000000185a9 rs_init - 0x000000000001862c rs_write - *fill* 0x0000000000018679 0x3 - .text 0x000000000001867c 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o) - 0x000000000001867c rs1_interrupt - 0x0000000000018684 rs2_interrupt - .text 0x0000000000018773 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o) - 0x0000000000018a84 tty_ioctl - .text 0x0000000000018d82 0x4c kernel/chr_drv/chr_drv.a(mouse.2.o) - 0x0000000000018d82 mouse_interrupt - .text 0x0000000000018dce 0x111 kernel/math/math.a(math_emulate.o) - 0x0000000000018ddc math_emulate - 0x0000000000018ebf math_error - .text 0x0000000000018edf 0x0 lib/lib.a(ctype.o) - .text 0x0000000000018edf 0x10 lib/lib.a(_exit.o) - 0x0000000000018edf _exit - .text 0x0000000000018eef 0x49 lib/lib.a(open.o) - 0x0000000000018eef open - .text 0x0000000000018f38 0x37 lib/lib.a(close.o) - 0x0000000000018f38 close - .text 0x0000000000018f6f 0x0 lib/lib.a(errno.o) - .text 0x0000000000018f6f 0x3d lib/lib.a(write.o) - 0x0000000000018f6f write - .text 0x0000000000018fac 0x37 lib/lib.a(dup.o) - 0x0000000000018fac dup - .text 0x0000000000018fe3 0x2f lib/lib.a(setsid.o) - 0x0000000000018fe3 setsid - .text 0x0000000000019012 0x3d lib/lib.a(execve.o) - 0x0000000000019012 execve - .text 0x000000000001904f 0x60 lib/lib.a(wait.o) - 0x000000000001904f waitpid - 0x000000000001908c wait - .text 0x00000000000190af 0x3dc lib/lib.a(string.o) - 0x00000000000190af strcpy - 0x00000000000190cb strncpy - 0x00000000000190f0 strcat - 0x000000000001911b strncat - 0x0000000000019150 strcmp - 0x0000000000019177 strncmp - 0x00000000000191a5 strchr - 0x00000000000191d2 strrchr - 0x0000000000019201 strspn - 0x000000000001923e strcspn - 0x000000000001927b strpbrk - 0x00000000000192b2 strstr - 0x00000000000192eb strlen - 0x000000000001930e strtok - 0x0000000000019391 memcpy - 0x00000000000193b1 memmove - 0x0000000000019405 memcmp - 0x000000000001942f memchr - 0x0000000000019467 memset - .text 0x000000000001948b 0x36c lib/lib.a(malloc.o) - 0x00000000000194f4 malloc - 0x0000000000019680 free_s + *fill* 0x0000000000006c03 0x1 + .text 0x0000000000006c04 0x3e00 kernel/kernel.o + 0x0000000000006c04 show_task + 0x0000000000006c89 show_stat + 0x0000000000006ccf math_state_restore + 0x0000000000006d2d schedule + 0x0000000000006edf sys_pause + 0x0000000000006ef5 sleep_on + 0x0000000000006f54 interruptible_sleep_on + 0x0000000000006fe7 wake_up + 0x000000000000700f ticks_to_floppy_on + 0x00000000000070da floppy_on + 0x0000000000007109 floppy_off + 0x0000000000007119 do_floppy_timer + 0x00000000000071ed add_timer + 0x0000000000007311 sys_timercreate + 0x0000000000007392 do_timer + 0x0000000000007575 sys_alarm + 0x00000000000075f4 sys_getpid + 0x0000000000007600 sys_getppid + 0x000000000000760c sys_getuid + 0x000000000000761b sys_geteuid + 0x000000000000762b sys_getgid + 0x000000000000763b sys_getegid + 0x000000000000764a sys_nice + 0x0000000000007675 sched_init + 0x0000000000007818 system_call + 0x000000000000789c coprocessor_error + 0x00000000000078be device_not_available + 0x00000000000078f8 timer_interrupt + 0x0000000000007930 sys_execve + 0x0000000000007940 sys_execve2 + 0x0000000000007950 sys_fork + 0x0000000000007968 hd_interrupt + 0x00000000000079a4 floppy_interrupt + 0x00000000000079da parallel_interrupt + 0x0000000000007bf5 do_double_fault + 0x0000000000007c18 do_general_protection + 0x0000000000007c3b do_divide_error + 0x0000000000007c5e do_int3 + 0x0000000000007d26 do_nmi + 0x0000000000007d49 do_debug + 0x0000000000007d6c do_overflow + 0x0000000000007d8f do_bounds + 0x0000000000007db2 do_invalid_op + 0x0000000000007dd5 do_device_not_available + 0x0000000000007df8 do_coprocessor_segment_overrun + 0x0000000000007e1b do_invalid_TSS + 0x0000000000007e3e do_segment_not_present + 0x0000000000007e61 do_stack_segment + 0x0000000000007e84 do_coprocessor_error + 0x0000000000007eb8 do_reserved + 0x0000000000007edb trap_init + 0x00000000000081bf divide_error + 0x00000000000081f4 debug + 0x00000000000081fb nmi + 0x0000000000008202 int3 + 0x0000000000008209 overflow + 0x0000000000008210 bounds + 0x0000000000008217 invalid_op + 0x000000000000821e coprocessor_segment_overrun + 0x0000000000008225 reserved + 0x000000000000822c irq13 + 0x0000000000008241 double_fault + 0x0000000000008278 invalid_TSS + 0x000000000000827f segment_not_present + 0x0000000000008286 stack_segment + 0x000000000000828d general_protection + 0x00000000000082c6 verify_area + 0x000000000000832d copy_mem + 0x0000000000008487 copy_process + 0x0000000000008934 find_empty_process + 0x00000000000089c8 panic + 0x0000000000008a03 printk + 0x0000000000008d20 vsprintf + 0x00000000000091e6 sys_ftime + 0x00000000000091ec sys_break + 0x00000000000091f2 sys_ptrace + 0x00000000000091f8 sys_stty + 0x00000000000091fe sys_gtty + 0x0000000000009204 sys_rename + 0x000000000000920a sys_prof + 0x0000000000009210 sys_setregid + 0x00000000000092c9 sys_setgid + 0x0000000000009360 sys_acct + 0x0000000000009366 sys_phys + 0x000000000000936c sys_lock + 0x0000000000009372 sys_mpx + 0x0000000000009378 sys_ulimit + 0x000000000000937e sys_time + 0x00000000000093da sys_setreuid + 0x00000000000094bc sys_setuid + 0x0000000000009551 sys_stime + 0x00000000000095a7 sys_times + 0x0000000000009647 sys_brk + 0x0000000000009689 sys_setpgid + 0x0000000000009762 sys_getpgrp + 0x000000000000976e sys_setsid + 0x00000000000097e8 sys_getgroups + 0x00000000000097ee sys_setgroups + 0x00000000000097f4 sys_uname + 0x000000000000985d sys_sethostname + 0x0000000000009863 sys_getrlimit + 0x0000000000009869 sys_setrlimit + 0x000000000000986f sys_getrusage + 0x0000000000009875 sys_gettimeofday + 0x000000000000987b sys_settimeofday + 0x0000000000009881 sys_umask + 0x00000000000098f2 release + 0x0000000000009a2f sys_kill + 0x0000000000009c69 do_exit + 0x0000000000009e9d sys_exit + 0x0000000000009eb6 sys_waitpid + 0x000000000000a10e sys_sgetmask + 0x000000000000a11a sys_ssetmask + 0x000000000000a146 sys_sigpending + 0x000000000000a14c sys_sigsuspend + 0x000000000000a1e5 sys_signal + 0x000000000000a269 sys_sigaction + 0x000000000000a373 do_signal + 0x000000000000a55f kernel_mktime + 0x000000000000a6ba sys_init_graphics + 0x000000000000a7fc sys_repaint + 0x000000000000a8f9 post_message + 0x000000000000a954 sys_get_message + .text 0x000000000000aa04 0xb01 mm/mm.o + 0x000000000000aa23 get_free_page + 0x000000000000aa5f free_page + 0x000000000000aace free_page_tables + 0x000000000000abcd copy_page_tables + 0x000000000000ad4e put_page + 0x000000000000ae3a un_wp_page + 0x000000000000aef2 do_wp_page + 0x000000000000af24 write_verify + 0x000000000000af7d get_empty_page + 0x000000000000b203 do_no_page + 0x000000000000b365 mem_init + 0x000000000000b3d9 calc_mem + 0x000000000000b4ce page_fault + .text 0x000000000000b505 0x8550 fs/fs.o + 0x000000000000b51b sys_ustat + 0x000000000000b521 sys_utime + 0x000000000000b5ce sys_access + 0x000000000000b6aa sys_chdir + 0x000000000000b71e sys_chroot + 0x000000000000b792 sys_chmod + 0x000000000000b82c sys_chown + 0x000000000000b8a7 sys_open + 0x000000000000bb4a sys_creat + 0x000000000000bb6d sys_close + 0x000000000000bc3c sys_lseek + 0x000000000000bd53 sys_read + 0x000000000000bf46 sys_write + 0x000000000000c13f invalidate_inodes + 0x000000000000c1ae sync_inodes + 0x000000000000c5f1 bmap + 0x000000000000c614 create_block + 0x000000000000c637 iput + 0x000000000000c7a6 get_empty_inode + 0x000000000000c8fb get_pipe_inode + 0x000000000000c970 iget + 0x000000000000cd6b sys_sync + 0x000000000000cdce sync_dev + 0x000000000000cec7 invalidate_buffers + 0x000000000000cf39 check_disk_change + 0x000000000000d207 get_hash_table + 0x000000000000d289 getblk + 0x000000000000d427 brelse + 0x000000000000d470 bread + 0x000000000000d4f5 bread_page + 0x000000000000d617 breada + 0x000000000000d70c buffer_init + 0x000000000000d8ad get_super + 0x000000000000d91c put_super + 0x000000000000dd32 sys_umount + 0x000000000000de93 sys_mount + 0x000000000000e004 mount_root + 0x000000000000e238 block_write + 0x000000000000e38a block_read + 0x000000000000e6f5 rw_char + 0x000000000000e785 file_read + 0x000000000000e930 file_write + 0x000000000000ec19 sys_stat + 0x000000000000ec63 sys_lstat + 0x000000000000ec7e sys_fstat + 0x000000000000ecdb sys_readlink + 0x000000000000ed8a sys_uselib + 0x000000000000f259 do_execve + 0x000000000000fcfa do_execve2 + 0x00000000000108f7 read_pipe + 0x0000000000010a4d write_pipe + 0x0000000000010bcc sys_pipe + 0x00000000000115ab namei + 0x00000000000116c1 open_namei + 0x0000000000011a14 sys_mknod + 0x0000000000011c44 sys_mkdir + 0x00000000000121d3 sys_rmdir + 0x000000000001252b sys_unlink + 0x00000000000127cc sys_symlink + 0x00000000000127d2 sys_link + 0x0000000000012a2c free_block + 0x0000000000012b9e new_block + 0x0000000000012d42 free_inode + 0x0000000000012ea9 new_inode + 0x000000000001315d sys_dup2 + 0x0000000000013184 sys_dup + 0x000000000001319f sys_fcntl + 0x00000000000132de sys_ioctl + 0x00000000000134ed truncate + 0x0000000000013622 sys_select + 0x0000000000013640 sys_getdents + 0x0000000000013806 sys_sleep + 0x0000000000013843 sys_something + 0x0000000000013849 sys_getcwd + .text 0x0000000000013a55 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000013e18 ll_rw_block + 0x0000000000013e71 blk_dev_init + .text 0x0000000000013ebf 0xb9d kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000013fa5 floppy_deselect + 0x0000000000013fdc floppy_change + 0x0000000000014399 setup_rw_floppy + 0x0000000000014632 unexpected_floppy_interrupt + 0x0000000000014a0a floppy_init + .text 0x0000000000014a5c 0xc8f kernel/blk_drv/blk_drv.a(hd.o) + 0x0000000000014b30 sys_setup + 0x00000000000151df unexpected_hd_interrupt + 0x0000000000015671 hd_init + .text 0x00000000000156eb 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x00000000000158f5 rd_init + 0x000000000001594b rd_load + .text 0x0000000000015bf7 0xe54 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x0000000000015c1d tty_init + 0x0000000000015c2e tty_intr + 0x0000000000015d3b wait_for_keypress + 0x0000000000015d4e copy_to_cooked + 0x0000000000016309 tty_read + 0x0000000000016677 tty_write + 0x0000000000016889 do_tty_interrupt + 0x00000000000168b1 chr_dev_init + 0x00000000000168b2 readmouse + .text 0x0000000000016a4b 0x1331 kernel/chr_drv/chr_drv.a(console.o) + 0x0000000000016fe8 csi_m + 0x0000000000017382 con_write + 0x0000000000017a10 con_init + 0x0000000000017cf5 sysbeepstop + .text 0x0000000000017d7c 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o) + 0x0000000000017d7f keyboard_interrupt + .text 0x000000000001855e 0x145 kernel/chr_drv/chr_drv.a(serial.o) + 0x00000000000185d3 rs_init + 0x0000000000018656 rs_write + *fill* 0x00000000000186a3 0x1 + .text 0x00000000000186a4 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o) + 0x00000000000186a4 rs1_interrupt + 0x00000000000186ac rs2_interrupt + .text 0x000000000001879b 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x0000000000018aac tty_ioctl + .text 0x0000000000018daa 0x25 kernel/chr_drv/chr_drv.a(mouse.2.o) + 0x0000000000018daa mouse_interrupt + .text 0x0000000000018dcf 0x111 kernel/math/math.a(math_emulate.o) + 0x0000000000018ddd math_emulate + 0x0000000000018ec0 math_error + .text 0x0000000000018ee0 0x0 lib/lib.a(ctype.o) + .text 0x0000000000018ee0 0x10 lib/lib.a(_exit.o) + 0x0000000000018ee0 _exit + .text 0x0000000000018ef0 0x49 lib/lib.a(open.o) + 0x0000000000018ef0 open + .text 0x0000000000018f39 0x37 lib/lib.a(close.o) + 0x0000000000018f39 close + .text 0x0000000000018f70 0x0 lib/lib.a(errno.o) + .text 0x0000000000018f70 0x3d lib/lib.a(write.o) + 0x0000000000018f70 write + .text 0x0000000000018fad 0x37 lib/lib.a(dup.o) + 0x0000000000018fad dup + .text 0x0000000000018fe4 0x2f lib/lib.a(setsid.o) + 0x0000000000018fe4 setsid + .text 0x0000000000019013 0x3d lib/lib.a(execve.o) + 0x0000000000019013 execve + .text 0x0000000000019050 0x60 lib/lib.a(wait.o) + 0x0000000000019050 waitpid + 0x000000000001908d wait + .text 0x00000000000190b0 0x3dc lib/lib.a(string.o) + 0x00000000000190b0 strcpy + 0x00000000000190cc strncpy + 0x00000000000190f1 strcat + 0x000000000001911c strncat + 0x0000000000019151 strcmp + 0x0000000000019178 strncmp + 0x00000000000191a6 strchr + 0x00000000000191d3 strrchr + 0x0000000000019202 strspn + 0x000000000001923f strcspn + 0x000000000001927c strpbrk + 0x00000000000192b3 strstr + 0x00000000000192ec strlen + 0x000000000001930f strtok + 0x0000000000019392 memcpy + 0x00000000000193b2 memmove + 0x0000000000019406 memcmp + 0x0000000000019430 memchr + 0x0000000000019468 memset + .text 0x000000000001948c 0x36c lib/lib.a(malloc.o) + 0x00000000000194f5 malloc + 0x0000000000019681 free_s *(.gnu.warning) .fini *(SORT(.fini)) - 0x00000000000197f7 PROVIDE (__etext, .) - 0x00000000000197f7 PROVIDE (_etext, .) - 0x00000000000197f7 PROVIDE (etext, .) + 0x00000000000197f8 PROVIDE (__etext, .) + 0x00000000000197f8 PROVIDE (_etext, .) + 0x00000000000197f8 PROVIDE (etext, .) -.rodata 0x00000000000197f8 0x14cb +.rodata 0x00000000000197f8 0x14af *(.rodata .rodata.* .gnu.linkonce.r.*) - .rodata 0x00000000000197f8 0xc9 init/main.o - *fill* 0x00000000000198c1 0x3 - .rodata 0x00000000000198c4 0x438 kernel/kernel.o - .rodata 0x0000000000019cfc 0x18f mm/mm.o - *fill* 0x0000000000019e8b 0x1 - .rodata 0x0000000000019e8c 0x63c fs/fs.o - .rodata 0x000000000001a4c8 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - *fill* 0x000000000001a542 0x2 - .rodata 0x000000000001a544 0x133 kernel/blk_drv/blk_drv.a(floppy.o) - *fill* 0x000000000001a677 0x1 - .rodata 0x000000000001a678 0x19b kernel/blk_drv/blk_drv.a(hd.o) - *fill* 0x000000000001a813 0x1 - .rodata 0x000000000001a814 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o) - .rodata 0x000000000001a99c 0x17d kernel/chr_drv/chr_drv.a(console.o) - *fill* 0x000000000001ab19 0x3 - .rodata 0x000000000001ab1c 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .rodata 0x000000000001ab9c 0x52 kernel/math/math.a(math_emulate.o) - *fill* 0x000000000001abee 0x2 - .rodata 0x000000000001abf0 0xd3 lib/lib.a(malloc.o) + .rodata 0x00000000000197f8 0xad init/main.o + *fill* 0x00000000000198a5 0x3 + .rodata 0x00000000000198a8 0x438 kernel/kernel.o + .rodata 0x0000000000019ce0 0x18f mm/mm.o + *fill* 0x0000000000019e6f 0x1 + .rodata 0x0000000000019e70 0x63c fs/fs.o + .rodata 0x000000000001a4ac 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + *fill* 0x000000000001a526 0x2 + .rodata 0x000000000001a528 0x133 kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x000000000001a65b 0x1 + .rodata 0x000000000001a65c 0x19b kernel/blk_drv/blk_drv.a(hd.o) + *fill* 0x000000000001a7f7 0x1 + .rodata 0x000000000001a7f8 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o) + .rodata 0x000000000001a980 0x17d kernel/chr_drv/chr_drv.a(console.o) + *fill* 0x000000000001aafd 0x3 + .rodata 0x000000000001ab00 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .rodata 0x000000000001ab80 0x52 kernel/math/math.a(math_emulate.o) + *fill* 0x000000000001abd2 0x2 + .rodata 0x000000000001abd4 0xd3 lib/lib.a(malloc.o) .rodata1 *(.rodata1) @@ -568,52 +568,52 @@ LOAD lib/lib.a .eh_frame_hdr *(.eh_frame_hdr) -.eh_frame 0x000000000001acc4 0x2c80 +.eh_frame 0x000000000001aca8 0x2c7c *(.eh_frame) - .eh_frame 0x000000000001acc4 0x120 init/main.o - .eh_frame 0x000000000001ade4 0xbb0 kernel/kernel.o + .eh_frame 0x000000000001aca8 0x11c init/main.o + .eh_frame 0x000000000001adc4 0xbb0 kernel/kernel.o 0xcd0 (size before relaxing) - .eh_frame 0x000000000001b994 0x194 mm/mm.o + .eh_frame 0x000000000001b974 0x194 mm/mm.o 0x1ac (size before relaxing) - .eh_frame 0x000000000001bb28 0xea4 fs/fs.o + .eh_frame 0x000000000001bb08 0xea4 fs/fs.o 0x1054 (size before relaxing) - .eh_frame 0x000000000001c9cc 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .eh_frame 0x000000000001c9ac 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) 0xb0 (size before relaxing) - .eh_frame 0x000000000001ca64 0x23c kernel/blk_drv/blk_drv.a(floppy.o) + .eh_frame 0x000000000001ca44 0x23c kernel/blk_drv/blk_drv.a(floppy.o) 0x254 (size before relaxing) - .eh_frame 0x000000000001cca0 0x1e8 kernel/blk_drv/blk_drv.a(hd.o) + .eh_frame 0x000000000001cc80 0x1e8 kernel/blk_drv/blk_drv.a(hd.o) 0x200 (size before relaxing) - .eh_frame 0x000000000001ce88 0xac kernel/blk_drv/blk_drv.a(ramdisk.o) + .eh_frame 0x000000000001ce68 0xac kernel/blk_drv/blk_drv.a(ramdisk.o) 0xc4 (size before relaxing) - .eh_frame 0x000000000001cf34 0x148 kernel/chr_drv/chr_drv.a(tty_io.o) + .eh_frame 0x000000000001cf14 0x148 kernel/chr_drv/chr_drv.a(tty_io.o) 0x160 (size before relaxing) - .eh_frame 0x000000000001d07c 0x2c0 kernel/chr_drv/chr_drv.a(console.o) + .eh_frame 0x000000000001d05c 0x2c0 kernel/chr_drv/chr_drv.a(console.o) 0x2d8 (size before relaxing) - .eh_frame 0x000000000001d33c 0x54 kernel/chr_drv/chr_drv.a(serial.o) + .eh_frame 0x000000000001d31c 0x54 kernel/chr_drv/chr_drv.a(serial.o) 0x6c (size before relaxing) - .eh_frame 0x000000000001d390 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .eh_frame 0x000000000001d370 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o) 0x160 (size before relaxing) - .eh_frame 0x000000000001d4d8 0x5c kernel/math/math.a(math_emulate.o) + .eh_frame 0x000000000001d4b8 0x5c kernel/math/math.a(math_emulate.o) 0x74 (size before relaxing) - .eh_frame 0x000000000001d534 0x1c lib/lib.a(_exit.o) + .eh_frame 0x000000000001d514 0x1c lib/lib.a(_exit.o) 0x34 (size before relaxing) - .eh_frame 0x000000000001d550 0x24 lib/lib.a(open.o) + .eh_frame 0x000000000001d530 0x24 lib/lib.a(open.o) 0x3c (size before relaxing) - .eh_frame 0x000000000001d574 0x20 lib/lib.a(close.o) + .eh_frame 0x000000000001d554 0x20 lib/lib.a(close.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001d594 0x20 lib/lib.a(write.o) + .eh_frame 0x000000000001d574 0x20 lib/lib.a(write.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001d5b4 0x20 lib/lib.a(dup.o) + .eh_frame 0x000000000001d594 0x20 lib/lib.a(dup.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001d5d4 0x18 lib/lib.a(setsid.o) + .eh_frame 0x000000000001d5b4 0x18 lib/lib.a(setsid.o) 0x30 (size before relaxing) - .eh_frame 0x000000000001d5ec 0x20 lib/lib.a(execve.o) + .eh_frame 0x000000000001d5cc 0x20 lib/lib.a(execve.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001d60c 0x38 lib/lib.a(wait.o) + .eh_frame 0x000000000001d5ec 0x38 lib/lib.a(wait.o) 0x50 (size before relaxing) - .eh_frame 0x000000000001d644 0x2b0 lib/lib.a(string.o) + .eh_frame 0x000000000001d624 0x2b0 lib/lib.a(string.o) 0x2c8 (size before relaxing) - .eh_frame 0x000000000001d8f4 0x50 lib/lib.a(malloc.o) + .eh_frame 0x000000000001d8d4 0x50 lib/lib.a(malloc.o) 0x68 (size before relaxing) .gcc_except_table @@ -621,7 +621,7 @@ LOAD lib/lib.a .exception_ranges *(.exception_ranges .exception_ranges*) - 0x000000000001d944 . = . + 0x000000000001d924 . = . .eh_frame *(.eh_frame) @@ -639,22 +639,22 @@ LOAD lib/lib.a *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) -.preinit_array 0x000000000001d944 0x0 - 0x000000000001d944 PROVIDE (__preinit_array_start, .) +.preinit_array 0x000000000001d924 0x0 + 0x000000000001d924 PROVIDE (__preinit_array_start, .) *(.preinit_array) - 0x000000000001d944 PROVIDE (__preinit_array_end, .) + 0x000000000001d924 PROVIDE (__preinit_array_end, .) -.init_array 0x000000000001d944 0x0 - 0x000000000001d944 PROVIDE (__init_array_start, .) +.init_array 0x000000000001d924 0x0 + 0x000000000001d924 PROVIDE (__init_array_start, .) *(SORT(.init_array.*) SORT(.ctors.*)) *(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors) - 0x000000000001d944 PROVIDE (__init_array_end, .) + 0x000000000001d924 PROVIDE (__init_array_end, .) -.fini_array 0x000000000001d944 0x0 - 0x000000000001d944 PROVIDE (__fini_array_start, .) +.fini_array 0x000000000001d924 0x0 + 0x000000000001d924 PROVIDE (__fini_array_start, .) *(SORT(.fini_array.*) SORT(.dtors.*)) *(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors) - 0x000000000001d944 PROVIDE (__fini_array_end, .) + 0x000000000001d924 PROVIDE (__fini_array_end, .) .ctors *crtbegin.o(.ctors) @@ -684,152 +684,152 @@ LOAD lib/lib.a *(.got) *(.igot) -.got.plt 0x000000000001d944 0x0 +.got.plt 0x000000000001d924 0x0 *(.got.plt) *(.igot.plt) .igot.plt 0x0000000000000000 0x0 boot/head.o -.data 0x000000000001d960 0x3bb0 +.data 0x000000000001d940 0x3bb0 *(.data .data.* .gnu.linkonce.d.*) - .data 0x000000000001d960 0x0 boot/head.o - .data 0x000000000001d960 0x28 init/main.o - *fill* 0x000000000001d988 0x18 - .data 0x000000000001d9a0 0x1350 kernel/kernel.o - 0x000000000001d9a0 sys_call_table - 0x000000000001db20 NR_syscalls - 0x000000000001eb40 current - 0x000000000001eb60 task - 0x000000000001ec60 stack_start - 0x000000000001ec68 current_DOR - .data 0x000000000001ecf0 0x0 mm/mm.o - *fill* 0x000000000001ecf0 0x10 - .data 0x000000000001ed00 0x60 fs/fs.o - 0x000000000001ed04 start_buffer - .data 0x000000000001ed60 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .data 0x000000000001ed60 0xcd kernel/blk_drv/blk_drv.a(floppy.o) - *fill* 0x000000000001ee2d 0x3 - .data 0x000000000001ee30 0x4 kernel/blk_drv/blk_drv.a(hd.o) - .data 0x000000000001ee34 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) - *fill* 0x000000000001ee34 0xc - .data 0x000000000001ee40 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o) - 0x000000000001ee40 tty_table - 0x0000000000021360 table_list - .data 0x0000000000021378 0x1 kernel/chr_drv/chr_drv.a(console.o) - .data 0x0000000000021379 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) - .data 0x0000000000021379 0x0 kernel/chr_drv/chr_drv.a(serial.o) - .data 0x0000000000021379 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) - *fill* 0x0000000000021379 0x7 - .data 0x0000000000021380 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .data 0x00000000000213a0 0x0 kernel/chr_drv/chr_drv.a(mouse.2.o) - .data 0x00000000000213a0 0x0 kernel/math/math.a(math_emulate.o) - .data 0x00000000000213a0 0x101 lib/lib.a(ctype.o) - 0x00000000000213a0 _ctype - .data 0x00000000000214a1 0x0 lib/lib.a(_exit.o) - .data 0x00000000000214a1 0x0 lib/lib.a(open.o) - .data 0x00000000000214a1 0x0 lib/lib.a(close.o) - .data 0x00000000000214a1 0x0 lib/lib.a(errno.o) - .data 0x00000000000214a1 0x0 lib/lib.a(write.o) - .data 0x00000000000214a1 0x0 lib/lib.a(dup.o) - .data 0x00000000000214a1 0x0 lib/lib.a(setsid.o) - .data 0x00000000000214a1 0x0 lib/lib.a(execve.o) - .data 0x00000000000214a1 0x0 lib/lib.a(wait.o) - .data 0x00000000000214a1 0x0 lib/lib.a(string.o) - *fill* 0x00000000000214a1 0x1f - .data 0x00000000000214c0 0x50 lib/lib.a(malloc.o) - 0x00000000000214c0 bucket_dir + .data 0x000000000001d940 0x0 boot/head.o + .data 0x000000000001d940 0x28 init/main.o + *fill* 0x000000000001d968 0x18 + .data 0x000000000001d980 0x1350 kernel/kernel.o + 0x000000000001d980 sys_call_table + 0x000000000001db00 NR_syscalls + 0x000000000001eb20 current + 0x000000000001eb40 task + 0x000000000001ec40 stack_start + 0x000000000001ec48 current_DOR + .data 0x000000000001ecd0 0x0 mm/mm.o + *fill* 0x000000000001ecd0 0x10 + .data 0x000000000001ece0 0x60 fs/fs.o + 0x000000000001ece4 start_buffer + .data 0x000000000001ed40 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .data 0x000000000001ed40 0xcd kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x000000000001ee0d 0x3 + .data 0x000000000001ee10 0x4 kernel/blk_drv/blk_drv.a(hd.o) + .data 0x000000000001ee14 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) + *fill* 0x000000000001ee14 0xc + .data 0x000000000001ee20 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x000000000001ee20 tty_table + 0x0000000000021340 table_list + .data 0x0000000000021358 0x1 kernel/chr_drv/chr_drv.a(console.o) + .data 0x0000000000021359 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .data 0x0000000000021359 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .data 0x0000000000021359 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + *fill* 0x0000000000021359 0x7 + .data 0x0000000000021360 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .data 0x0000000000021380 0x0 kernel/chr_drv/chr_drv.a(mouse.2.o) + .data 0x0000000000021380 0x0 kernel/math/math.a(math_emulate.o) + .data 0x0000000000021380 0x101 lib/lib.a(ctype.o) + 0x0000000000021380 _ctype + .data 0x0000000000021481 0x0 lib/lib.a(_exit.o) + .data 0x0000000000021481 0x0 lib/lib.a(open.o) + .data 0x0000000000021481 0x0 lib/lib.a(close.o) + .data 0x0000000000021481 0x0 lib/lib.a(errno.o) + .data 0x0000000000021481 0x0 lib/lib.a(write.o) + .data 0x0000000000021481 0x0 lib/lib.a(dup.o) + .data 0x0000000000021481 0x0 lib/lib.a(setsid.o) + .data 0x0000000000021481 0x0 lib/lib.a(execve.o) + .data 0x0000000000021481 0x0 lib/lib.a(wait.o) + .data 0x0000000000021481 0x0 lib/lib.a(string.o) + *fill* 0x0000000000021481 0x1f + .data 0x00000000000214a0 0x50 lib/lib.a(malloc.o) + 0x00000000000214a0 bucket_dir .data1 *(.data1) - 0x0000000000021510 _edata = . - 0x0000000000021510 PROVIDE (edata, .) - 0x0000000000021510 . = . - 0x0000000000021510 __bss_start = . + 0x00000000000214f0 _edata = . + 0x00000000000214f0 PROVIDE (edata, .) + 0x00000000000214f0 . = . + 0x00000000000214f0 __bss_start = . -.bss 0x0000000000021520 0x64f0 +.bss 0x0000000000021500 0x64f0 *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) - .bss 0x0000000000021520 0x0 boot/head.o - .bss 0x0000000000021520 0x40c init/main.o - *fill* 0x000000000002192c 0x14 - .bss 0x0000000000021940 0x768 kernel/kernel.o - 0x0000000000021940 jiffies - 0x0000000000021944 startup_time - 0x0000000000021948 last_task_used_math - 0x000000000002194c user_timer_list - 0x0000000000021c84 last_pid - 0x00000000000220a0 msg_que_fron - 0x00000000000220a4 msg_que_rear - *fill* 0x00000000000220a8 0x18 - .bss 0x00000000000220c0 0xf20 mm/mm.o - .bss 0x0000000000022fe0 0x710 fs/fs.o - 0x0000000000022fe0 inode_table - 0x00000000000236e0 nr_buffers - 0x00000000000236ec ROOT_DEV - *fill* 0x00000000000236f0 0x10 - .bss 0x0000000000023700 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x0000000000023700 wait_for_request - 0x0000000000023720 blk_dev - .bss 0x0000000000023758 0x25 kernel/blk_drv/blk_drv.a(floppy.o) - 0x0000000000023758 do_floppy - 0x000000000002375c selected - 0x0000000000023760 wait_on_floppy_select - *fill* 0x000000000002377d 0x3 - .bss 0x0000000000023780 0xb0 kernel/blk_drv/blk_drv.a(hd.o) - 0x0000000000023780 do_hd - 0x00000000000237a0 hd_info - .bss 0x0000000000023830 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x0000000000023830 rd_length - .bss 0x0000000000023834 0x14 kernel/chr_drv/chr_drv.a(tty_io.o) - *fill* 0x0000000000023848 0x18 - .bss 0x0000000000023860 0xac kernel/chr_drv/chr_drv.a(console.o) - 0x0000000000023860 beepcount - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(serial.o) - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .bss 0x000000000002390c 0x0 kernel/chr_drv/chr_drv.a(mouse.2.o) - .bss 0x000000000002390c 0x0 kernel/math/math.a(math_emulate.o) - .bss 0x000000000002390c 0x0 lib/lib.a(ctype.o) - .bss 0x000000000002390c 0x0 lib/lib.a(_exit.o) - .bss 0x000000000002390c 0x0 lib/lib.a(open.o) - .bss 0x000000000002390c 0x0 lib/lib.a(close.o) - .bss 0x000000000002390c 0x0 lib/lib.a(errno.o) - .bss 0x000000000002390c 0x0 lib/lib.a(write.o) - .bss 0x000000000002390c 0x0 lib/lib.a(dup.o) - .bss 0x000000000002390c 0x0 lib/lib.a(setsid.o) - .bss 0x000000000002390c 0x0 lib/lib.a(execve.o) - .bss 0x000000000002390c 0x0 lib/lib.a(wait.o) - .bss 0x000000000002390c 0x0 lib/lib.a(string.o) - .bss 0x000000000002390c 0x4 lib/lib.a(malloc.o) - 0x000000000002390c free_bucket_desc + .bss 0x0000000000021500 0x0 boot/head.o + .bss 0x0000000000021500 0x40c init/main.o + *fill* 0x000000000002190c 0x14 + .bss 0x0000000000021920 0x768 kernel/kernel.o + 0x0000000000021920 jiffies + 0x0000000000021924 startup_time + 0x0000000000021928 last_task_used_math + 0x000000000002192c user_timer_list + 0x0000000000021c64 last_pid + 0x0000000000022080 msg_que_fron + 0x0000000000022084 msg_que_rear + *fill* 0x0000000000022088 0x18 + .bss 0x00000000000220a0 0xf20 mm/mm.o + .bss 0x0000000000022fc0 0x710 fs/fs.o + 0x0000000000022fc0 inode_table + 0x00000000000236c0 nr_buffers + 0x00000000000236cc ROOT_DEV + *fill* 0x00000000000236d0 0x10 + .bss 0x00000000000236e0 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x00000000000236e0 wait_for_request + 0x0000000000023700 blk_dev + .bss 0x0000000000023738 0x25 kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000023738 do_floppy + 0x000000000002373c selected + 0x0000000000023740 wait_on_floppy_select + *fill* 0x000000000002375d 0x3 + .bss 0x0000000000023760 0xb0 kernel/blk_drv/blk_drv.a(hd.o) + 0x0000000000023760 do_hd + 0x0000000000023780 hd_info + .bss 0x0000000000023810 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x0000000000023810 rd_length + .bss 0x0000000000023814 0x14 kernel/chr_drv/chr_drv.a(tty_io.o) + *fill* 0x0000000000023828 0x18 + .bss 0x0000000000023840 0xac kernel/chr_drv/chr_drv.a(console.o) + 0x0000000000023840 beepcount + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .bss 0x00000000000238ec 0x0 kernel/chr_drv/chr_drv.a(mouse.2.o) + .bss 0x00000000000238ec 0x0 kernel/math/math.a(math_emulate.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(ctype.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(_exit.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(open.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(close.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(errno.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(write.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(dup.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(setsid.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(execve.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(wait.o) + .bss 0x00000000000238ec 0x0 lib/lib.a(string.o) + .bss 0x00000000000238ec 0x4 lib/lib.a(malloc.o) + 0x00000000000238ec free_bucket_desc *(COMMON) - *fill* 0x0000000000023910 0x10 - COMMON 0x0000000000023920 0x20 init/main.o - 0x0000000000023920 drive_info - COMMON 0x0000000000023940 0x3000 kernel/kernel.o - 0x0000000000023940 msg_que - 0x0000000000025940 user_stack - COMMON 0x0000000000026940 0xc40 fs/fs.o - 0x0000000000026940 hash_table - 0x0000000000026e20 super_block - 0x0000000000027180 file_table - COMMON 0x0000000000027580 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x0000000000027580 request - COMMON 0x0000000000027a00 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x0000000000027a00 rd_start - COMMON 0x0000000000027a04 0x1 lib/lib.a(ctype.o) - 0x0000000000027a04 _ctmp - *fill* 0x0000000000027a05 0x3 - COMMON 0x0000000000027a08 0x4 lib/lib.a(errno.o) - 0x0000000000027a08 errno - COMMON 0x0000000000027a0c 0x4 lib/lib.a(string.o) - 0x0000000000027a0c ___strtok - 0x0000000000027a10 . = ALIGN ((. != 0x0)?0x4:0x1) - 0x0000000000027a10 . = ALIGN (0x4) - 0x0000000000027a10 . = SEGMENT_START ("ldata-segment", .) - 0x0000000000027a10 . = ALIGN (0x4) - 0x0000000000027a10 _end = . - 0x0000000000027a10 PROVIDE (end, .) + *fill* 0x00000000000238f0 0x10 + COMMON 0x0000000000023900 0x20 init/main.o + 0x0000000000023900 drive_info + COMMON 0x0000000000023920 0x3000 kernel/kernel.o + 0x0000000000023920 msg_que + 0x0000000000025920 user_stack + COMMON 0x0000000000026920 0xc40 fs/fs.o + 0x0000000000026920 hash_table + 0x0000000000026e00 super_block + 0x0000000000027160 file_table + COMMON 0x0000000000027560 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000027560 request + COMMON 0x00000000000279e0 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x00000000000279e0 rd_start + COMMON 0x00000000000279e4 0x1 lib/lib.a(ctype.o) + 0x00000000000279e4 _ctmp + *fill* 0x00000000000279e5 0x3 + COMMON 0x00000000000279e8 0x4 lib/lib.a(errno.o) + 0x00000000000279e8 errno + COMMON 0x00000000000279ec 0x4 lib/lib.a(string.o) + 0x00000000000279ec ___strtok + 0x00000000000279f0 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x00000000000279f0 . = ALIGN (0x4) + 0x00000000000279f0 . = SEGMENT_START ("ldata-segment", .) + 0x00000000000279f0 . = ALIGN (0x4) + 0x00000000000279f0 _end = . + 0x00000000000279f0 PROVIDE (end, .) .stab *(.stab) @@ -946,98 +946,98 @@ LOAD lib/lib.a .debug_pubnames *(.debug_pubnames) -.debug_info 0x0000000000000000 0x18cb8 +.debug_info 0x0000000000000000 0x186f2 *(.debug_info .gnu.linkonce.wi.*) - .debug_info 0x0000000000000000 0xb9b init/main.o - .debug_info 0x0000000000000b9b 0x5680 kernel/kernel.o - .debug_info 0x000000000000621b 0xb2b mm/mm.o - .debug_info 0x0000000000006d46 0xaef6 fs/fs.o - .debug_info 0x0000000000011c3c 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_info 0x000000000001256e 0xc9f kernel/blk_drv/blk_drv.a(floppy.o) - .debug_info 0x000000000001320d 0xd5f kernel/blk_drv/blk_drv.a(hd.o) - .debug_info 0x0000000000013f6c 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_info 0x0000000000014a41 0xb71 kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_info 0x00000000000155b2 0xdcc kernel/chr_drv/chr_drv.a(console.o) - .debug_info 0x000000000001637e 0x85c kernel/chr_drv/chr_drv.a(serial.o) - .debug_info 0x0000000000016bda 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_info 0x0000000000017721 0x7b5 kernel/math/math.a(math_emulate.o) - .debug_info 0x0000000000017ed6 0x66 lib/lib.a(ctype.o) - .debug_info 0x0000000000017f3c 0x7e lib/lib.a(_exit.o) - .debug_info 0x0000000000017fba 0xd7 lib/lib.a(open.o) - .debug_info 0x0000000000018091 0x9e lib/lib.a(close.o) - .debug_info 0x000000000001812f 0x36 lib/lib.a(errno.o) - .debug_info 0x0000000000018165 0xd0 lib/lib.a(write.o) - .debug_info 0x0000000000018235 0x9e lib/lib.a(dup.o) - .debug_info 0x00000000000182d3 0x9c lib/lib.a(setsid.o) - .debug_info 0x000000000001836f 0xd2 lib/lib.a(execve.o) - .debug_info 0x0000000000018441 0xf4 lib/lib.a(wait.o) - .debug_info 0x0000000000018535 0x55e lib/lib.a(string.o) - .debug_info 0x0000000000018a93 0x225 lib/lib.a(malloc.o) - -.debug_abbrev 0x0000000000000000 0x4a10 + .debug_info 0x0000000000000000 0x59f init/main.o + .debug_info 0x000000000000059f 0x5680 kernel/kernel.o + .debug_info 0x0000000000005c1f 0xb2b mm/mm.o + .debug_info 0x000000000000674a 0xaef6 fs/fs.o + .debug_info 0x0000000000011640 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_info 0x0000000000011f72 0xc9f kernel/blk_drv/blk_drv.a(floppy.o) + .debug_info 0x0000000000012c11 0xd5f kernel/blk_drv/blk_drv.a(hd.o) + .debug_info 0x0000000000013970 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_info 0x0000000000014445 0xba7 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_info 0x0000000000014fec 0xdcc kernel/chr_drv/chr_drv.a(console.o) + .debug_info 0x0000000000015db8 0x85c kernel/chr_drv/chr_drv.a(serial.o) + .debug_info 0x0000000000016614 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_info 0x000000000001715b 0x7b5 kernel/math/math.a(math_emulate.o) + .debug_info 0x0000000000017910 0x66 lib/lib.a(ctype.o) + .debug_info 0x0000000000017976 0x7e lib/lib.a(_exit.o) + .debug_info 0x00000000000179f4 0xd7 lib/lib.a(open.o) + .debug_info 0x0000000000017acb 0x9e lib/lib.a(close.o) + .debug_info 0x0000000000017b69 0x36 lib/lib.a(errno.o) + .debug_info 0x0000000000017b9f 0xd0 lib/lib.a(write.o) + .debug_info 0x0000000000017c6f 0x9e lib/lib.a(dup.o) + .debug_info 0x0000000000017d0d 0x9c lib/lib.a(setsid.o) + .debug_info 0x0000000000017da9 0xd2 lib/lib.a(execve.o) + .debug_info 0x0000000000017e7b 0xf4 lib/lib.a(wait.o) + .debug_info 0x0000000000017f6f 0x55e lib/lib.a(string.o) + .debug_info 0x00000000000184cd 0x225 lib/lib.a(malloc.o) + +.debug_abbrev 0x0000000000000000 0x49c6 *(.debug_abbrev) - .debug_abbrev 0x0000000000000000 0x253 init/main.o - .debug_abbrev 0x0000000000000253 0x11f5 kernel/kernel.o - .debug_abbrev 0x0000000000001448 0x20b mm/mm.o - .debug_abbrev 0x0000000000001653 0x1c1d fs/fs.o - .debug_abbrev 0x0000000000003270 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_abbrev 0x00000000000033d9 0x27d kernel/blk_drv/blk_drv.a(floppy.o) - .debug_abbrev 0x0000000000003656 0x23c kernel/blk_drv/blk_drv.a(hd.o) - .debug_abbrev 0x0000000000003892 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_abbrev 0x0000000000003a3a 0x279 kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_abbrev 0x0000000000003cb3 0x26b kernel/chr_drv/chr_drv.a(console.o) - .debug_abbrev 0x0000000000003f1e 0x175 kernel/chr_drv/chr_drv.a(serial.o) - .debug_abbrev 0x0000000000004093 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_abbrev 0x0000000000004220 0x163 kernel/math/math.a(math_emulate.o) - .debug_abbrev 0x0000000000004383 0x3e lib/lib.a(ctype.o) - .debug_abbrev 0x00000000000043c1 0x51 lib/lib.a(_exit.o) - .debug_abbrev 0x0000000000004412 0x97 lib/lib.a(open.o) - .debug_abbrev 0x00000000000044a9 0x75 lib/lib.a(close.o) - .debug_abbrev 0x000000000000451e 0x2c lib/lib.a(errno.o) - .debug_abbrev 0x000000000000454a 0xa1 lib/lib.a(write.o) - .debug_abbrev 0x00000000000045eb 0x75 lib/lib.a(dup.o) - .debug_abbrev 0x0000000000004660 0x73 lib/lib.a(setsid.o) - .debug_abbrev 0x00000000000046d3 0x85 lib/lib.a(execve.o) - .debug_abbrev 0x0000000000004758 0xb6 lib/lib.a(wait.o) - .debug_abbrev 0x000000000000480e 0xe9 lib/lib.a(string.o) - .debug_abbrev 0x00000000000048f7 0x119 lib/lib.a(malloc.o) - -.debug_line 0x0000000000000000 0x4c66 + .debug_abbrev 0x0000000000000000 0x209 init/main.o + .debug_abbrev 0x0000000000000209 0x11f5 kernel/kernel.o + .debug_abbrev 0x00000000000013fe 0x20b mm/mm.o + .debug_abbrev 0x0000000000001609 0x1c1d fs/fs.o + .debug_abbrev 0x0000000000003226 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_abbrev 0x000000000000338f 0x27d kernel/blk_drv/blk_drv.a(floppy.o) + .debug_abbrev 0x000000000000360c 0x23c kernel/blk_drv/blk_drv.a(hd.o) + .debug_abbrev 0x0000000000003848 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_abbrev 0x00000000000039f0 0x279 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_abbrev 0x0000000000003c69 0x26b kernel/chr_drv/chr_drv.a(console.o) + .debug_abbrev 0x0000000000003ed4 0x175 kernel/chr_drv/chr_drv.a(serial.o) + .debug_abbrev 0x0000000000004049 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_abbrev 0x00000000000041d6 0x163 kernel/math/math.a(math_emulate.o) + .debug_abbrev 0x0000000000004339 0x3e lib/lib.a(ctype.o) + .debug_abbrev 0x0000000000004377 0x51 lib/lib.a(_exit.o) + .debug_abbrev 0x00000000000043c8 0x97 lib/lib.a(open.o) + .debug_abbrev 0x000000000000445f 0x75 lib/lib.a(close.o) + .debug_abbrev 0x00000000000044d4 0x2c lib/lib.a(errno.o) + .debug_abbrev 0x0000000000004500 0xa1 lib/lib.a(write.o) + .debug_abbrev 0x00000000000045a1 0x75 lib/lib.a(dup.o) + .debug_abbrev 0x0000000000004616 0x73 lib/lib.a(setsid.o) + .debug_abbrev 0x0000000000004689 0x85 lib/lib.a(execve.o) + .debug_abbrev 0x000000000000470e 0xb6 lib/lib.a(wait.o) + .debug_abbrev 0x00000000000047c4 0xe9 lib/lib.a(string.o) + .debug_abbrev 0x00000000000048ad 0x119 lib/lib.a(malloc.o) + +.debug_line 0x0000000000000000 0x4c33 *(.debug_line .debug_line.* .debug_line_end) - .debug_line 0x0000000000000000 0x1f5 init/main.o - .debug_line 0x00000000000001f5 0x1083 kernel/kernel.o - .debug_line 0x0000000000001278 0x276 mm/mm.o - .debug_line 0x00000000000014ee 0x1fa2 fs/fs.o - .debug_line 0x0000000000003490 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_line 0x0000000000003627 0x24c kernel/blk_drv/blk_drv.a(floppy.o) - .debug_line 0x0000000000003873 0x2bf kernel/blk_drv/blk_drv.a(hd.o) - .debug_line 0x0000000000003b32 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_line 0x0000000000003c92 0x373 kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_line 0x0000000000004005 0x3b7 kernel/chr_drv/chr_drv.a(console.o) - .debug_line 0x00000000000043bc 0xd9 kernel/chr_drv/chr_drv.a(serial.o) - .debug_line 0x0000000000004495 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_line 0x0000000000004670 0xe1 kernel/math/math.a(math_emulate.o) - .debug_line 0x0000000000004751 0x28 lib/lib.a(ctype.o) - .debug_line 0x0000000000004779 0x39 lib/lib.a(_exit.o) - .debug_line 0x00000000000047b2 0x62 lib/lib.a(open.o) - .debug_line 0x0000000000004814 0x5c lib/lib.a(close.o) - .debug_line 0x0000000000004870 0x28 lib/lib.a(errno.o) - .debug_line 0x0000000000004898 0x76 lib/lib.a(write.o) - .debug_line 0x000000000000490e 0x5a lib/lib.a(dup.o) - .debug_line 0x0000000000004968 0x77 lib/lib.a(setsid.o) - .debug_line 0x00000000000049df 0x5d lib/lib.a(execve.o) - .debug_line 0x0000000000004a3c 0x7a lib/lib.a(wait.o) - .debug_line 0x0000000000004ab6 0xc6 lib/lib.a(string.o) - .debug_line 0x0000000000004b7c 0xea lib/lib.a(malloc.o) + .debug_line 0x0000000000000000 0x1b9 init/main.o + .debug_line 0x00000000000001b9 0x1083 kernel/kernel.o + .debug_line 0x000000000000123c 0x276 mm/mm.o + .debug_line 0x00000000000014b2 0x1fa2 fs/fs.o + .debug_line 0x0000000000003454 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_line 0x00000000000035eb 0x24c kernel/blk_drv/blk_drv.a(floppy.o) + .debug_line 0x0000000000003837 0x2bf kernel/blk_drv/blk_drv.a(hd.o) + .debug_line 0x0000000000003af6 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_line 0x0000000000003c56 0x37c kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_line 0x0000000000003fd2 0x3b7 kernel/chr_drv/chr_drv.a(console.o) + .debug_line 0x0000000000004389 0xd9 kernel/chr_drv/chr_drv.a(serial.o) + .debug_line 0x0000000000004462 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_line 0x000000000000463d 0xe1 kernel/math/math.a(math_emulate.o) + .debug_line 0x000000000000471e 0x28 lib/lib.a(ctype.o) + .debug_line 0x0000000000004746 0x39 lib/lib.a(_exit.o) + .debug_line 0x000000000000477f 0x62 lib/lib.a(open.o) + .debug_line 0x00000000000047e1 0x5c lib/lib.a(close.o) + .debug_line 0x000000000000483d 0x28 lib/lib.a(errno.o) + .debug_line 0x0000000000004865 0x76 lib/lib.a(write.o) + .debug_line 0x00000000000048db 0x5a lib/lib.a(dup.o) + .debug_line 0x0000000000004935 0x77 lib/lib.a(setsid.o) + .debug_line 0x00000000000049ac 0x5d lib/lib.a(execve.o) + .debug_line 0x0000000000004a09 0x7a lib/lib.a(wait.o) + .debug_line 0x0000000000004a83 0xc6 lib/lib.a(string.o) + .debug_line 0x0000000000004b49 0xea lib/lib.a(malloc.o) .debug_frame *(.debug_frame) -.debug_str 0x0000000000000000 0x22d6 +.debug_str 0x0000000000000000 0x230a *(.debug_str) - .debug_str 0x0000000000000000 0x3bd init/main.o - 0x46e (size before relaxing) - .debug_str 0x00000000000003bd 0x966 kernel/kernel.o + .debug_str 0x0000000000000000 0x1c5 init/main.o + 0x212 (size before relaxing) + .debug_str 0x00000000000001c5 0xb5e kernel/kernel.o 0x27de (size before relaxing) .debug_str 0x0000000000000d23 0x181 mm/mm.o 0x4dc (size before relaxing) @@ -1051,39 +1051,39 @@ LOAD lib/lib.a 0x5e4 (size before relaxing) .debug_str 0x0000000000001c75 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o) 0x586 (size before relaxing) - .debug_str 0x0000000000001cb8 0x180 kernel/chr_drv/chr_drv.a(tty_io.o) - 0x568 (size before relaxing) - .debug_str 0x0000000000001e38 0x1b9 kernel/chr_drv/chr_drv.a(console.o) + .debug_str 0x0000000000001cb8 0x1b4 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x59c (size before relaxing) + .debug_str 0x0000000000001e6c 0x1b9 kernel/chr_drv/chr_drv.a(console.o) 0x5b3 (size before relaxing) - .debug_str 0x0000000000001ff1 0x1a kernel/chr_drv/chr_drv.a(serial.o) + .debug_str 0x0000000000002025 0x1a kernel/chr_drv/chr_drv.a(serial.o) 0x3f8 (size before relaxing) - .debug_str 0x000000000000200b 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_str 0x000000000000203f 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o) 0x4a3 (size before relaxing) - .debug_str 0x0000000000002096 0x6c kernel/math/math.a(math_emulate.o) + .debug_str 0x00000000000020ca 0x6c kernel/math/math.a(math_emulate.o) 0x38e (size before relaxing) - .debug_str 0x0000000000002102 0x89 lib/lib.a(ctype.o) + .debug_str 0x0000000000002136 0x89 lib/lib.a(ctype.o) 0xb2 (size before relaxing) - .debug_str 0x000000000000218b 0x8 lib/lib.a(_exit.o) + .debug_str 0x00000000000021bf 0x8 lib/lib.a(_exit.o) 0xf0 (size before relaxing) .debug_str 0x0000000000000000 0x8 lib/lib.a(open.o) 0x100 (size before relaxing) - .debug_str 0x0000000000002193 0x8 lib/lib.a(close.o) + .debug_str 0x00000000000021c7 0x8 lib/lib.a(close.o) 0xf2 (size before relaxing) - .debug_str 0x000000000000219b 0x8 lib/lib.a(errno.o) + .debug_str 0x00000000000021cf 0x8 lib/lib.a(errno.o) 0x8f (size before relaxing) .debug_str 0x0000000000000000 0x8 lib/lib.a(write.o) 0xfe (size before relaxing) - .debug_str 0x00000000000021a3 0x6 lib/lib.a(dup.o) + .debug_str 0x00000000000021d7 0x6 lib/lib.a(dup.o) 0xea (size before relaxing) - .debug_str 0x00000000000021a9 0x9 lib/lib.a(setsid.o) + .debug_str 0x00000000000021dd 0x9 lib/lib.a(setsid.o) 0xfa (size before relaxing) - .debug_str 0x00000000000021b2 0x9 lib/lib.a(execve.o) + .debug_str 0x00000000000021e6 0x9 lib/lib.a(execve.o) 0x103 (size before relaxing) - .debug_str 0x00000000000021bb 0x11 lib/lib.a(wait.o) + .debug_str 0x00000000000021ef 0x11 lib/lib.a(wait.o) 0x110 (size before relaxing) - .debug_str 0x00000000000021cc 0x93 lib/lib.a(string.o) + .debug_str 0x0000000000002200 0x93 lib/lib.a(string.o) 0x143 (size before relaxing) - .debug_str 0x000000000000225f 0x77 lib/lib.a(malloc.o) + .debug_str 0x0000000000002293 0x77 lib/lib.a(malloc.o) 0x15e (size before relaxing) .debug_loc diff --git a/linux-0.11-lab/cur/linux/fs/fs.o b/linux-0.11-lab/cur/linux/fs/fs.o index b25b603a70e16621f31b299982389ca235675929..888ab03984c5f20050aeddd7642b61645d8399ff 100644 GIT binary patch delta 723 zcmX}p!D|yi6bA4&Gdp9J$svadIaEkNMQhZpRvT;8s?|->B&IcmZks}Dve6PDVgd>t zDjq$E2xS%j0IyQSAYOX$APAlW@1kb~q2S5)ZAmY?zxU0|+nt%MZFg(ief&<$`4<97 zM7mfeQgg7QizW6voY0Su--MI;2lCoqLzFU`@Inwh^TpB`3}>YYikt-~JZYX_VO)$$ z^AEG*A}7tu-I3@(UMyX~?2MyuzxRqoY4-0Gb!p!27SV^i*c_3L z{=+@oF9qI#X>%j#?0Y@S$pSx|OwjKXL?A^w`aCPzb$p3z_d%1?DD2oCd<;(5*7`kC zSvYB1jV`IWyiNP!#Sy|i1QYQG6R-kg>8Gik$ ph_C#5e?!dkm|GQx#cJeL#e``0?^H!^$6bCyB$C{y|I?S{^naD{gQ)-j delta 723 zcmX}p&1(}u7zXfnW_HFblS2*_a;T7kiq@#9RvT;8s?|->ByMX8O^IO5ZnUfrF#!b+ z6^|Z7gtCf%fLAGE5HG!W5Cl(xchR$gAoS$>Y)Mb^d!PB9+1zqBx7^3?#DaG&l0>8{ zH6pbDJGxS3FTyGP2>Eq5t$!eI{53=wvjHzf@iR}XoI-bAnr4NwCW?YIPcShlCZ*ZN z=%gr0^Kz#r-d7SUmoU02%><_2K;cXC5d)Hw4rp(HlO+%IK5 zx(Rp%>Fjwuk4FFDRox}FlZyu3vS>;X#GmIy)WS|=dk+Fq9pL zw0oqE!WrA?c1azBN7$SnhqL+xZ=njWG|?!fqxgAMjIE=G^Z{Hvc^}92dIeIak*D-H z@+mmY`2?vVoY5ZM;S4;&`3X|faMrf(pCok_9{I<;eH#gJ|uM>`5_yw zw}(aEhQZJU8{Qgv(uO@==mI7bIcLwpGn}uHx(LtmTz2wHbDWd9jJRa+D05(yk4fqZ z=-YsK6>QkU9kvHA+uO_%*s^znKB+Q%Q@glpC5pe-#Hxtm>AHBz-}9+1a@_o?i?7_g lza|#B&-KMY(Toeem=eL@jxYNE+~yl1ktXU4etNQ&{SV4Hhc*BJ diff --git a/linux-0.11-lab/cur/linux/fs/mysystem_call.o b/linux-0.11-lab/cur/linux/fs/mysystem_call.o index 8796801ba2d9c1e9274496f6a4108f3d846cb48a..0f0be5e74a0ad118db7bf616047b0f82d39c29e6 100644 GIT binary patch delta 704 zcmX}pO=}ZT6b9fk_p6C#0uj3CB48?h8*8eqjas$U7^@VlF@;W=ODKP#q`i}#9}a>itx z^qF0~iXSg3_ZB5 zG9x4M$bXX9l!L){7bvfnPUm|eUPGKb?vg$M8{ULZ!a0sN9+IxWKF6Je^eMQ=alcP` z0v;7hei|OLf8_zS^Eiy`@(yv-enR>(@?#urcZNlUqwdgEj_wUT z#Ze-Iu3$q=a`7BIEBOZLd3a9tinAN4OHTS4;swT;)WJphOw!lECGH9vV2h8(;v4V^ z-xn@`AwTGDlD-MA+b#UpTR~dqwil%D__3@~=V4*4bR^f=Zp1vu}c)h{5 T!k7K|P&Rw}h}whq2m1OS1o?El delta 704 zcmX}p&ubGw6bJCP^Jb=rvw;Xb^bjx=e;aG6t&Li>)flT3tTBZqq+reNma;;`ZP8ot zs5e=Z3VId134z``c0$eFJYSOm+6FQ}>5-A_ zVOBk&{3ls-IUansZRG{&bUyClHRO`V0r3e~yG{5coO98}L*feTyQr5CpMr}n>i3B! z;8C&Ur{OX4S6;x?*M_J>ew_Zvk8h(v=7p@B9gTKLQYAizJZD}ZpMibJCy8rt(F||~ z=iyPw&k$dL$6W8xS>lUu$%Xj1S-5QGaTwX<9dhB?6XMIrkGXKWH!LbH42G_{@cz(K zE=*+56>O+UE}nyDCEp;Phv#IkIJ=>`RZobq|6~;+yb2vxWb9D^BZf&5P4_?zvpeq+gb`>3@~=V4*4bR^f=(PTv$}ykPLH T@MV9#Bb&W_MC*h12m1UE7J+z4 diff --git a/linux-0.11-lab/cur/linux/init/main.c b/linux-0.11-lab/cur/linux/init/main.c index 2c526ff..9398c3f 100644 --- a/linux-0.11-lab/cur/linux/init/main.c +++ b/linux-0.11-lab/cur/linux/init/main.c @@ -217,7 +217,5 @@ void init(void) } void print_nr(int sid) -{ - if (sid > 86) - printk(" --syscall: sid=%d, pid=%d\n", sid, current->pid); +{; } diff --git a/linux-0.11-lab/cur/linux/init/main.c.rej b/linux-0.11-lab/cur/linux/init/main.c.rej new file mode 100644 index 0000000..375d6cd --- /dev/null +++ b/linux-0.11-lab/cur/linux/init/main.c.rej @@ -0,0 +1,12 @@ +--- init/main.c 2016-08-08 09:40:13.000000000 +0800 ++++ init/main.c 2021-07-06 14:16:56.000000000 +0800 +@@ -208,3 +208,9 @@ + } + _exit(0); /* NOTE! _exit, not exit() */ + } ++ ++void print_nr(int sid) ++{ ++ if (sid > 86) ++ printk(" --syscall: sid=%d, pid=%d\n", sid, current->pid); ++} diff --git a/linux-0.11-lab/cur/linux/init/main.o b/linux-0.11-lab/cur/linux/init/main.o index a674bc4e2f49065c133fef5c7b77df264b1d8209..b7b0dd0bdd3f816a99cd56a7259df7982ce5b25e 100644 GIT binary patch delta 3377 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 Xf_Di1mEaLU?y+hA--5MRpUD3&*I=S( 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 index 86085dd765a3568af03234e1ffa4ddb00ae09702..e8afe6b9da87292d9031194b7a7bb4d22fb791e5 100644 GIT binary patch delta 70 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 MKI7?nGsDD2oIX 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 delta 4819 zcmZ9PdvI0N6~_13_uhSP!c9&f0rLWG-T|W~BqV_(yj2X41V|y6@Ct!|@*GHc__#_y zsnn9VWyCSQ_`}jVjMg|*sx#6wbnUj z?|tyO!_J-;oQ{a@nEt2C-tgoUN2$jYe(r&u_Ve1^_7rRw(b)F$&W0i9e)Ocz-S)C) z_|KgMcTUNUw4Zdg_qe-z_BysTE@P1Ik~`Ap_S++I$+2{A>uDSOnBSg^OCGYVXG8p} z{%j5J*`F?6yx7~=JMS@{jl_@i6(D3r{0Q3~pWOX;d|6I()c~dZ2*lOdgR9evRv+y1 zs0(r4h|>OG4zg)~pbVove_+Mx4NB`^E1gd0N!0iEa3oTI35fpQ8!+>b$Dhd2U=9WX z(_tp~3;zJy6b0Zeiag5-=5+>+S`5=~GI%X6#x-QV_uGvn*E!YpNJ&~W1~U%%OpPB| zOcBbNI+j!BG#xW(`%O10n_09&W-_vx*|fukrA>XNK?80&?O)NKpxrZ^Fqh?$w7ZX@ z;S@x&cCTcZC(^Z>tZc*RQPC)d%sfsl)NVENd!j_U%NXs6a_ug-G*YP(+E%nEbK_Xd znV{V!_U(yD+O5SM^@%Aup_O5c47&~^OyG&B+Wnbbd16+zc59fSi7iam?kvE}r>N8J zJ)Go;dhI^Xemv2j-5r-ilXjz*!WL=wF56g|GHE%}EN1PMI$`ZbG}2s;sI}T{WQ$8E zHfZ-aOSe#L((ZfgYAK)9t=je31Ep2bFECOboIe0C3sEw-fGL&v7aYNbw6z(D9Kl7L z<~R2C*n&d|S-1xA@ov{%tCHrG3_SJN&riL}?y9&N(3*U~OE zyP1C-?J^bUMK1}#4SXbK!emCZv4S#NY5$tGHe)$sBW=H_WEYzlA2R28Yn!LSA67B` zRH#6gEh%4Ela2|d@Kpq*t1w^gyD$gNhLNZOw;}E=Q_Q7oenJ&f!U$#V;-t~E{R7so zFI1+KcF63sAD3U@bl4xuuW?H3h%wK{l`y=Tqb(-QemQ2+4QE3Be#zG$S--AVZN3 zw-Galw%>e3eY9ma%0_dAv-rai&$YFk#3?SyPoMY8jRZL7#} zw%CU%GBch)1t;YKGU-mgO1=_B^i8>t1M%l{rDWO@6`9T})~QS#Qo_Mop2R@8H@GZ> zx3kU`RVI}#=j(KBjzMIqJziN;e+;*!dpWE-mk)iL!J-<5{>-$ZT87S{`kXIXcQ&bEd02Zo z%i+vBVv!tqoUZ>O@$gi;s_IJT9s6Kag;QbQuF8p?V7pDu3t_|{-s#F3$uujSgYb-p z%juej9K#=BGb_EEyswPGtkLXDL~sDr;aSW~OT@!m8BfvEA|A|F84bATrQ+eVXoioy zFB2E;QDwYA&vLI+z=!9kGFEfi3h|&X6=vO2=qpF%?n9N>xOX9PPhx&-{EZCYA`9W0 z=k2EPDtA4G%#QPnT7=fkJq*bG>Uvzw&JhUAS9rK8}udT^fqzfG1?1oTMD3Sl| z_l7!5DCf}b!?m5E75j^M@r5IH*R?~t4`17?yNjlN;&kU$k9NA7rqwyId?jjfe8g8_ z4^02Jz7S{k&d3bxtH*k`ug%DECfF}#?2wvVXOpd}$qQ`4LRe>4)MNz;=PI?_ zcGhI+bK~p*1T@*W04nEWNME&Vl3mDGa|8j``L0iP~I!ceVXH zu%p`k06g7fht=f<&Q4S6_x9tOMB7xC5cgg!HZ&eu6533$o9og7XYuWN(LPxBZN@J6 z_=b54jtZzpLB8KUUqC%=Kb*NMdK4c1B01cTK6SiLde;P8-@Z(rfM#qm$ao$p{d;*3 z>U?uqJhy%SkNJFPrwrVHKg35BKLY(f1`NDR=U=7^q5C&D3r>Qbi@$?d8q_l{i|1JX zkNFq;LgVAM437R2feF_9B0wpgmi-%><9A**&J+ATY?FK>=lDa={TrN`JEnhoQ$O?n z^X<9WJ8XM>X7{W0!<^_arLI91JzOd7T_;1SR$;sFcfv!U&Q$6sbrvckEAli2nd3d15ps@qTh77KZ2#M7vm9 z9FGWdg=2)z;Y8%TlO*EKi2hOZC;cPIgaPhhK}MfNwrkso(Mr(vI#^hk`>OR8sG*T%Ct0V*Um4lNeUk12TIiX58MR!Wv<}hM7G?_zg_Xjo z!bagi;d{bQgkK3m0pyJ$afAj~Cyd4Nr5+-jCtNCAC%jGg8{ux@XwhQki@m{+`9~1sX{GW>cPIw{6{f`L&9;j$w012Hh zdb02a@i&NGC0sB5t)e@H4~T!S=zXH!68*mLbcp*O1-}u;M4sGeq*gdzc(ZVea65^4 z_lxckzE0x({v_JRgC232B=U|BT_U<7DvoM#+$d}%k!Ypp&7yA?y;F3D=!Zq`75$Xx xXGI?s{fg)}Mc14b$A5$|{Mew=B;j!3c;Pe>=jS5PE6H@Fu$GiF(2iTM<$sA?M5+J) diff --git a/linux-0.11-lab/cur/linux/kernel/math/math.a b/linux-0.11-lab/cur/linux/kernel/math/math.a index 3a0b5513775efdf6c95fcf23d60ce6b96cd5c0ff..d852aec567a4c67f0507f226161d499259e3756a 100644 GIT binary patch delta 27 dcmaE0{J?mE44b8afrW+fM5QPwYhzQKBmjAW2o3-M delta 27 dcmaE0{J?mE44Z|Sg@J*|M5QPwYhzQKBmjAU2nqlI diff --git a/linux-0.11-lab/cur/linux/kernel/system_call.s b/linux-0.11-lab/cur/linux/kernel/system_call.s index 9dab7b8..1964701 100644 --- a/linux-0.11-lab/cur/linux/kernel/system_call.s +++ b/linux-0.11-lab/cur/linux/kernel/system_call.s @@ -1,3 +1,4 @@ + /* * linux/kernel/system_call.s * diff --git a/linux-0.11-lab/cur/linux/kernel/system_call.s.rej b/linux-0.11-lab/cur/linux/kernel/system_call.s.rej new file mode 100644 index 0000000..438b7a7 --- /dev/null +++ b/linux-0.11-lab/cur/linux/kernel/system_call.s.rej @@ -0,0 +1,14 @@ +--- kernel/system_call.s 2015-09-03 20:21:09.000000000 +0800 ++++ kernel/system_call.s 2021-07-06 14:18:56.000000000 +0800 +@@ -91,6 +91,11 @@ + mov %dx,%es + movl $0x17,%edx # fs points to local data space + mov %dx,%fs ++ ++ pushl %eax #by wyj ++ call print_nr ++ popl %eax ++ + call sys_call_table(,%eax,4) + pushl %eax + movl current,%eax diff --git a/linux-0.11-lab/cur/linux/lib/lib.a b/linux-0.11-lab/cur/linux/lib/lib.a index c9062adf76204bed9f6fddfc53e15cdd9f95a01e..05fa7381dd716bc773c7651327fbaf1be1cd1fcd 100644 GIT binary patch delta 185 zcmX@t!*s5PX@U%!rGbHkg~>*xD~u4P@#F+)vCTqE6W9@a@y+`=nK@v50XK=w4+N_? zq5RDW(o9gc30QBP${kjSoXO?{tywU+O(w6PMwo2=U?T++-Yno&24e%Yi*H`+AIt^S S4sl8pha@Z5m7C>@^@RZdlQ4Gx delta 185 zcmX@t!*s5PX@U%!g_)(Px%oz=D~v# + +#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; + + /*if (current->pid > 5) + printk(" --do_no_page: address=%x, pid=%d\n", address, current->pid);*/ + + 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 ; ipid > 5) ++ printk(" --do_no_page: address=%x, pid=%d\n", address, current->pid); ++ + address &= 0xfffff000; + tmp = address - current->start_code; + if (!current->executable || tmp >= current->end_data) { diff --git a/linux-0.11-lab/cur/linux/tools/system b/linux-0.11-lab/cur/linux/tools/system index b70d186de579e7d4c7c4c9d6a8cc4d7f5227a289..d81b861f2a8dea5965425f7146dfc7bb76b42014 100644 GIT binary patch delta 88033 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 delta 89346 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

W3I7xL^*YJzWDO8sLk=SVmo zCHa@CAgjdmBgWzITzyvGVQq#*Di;v_l7N0+821I5jlE0S2Se&Dp?xGtEm#bklt3&# zjCA7vTSUkHoJ7tLNlSXm41++(;BwpAw%SfAriTT zs{YHZd}U{~b$e07HCe9FTRT&$v3`u2jh5H;Rg`}SJF*0?&Di1W-UUaOHbKl8si$NCbxi3of$|O} zLoFuykF$Ev%FYH!fd1p19-_0QL}MjKtsv18E>n7Rz!w`xq{WoRL%Ja*>;_eS**%3| zDZ+>zr{FxlRa8fW1LO}9UkbiqRu6?7GIX}oJqe}1Mh-}SUbryxGIV@F4e&O38qo^? zuTh*lh-^<5z1LzIIT*HicXDMbTGT9lccup)fp8E7AI8I`Bham%=a>+K)ZAfej6wX9 z)W}SERw&MW^x)&h<3tgBm__iRpAt1Q?}VxTG6Z3_(~26f2MCiPNC1T(Ooku<2tlG# z)V94T1YvpzVxXz^z+pwe(RrXAa4(6UG2nOwA^~0j zM}Swr5%46kSTZT2IY0&+MEeDJ1snnMNoFQBWnh2|IOwOFK>;%0AXnJ~){x8`${QCT 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 diff --git a/linux-0.11-lab/images/rootimage-0.11 b/linux-0.11-lab/images/rootimage-0.11 index a81cf00980e5c0a4a3adf558105122d035fbbc10..16333ae962204f6756264cf46605cc1fbe8b5990 100644 GIT binary patch delta 3207 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