From 09608b155c434c3a32365fa7b9ec92591e7b469c Mon Sep 17 00:00:00 2001 From: forever-learner <2360561713@qq.com> Date: Wed, 29 Jun 2022 14:31:30 +0800 Subject: [PATCH] version 1 of mmap --- linux/Image | Bin 135792 -> 136720 bytes linux/System.map | 956 +++++++++++++++--------------- linux/System.map.2 | 1020 ++++++++++++++++---------------- linux/fs/buffer.c | 4 +- linux/fs/buffer.o | Bin 13344 -> 13348 bytes linux/fs/fs.o | Bin 143225 -> 143229 bytes linux/include/mm.h | 22 + linux/kernel/blk_drv/blk_drv.a | Bin 52200 -> 52200 bytes linux/kernel/chr_drv/chr_drv.a | Bin 68886 -> 68886 bytes linux/kernel/kernel.o | Bin 89688 -> 91192 bytes linux/kernel/sys.c | 136 +++-- linux/kernel/sys.o | Bin 18540 -> 20140 bytes linux/mm/memory.c | 8 +- linux/mm/memory.o | Bin 13960 -> 14096 bytes linux/mm/mm.o | Bin 14089 -> 14217 bytes linux/tools/system | Bin 294247 -> 295555 bytes 16 files changed, 1120 insertions(+), 1026 deletions(-) create mode 100644 linux/include/mm.h diff --git a/linux/Image b/linux/Image index 672d4c978c56614c659914091312258f79cd47b5..f98c7274f7c2cc296d57f90decfb4a314ef19771 100644 GIT binary patch delta 31440 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 delta 30260 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 diff --git a/linux/System.map b/linux/System.map index 2687f12..db383ba 100644 --- a/linux/System.map +++ b/linux/System.map @@ -111,481 +111,481 @@ 00009036 t put_fs_long 00009042 T sys_getcwd 000094e6 T sys_getdents -00009777 T sys_pipe2 -0000977d T sys_sleep -00009833 T sys_mmap -00009839 T sys_munmap -0000983f T sys_clone -00009845 T sys_ftime -0000984b T sys_break -00009851 T sys_ptrace -00009857 T sys_stty -0000985d T sys_gtty -00009863 T sys_rename -00009869 T sys_prof -0000986f T sys_setregid -00009928 T sys_setgid -000099bf T sys_acct -000099c5 T sys_phys -000099cb T sys_lock -000099d1 T sys_mpx -000099d7 T sys_ulimit -000099dd T sys_time -00009a39 T sys_setreuid -00009b1b T sys_setuid -00009bb0 T sys_stime -00009c06 T sys_times -00009ca6 T sys_brk -00009ce8 T sys_setpgid -00009dc1 T sys_getpgrp -00009dcd T sys_setsid -00009e47 T sys_getgroups -00009e4d T sys_setgroups -00009e53 T sys_uname -00009ebc T sys_sethostname -00009ec2 T sys_getrlimit -00009ec8 T sys_setrlimit -00009ece T sys_getrusage -00009ed4 T sys_gettimeofday -00009eda T sys_settimeofday -00009ee0 T sys_umask -00009f13 t _get_base -00009f45 t put_fs_long -00009f51 T release -00009fb5 t send_sig -0000a034 t kill_session -0000a08e T sys_kill -0000a23e t tell_father -0000a2c8 T do_exit -0000a4fc T sys_exit -0000a515 T sys_waitpid -0000a73b t get_fs_byte -0000a749 t put_fs_byte -0000a761 t put_fs_long -0000a76d T sys_sgetmask -0000a779 T sys_ssetmask -0000a7a5 T sys_sigpending -0000a7ab T sys_sigsuspend -0000a7b1 t save_old -0000a804 t get_new -0000a844 T sys_signal -0000a8c8 T sys_sigaction -0000a9d2 T do_signal -0000abbe T kernel_mktime -0000ad03 t oom -0000ad22 T get_free_page -0000ad5e T free_page -0000adcd T free_page_tables -0000aecc T copy_page_tables -0000b04d T put_page -0000b139 T un_wp_page -0000b1f1 T do_wp_page -0000b27c T get_empty_page -0000b2bc t try_to_share -0000b44e t share_page -0000b502 T do_no_page -0000b664 T mem_init -0000b6d8 T do_execve2 -0000b852 T calc_mem -0000b947 T page_fault -0000b97e t get_fs_long -0000b994 T sys_ustat -0000b99a T sys_utime -0000ba47 T sys_access -0000bb23 T sys_chdir -0000bb97 T sys_chroot -0000bc0b T sys_chmod -0000bca5 T sys_chown -0000bd20 T sys_open -0000bfc3 T sys_creat -0000bfe6 T sys_close -0000c0b5 T sys_lseek -0000c1cc T sys_read -0000c3bf T sys_write -0000c56d t lock_inode -0000c59a t unlock_inode -0000c5b8 T invalidate_inodes -0000c627 T sync_inodes -0000c67e t _bmap -0000ca6a T bmap -0000ca8d T create_block -0000cab0 T iput -0000cc1f T get_empty_inode -0000cd74 T get_pipe_inode -0000cde9 T iget -0000cfae t read_inode -0000d1e4 T sys_sync -0000d247 T sync_dev -0000d340 T invalidate_buffers -0000d3b2 T check_disk_change -0000d45c t remove_from_queues -0000d553 t insert_into_queues -0000d618 t find_buffer -0000d680 T get_hash_table -0000d702 T getblk -0000d8a0 T brelse -0000d8e9 T bread -0000d96e T bread_page -0000da90 T breada -0000db85 T buffer_init -0000dcb4 t lock_super -0000dce1 t free_super -0000dd26 T get_super -0000dd95 T put_super -0000de68 t read_super -0000e1ab T sys_umount -0000e30c T sys_mount -0000e47d T mount_root -0000e68b t get_fs_byte -0000e699 t put_fs_byte -0000e6b1 T block_write -0000e803 T block_read -0000e92e t get_fs_byte -0000e93c t put_fs_byte -0000e954 t rw_ttyx -0000e99c t rw_tty -0000e9ec t rw_ram -0000e9f2 t rw_mem -0000e9f8 t rw_kmem -0000e9fe t rw_port -0000ea98 t rw_memory -0000eb6e T rw_char -0000ebd8 t get_fs_byte -0000ebe6 t put_fs_byte -0000ebfe T file_read -0000eda9 T file_write -0000efa3 t put_fs_byte -0000efbb t cp_stat -0000f092 T sys_stat -0000f0dc T sys_lstat -0000f0f7 T sys_fstat -0000f154 T sys_readlink -0000f15a t _get_base -0000f18c t get_fs_byte -0000f19a t get_fs_long -0000f1b0 t put_fs_byte -0000f1c8 t put_fs_long -0000f1d4 t get_fs -0000f1e8 t get_ds -0000f1fc t set_fs -0000f203 T sys_uselib -0000f209 t create_tables -0000f354 t count -0000f393 t copy_strings -0000f54f t change_ldt -0000f6d2 T do_execve -000101f7 t get_fs_byte -00010205 t put_fs_byte -0001021d t put_fs_long -00010229 T read_pipe -000104fe T sys_pipe -00010700 t get_fs_byte -0001070e t permission -000107af t match -00010817 t find_entry -00010c71 t get_dir -00010e5e t dir_namei -00010edd T namei -00010ff3 T open_namei -00011346 T sys_mknod -00011576 T sys_mkdir -00011927 t empty_dir -00011b05 T sys_rmdir -00011e5d T sys_unlink -000120fe T sys_symlink -00012104 T sys_link -0001235e T free_block -000124d0 T new_block -00012674 T free_inode -000127db T new_inode -000129b5 t dupfd -00012a8f T sys_dup2 -00012ab6 T sys_dup -00012ad1 T sys_fcntl -00012c10 T sys_ioctl -00012ce1 t free_ind -00012d80 t free_dind -00012e1f T truncate -00012f54 T sys_select -00012f5a t lock_buffer -00012f87 t unlock_buffer -00013179 t make_request -0001331d T ll_rw_block -00013376 T blk_dev_init -000133c4 t unlock_buffer -000133f9 t end_request -000134aa T floppy_deselect -000134e1 T floppy_change -00013567 t setup_DMA -0001361d t output_byte -00013693 t result -00013750 t bad_flp_intr -000137af t rw_interrupt -0001389e T setup_rw_floppy -0001395f t seek_interrupt -000139b8 t transfer -00013aed t recal_interrupt -00013b37 T unexpected_floppy_interrupt -00013b7c t recalibrate_floppy -00013bde t reset_interrupt -00013c23 t reset_floppy -00013ca0 t floppy_on_interrupt -00013d0b t do_fd_request -00013f0f T floppy_init -00013f61 t unlock_buffer -00013f96 t end_request -00014035 T sys_setup -000143e8 t controller_ready -0001447c t hd_out -00014569 t drive_busy -000145cf t reset_controller -0001464c t reset_hd -000146e4 T unexpected_hd_interrupt -000146f7 t bad_rw_intr -00014735 t read_intr -0001485b t recal_intr -00014875 t do_hd_request -00014b76 T hd_init -00014bf0 t unlock_buffer -00014c25 t end_request -00014cc4 t do_rd_request -00014dfa T rd_init -00014e50 T rd_load -000150fc t get_fs_byte -0001510a t put_fs_byte -00015122 T tty_init -00015133 T tty_intr -000151a7 t sleep_if_empty -000151df t sleep_if_full -00015253 T copy_to_cooked -0001580e T tty_read -00015b7c T tty_write -00015d8e T do_tty_interrupt -00015db6 T chr_dev_init -00015db7 t gotoxy -00015e05 t set_origin -00015e6b t scrup -0001605b t scrdown -00016152 t lf -00016188 t ri -000161be t cr -000161df t del -00016211 t csi_J -000162a2 t csi_K -00016354 T csi_m -000163bb t set_cursor -00016421 t respond -00016479 t insert_char -000164dc t insert_line -00016520 t delete_char -0001657e t delete_line -000165c2 t csi_at -00016600 t csi_L -0001663e t csi_P -0001667c t csi_M -000166ba t save_cur -000166cf t restore_cur -000166ee T con_write -00016d7c T con_init -00016fb3 T sysbeepstop -00016fdc t sysbeep -0001703a t mode -0001703b t leds -0001703c t e0 -0001703d T keyboard_interrupt -00017066 t e0_e1 -00017091 t set_e0 -0001709a t set_e1 -000170a3 t put_queue -000170dc t ctrl -000170f4 t unctrl -000170f8 t unalt -0001710e t lshift -00017116 t unlshift -0001711e t rshift -00017126 t unrshift -0001712e t caps -00017150 t set_leds -00017166 t uncaps -0001716e t scroll -00017177 t num -00017180 t cursor -000171a0 t cur2 -000171c9 t cur -000171d5 t ok_cur -000171e3 t num_table -000171f0 t cur_table -000171fd t func -0001721a t ok_func -0001722d t end_func -0001722e t func_table -0001725e t key_map -000172bf t shift_map -00017381 t do_self -000173e9 t none -000173ea t minus -000173ff t key_table -000177ff t kb_wait -00017808 t reboot -0001781a t die -0001781c t init -00017891 T rs_init -00017914 T rs_write -00017964 T rs1_interrupt -0001796c T rs2_interrupt -00017971 t rs_int -00017988 t rep_int -000179a5 t end -000179b3 t jmp_table -000179c4 t modem_status -000179cc t line_status -000179d4 t read_char -00017a5b t get_fs_byte -00017a69 t get_fs_long -00017a7f t put_fs_byte -00017a97 t put_fs_long -00017aa3 t change_speed -00017b21 t flush -00017b33 t send_break -00017b34 t get_termios -00017b90 t set_termios -00017be0 t get_termio -00017ca8 t set_termio -00017d6c T tty_ioctl -0001806a t get_fs_byte -00018078 T math_emulate -0001815b T math_error -0001817b T _exit -0001818b T open -000181d4 T close -00018248 T dup -0001827f T setsid -000182ae T execve -0001834b T strcpy -00018367 T strncpy -0001838c T strcat -000183b7 T strncat -000183ec T strcmp -00018413 T strncmp -00018441 T strchr -0001846e T strrchr -0001849d T strspn -000184da T strcspn -00018517 T strpbrk -0001854e T strstr -00018587 T strlen -000185aa T strtok -0001862d T memcpy -0001864d T memmove -000186a1 T memcmp -000186cb T memchr -00018703 T memset -00018727 t init_bucket_desc -00018790 T malloc -0001891c T free_s -0001cb48 d envp_rc -0001cb5c d envp -0001cb80 D sys_call_table -0001ccfc D NR_syscalls -0001cd00 d init_task -0001dd00 D current -0001dd20 D task -0001de20 D stack_start -0001de28 D current_DOR -0001de40 d thisname.2345 -0001de80 d month -0001dec0 d last_inode.1935 -0001dec4 D start_buffer -0001dee0 d crw_table -0001df00 d ioctl_table -0001df20 d floppy_type -0001dfe0 d cur_spec1 -0001dfe4 d cur_rate -0001dfe8 d floppy -0001dfec d current_track -0001dff0 d callable.1844 -0001e000 D tty_table -00020520 D table_list -00020540 d quotient -00020560 D _ctype -00020680 D bucket_dir -000206d0 B __bss_start -000206d0 D _edata -000206e0 b printbuf -00020ae0 b memory_end -00020ae4 b buffer_memory_end -00020ae8 b main_memory_start -00020b00 B jiffies -00020b04 B startup_time -00020b08 B last_task_used_math -00020b1c b mon_timer -00020b2c b moff_timer -00020b40 b timer_list -00020e40 b next_timer -00020e44 B last_pid -00020e60 b buf -00021260 b HIGH_MEMORY -00021280 b mem_map -00022180 B inode_table -00022880 B nr_buffers -00022884 b free_list -00022888 b buffer_wait -0002288c B ROOT_DEV -000228c0 B blk_dev -000228f8 B do_floppy -000228fc B selected -00022904 b recalibrate -00022908 b reset -0002290c b seek -00022910 b reply_buffer -00022917 b current_drive -00022918 b sector -00022919 b head -0002291a b track -0002291b b seek_track -0002291c b command -00022920 B do_hd -00022940 B hd_info -00022970 b recalibrate -00022974 b reset -00022978 b NR_HD -00022980 b hd -000229d0 B rd_length -000229d4 b cr_flag.1923 -000229e0 B beepcount -000229e4 b video_type -000229e8 b video_num_columns -000229ec b video_size_row -000229f0 b video_num_lines -000229f4 b video_page -000229f8 b video_mem_start -000229fc b video_mem_end -00022a00 b video_port_reg -00022a02 b video_port_val -00022a04 b video_erase_char -00022a08 b origin -00022a0c b scr_end -00022a10 b pos -00022a14 b x -00022a18 b y -00022a1c b top -00022a20 b bottom -00022a24 b state -00022a28 b npar -00022a40 b par -00022a80 b ques -00022a84 b saved_x -00022a88 b saved_y -00022a8c B free_bucket_desc -00022aa0 B drive_info -00022ac0 B user_stack -00023ac0 B hash_table -00023fa0 B super_block -00024300 B file_table -00024700 B request -00024b80 B rd_start -00024b84 B _ctmp -00024b88 B errno -00024b8c B ___strtok -00024b90 B end -00024b90 B _end +00009761 T sys_pipe2 +00009767 T sys_sleep +0000981d T sys_clone +00009823 T sys_ftime +00009829 T sys_break +0000982f T sys_ptrace +00009835 T sys_stty +0000983b T sys_gtty +00009841 T sys_rename +00009847 T sys_prof +0000984d T sys_setregid +00009906 T sys_setgid +0000999d T sys_acct +000099a3 T sys_phys +000099a9 T sys_lock +000099af T sys_mpx +000099b5 T sys_ulimit +000099bb T sys_time +00009a17 T sys_setreuid +00009af9 T sys_setuid +00009b8e T sys_stime +00009be4 T sys_times +00009c84 T sys_brk +00009cc6 T sys_setpgid +00009d9f T sys_getpgrp +00009dab T sys_setsid +00009e25 T sys_getgroups +00009e2b T sys_setgroups +00009e31 T sys_uname +00009e9a T sys_sethostname +00009ea0 T sys_getrlimit +00009ea6 T sys_setrlimit +00009eac T sys_getrusage +00009eb2 T sys_gettimeofday +00009eb8 T sys_settimeofday +00009ebe T sys_umask +00009ef1 T sys_mmap +0000a1b6 T sys_munmap +0000a1bc t _get_base +0000a1ee t put_fs_long +0000a1fa T release +0000a25e t send_sig +0000a2dd t kill_session +0000a337 T sys_kill +0000a4e7 t tell_father +0000a571 T do_exit +0000a7a5 T sys_exit +0000a7be T sys_waitpid +0000a9e4 t get_fs_byte +0000a9f2 t put_fs_byte +0000aa0a t put_fs_long +0000aa16 T sys_sgetmask +0000aa22 T sys_ssetmask +0000aa4e T sys_sigpending +0000aa54 T sys_sigsuspend +0000aa5a t save_old +0000aaad t get_new +0000aaed T sys_signal +0000ab71 T sys_sigaction +0000ac7b T do_signal +0000ae67 T kernel_mktime +0000afac t oom +0000afcb T get_free_page +0000b007 T free_page +0000b076 T free_page_tables +0000b175 T copy_page_tables +0000b2f6 T put_page +0000b3e2 T un_wp_page +0000b49a T do_wp_page +0000b525 T get_empty_page +0000b565 t try_to_share +0000b6f7 t share_page +0000b7ab T do_no_page +0000b940 T mem_init +0000b9b4 T do_execve2 +0000bb2e T calc_mem +0000bc23 T page_fault +0000bc5a t get_fs_long +0000bc70 T sys_ustat +0000bc76 T sys_utime +0000bd23 T sys_access +0000bdff T sys_chdir +0000be73 T sys_chroot +0000bee7 T sys_chmod +0000bf81 T sys_chown +0000bffc T sys_open +0000c29f T sys_creat +0000c2c2 T sys_close +0000c391 T sys_lseek +0000c4a8 T sys_read +0000c69b T sys_write +0000c849 t lock_inode +0000c876 t unlock_inode +0000c894 T invalidate_inodes +0000c903 T sync_inodes +0000c95a t _bmap +0000cd46 T bmap +0000cd69 T create_block +0000cd8c T iput +0000cefb T get_empty_inode +0000d050 T get_pipe_inode +0000d0c5 T iget +0000d28a t read_inode +0000d4c0 T sys_sync +0000d523 T sync_dev +0000d61c T invalidate_buffers +0000d68e T check_disk_change +0000d738 t remove_from_queues +0000d82f t insert_into_queues +0000d8f4 t find_buffer +0000d95c T get_hash_table +0000d9de T getblk +0000db7c T brelse +0000dbc5 T bread +0000dc4a T bread_page +0000dd6c T breada +0000de61 T buffer_init +0000df90 t lock_super +0000dfbd t free_super +0000e002 T get_super +0000e071 T put_super +0000e144 t read_super +0000e487 T sys_umount +0000e5e8 T sys_mount +0000e759 T mount_root +0000e967 t get_fs_byte +0000e975 t put_fs_byte +0000e98d T block_write +0000eadf T block_read +0000ec0a t get_fs_byte +0000ec18 t put_fs_byte +0000ec30 t rw_ttyx +0000ec78 t rw_tty +0000ecc8 t rw_ram +0000ecce t rw_mem +0000ecd4 t rw_kmem +0000ecda t rw_port +0000ed74 t rw_memory +0000ee4a T rw_char +0000eeb4 t get_fs_byte +0000eec2 t put_fs_byte +0000eeda T file_read +0000f085 T file_write +0000f27f t put_fs_byte +0000f297 t cp_stat +0000f36e T sys_stat +0000f3b8 T sys_lstat +0000f3d3 T sys_fstat +0000f430 T sys_readlink +0000f436 t _get_base +0000f468 t get_fs_byte +0000f476 t get_fs_long +0000f48c t put_fs_byte +0000f4a4 t put_fs_long +0000f4b0 t get_fs +0000f4c4 t get_ds +0000f4d8 t set_fs +0000f4df T sys_uselib +0000f4e5 t create_tables +0000f630 t count +0000f66f t copy_strings +0000f82b t change_ldt +0000f9ae T do_execve +000104d3 t get_fs_byte +000104e1 t put_fs_byte +000104f9 t put_fs_long +00010505 T read_pipe +000107da T sys_pipe +000109dc t get_fs_byte +000109ea t permission +00010a8b t match +00010af3 t find_entry +00010f4d t get_dir +0001113a t dir_namei +000111b9 T namei +000112cf T open_namei +00011622 T sys_mknod +00011852 T sys_mkdir +00011c03 t empty_dir +00011de1 T sys_rmdir +00012139 T sys_unlink +000123da T sys_symlink +000123e0 T sys_link +0001263a T free_block +000127ac T new_block +00012950 T free_inode +00012ab7 T new_inode +00012c91 t dupfd +00012d6b T sys_dup2 +00012d92 T sys_dup +00012dad T sys_fcntl +00012eec T sys_ioctl +00012fbd t free_ind +0001305c t free_dind +000130fb T truncate +00013230 T sys_select +00013236 t lock_buffer +00013263 t unlock_buffer +00013455 t make_request +000135f9 T ll_rw_block +00013652 T blk_dev_init +000136a0 t unlock_buffer +000136d5 t end_request +00013786 T floppy_deselect +000137bd T floppy_change +00013843 t setup_DMA +000138f9 t output_byte +0001396f t result +00013a2c t bad_flp_intr +00013a8b t rw_interrupt +00013b7a T setup_rw_floppy +00013c3b t seek_interrupt +00013c94 t transfer +00013dc9 t recal_interrupt +00013e13 T unexpected_floppy_interrupt +00013e58 t recalibrate_floppy +00013eba t reset_interrupt +00013eff t reset_floppy +00013f7c t floppy_on_interrupt +00013fe7 t do_fd_request +000141eb T floppy_init +0001423d t unlock_buffer +00014272 t end_request +00014311 T sys_setup +000146c4 t controller_ready +00014758 t hd_out +00014845 t drive_busy +000148ab t reset_controller +00014928 t reset_hd +000149c0 T unexpected_hd_interrupt +000149d3 t bad_rw_intr +00014a11 t read_intr +00014b37 t recal_intr +00014b51 t do_hd_request +00014e52 T hd_init +00014ecc t unlock_buffer +00014f01 t end_request +00014fa0 t do_rd_request +000150d6 T rd_init +0001512c T rd_load +000153d8 t get_fs_byte +000153e6 t put_fs_byte +000153fe T tty_init +0001540f T tty_intr +00015483 t sleep_if_empty +000154bb t sleep_if_full +0001552f T copy_to_cooked +00015aea T tty_read +00015e58 T tty_write +0001606a T do_tty_interrupt +00016092 T chr_dev_init +00016093 t gotoxy +000160e1 t set_origin +00016147 t scrup +00016337 t scrdown +0001642e t lf +00016464 t ri +0001649a t cr +000164bb t del +000164ed t csi_J +0001657e t csi_K +00016630 T csi_m +00016697 t set_cursor +000166fd t respond +00016755 t insert_char +000167b8 t insert_line +000167fc t delete_char +0001685a t delete_line +0001689e t csi_at +000168dc t csi_L +0001691a t csi_P +00016958 t csi_M +00016996 t save_cur +000169ab t restore_cur +000169ca T con_write +00017058 T con_init +0001728f T sysbeepstop +000172b8 t sysbeep +00017316 t mode +00017317 t leds +00017318 t e0 +00017319 T keyboard_interrupt +00017342 t e0_e1 +0001736d t set_e0 +00017376 t set_e1 +0001737f t put_queue +000173b8 t ctrl +000173d0 t unctrl +000173d4 t unalt +000173ea t lshift +000173f2 t unlshift +000173fa t rshift +00017402 t unrshift +0001740a t caps +0001742c t set_leds +00017442 t uncaps +0001744a t scroll +00017453 t num +0001745c t cursor +0001747c t cur2 +000174a5 t cur +000174b1 t ok_cur +000174bf t num_table +000174cc t cur_table +000174d9 t func +000174f6 t ok_func +00017509 t end_func +0001750a t func_table +0001753a t key_map +0001759b t shift_map +0001765d t do_self +000176c5 t none +000176c6 t minus +000176db t key_table +00017adb t kb_wait +00017ae4 t reboot +00017af6 t die +00017af8 t init +00017b6d T rs_init +00017bf0 T rs_write +00017c40 T rs1_interrupt +00017c48 T rs2_interrupt +00017c4d t rs_int +00017c64 t rep_int +00017c81 t end +00017c8f t jmp_table +00017ca0 t modem_status +00017ca8 t line_status +00017cb0 t read_char +00017d37 t get_fs_byte +00017d45 t get_fs_long +00017d5b t put_fs_byte +00017d73 t put_fs_long +00017d7f t change_speed +00017dfd t flush +00017e0f t send_break +00017e10 t get_termios +00017e6c t set_termios +00017ebc t get_termio +00017f84 t set_termio +00018048 T tty_ioctl +00018346 t get_fs_byte +00018354 T math_emulate +00018437 T math_error +00018457 T _exit +00018467 T open +000184b0 T close +00018524 T dup +0001855b T setsid +0001858a T execve +00018627 T strcpy +00018643 T strncpy +00018668 T strcat +00018693 T strncat +000186c8 T strcmp +000186ef T strncmp +0001871d T strchr +0001874a T strrchr +00018779 T strspn +000187b6 T strcspn +000187f3 T strpbrk +0001882a T strstr +00018863 T strlen +00018886 T strtok +00018909 T memcpy +00018929 T memmove +0001897d T memcmp +000189a7 T memchr +000189df T memset +00018a03 t init_bucket_desc +00018a6c T malloc +00018bf8 T free_s +0001cee8 d envp_rc +0001cefc d envp +0001cf20 D sys_call_table +0001d09c D NR_syscalls +0001d0a0 d init_task +0001e0a0 D current +0001e0c0 D task +0001e1c0 D stack_start +0001e1c8 D current_DOR +0001e1e0 d thisname.2384 +0001e220 d month +0001e260 d last_inode.1935 +0001e264 D start_buffer +0001e280 d crw_table +0001e2a0 d ioctl_table +0001e2c0 d floppy_type +0001e380 d cur_spec1 +0001e384 d cur_rate +0001e388 d floppy +0001e38c d current_track +0001e390 d callable.1844 +0001e3a0 D tty_table +000208c0 D table_list +000208e0 d quotient +00020900 D _ctype +00020a20 D bucket_dir +00020a70 B __bss_start +00020a70 D _edata +00020a80 b printbuf +00020e80 b memory_end +00020e84 b buffer_memory_end +00020e88 b main_memory_start +00020ea0 B jiffies +00020ea4 B startup_time +00020ea8 B last_task_used_math +00020ebc b mon_timer +00020ecc b moff_timer +00020ee0 b timer_list +000211e0 b next_timer +000211e4 B last_pid +00021200 b buf +00021600 b HIGH_MEMORY +00021620 b mem_map +00022520 B inode_table +00022c20 B nr_buffers +00022c24 b free_list +00022c28 b buffer_wait +00022c2c B ROOT_DEV +00022c60 B blk_dev +00022c98 B do_floppy +00022c9c B selected +00022ca4 b recalibrate +00022ca8 b reset +00022cac b seek +00022cb0 b reply_buffer +00022cb7 b current_drive +00022cb8 b sector +00022cb9 b head +00022cba b track +00022cbb b seek_track +00022cbc b command +00022cc0 B do_hd +00022ce0 B hd_info +00022d10 b recalibrate +00022d14 b reset +00022d18 b NR_HD +00022d20 b hd +00022d70 B rd_length +00022d74 b cr_flag.1923 +00022d80 B beepcount +00022d84 b video_type +00022d88 b video_num_columns +00022d8c b video_size_row +00022d90 b video_num_lines +00022d94 b video_page +00022d98 b video_mem_start +00022d9c b video_mem_end +00022da0 b video_port_reg +00022da2 b video_port_val +00022da4 b video_erase_char +00022da8 b origin +00022dac b scr_end +00022db0 b pos +00022db4 b x +00022db8 b y +00022dbc b top +00022dc0 b bottom +00022dc4 b state +00022dc8 b npar +00022de0 b par +00022e20 b ques +00022e24 b saved_x +00022e28 b saved_y +00022e2c B free_bucket_desc +00022e40 B drive_info +00022e60 B user_stack +00023e60 B hash_table +00024340 B super_block +000246a0 B file_table +00024aa0 B request +00024f20 B rd_start +00024f24 B _ctmp +00024f28 B errno +00024f2c B ___strtok +00024f30 B end +00024f30 B _end diff --git a/linux/System.map.2 b/linux/System.map.2 index 447337a..8b37e0d 100644 --- a/linux/System.map.2 +++ b/linux/System.map.2 @@ -205,7 +205,7 @@ LOAD lib/lib.a *(.iplt) .iplt 0x0000000000000000 0x0 boot/head.o -.text 0x0000000000000000 0x18a93 +.text 0x0000000000000000 0x18d6f *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) @@ -225,7 +225,7 @@ LOAD lib/lib.a 0x0000000000006799 main 0x000000000000695b init 0x0000000000006bd3 print_nr - .text 0x0000000000006bd4 0x412f kernel/kernel.o + .text 0x0000000000006bd4 0x43d8 kernel/kernel.o 0x0000000000006bd4 show_task 0x0000000000006c59 show_stat 0x0000000000006c9f math_state_restore @@ -300,257 +300,257 @@ LOAD lib/lib.a 0x0000000000008b7c vsprintf 0x0000000000009042 sys_getcwd 0x00000000000094e6 sys_getdents - 0x0000000000009777 sys_pipe2 - 0x000000000000977d sys_sleep - 0x0000000000009833 sys_mmap - 0x0000000000009839 sys_munmap - 0x000000000000983f sys_clone - 0x0000000000009845 sys_ftime - 0x000000000000984b sys_break - 0x0000000000009851 sys_ptrace - 0x0000000000009857 sys_stty - 0x000000000000985d sys_gtty - 0x0000000000009863 sys_rename - 0x0000000000009869 sys_prof - 0x000000000000986f sys_setregid - 0x0000000000009928 sys_setgid - 0x00000000000099bf sys_acct - 0x00000000000099c5 sys_phys - 0x00000000000099cb sys_lock - 0x00000000000099d1 sys_mpx - 0x00000000000099d7 sys_ulimit - 0x00000000000099dd sys_time - 0x0000000000009a39 sys_setreuid - 0x0000000000009b1b sys_setuid - 0x0000000000009bb0 sys_stime - 0x0000000000009c06 sys_times - 0x0000000000009ca6 sys_brk - 0x0000000000009ce8 sys_setpgid - 0x0000000000009dc1 sys_getpgrp - 0x0000000000009dcd sys_setsid - 0x0000000000009e47 sys_getgroups - 0x0000000000009e4d sys_setgroups - 0x0000000000009e53 sys_uname - 0x0000000000009ebc sys_sethostname - 0x0000000000009ec2 sys_getrlimit - 0x0000000000009ec8 sys_setrlimit - 0x0000000000009ece sys_getrusage - 0x0000000000009ed4 sys_gettimeofday - 0x0000000000009eda sys_settimeofday - 0x0000000000009ee0 sys_umask - 0x0000000000009f51 release - 0x000000000000a08e sys_kill - 0x000000000000a2c8 do_exit - 0x000000000000a4fc sys_exit - 0x000000000000a515 sys_waitpid - 0x000000000000a76d sys_sgetmask - 0x000000000000a779 sys_ssetmask - 0x000000000000a7a5 sys_sigpending - 0x000000000000a7ab sys_sigsuspend - 0x000000000000a844 sys_signal - 0x000000000000a8c8 sys_sigaction - 0x000000000000a9d2 do_signal - 0x000000000000abbe kernel_mktime - .text 0x000000000000ad03 0xc7b mm/mm.o - 0x000000000000ad22 get_free_page - 0x000000000000ad5e free_page - 0x000000000000adcd free_page_tables - 0x000000000000aecc copy_page_tables - 0x000000000000b04d put_page - 0x000000000000b139 un_wp_page - 0x000000000000b1f1 do_wp_page - 0x000000000000b223 write_verify - 0x000000000000b27c get_empty_page - 0x000000000000b502 do_no_page - 0x000000000000b664 mem_init - 0x000000000000b6d8 do_execve2 - 0x000000000000b852 calc_mem - 0x000000000000b947 page_fault - .text 0x000000000000b97e 0x75dc fs/fs.o - 0x000000000000b994 sys_ustat - 0x000000000000b99a sys_utime - 0x000000000000ba47 sys_access - 0x000000000000bb23 sys_chdir - 0x000000000000bb97 sys_chroot - 0x000000000000bc0b sys_chmod - 0x000000000000bca5 sys_chown - 0x000000000000bd20 sys_open - 0x000000000000bfc3 sys_creat - 0x000000000000bfe6 sys_close - 0x000000000000c0b5 sys_lseek - 0x000000000000c1cc sys_read - 0x000000000000c3bf sys_write - 0x000000000000c5b8 invalidate_inodes - 0x000000000000c627 sync_inodes - 0x000000000000ca6a bmap - 0x000000000000ca8d create_block - 0x000000000000cab0 iput - 0x000000000000cc1f get_empty_inode - 0x000000000000cd74 get_pipe_inode - 0x000000000000cde9 iget - 0x000000000000d1e4 sys_sync - 0x000000000000d247 sync_dev - 0x000000000000d340 invalidate_buffers - 0x000000000000d3b2 check_disk_change - 0x000000000000d680 get_hash_table - 0x000000000000d702 getblk - 0x000000000000d8a0 brelse - 0x000000000000d8e9 bread - 0x000000000000d96e bread_page - 0x000000000000da90 breada - 0x000000000000db85 buffer_init - 0x000000000000dd26 get_super - 0x000000000000dd95 put_super - 0x000000000000e1ab sys_umount - 0x000000000000e30c sys_mount - 0x000000000000e47d mount_root - 0x000000000000e6b1 block_write - 0x000000000000e803 block_read - 0x000000000000eb6e rw_char - 0x000000000000ebfe file_read - 0x000000000000eda9 file_write - 0x000000000000f092 sys_stat - 0x000000000000f0dc sys_lstat - 0x000000000000f0f7 sys_fstat - 0x000000000000f154 sys_readlink - 0x000000000000f203 sys_uselib - 0x000000000000f6d2 do_execve - 0x0000000000010229 read_pipe - 0x000000000001037f write_pipe - 0x00000000000104fe sys_pipe - 0x0000000000010edd namei - 0x0000000000010ff3 open_namei - 0x0000000000011346 sys_mknod - 0x0000000000011576 sys_mkdir - 0x0000000000011b05 sys_rmdir - 0x0000000000011e5d sys_unlink - 0x00000000000120fe sys_symlink - 0x0000000000012104 sys_link - 0x000000000001235e free_block - 0x00000000000124d0 new_block - 0x0000000000012674 free_inode - 0x00000000000127db new_inode - 0x0000000000012a8f sys_dup2 - 0x0000000000012ab6 sys_dup - 0x0000000000012ad1 sys_fcntl - 0x0000000000012c10 sys_ioctl - 0x0000000000012e1f truncate - 0x0000000000012f54 sys_select - .text 0x0000000000012f5a 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x000000000001331d ll_rw_block - 0x0000000000013376 blk_dev_init - .text 0x00000000000133c4 0xb9d kernel/blk_drv/blk_drv.a(floppy.o) - 0x00000000000134aa floppy_deselect - 0x00000000000134e1 floppy_change - 0x000000000001389e setup_rw_floppy - 0x0000000000013b37 unexpected_floppy_interrupt - 0x0000000000013f0f floppy_init - .text 0x0000000000013f61 0xc8f kernel/blk_drv/blk_drv.a(hd.o) - 0x0000000000014035 sys_setup - 0x00000000000146e4 unexpected_hd_interrupt - 0x0000000000014b76 hd_init - .text 0x0000000000014bf0 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x0000000000014dfa rd_init - 0x0000000000014e50 rd_load - .text 0x00000000000150fc 0xcbb kernel/chr_drv/chr_drv.a(tty_io.o) - 0x0000000000015122 tty_init - 0x0000000000015133 tty_intr - 0x0000000000015240 wait_for_keypress - 0x0000000000015253 copy_to_cooked - 0x000000000001580e tty_read - 0x0000000000015b7c tty_write - 0x0000000000015d8e do_tty_interrupt - 0x0000000000015db6 chr_dev_init - .text 0x0000000000015db7 0x1283 kernel/chr_drv/chr_drv.a(console.o) - 0x0000000000016354 csi_m - 0x00000000000166ee con_write - 0x0000000000016d7c con_init - 0x0000000000016fb3 sysbeepstop - .text 0x000000000001703a 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o) - 0x000000000001703d keyboard_interrupt - .text 0x000000000001781c 0x145 kernel/chr_drv/chr_drv.a(serial.o) - 0x0000000000017891 rs_init - 0x0000000000017914 rs_write - *fill* 0x0000000000017961 0x3 - .text 0x0000000000017964 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o) - 0x0000000000017964 rs1_interrupt - 0x000000000001796c rs2_interrupt - .text 0x0000000000017a5b 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o) - 0x0000000000017d6c tty_ioctl - .text 0x000000000001806a 0x111 kernel/math/math.a(math_emulate.o) - 0x0000000000018078 math_emulate - 0x000000000001815b math_error - .text 0x000000000001817b 0x0 lib/lib.a(ctype.o) - .text 0x000000000001817b 0x10 lib/lib.a(_exit.o) - 0x000000000001817b _exit - .text 0x000000000001818b 0x49 lib/lib.a(open.o) - 0x000000000001818b open - .text 0x00000000000181d4 0x37 lib/lib.a(close.o) - 0x00000000000181d4 close - .text 0x000000000001820b 0x0 lib/lib.a(errno.o) - .text 0x000000000001820b 0x3d lib/lib.a(write.o) - 0x000000000001820b write - .text 0x0000000000018248 0x37 lib/lib.a(dup.o) - 0x0000000000018248 dup - .text 0x000000000001827f 0x2f lib/lib.a(setsid.o) - 0x000000000001827f setsid - .text 0x00000000000182ae 0x3d lib/lib.a(execve.o) - 0x00000000000182ae execve - .text 0x00000000000182eb 0x60 lib/lib.a(wait.o) - 0x00000000000182eb waitpid - 0x0000000000018328 wait - .text 0x000000000001834b 0x3dc lib/lib.a(string.o) - 0x000000000001834b strcpy - 0x0000000000018367 strncpy - 0x000000000001838c strcat - 0x00000000000183b7 strncat - 0x00000000000183ec strcmp - 0x0000000000018413 strncmp - 0x0000000000018441 strchr - 0x000000000001846e strrchr - 0x000000000001849d strspn - 0x00000000000184da strcspn - 0x0000000000018517 strpbrk - 0x000000000001854e strstr - 0x0000000000018587 strlen - 0x00000000000185aa strtok - 0x000000000001862d memcpy - 0x000000000001864d memmove - 0x00000000000186a1 memcmp - 0x00000000000186cb memchr - 0x0000000000018703 memset - .text 0x0000000000018727 0x36c lib/lib.a(malloc.o) - 0x0000000000018790 malloc - 0x000000000001891c free_s + 0x0000000000009761 sys_pipe2 + 0x0000000000009767 sys_sleep + 0x000000000000981d sys_clone + 0x0000000000009823 sys_ftime + 0x0000000000009829 sys_break + 0x000000000000982f sys_ptrace + 0x0000000000009835 sys_stty + 0x000000000000983b sys_gtty + 0x0000000000009841 sys_rename + 0x0000000000009847 sys_prof + 0x000000000000984d sys_setregid + 0x0000000000009906 sys_setgid + 0x000000000000999d sys_acct + 0x00000000000099a3 sys_phys + 0x00000000000099a9 sys_lock + 0x00000000000099af sys_mpx + 0x00000000000099b5 sys_ulimit + 0x00000000000099bb sys_time + 0x0000000000009a17 sys_setreuid + 0x0000000000009af9 sys_setuid + 0x0000000000009b8e sys_stime + 0x0000000000009be4 sys_times + 0x0000000000009c84 sys_brk + 0x0000000000009cc6 sys_setpgid + 0x0000000000009d9f sys_getpgrp + 0x0000000000009dab sys_setsid + 0x0000000000009e25 sys_getgroups + 0x0000000000009e2b sys_setgroups + 0x0000000000009e31 sys_uname + 0x0000000000009e9a sys_sethostname + 0x0000000000009ea0 sys_getrlimit + 0x0000000000009ea6 sys_setrlimit + 0x0000000000009eac sys_getrusage + 0x0000000000009eb2 sys_gettimeofday + 0x0000000000009eb8 sys_settimeofday + 0x0000000000009ebe sys_umask + 0x0000000000009ef1 sys_mmap + 0x000000000000a1b6 sys_munmap + 0x000000000000a1fa release + 0x000000000000a337 sys_kill + 0x000000000000a571 do_exit + 0x000000000000a7a5 sys_exit + 0x000000000000a7be sys_waitpid + 0x000000000000aa16 sys_sgetmask + 0x000000000000aa22 sys_ssetmask + 0x000000000000aa4e sys_sigpending + 0x000000000000aa54 sys_sigsuspend + 0x000000000000aaed sys_signal + 0x000000000000ab71 sys_sigaction + 0x000000000000ac7b do_signal + 0x000000000000ae67 kernel_mktime + .text 0x000000000000afac 0xcae mm/mm.o + 0x000000000000afcb get_free_page + 0x000000000000b007 free_page + 0x000000000000b076 free_page_tables + 0x000000000000b175 copy_page_tables + 0x000000000000b2f6 put_page + 0x000000000000b3e2 un_wp_page + 0x000000000000b49a do_wp_page + 0x000000000000b4cc write_verify + 0x000000000000b525 get_empty_page + 0x000000000000b7ab do_no_page + 0x000000000000b940 mem_init + 0x000000000000b9b4 do_execve2 + 0x000000000000bb2e calc_mem + 0x000000000000bc23 page_fault + .text 0x000000000000bc5a 0x75dc fs/fs.o + 0x000000000000bc70 sys_ustat + 0x000000000000bc76 sys_utime + 0x000000000000bd23 sys_access + 0x000000000000bdff sys_chdir + 0x000000000000be73 sys_chroot + 0x000000000000bee7 sys_chmod + 0x000000000000bf81 sys_chown + 0x000000000000bffc sys_open + 0x000000000000c29f sys_creat + 0x000000000000c2c2 sys_close + 0x000000000000c391 sys_lseek + 0x000000000000c4a8 sys_read + 0x000000000000c69b sys_write + 0x000000000000c894 invalidate_inodes + 0x000000000000c903 sync_inodes + 0x000000000000cd46 bmap + 0x000000000000cd69 create_block + 0x000000000000cd8c iput + 0x000000000000cefb get_empty_inode + 0x000000000000d050 get_pipe_inode + 0x000000000000d0c5 iget + 0x000000000000d4c0 sys_sync + 0x000000000000d523 sync_dev + 0x000000000000d61c invalidate_buffers + 0x000000000000d68e check_disk_change + 0x000000000000d95c get_hash_table + 0x000000000000d9de getblk + 0x000000000000db7c brelse + 0x000000000000dbc5 bread + 0x000000000000dc4a bread_page + 0x000000000000dd6c breada + 0x000000000000de61 buffer_init + 0x000000000000e002 get_super + 0x000000000000e071 put_super + 0x000000000000e487 sys_umount + 0x000000000000e5e8 sys_mount + 0x000000000000e759 mount_root + 0x000000000000e98d block_write + 0x000000000000eadf block_read + 0x000000000000ee4a rw_char + 0x000000000000eeda file_read + 0x000000000000f085 file_write + 0x000000000000f36e sys_stat + 0x000000000000f3b8 sys_lstat + 0x000000000000f3d3 sys_fstat + 0x000000000000f430 sys_readlink + 0x000000000000f4df sys_uselib + 0x000000000000f9ae do_execve + 0x0000000000010505 read_pipe + 0x000000000001065b write_pipe + 0x00000000000107da sys_pipe + 0x00000000000111b9 namei + 0x00000000000112cf open_namei + 0x0000000000011622 sys_mknod + 0x0000000000011852 sys_mkdir + 0x0000000000011de1 sys_rmdir + 0x0000000000012139 sys_unlink + 0x00000000000123da sys_symlink + 0x00000000000123e0 sys_link + 0x000000000001263a free_block + 0x00000000000127ac new_block + 0x0000000000012950 free_inode + 0x0000000000012ab7 new_inode + 0x0000000000012d6b sys_dup2 + 0x0000000000012d92 sys_dup + 0x0000000000012dad sys_fcntl + 0x0000000000012eec sys_ioctl + 0x00000000000130fb truncate + 0x0000000000013230 sys_select + .text 0x0000000000013236 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x00000000000135f9 ll_rw_block + 0x0000000000013652 blk_dev_init + .text 0x00000000000136a0 0xb9d kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000013786 floppy_deselect + 0x00000000000137bd floppy_change + 0x0000000000013b7a setup_rw_floppy + 0x0000000000013e13 unexpected_floppy_interrupt + 0x00000000000141eb floppy_init + .text 0x000000000001423d 0xc8f kernel/blk_drv/blk_drv.a(hd.o) + 0x0000000000014311 sys_setup + 0x00000000000149c0 unexpected_hd_interrupt + 0x0000000000014e52 hd_init + .text 0x0000000000014ecc 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x00000000000150d6 rd_init + 0x000000000001512c rd_load + .text 0x00000000000153d8 0xcbb kernel/chr_drv/chr_drv.a(tty_io.o) + 0x00000000000153fe tty_init + 0x000000000001540f tty_intr + 0x000000000001551c wait_for_keypress + 0x000000000001552f copy_to_cooked + 0x0000000000015aea tty_read + 0x0000000000015e58 tty_write + 0x000000000001606a do_tty_interrupt + 0x0000000000016092 chr_dev_init + .text 0x0000000000016093 0x1283 kernel/chr_drv/chr_drv.a(console.o) + 0x0000000000016630 csi_m + 0x00000000000169ca con_write + 0x0000000000017058 con_init + 0x000000000001728f sysbeepstop + .text 0x0000000000017316 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o) + 0x0000000000017319 keyboard_interrupt + .text 0x0000000000017af8 0x145 kernel/chr_drv/chr_drv.a(serial.o) + 0x0000000000017b6d rs_init + 0x0000000000017bf0 rs_write + *fill* 0x0000000000017c3d 0x3 + .text 0x0000000000017c40 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o) + 0x0000000000017c40 rs1_interrupt + 0x0000000000017c48 rs2_interrupt + .text 0x0000000000017d37 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o) + 0x0000000000018048 tty_ioctl + .text 0x0000000000018346 0x111 kernel/math/math.a(math_emulate.o) + 0x0000000000018354 math_emulate + 0x0000000000018437 math_error + .text 0x0000000000018457 0x0 lib/lib.a(ctype.o) + .text 0x0000000000018457 0x10 lib/lib.a(_exit.o) + 0x0000000000018457 _exit + .text 0x0000000000018467 0x49 lib/lib.a(open.o) + 0x0000000000018467 open + .text 0x00000000000184b0 0x37 lib/lib.a(close.o) + 0x00000000000184b0 close + .text 0x00000000000184e7 0x0 lib/lib.a(errno.o) + .text 0x00000000000184e7 0x3d lib/lib.a(write.o) + 0x00000000000184e7 write + .text 0x0000000000018524 0x37 lib/lib.a(dup.o) + 0x0000000000018524 dup + .text 0x000000000001855b 0x2f lib/lib.a(setsid.o) + 0x000000000001855b setsid + .text 0x000000000001858a 0x3d lib/lib.a(execve.o) + 0x000000000001858a execve + .text 0x00000000000185c7 0x60 lib/lib.a(wait.o) + 0x00000000000185c7 waitpid + 0x0000000000018604 wait + .text 0x0000000000018627 0x3dc lib/lib.a(string.o) + 0x0000000000018627 strcpy + 0x0000000000018643 strncpy + 0x0000000000018668 strcat + 0x0000000000018693 strncat + 0x00000000000186c8 strcmp + 0x00000000000186ef strncmp + 0x000000000001871d strchr + 0x000000000001874a strrchr + 0x0000000000018779 strspn + 0x00000000000187b6 strcspn + 0x00000000000187f3 strpbrk + 0x000000000001882a strstr + 0x0000000000018863 strlen + 0x0000000000018886 strtok + 0x0000000000018909 memcpy + 0x0000000000018929 memmove + 0x000000000001897d memcmp + 0x00000000000189a7 memchr + 0x00000000000189df memset + .text 0x0000000000018a03 0x36c lib/lib.a(malloc.o) + 0x0000000000018a6c malloc + 0x0000000000018bf8 free_s *(.gnu.warning) .fini *(SORT(.fini)) - 0x0000000000018a93 PROVIDE (__etext, .) - 0x0000000000018a93 PROVIDE (_etext, .) - 0x0000000000018a93 PROVIDE (etext, .) + 0x0000000000018d6f PROVIDE (__etext, .) + 0x0000000000018d6f PROVIDE (_etext, .) + 0x0000000000018d6f PROVIDE (etext, .) -.rodata 0x0000000000018a94 0x14ef +.rodata 0x0000000000018d70 0x159b *(.rodata .rodata.* .gnu.linkonce.r.*) - .rodata 0x0000000000018a94 0xad init/main.o - *fill* 0x0000000000018b41 0x3 - .rodata 0x0000000000018b44 0x438 kernel/kernel.o - .rodata 0x0000000000018f7c 0x18f mm/mm.o - *fill* 0x000000000001910b 0x1 - .rodata 0x000000000001910c 0x67c fs/fs.o - .rodata 0x0000000000019788 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - *fill* 0x0000000000019802 0x2 - .rodata 0x0000000000019804 0x133 kernel/blk_drv/blk_drv.a(floppy.o) - *fill* 0x0000000000019937 0x1 - .rodata 0x0000000000019938 0x19b kernel/blk_drv/blk_drv.a(hd.o) - *fill* 0x0000000000019ad3 0x1 - .rodata 0x0000000000019ad4 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o) - .rodata 0x0000000000019c5c 0x17d kernel/chr_drv/chr_drv.a(console.o) - *fill* 0x0000000000019dd9 0x3 - .rodata 0x0000000000019ddc 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .rodata 0x0000000000019e5c 0x52 kernel/math/math.a(math_emulate.o) - *fill* 0x0000000000019eae 0x2 - .rodata 0x0000000000019eb0 0xd3 lib/lib.a(malloc.o) + .rodata 0x0000000000018d70 0xad init/main.o + *fill* 0x0000000000018e1d 0x3 + .rodata 0x0000000000018e20 0x4bc kernel/kernel.o + .rodata 0x00000000000192dc 0x1b5 mm/mm.o + *fill* 0x0000000000019491 0x3 + .rodata 0x0000000000019494 0x67c fs/fs.o + .rodata 0x0000000000019b10 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + *fill* 0x0000000000019b8a 0x2 + .rodata 0x0000000000019b8c 0x133 kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x0000000000019cbf 0x1 + .rodata 0x0000000000019cc0 0x19b kernel/blk_drv/blk_drv.a(hd.o) + *fill* 0x0000000000019e5b 0x1 + .rodata 0x0000000000019e5c 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o) + .rodata 0x0000000000019fe4 0x17d kernel/chr_drv/chr_drv.a(console.o) + *fill* 0x000000000001a161 0x3 + .rodata 0x000000000001a164 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .rodata 0x000000000001a1e4 0x52 kernel/math/math.a(math_emulate.o) + *fill* 0x000000000001a236 0x2 + .rodata 0x000000000001a238 0xd3 lib/lib.a(malloc.o) .rodata1 *(.rodata1) @@ -558,52 +558,52 @@ LOAD lib/lib.a .eh_frame_hdr *(.eh_frame_hdr) -.eh_frame 0x0000000000019f84 0x2bb0 +.eh_frame 0x000000000001a30c 0x2bb8 *(.eh_frame) - .eh_frame 0x0000000000019f84 0x104 init/main.o - .eh_frame 0x000000000001a088 0xbc8 kernel/kernel.o - 0xcb8 (size before relaxing) - .eh_frame 0x000000000001ac50 0x1b0 mm/mm.o + .eh_frame 0x000000000001a30c 0x104 init/main.o + .eh_frame 0x000000000001a410 0xbd0 kernel/kernel.o + 0xcc0 (size before relaxing) + .eh_frame 0x000000000001afe0 0x1b0 mm/mm.o 0x1c8 (size before relaxing) - .eh_frame 0x000000000001ae00 0xdd8 fs/fs.o + .eh_frame 0x000000000001b190 0xdd8 fs/fs.o 0xf70 (size before relaxing) - .eh_frame 0x000000000001bbd8 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .eh_frame 0x000000000001bf68 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) 0xb0 (size before relaxing) - .eh_frame 0x000000000001bc70 0x23c kernel/blk_drv/blk_drv.a(floppy.o) + .eh_frame 0x000000000001c000 0x23c kernel/blk_drv/blk_drv.a(floppy.o) 0x254 (size before relaxing) - .eh_frame 0x000000000001beac 0x1e8 kernel/blk_drv/blk_drv.a(hd.o) + .eh_frame 0x000000000001c23c 0x1e8 kernel/blk_drv/blk_drv.a(hd.o) 0x200 (size before relaxing) - .eh_frame 0x000000000001c094 0xac kernel/blk_drv/blk_drv.a(ramdisk.o) + .eh_frame 0x000000000001c424 0xac kernel/blk_drv/blk_drv.a(ramdisk.o) 0xc4 (size before relaxing) - .eh_frame 0x000000000001c140 0x12c kernel/chr_drv/chr_drv.a(tty_io.o) + .eh_frame 0x000000000001c4d0 0x12c kernel/chr_drv/chr_drv.a(tty_io.o) 0x144 (size before relaxing) - .eh_frame 0x000000000001c26c 0x2c0 kernel/chr_drv/chr_drv.a(console.o) + .eh_frame 0x000000000001c5fc 0x2c0 kernel/chr_drv/chr_drv.a(console.o) 0x2d8 (size before relaxing) - .eh_frame 0x000000000001c52c 0x54 kernel/chr_drv/chr_drv.a(serial.o) + .eh_frame 0x000000000001c8bc 0x54 kernel/chr_drv/chr_drv.a(serial.o) 0x6c (size before relaxing) - .eh_frame 0x000000000001c580 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .eh_frame 0x000000000001c910 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o) 0x160 (size before relaxing) - .eh_frame 0x000000000001c6c8 0x5c kernel/math/math.a(math_emulate.o) + .eh_frame 0x000000000001ca58 0x5c kernel/math/math.a(math_emulate.o) 0x74 (size before relaxing) - .eh_frame 0x000000000001c724 0x1c lib/lib.a(_exit.o) + .eh_frame 0x000000000001cab4 0x1c lib/lib.a(_exit.o) 0x34 (size before relaxing) - .eh_frame 0x000000000001c740 0x24 lib/lib.a(open.o) + .eh_frame 0x000000000001cad0 0x24 lib/lib.a(open.o) 0x3c (size before relaxing) - .eh_frame 0x000000000001c764 0x20 lib/lib.a(close.o) + .eh_frame 0x000000000001caf4 0x20 lib/lib.a(close.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001c784 0x20 lib/lib.a(write.o) + .eh_frame 0x000000000001cb14 0x20 lib/lib.a(write.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001c7a4 0x20 lib/lib.a(dup.o) + .eh_frame 0x000000000001cb34 0x20 lib/lib.a(dup.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001c7c4 0x18 lib/lib.a(setsid.o) + .eh_frame 0x000000000001cb54 0x18 lib/lib.a(setsid.o) 0x30 (size before relaxing) - .eh_frame 0x000000000001c7dc 0x20 lib/lib.a(execve.o) + .eh_frame 0x000000000001cb6c 0x20 lib/lib.a(execve.o) 0x38 (size before relaxing) - .eh_frame 0x000000000001c7fc 0x38 lib/lib.a(wait.o) + .eh_frame 0x000000000001cb8c 0x38 lib/lib.a(wait.o) 0x50 (size before relaxing) - .eh_frame 0x000000000001c834 0x2b0 lib/lib.a(string.o) + .eh_frame 0x000000000001cbc4 0x2b0 lib/lib.a(string.o) 0x2c8 (size before relaxing) - .eh_frame 0x000000000001cae4 0x50 lib/lib.a(malloc.o) + .eh_frame 0x000000000001ce74 0x50 lib/lib.a(malloc.o) 0x68 (size before relaxing) .gcc_except_table @@ -611,7 +611,7 @@ LOAD lib/lib.a .exception_ranges *(.exception_ranges .exception_ranges*) - 0x000000000001cb34 . = . + 0x000000000001cec4 . = . .eh_frame *(.eh_frame) @@ -629,22 +629,22 @@ LOAD lib/lib.a *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) -.preinit_array 0x000000000001cb34 0x0 - 0x000000000001cb34 PROVIDE (__preinit_array_start, .) +.preinit_array 0x000000000001cec4 0x0 + 0x000000000001cec4 PROVIDE (__preinit_array_start, .) *(.preinit_array) - 0x000000000001cb34 PROVIDE (__preinit_array_end, .) + 0x000000000001cec4 PROVIDE (__preinit_array_end, .) -.init_array 0x000000000001cb34 0x0 - 0x000000000001cb34 PROVIDE (__init_array_start, .) +.init_array 0x000000000001cec4 0x0 + 0x000000000001cec4 PROVIDE (__init_array_start, .) *(SORT(.init_array.*) SORT(.ctors.*)) *(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors) - 0x000000000001cb34 PROVIDE (__init_array_end, .) + 0x000000000001cec4 PROVIDE (__init_array_end, .) -.fini_array 0x000000000001cb34 0x0 - 0x000000000001cb34 PROVIDE (__fini_array_start, .) +.fini_array 0x000000000001cec4 0x0 + 0x000000000001cec4 PROVIDE (__fini_array_start, .) *(SORT(.fini_array.*) SORT(.dtors.*)) *(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors) - 0x000000000001cb34 PROVIDE (__fini_array_end, .) + 0x000000000001cec4 PROVIDE (__fini_array_end, .) .ctors *crtbegin.o(.ctors) @@ -674,145 +674,145 @@ LOAD lib/lib.a *(.got) *(.igot) -.got.plt 0x000000000001cb34 0x0 +.got.plt 0x000000000001cec4 0x0 *(.got.plt) *(.igot.plt) .igot.plt 0x0000000000000000 0x0 boot/head.o -.data 0x000000000001cb40 0x3b90 +.data 0x000000000001cee0 0x3b90 *(.data .data.* .gnu.linkonce.d.*) - .data 0x000000000001cb40 0x0 boot/head.o - .data 0x000000000001cb40 0x28 init/main.o - *fill* 0x000000000001cb68 0x18 - .data 0x000000000001cb80 0x1330 kernel/kernel.o - 0x000000000001cb80 sys_call_table - 0x000000000001ccfc NR_syscalls - 0x000000000001dd00 current - 0x000000000001dd20 task - 0x000000000001de20 stack_start - 0x000000000001de28 current_DOR - .data 0x000000000001deb0 0x0 mm/mm.o - *fill* 0x000000000001deb0 0x10 - .data 0x000000000001dec0 0x60 fs/fs.o - 0x000000000001dec4 start_buffer - .data 0x000000000001df20 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .data 0x000000000001df20 0xcd kernel/blk_drv/blk_drv.a(floppy.o) - *fill* 0x000000000001dfed 0x3 - .data 0x000000000001dff0 0x4 kernel/blk_drv/blk_drv.a(hd.o) - .data 0x000000000001dff4 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) - *fill* 0x000000000001dff4 0xc - .data 0x000000000001e000 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o) - 0x000000000001e000 tty_table - 0x0000000000020520 table_list - .data 0x0000000000020538 0x1 kernel/chr_drv/chr_drv.a(console.o) - .data 0x0000000000020539 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) - .data 0x0000000000020539 0x0 kernel/chr_drv/chr_drv.a(serial.o) - .data 0x0000000000020539 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) - *fill* 0x0000000000020539 0x7 - .data 0x0000000000020540 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .data 0x0000000000020560 0x0 kernel/math/math.a(math_emulate.o) - .data 0x0000000000020560 0x101 lib/lib.a(ctype.o) - 0x0000000000020560 _ctype - .data 0x0000000000020661 0x0 lib/lib.a(_exit.o) - .data 0x0000000000020661 0x0 lib/lib.a(open.o) - .data 0x0000000000020661 0x0 lib/lib.a(close.o) - .data 0x0000000000020661 0x0 lib/lib.a(errno.o) - .data 0x0000000000020661 0x0 lib/lib.a(write.o) - .data 0x0000000000020661 0x0 lib/lib.a(dup.o) - .data 0x0000000000020661 0x0 lib/lib.a(setsid.o) - .data 0x0000000000020661 0x0 lib/lib.a(execve.o) - .data 0x0000000000020661 0x0 lib/lib.a(wait.o) - .data 0x0000000000020661 0x0 lib/lib.a(string.o) - *fill* 0x0000000000020661 0x1f - .data 0x0000000000020680 0x50 lib/lib.a(malloc.o) - 0x0000000000020680 bucket_dir + .data 0x000000000001cee0 0x0 boot/head.o + .data 0x000000000001cee0 0x28 init/main.o + *fill* 0x000000000001cf08 0x18 + .data 0x000000000001cf20 0x1330 kernel/kernel.o + 0x000000000001cf20 sys_call_table + 0x000000000001d09c NR_syscalls + 0x000000000001e0a0 current + 0x000000000001e0c0 task + 0x000000000001e1c0 stack_start + 0x000000000001e1c8 current_DOR + .data 0x000000000001e250 0x0 mm/mm.o + *fill* 0x000000000001e250 0x10 + .data 0x000000000001e260 0x60 fs/fs.o + 0x000000000001e264 start_buffer + .data 0x000000000001e2c0 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .data 0x000000000001e2c0 0xcd kernel/blk_drv/blk_drv.a(floppy.o) + *fill* 0x000000000001e38d 0x3 + .data 0x000000000001e390 0x4 kernel/blk_drv/blk_drv.a(hd.o) + .data 0x000000000001e394 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o) + *fill* 0x000000000001e394 0xc + .data 0x000000000001e3a0 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o) + 0x000000000001e3a0 tty_table + 0x00000000000208c0 table_list + .data 0x00000000000208d8 0x1 kernel/chr_drv/chr_drv.a(console.o) + .data 0x00000000000208d9 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .data 0x00000000000208d9 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .data 0x00000000000208d9 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + *fill* 0x00000000000208d9 0x7 + .data 0x00000000000208e0 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .data 0x0000000000020900 0x0 kernel/math/math.a(math_emulate.o) + .data 0x0000000000020900 0x101 lib/lib.a(ctype.o) + 0x0000000000020900 _ctype + .data 0x0000000000020a01 0x0 lib/lib.a(_exit.o) + .data 0x0000000000020a01 0x0 lib/lib.a(open.o) + .data 0x0000000000020a01 0x0 lib/lib.a(close.o) + .data 0x0000000000020a01 0x0 lib/lib.a(errno.o) + .data 0x0000000000020a01 0x0 lib/lib.a(write.o) + .data 0x0000000000020a01 0x0 lib/lib.a(dup.o) + .data 0x0000000000020a01 0x0 lib/lib.a(setsid.o) + .data 0x0000000000020a01 0x0 lib/lib.a(execve.o) + .data 0x0000000000020a01 0x0 lib/lib.a(wait.o) + .data 0x0000000000020a01 0x0 lib/lib.a(string.o) + *fill* 0x0000000000020a01 0x1f + .data 0x0000000000020a20 0x50 lib/lib.a(malloc.o) + 0x0000000000020a20 bucket_dir .data1 *(.data1) - 0x00000000000206d0 _edata = . - 0x00000000000206d0 PROVIDE (edata, .) - 0x00000000000206d0 . = . - 0x00000000000206d0 __bss_start = . + 0x0000000000020a70 _edata = . + 0x0000000000020a70 PROVIDE (edata, .) + 0x0000000000020a70 . = . + 0x0000000000020a70 __bss_start = . -.bss 0x00000000000206e0 0x44b0 +.bss 0x0000000000020a80 0x44b0 *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) - .bss 0x00000000000206e0 0x0 boot/head.o - .bss 0x00000000000206e0 0x40c init/main.o - *fill* 0x0000000000020aec 0x14 - .bss 0x0000000000020b00 0x760 kernel/kernel.o - 0x0000000000020b00 jiffies - 0x0000000000020b04 startup_time - 0x0000000000020b08 last_task_used_math - 0x0000000000020e44 last_pid - .bss 0x0000000000021260 0xf20 mm/mm.o - .bss 0x0000000000022180 0x710 fs/fs.o - 0x0000000000022180 inode_table - 0x0000000000022880 nr_buffers - 0x000000000002288c ROOT_DEV - *fill* 0x0000000000022890 0x10 - .bss 0x00000000000228a0 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x00000000000228a0 wait_for_request - 0x00000000000228c0 blk_dev - .bss 0x00000000000228f8 0x25 kernel/blk_drv/blk_drv.a(floppy.o) - 0x00000000000228f8 do_floppy - 0x00000000000228fc selected - 0x0000000000022900 wait_on_floppy_select - *fill* 0x000000000002291d 0x3 - .bss 0x0000000000022920 0xb0 kernel/blk_drv/blk_drv.a(hd.o) - 0x0000000000022920 do_hd - 0x0000000000022940 hd_info - .bss 0x00000000000229d0 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x00000000000229d0 rd_length - .bss 0x00000000000229d4 0x4 kernel/chr_drv/chr_drv.a(tty_io.o) - *fill* 0x00000000000229d8 0x8 - .bss 0x00000000000229e0 0xac kernel/chr_drv/chr_drv.a(console.o) - 0x00000000000229e0 beepcount - .bss 0x0000000000022a8c 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) - .bss 0x0000000000022a8c 0x0 kernel/chr_drv/chr_drv.a(serial.o) - .bss 0x0000000000022a8c 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) - .bss 0x0000000000022a8c 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .bss 0x0000000000022a8c 0x0 kernel/math/math.a(math_emulate.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(ctype.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(_exit.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(open.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(close.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(errno.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(write.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(dup.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(setsid.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(execve.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(wait.o) - .bss 0x0000000000022a8c 0x0 lib/lib.a(string.o) - .bss 0x0000000000022a8c 0x4 lib/lib.a(malloc.o) - 0x0000000000022a8c free_bucket_desc + .bss 0x0000000000020a80 0x0 boot/head.o + .bss 0x0000000000020a80 0x40c init/main.o + *fill* 0x0000000000020e8c 0x14 + .bss 0x0000000000020ea0 0x760 kernel/kernel.o + 0x0000000000020ea0 jiffies + 0x0000000000020ea4 startup_time + 0x0000000000020ea8 last_task_used_math + 0x00000000000211e4 last_pid + .bss 0x0000000000021600 0xf20 mm/mm.o + .bss 0x0000000000022520 0x710 fs/fs.o + 0x0000000000022520 inode_table + 0x0000000000022c20 nr_buffers + 0x0000000000022c2c ROOT_DEV + *fill* 0x0000000000022c30 0x10 + .bss 0x0000000000022c40 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000022c40 wait_for_request + 0x0000000000022c60 blk_dev + .bss 0x0000000000022c98 0x25 kernel/blk_drv/blk_drv.a(floppy.o) + 0x0000000000022c98 do_floppy + 0x0000000000022c9c selected + 0x0000000000022ca0 wait_on_floppy_select + *fill* 0x0000000000022cbd 0x3 + .bss 0x0000000000022cc0 0xb0 kernel/blk_drv/blk_drv.a(hd.o) + 0x0000000000022cc0 do_hd + 0x0000000000022ce0 hd_info + .bss 0x0000000000022d70 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x0000000000022d70 rd_length + .bss 0x0000000000022d74 0x4 kernel/chr_drv/chr_drv.a(tty_io.o) + *fill* 0x0000000000022d78 0x8 + .bss 0x0000000000022d80 0xac kernel/chr_drv/chr_drv.a(console.o) + 0x0000000000022d80 beepcount + .bss 0x0000000000022e2c 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o) + .bss 0x0000000000022e2c 0x0 kernel/chr_drv/chr_drv.a(serial.o) + .bss 0x0000000000022e2c 0x0 kernel/chr_drv/chr_drv.a(rs_io.o) + .bss 0x0000000000022e2c 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .bss 0x0000000000022e2c 0x0 kernel/math/math.a(math_emulate.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(ctype.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(_exit.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(open.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(close.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(errno.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(write.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(dup.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(setsid.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(execve.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(wait.o) + .bss 0x0000000000022e2c 0x0 lib/lib.a(string.o) + .bss 0x0000000000022e2c 0x4 lib/lib.a(malloc.o) + 0x0000000000022e2c free_bucket_desc *(COMMON) - *fill* 0x0000000000022a90 0x10 - COMMON 0x0000000000022aa0 0x20 init/main.o - 0x0000000000022aa0 drive_info - COMMON 0x0000000000022ac0 0x1000 kernel/kernel.o - 0x0000000000022ac0 user_stack - COMMON 0x0000000000023ac0 0xc40 fs/fs.o - 0x0000000000023ac0 hash_table - 0x0000000000023fa0 super_block - 0x0000000000024300 file_table - COMMON 0x0000000000024700 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - 0x0000000000024700 request - COMMON 0x0000000000024b80 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) - 0x0000000000024b80 rd_start - COMMON 0x0000000000024b84 0x1 lib/lib.a(ctype.o) - 0x0000000000024b84 _ctmp - *fill* 0x0000000000024b85 0x3 - COMMON 0x0000000000024b88 0x4 lib/lib.a(errno.o) - 0x0000000000024b88 errno - COMMON 0x0000000000024b8c 0x4 lib/lib.a(string.o) - 0x0000000000024b8c ___strtok - 0x0000000000024b90 . = ALIGN ((. != 0x0)?0x4:0x1) - 0x0000000000024b90 . = ALIGN (0x4) - 0x0000000000024b90 . = SEGMENT_START ("ldata-segment", .) - 0x0000000000024b90 . = ALIGN (0x4) - 0x0000000000024b90 _end = . - 0x0000000000024b90 PROVIDE (end, .) + *fill* 0x0000000000022e30 0x10 + COMMON 0x0000000000022e40 0x20 init/main.o + 0x0000000000022e40 drive_info + COMMON 0x0000000000022e60 0x1000 kernel/kernel.o + 0x0000000000022e60 user_stack + COMMON 0x0000000000023e60 0xc40 fs/fs.o + 0x0000000000023e60 hash_table + 0x0000000000024340 super_block + 0x00000000000246a0 file_table + COMMON 0x0000000000024aa0 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + 0x0000000000024aa0 request + COMMON 0x0000000000024f20 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o) + 0x0000000000024f20 rd_start + COMMON 0x0000000000024f24 0x1 lib/lib.a(ctype.o) + 0x0000000000024f24 _ctmp + *fill* 0x0000000000024f25 0x3 + COMMON 0x0000000000024f28 0x4 lib/lib.a(errno.o) + 0x0000000000024f28 errno + COMMON 0x0000000000024f2c 0x4 lib/lib.a(string.o) + 0x0000000000024f2c ___strtok + 0x0000000000024f30 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x0000000000024f30 . = ALIGN (0x4) + 0x0000000000024f30 . = SEGMENT_START ("ldata-segment", .) + 0x0000000000024f30 . = ALIGN (0x4) + 0x0000000000024f30 _end = . + 0x0000000000024f30 PROVIDE (end, .) .stab *(.stab) @@ -929,144 +929,144 @@ LOAD lib/lib.a .debug_pubnames *(.debug_pubnames) -.debug_info 0x0000000000000000 0x1749a +.debug_info 0x0000000000000000 0x17581 *(.debug_info .gnu.linkonce.wi.*) .debug_info 0x0000000000000000 0x577 init/main.o - .debug_info 0x0000000000000577 0x50fa kernel/kernel.o - .debug_info 0x0000000000005671 0xc15 mm/mm.o - .debug_info 0x0000000000006286 0xa290 fs/fs.o - .debug_info 0x0000000000010516 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_info 0x0000000000010e48 0xc9f kernel/blk_drv/blk_drv.a(floppy.o) - .debug_info 0x0000000000011ae7 0xd5f kernel/blk_drv/blk_drv.a(hd.o) - .debug_info 0x0000000000012846 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_info 0x000000000001331b 0xacd kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_info 0x0000000000013de8 0xdb0 kernel/chr_drv/chr_drv.a(console.o) - .debug_info 0x0000000000014b98 0x85c kernel/chr_drv/chr_drv.a(serial.o) - .debug_info 0x00000000000153f4 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_info 0x0000000000015f3b 0x7b5 kernel/math/math.a(math_emulate.o) - .debug_info 0x00000000000166f0 0x66 lib/lib.a(ctype.o) - .debug_info 0x0000000000016756 0x77 lib/lib.a(_exit.o) - .debug_info 0x00000000000167cd 0xd0 lib/lib.a(open.o) - .debug_info 0x000000000001689d 0x97 lib/lib.a(close.o) - .debug_info 0x0000000000016934 0x36 lib/lib.a(errno.o) - .debug_info 0x000000000001696a 0xc9 lib/lib.a(write.o) - .debug_info 0x0000000000016a33 0x97 lib/lib.a(dup.o) - .debug_info 0x0000000000016aca 0x95 lib/lib.a(setsid.o) - .debug_info 0x0000000000016b5f 0xcb lib/lib.a(execve.o) - .debug_info 0x0000000000016c2a 0xed lib/lib.a(wait.o) - .debug_info 0x0000000000016d17 0x55e lib/lib.a(string.o) - .debug_info 0x0000000000017275 0x225 lib/lib.a(malloc.o) - -.debug_abbrev 0x0000000000000000 0x457f + .debug_info 0x0000000000000577 0x51e1 kernel/kernel.o + .debug_info 0x0000000000005758 0xc15 mm/mm.o + .debug_info 0x000000000000636d 0xa290 fs/fs.o + .debug_info 0x00000000000105fd 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_info 0x0000000000010f2f 0xc9f kernel/blk_drv/blk_drv.a(floppy.o) + .debug_info 0x0000000000011bce 0xd5f kernel/blk_drv/blk_drv.a(hd.o) + .debug_info 0x000000000001292d 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_info 0x0000000000013402 0xacd kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_info 0x0000000000013ecf 0xdb0 kernel/chr_drv/chr_drv.a(console.o) + .debug_info 0x0000000000014c7f 0x85c kernel/chr_drv/chr_drv.a(serial.o) + .debug_info 0x00000000000154db 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_info 0x0000000000016022 0x7b5 kernel/math/math.a(math_emulate.o) + .debug_info 0x00000000000167d7 0x66 lib/lib.a(ctype.o) + .debug_info 0x000000000001683d 0x77 lib/lib.a(_exit.o) + .debug_info 0x00000000000168b4 0xd0 lib/lib.a(open.o) + .debug_info 0x0000000000016984 0x97 lib/lib.a(close.o) + .debug_info 0x0000000000016a1b 0x36 lib/lib.a(errno.o) + .debug_info 0x0000000000016a51 0xc9 lib/lib.a(write.o) + .debug_info 0x0000000000016b1a 0x97 lib/lib.a(dup.o) + .debug_info 0x0000000000016bb1 0x95 lib/lib.a(setsid.o) + .debug_info 0x0000000000016c46 0xcb lib/lib.a(execve.o) + .debug_info 0x0000000000016d11 0xed lib/lib.a(wait.o) + .debug_info 0x0000000000016dfe 0x55e lib/lib.a(string.o) + .debug_info 0x000000000001735c 0x225 lib/lib.a(malloc.o) + +.debug_abbrev 0x0000000000000000 0x4584 *(.debug_abbrev) .debug_abbrev 0x0000000000000000 0x1ed init/main.o - .debug_abbrev 0x00000000000001ed 0xfc2 kernel/kernel.o - .debug_abbrev 0x00000000000011af 0x23f mm/mm.o - .debug_abbrev 0x00000000000013ee 0x19f1 fs/fs.o - .debug_abbrev 0x0000000000002ddf 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_abbrev 0x0000000000002f48 0x27d kernel/blk_drv/blk_drv.a(floppy.o) - .debug_abbrev 0x00000000000031c5 0x23c kernel/blk_drv/blk_drv.a(hd.o) - .debug_abbrev 0x0000000000003401 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_abbrev 0x00000000000035a9 0x279 kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_abbrev 0x0000000000003822 0x26b kernel/chr_drv/chr_drv.a(console.o) - .debug_abbrev 0x0000000000003a8d 0x175 kernel/chr_drv/chr_drv.a(serial.o) - .debug_abbrev 0x0000000000003c02 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_abbrev 0x0000000000003d8f 0x163 kernel/math/math.a(math_emulate.o) - .debug_abbrev 0x0000000000003ef2 0x3e lib/lib.a(ctype.o) - .debug_abbrev 0x0000000000003f30 0x51 lib/lib.a(_exit.o) - .debug_abbrev 0x0000000000003f81 0x97 lib/lib.a(open.o) - .debug_abbrev 0x0000000000004018 0x75 lib/lib.a(close.o) - .debug_abbrev 0x000000000000408d 0x2c lib/lib.a(errno.o) - .debug_abbrev 0x00000000000040b9 0xa1 lib/lib.a(write.o) - .debug_abbrev 0x000000000000415a 0x75 lib/lib.a(dup.o) - .debug_abbrev 0x00000000000041cf 0x73 lib/lib.a(setsid.o) - .debug_abbrev 0x0000000000004242 0x85 lib/lib.a(execve.o) - .debug_abbrev 0x00000000000042c7 0xb6 lib/lib.a(wait.o) - .debug_abbrev 0x000000000000437d 0xe9 lib/lib.a(string.o) - .debug_abbrev 0x0000000000004466 0x119 lib/lib.a(malloc.o) - -.debug_line 0x0000000000000000 0x4808 + .debug_abbrev 0x00000000000001ed 0xfc7 kernel/kernel.o + .debug_abbrev 0x00000000000011b4 0x23f mm/mm.o + .debug_abbrev 0x00000000000013f3 0x19f1 fs/fs.o + .debug_abbrev 0x0000000000002de4 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_abbrev 0x0000000000002f4d 0x27d kernel/blk_drv/blk_drv.a(floppy.o) + .debug_abbrev 0x00000000000031ca 0x23c kernel/blk_drv/blk_drv.a(hd.o) + .debug_abbrev 0x0000000000003406 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_abbrev 0x00000000000035ae 0x279 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_abbrev 0x0000000000003827 0x26b kernel/chr_drv/chr_drv.a(console.o) + .debug_abbrev 0x0000000000003a92 0x175 kernel/chr_drv/chr_drv.a(serial.o) + .debug_abbrev 0x0000000000003c07 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_abbrev 0x0000000000003d94 0x163 kernel/math/math.a(math_emulate.o) + .debug_abbrev 0x0000000000003ef7 0x3e lib/lib.a(ctype.o) + .debug_abbrev 0x0000000000003f35 0x51 lib/lib.a(_exit.o) + .debug_abbrev 0x0000000000003f86 0x97 lib/lib.a(open.o) + .debug_abbrev 0x000000000000401d 0x75 lib/lib.a(close.o) + .debug_abbrev 0x0000000000004092 0x2c lib/lib.a(errno.o) + .debug_abbrev 0x00000000000040be 0xa1 lib/lib.a(write.o) + .debug_abbrev 0x000000000000415f 0x75 lib/lib.a(dup.o) + .debug_abbrev 0x00000000000041d4 0x73 lib/lib.a(setsid.o) + .debug_abbrev 0x0000000000004247 0x85 lib/lib.a(execve.o) + .debug_abbrev 0x00000000000042cc 0xb6 lib/lib.a(wait.o) + .debug_abbrev 0x0000000000004382 0xe9 lib/lib.a(string.o) + .debug_abbrev 0x000000000000446b 0x119 lib/lib.a(malloc.o) + +.debug_line 0x0000000000000000 0x4892 *(.debug_line .debug_line.* .debug_line_end) .debug_line 0x0000000000000000 0x1a9 init/main.o - .debug_line 0x00000000000001a9 0xfbf kernel/kernel.o - .debug_line 0x0000000000001168 0x2af mm/mm.o - .debug_line 0x0000000000001417 0x1c5f fs/fs.o - .debug_line 0x0000000000003076 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) - .debug_line 0x000000000000320d 0x24c kernel/blk_drv/blk_drv.a(floppy.o) - .debug_line 0x0000000000003459 0x2bf kernel/blk_drv/blk_drv.a(hd.o) - .debug_line 0x0000000000003718 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o) - .debug_line 0x0000000000003878 0x33b kernel/chr_drv/chr_drv.a(tty_io.o) - .debug_line 0x0000000000003bb3 0x3ab kernel/chr_drv/chr_drv.a(console.o) - .debug_line 0x0000000000003f5e 0xd9 kernel/chr_drv/chr_drv.a(serial.o) - .debug_line 0x0000000000004037 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o) - .debug_line 0x0000000000004212 0xe1 kernel/math/math.a(math_emulate.o) - .debug_line 0x00000000000042f3 0x28 lib/lib.a(ctype.o) - .debug_line 0x000000000000431b 0x39 lib/lib.a(_exit.o) - .debug_line 0x0000000000004354 0x62 lib/lib.a(open.o) - .debug_line 0x00000000000043b6 0x5c lib/lib.a(close.o) - .debug_line 0x0000000000004412 0x28 lib/lib.a(errno.o) - .debug_line 0x000000000000443a 0x76 lib/lib.a(write.o) - .debug_line 0x00000000000044b0 0x5a lib/lib.a(dup.o) - .debug_line 0x000000000000450a 0x77 lib/lib.a(setsid.o) - .debug_line 0x0000000000004581 0x5d lib/lib.a(execve.o) - .debug_line 0x00000000000045de 0x7a lib/lib.a(wait.o) - .debug_line 0x0000000000004658 0xc6 lib/lib.a(string.o) - .debug_line 0x000000000000471e 0xea lib/lib.a(malloc.o) + .debug_line 0x00000000000001a9 0x1043 kernel/kernel.o + .debug_line 0x00000000000011ec 0x2b1 mm/mm.o + .debug_line 0x000000000000149d 0x1c63 fs/fs.o + .debug_line 0x0000000000003100 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_line 0x0000000000003297 0x24c kernel/blk_drv/blk_drv.a(floppy.o) + .debug_line 0x00000000000034e3 0x2bf kernel/blk_drv/blk_drv.a(hd.o) + .debug_line 0x00000000000037a2 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_line 0x0000000000003902 0x33b kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_line 0x0000000000003c3d 0x3ab kernel/chr_drv/chr_drv.a(console.o) + .debug_line 0x0000000000003fe8 0xd9 kernel/chr_drv/chr_drv.a(serial.o) + .debug_line 0x00000000000040c1 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_line 0x000000000000429c 0xe1 kernel/math/math.a(math_emulate.o) + .debug_line 0x000000000000437d 0x28 lib/lib.a(ctype.o) + .debug_line 0x00000000000043a5 0x39 lib/lib.a(_exit.o) + .debug_line 0x00000000000043de 0x62 lib/lib.a(open.o) + .debug_line 0x0000000000004440 0x5c lib/lib.a(close.o) + .debug_line 0x000000000000449c 0x28 lib/lib.a(errno.o) + .debug_line 0x00000000000044c4 0x76 lib/lib.a(write.o) + .debug_line 0x000000000000453a 0x5a lib/lib.a(dup.o) + .debug_line 0x0000000000004594 0x77 lib/lib.a(setsid.o) + .debug_line 0x000000000000460b 0x5d lib/lib.a(execve.o) + .debug_line 0x0000000000004668 0x7a lib/lib.a(wait.o) + .debug_line 0x00000000000046e2 0xc6 lib/lib.a(string.o) + .debug_line 0x00000000000047a8 0xea lib/lib.a(malloc.o) .debug_frame *(.debug_frame) -.debug_str 0x0000000000000000 0x2286 +.debug_str 0x0000000000000000 0x228f *(.debug_str) .debug_str 0x0000000000000000 0x1c5 init/main.o 0x204 (size before relaxing) - .debug_str 0x00000000000001c5 0xc37 kernel/kernel.o - 0x24a4 (size before relaxing) - .debug_str 0x0000000000000dfc 0x19f mm/mm.o + .debug_str 0x00000000000001c5 0xc40 kernel/kernel.o + 0x24c3 (size before relaxing) + .debug_str 0x0000000000000e05 0x19f mm/mm.o 0x509 (size before relaxing) - .debug_str 0x0000000000000f9b 0x891 fs/fs.o + .debug_str 0x0000000000000fa4 0x891 fs/fs.o 0x496b (size before relaxing) - .debug_str 0x000000000000182c 0xec kernel/blk_drv/blk_drv.a(ll_rw_blk.o) + .debug_str 0x0000000000001835 0xec kernel/blk_drv/blk_drv.a(ll_rw_blk.o) 0x48d (size before relaxing) - .debug_str 0x0000000000001918 0x1cf kernel/blk_drv/blk_drv.a(floppy.o) + .debug_str 0x0000000000001921 0x1cf kernel/blk_drv/blk_drv.a(floppy.o) 0x66f (size before relaxing) - .debug_str 0x0000000000001ae7 0x15e kernel/blk_drv/blk_drv.a(hd.o) + .debug_str 0x0000000000001af0 0x15e kernel/blk_drv/blk_drv.a(hd.o) 0x5e4 (size before relaxing) - .debug_str 0x0000000000001c45 0x7b kernel/blk_drv/blk_drv.a(ramdisk.o) + .debug_str 0x0000000000001c4e 0x7b kernel/blk_drv/blk_drv.a(ramdisk.o) 0x58a (size before relaxing) - .debug_str 0x0000000000001cc0 0xf7 kernel/chr_drv/chr_drv.a(tty_io.o) + .debug_str 0x0000000000001cc9 0xf7 kernel/chr_drv/chr_drv.a(tty_io.o) 0x4df (size before relaxing) - .debug_str 0x0000000000001db7 0x1b9 kernel/chr_drv/chr_drv.a(console.o) + .debug_str 0x0000000000001dc0 0x1b9 kernel/chr_drv/chr_drv.a(console.o) 0x5b3 (size before relaxing) - .debug_str 0x0000000000001f70 0x1a kernel/chr_drv/chr_drv.a(serial.o) + .debug_str 0x0000000000001f79 0x1a kernel/chr_drv/chr_drv.a(serial.o) 0x3f8 (size before relaxing) - .debug_str 0x0000000000001f8a 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o) + .debug_str 0x0000000000001f93 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o) 0x4a3 (size before relaxing) - .debug_str 0x0000000000002015 0x70 kernel/math/math.a(math_emulate.o) + .debug_str 0x000000000000201e 0x70 kernel/math/math.a(math_emulate.o) 0x392 (size before relaxing) - .debug_str 0x0000000000002085 0x8d lib/lib.a(ctype.o) + .debug_str 0x000000000000208e 0x8d lib/lib.a(ctype.o) 0xb6 (size before relaxing) - .debug_str 0x0000000000002112 0x31 lib/lib.a(_exit.o) + .debug_str 0x000000000000211b 0x31 lib/lib.a(_exit.o) 0xde (size before relaxing) .debug_str 0x0000000000000000 0x31 lib/lib.a(open.o) 0xee (size before relaxing) - .debug_str 0x0000000000002143 0x8 lib/lib.a(close.o) + .debug_str 0x000000000000214c 0x8 lib/lib.a(close.o) 0xe0 (size before relaxing) - .debug_str 0x000000000000214b 0x8 lib/lib.a(errno.o) + .debug_str 0x0000000000002154 0x8 lib/lib.a(errno.o) 0x93 (size before relaxing) .debug_str 0x0000000000000000 0x8 lib/lib.a(write.o) 0xec (size before relaxing) - .debug_str 0x0000000000002153 0x6 lib/lib.a(dup.o) + .debug_str 0x000000000000215c 0x6 lib/lib.a(dup.o) 0xd8 (size before relaxing) - .debug_str 0x0000000000002159 0x9 lib/lib.a(setsid.o) + .debug_str 0x0000000000002162 0x9 lib/lib.a(setsid.o) 0xe8 (size before relaxing) - .debug_str 0x0000000000002162 0x9 lib/lib.a(execve.o) + .debug_str 0x000000000000216b 0x9 lib/lib.a(execve.o) 0xf1 (size before relaxing) - .debug_str 0x000000000000216b 0x11 lib/lib.a(wait.o) + .debug_str 0x0000000000002174 0x11 lib/lib.a(wait.o) 0xfe (size before relaxing) - .debug_str 0x000000000000217c 0x93 lib/lib.a(string.o) + .debug_str 0x0000000000002185 0x93 lib/lib.a(string.o) 0x147 (size before relaxing) - .debug_str 0x000000000000220f 0x77 lib/lib.a(malloc.o) + .debug_str 0x0000000000002218 0x77 lib/lib.a(malloc.o) 0x162 (size before relaxing) .debug_loc diff --git a/linux/fs/buffer.c b/linux/fs/buffer.c index cd24e0e..c45111e 100644 --- a/linux/fs/buffer.c +++ b/linux/fs/buffer.c @@ -312,7 +312,9 @@ void bread_page(unsigned long address,int dev,int b[4]) if (bh[i]) { wait_on_buffer(bh[i]); if (bh[i]->b_uptodate) - COPYBLK((unsigned long) bh[i]->b_data,address); + {COPYBLK((unsigned long) bh[i]->b_data,address);} + /* int k=0; + while(k++<10)printk("%c",bh[i]->b_data+k);printk("\n");} */ brelse(bh[i]); } } diff --git a/linux/fs/buffer.o b/linux/fs/buffer.o index fc558af6f96f3e0ffc1ae9f69724ed6769fe2f96..17734e5b32d8737f9dbb97d347fe2c72297b2e8f 100644 GIT binary patch delta 276 zcmZ3Gu_R-H0%Ofa#W*oW_sI=nlJ)M4RSXOaOcNPo-!d~WFv7Sj@(RAJK)xrVDp)#4 zE-8b7(TmX$sEBD|hFnQ*0fL*tp!k*%s5p`F7$*aRK8QJI6*mKe>_L!`iHyY%8{~i{ zBtuQ8kV|46@NyR$(pM38FeO~R4r$mGTBj0o6&W0u9`CAlF1X*)EOHl?^IJ~VpN*^ mNKK7VdoriGI#8)0kX$o45=fqz+z2G!OkN2R*?dvmp9cV2Pe8l? delta 280 zcmZ3Iu^?lD0%OHS#W*oW*U1fHlJ%~PRSXOaOcNPo-!d~WFv7Sj@(RAJK)ySpDp)#4 zE-8b7(Sy+usEBD|hFnQ*0fL*tp!k*%s5qYS7$*aRK8QJI6*mKe>_L!`@r=a~8{~i{ zBtlK7kV|4-L!%%J?Hs8 z5`B8?hfl#18<$XEMhV-B$6FYt*{TIj8KdkY3rVtEmd;<0Dz#w1&WiJ~DFWj>(Mg>QnLOuV$VES$5nNKgV3ytqHd)jrtZvtm!si1*lKB9HwULItD8rLz k!B!HhvZX5P$Xd@NYmP%OlRg)C5%nhc2$LSbfOi)1`?ld_Yr z(!)h&ijB`wHY}zo3k#oRC86Bwk=3tr&pG#Y&-seU?=gAKg_%uvYZzWN5YDRiVuBE2 z2oXonMhO1GIHxO`#^V~~{iOR8e>XubDvhGJTN&ve{0}>cJ80#_KJ_-7Ug*QHext%W z+J8I76hDC<>xrU$MCl>uP?g9YaK?r_aO?hxq;Y0K002;)932ZlM7Ov~ru{p&@~p-frU< z)pTu#M{V?d2aWL2dWKw{8)7IxA6*n&(?h`my%%gT>n@y~?JF`L5D2mH2?%SUy$ut^A+j{PfpG7P1?jQojMsP<&+o diff --git a/linux/include/mm.h b/linux/include/mm.h new file mode 100644 index 0000000..3939f62 --- /dev/null +++ b/linux/include/mm.h @@ -0,0 +1,22 @@ + +#ifndef _mm_H +#define _mm_H + + +extern void calc_mem(void); +extern void mem_init(long start_mem, long end_mem); +extern void do_no_page(unsigned long error_code,unsigned long address); +extern int share_page(unsigned long address); +extern int try_to_share(unsigned long address, struct task_struct * p); +extern void get_empty_page(unsigned long address); +extern void write_verify(unsigned long address); +extern void do_wp_page(unsigned long error_code,unsigned long address); +extern void un_wp_page(unsigned long * table_entry); +extern unsigned long put_page(unsigned long page,unsigned long address); +extern int copy_page_tables(unsigned long from,unsigned long to,long size); +extern int free_page_tables(unsigned long from,unsigned long size); +extern void free_page(unsigned long addr); +extern unsigned long get_free_page(void); +extern void oom(void); +extern void do_exit(long code); +#endif // MACRO diff --git a/linux/kernel/blk_drv/blk_drv.a b/linux/kernel/blk_drv/blk_drv.a index 9479e6f79caf09f3708135c9718675f393f499e3..96603ec7fa2387f4cb37da68cdf9f64cb5761470 100644 GIT binary patch delta 63 zcmaDco%zLd<_R)vCI*(KW~LjJmN7z^o6j+ZDM8tji)Gp@mI*R!CI*(KW~LjJ8W^F>$qQDCZQjSo5`oOW7uk@B;EQjrK73yu%HN#u Hc$+2w?&2Ey delta 79 zcmbO>i)Gp@mI*R!h9;(FmL?mO8W^F>$qQDCZQjSo5`oOW7uk@B;EQjrK73yu%HN#u Hc$+2w?!+4U diff --git a/linux/kernel/kernel.o b/linux/kernel/kernel.o index 4d890d29202d35f3bab12b6e7a69f939850918ea..d12a085c6ca588afa2b1ef881070c74187722e77 100644 GIT binary patch delta 17467 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 PqfK??uIDG|>%;#GFUHYE delta 15959 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 fv-H38r_uC!eY5`jz{B + +#include +#include +#include #include #include #include @@ -14,8 +19,9 @@ #include #include #include -#include -#define MAP_FAILED +#include +#include +#include //ADD FOR getcwd long sys_getcwd(char *buf,size_t size) @@ -172,38 +178,7 @@ unsigned int sys_sleep(unsigned int seconds) schedule(); return 0; } -long sys_mmap(void * start,size_t len, int prot,int flags,int fd,off_t off) -{ - if(!len || off<0 || !(off%PAGE_SIZE)) return MAP_FAILED; - void * buf=start; - if(start<=current->brk || start>=current->start_stack-0x8000 || start==NULL) - { - buf=current->brk+0x2000000; - } - if(!(prot& PROT_READ)) return MAP_FAILED; - //permissions of the file - struct m_inode *inode=current->filp[fd]->f_inode; - int mode = inode->i_mode; - if (inode->i_dev && !inode->i_nlinks) - return 0; - else if (current->euid==inode->i_uid) - mode >>= 6; - else if (current->egid==inode->i_gid) - mode >>= 3; - if (!((mode & prot & 0007) == prot) || suser()) - { - printk("error permission."); - return MAP_FAILED; - } - - return MAP_FAILED; -} -int sys_munmap() -{ - - return -1; -} int sys_clone() { @@ -487,3 +462,98 @@ int sys_umask(int mask) current->umask = mask & 0777; return (old); } + + +long sys_mmap(void * start,size_t len,...)// int prot,int flags,int fd,off_t off +{ + printk("start mmaping\n"); + /* va_list args; + va_start(args,len); */ + int prot=3,flags=1,fd=3,off=0; + /* prot=va_arg(args,int);flags=va_arg(args,int);fd=va_arg(args,int); + off_t off=va_arg(args,off_t); + int *ll=&len;printk("%d,%d,%d,%d,%d\n",*ll,*(ll+1),*(ll+2),*(ll+3),*(ll+4)); + va_end(args); + printk("%d,%d,%d,%ld\n",prot,flags,fd,off); */ + int block; + size_t l=len; + struct buffer_head * bh; + char *temp,*p1,*p2; + void * buf=start; + int tempprot=0; + if(prot &PROT_READ) tempprot |=4; + if(prot &PROT_EXEC) tempprot |=1; + if(prot &PROT_WRITE) tempprot |=2; + //特殊量 + if(!len || off<0 || (off%PAGE_SIZE)) return MAP_FAILED; + if(!(prot& PROT_READ)) return MAP_FAILED; + //permissions of the file + printk("end of permissions0\n"); + printk("fd: %d\n",fd); + struct m_inode *inode=current->filp[fd]->f_inode; + printk("end of permissions\n"); + int mode = inode->i_mode; + if (inode->i_dev && !inode->i_nlinks) + {printk("end of permissions1\n");;return MAP_FAILED;} + else if (current->euid==inode->i_uid) + mode >>= 6; + else if (current->egid==inode->i_gid) + mode >>= 3; + if (!(((mode & tempprot & 0007) == tempprot) || suser())) + { + printk("error permission."); + return MAP_FAILED; + } + printk("end of permissions\n"); + if(start<=current->brk || start>=current->start_stack-0x8000 || start==NULL) + { + buf=0x2000000; + } + printk("buf: %x\n",(unsigned long )buf); + + if (!(block = inode->i_zone[0])) + return NULL; + if (!(bh = bread(inode->i_dev,block))) + return NULL; + temp = (char *) bh->b_data; + /* int nr[4]; + unsigned long page; + int i; + unsigned long address=current->start_code+(unsigned long)buf; + printk("start of page\n"); + //this part comes from do_no_page as achievement of immediate loading of cs and ds + while(address<=current->start_code+len+(unsigned long)buf) + { + printk("address: %x\n",address); + address &= 0xfffff000; + if (!(page = get_free_page())) + return MAP_FAILED; + for (i=0 ; i<4 ; block++,i++) + nr[i] = bmap(inode,block); + bread_page(page,inode->i_dev,nr); + if (!put_page(page,address)) + { + free_page(page); + return MAP_FAILED; + } + int k=0;char c=0; + while(k++<60){c=get_fs_byte(address-current->start_code);printk("%c",c);} + printk("\n"); + address+=PAGE_SIZE; + k=0; + while(k++<60)printk("%c",(char*)(page+k)); + printk("\n"); + } */ + printk("end of mmap\n"); + p1=temp;p2=buf; + while(l--) + put_fs_byte(*(p1++),p2++); + printk("%s\n",temp); + return buf; + return MAP_FAILED; +} +int sys_munmap() +{ + + return -1; +} \ No newline at end of file diff --git a/linux/kernel/sys.o b/linux/kernel/sys.o index 68d413cf0a65488548c3d6241ebb1bc222ba9008..a62fe811864ac187272964e9470af820d6342416 100644 GIT binary patch literal 20140 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 K@I}F6g8v^5Co-)7 literal 18540 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 UX2G3;djX(CI=jX!zUp73N - #include - #include #include #include @@ -371,8 +369,8 @@ void do_no_page(unsigned long error_code,unsigned long address) unsigned long page; int block,i; - /* if (current->pid > 5) - printk(" --do_no_page: address=%x, pid=%d\n", address, current->pid); */ + if (current->pid > 5) + printk(" --do_no_page: address=%x, pid=%d\n", address, current->pid); address &= 0xfffff000; tmp = address - current->start_code; @@ -466,3 +464,5 @@ void calc_mem(void) } } } + + diff --git a/linux/mm/memory.o b/linux/mm/memory.o index 31631bf9723214ace079c134a7ef8b7076d9d949..b93288f09169ad70cc503cfcaff16db3e30b88a3 100644 GIT binary patch delta 2112 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 HPC5PuP8D~d diff --git a/linux/mm/mm.o b/linux/mm/mm.o index 2b72085e5156eb46aac1869ee5c40fdd8e4e63d2..0c0fede1f1c43e1952a9075fbedd4fde2e010269 100644 GIT binary patch delta 2074 zcmYjSeQXp}5T9B0%Jq7dgS~#-?e==*Xz#9RK??=>XiJnBqYyD79t3S0xA6+s_G}>_ zAskW?Z6Lz&+5mD&tHuuyu{lY^_z`1M5NkBisDD&2L=$X`X+k7ulsdEfu5^>#-}}v* zncuv(^LG0>`?`(<@xX9Jk#q47&~ z++VnQRvHUc8hYv8N4EZafbBG`lekrlbLi z_i}7}G11F(PqAx8nGI0%9mmF{U(rJ|n5v~Y(^hs<(uoqYy&G_w&Eh4UOzbcd@>L!c z(+xPlB41ME^O$0lSEp45q)O@bE^@PpYD*5(P>_;#YL9W9$E2k8As295N@{hS{)8PD z(CA#VYRPHMom&Zh_(q2abq2rKKxIWDP~P6}HJDO15_-0Y_~X*LL&V zs4N1!I){&o)>3cHxNQXO2d?aj9gxt=;)Q5)D3I zJe2ba&~ig~gYqkBRkwPeQqHv){CcV+OXy=P8kW@5%ekhAq;dTdUPn~YEl@_i#?AMs z&zFixD;OlU84u7Ipf;jjVOigLcI?0@>JC0Nn3?UO4H)5CJ92^ce&ncXaL;uiJ1Xh* z_Ck}=H(_tqvy!&x7w2(h-N@ajq~k_A5fS&7r;cLoG-75GYfiA{QM5Y{{O*}l<+y&C zWETYMxYR+5J1KUzRr#_4fIwS2t#S}$e*~Pf^zI=|ULhwDo2|vgERNY^!ojE}x-ia@!(`>y%;>NZ+#MCcwM9#5A z|DNSXkTdXE%y+B2(b^gIsuLcg0+(g$j6({Z6`utTV|n(G@^$FA?}ifcW={pr>fJSM5T%sv)56@HHlZ>P~D(&OUBLKG~H~2i!52k{Ub#^c>0(gP3g!(MQ6ZEM# zCvj5ZO6nmc0I-3O1CtVm*iM3Dl3!y^g104~&##aKmok#j1B@jAF+$Gsw8RXfV zJfIbSOUNs}&b$KPABiz~i#-1%A3=lBwq#b-9r<-3iiH3@ znBMw5C1cYK>1Z&V$$S9qeuXw3;0Ojx!sCfm=A!&`+)Dh5>MJRWZp=Vf z?sfV2^+Y5}=!;BRC1H;qU`lPC+)@<(X247 zr;P&#FiX?H_XE=fh17u0S?fS9(d?S3HM*sFP=Q?wqMRNkd>(~q}ocD$-@)87hveZcfFHx1FhVpxh z0Q?8ybjnGT^Wit%!lW!}@m}Vlleh+uBsDhg&x|i1XDTU&_deE|gQ~B)|1jX&lC>+e zg|)t8z@JF)HZU6Tu584^`Z}w)C{NyDHsX?md-Zv)Jtd1Jd`UV`4#jk1;NFw5e2+;X zc%I>cS8)%i``hT#IIXx7*EY)Z-Ucz>^S42dzQ7r|z%Kn;rk_Kuz<1H^uyCWbDUP~F z9Q1{-E_22=s^F9e1WscpGaYyg^YZKs84OM3i%a1Wd_~NL%dLqhz}I4pR+k+Br^S{? zxwW|%V1ZVecr>D7gXoNe(I)4{AB>4Gk6#oKX>5t8 zk}TJ`OWHVFB7T!CUE~R}N*TZv#vy=t!_r@7CA}pMh?3=i18jo;iOiLn;R5Uyb+yB| bU(D3%^zHkhb_ad;?7N%jbC_w}-Gu)Glx}z8 diff --git a/linux/tools/system b/linux/tools/system index 962aa7a98c24e35a79ecbfb8f810279fc652bedd..1c65bb25af77f9a01c6d987bc4c3ed4806033996 100644 GIT binary patch delta 67974 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 delta 66749 zcmc$H33L?2*Kb$Pnmv$(kady_5Fo&?2M91gfUp`MAUk1;fS>^q7Fi}3P{IHP8*Nn3 zgrFj#pddj&4G;wdH7F`7VB80Tii(Pg%=_J{?qmr3zwf>C-ud2~)9G8kd+XM%Tep_3 zu9+0AY5e`)jY@2CRL4z8N#<&^ER_t|Gg8%8Z$9=%&otE9V%_5^q$qsRpT#9W%Q?+bj9l}uS@oX z32deR2@@eib0MIW(#pUSrf)dvlxmZ7JjVyONwvr+WJ0AfBFa7Z@aoYT|KekuLd~ow*$9!7l(n_j z>-DL4%VWjW8v93L2ZDW⁣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 N~ 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

X{YL^ByVBkaBR9`kj>DNO^}+X;-OED?vF< z%J-xUzDg|trT!=vC<^dbmGgwd>@8#jPQ#zh3pd zQdUH+B*Q4pFbE98HNynMaMP8tY5lEan5mWDwOYM-rR-P#3zDwTGHorMUtro13z1wd<19I~5pXW^NU01F%z<3p+QFJvPH^X2kryt6-9K-~-Vm1Po2h_<` zGA*M3B$w}gIU$)scY97;CO9#iYDl9}<NqWW2D)NfbG&Y`iC*panXbzY5+ypG$ByETs&djNg4`?Qgm5UX`R^Ecf) zt?m{0^0+>#N@z%(Z`7^7O+h;h|(1^c`qeX^jz1xRiw0F;s{X zrKPopSIg9TYRq-Aer98*UcIjMWCLW9@5CS^5O!rqy>pAqEQ6~-y?Pz%b*jfB_aWCk zCrn3dzH?5v91+7^pfW`7bHeTGsUf$?${@W^`PE&w$&4n+0Y^44{sNo6DHV0>gsDw5 zZ<@+iGEMz(tISZ(-6X?V;EEE8#Q880Ny<_~Zoqndw)%XdjHtXvAu{B78OhD_0}7lI zrsjM#6HMlLKOS_oK|O{qi$8$dxj-b8VX=a*HdLJyZMP=dv0X+U=a z^ryVu6)(1~t@#W08i|SBYEQV{KZQ6sK*5n!yWjI>x#CP^ZPyqtL5kY3wUx2nRw=R; zs^8e7Wn4vNb=?je6*T|z2RcOm1;%Udq&_Lu+GWeuJ|4K-k3Bsvb~p9 zdc!)@NdFJ*M*rpGUs6$A4xj5xUJtvSWVN}ymlM0{PT0O|ah=E1-u7N@O!qfjXU`kz zSbMJ^hR=vq233O&UK4@ew)|ZbRO9d)v$sCpEnJ}1b?^!TqgP6&T0P#uYZN$$CpSXs zV>-XURnM!H+Y!!bt*{cWhII78s&hv#K`d{j26u$ATiU40_?tdi-OT}0Z<*-+nOfJ~%js!vSQcQtA2NOJ zL|_Pr_!Z#oz|}t94_vXuaYp(0Q()YL{4Mo#dH|aZK7BLj_G(|NcOv|)-ap}QuhFG{ z5E1pZs&jjI*m3?$&FJAZ?`f}frGHcSPrzP-&ER&x%enW^&?K-Mu)TMa`~!gpKcx;r z5BdTX*VAi0$=)tS{}u4JH%Sq10JgVA5#I`I?*k&f4|v(j80FxX_#yoAY9kXL&)Eh1 z$lGc&!Wqg7Mr=HffzJCyEdB}DUPwbdE9uYNuj0jD2OnY~bvcyCCV zPwxx5y?%mnLx9~+xqV{dHy#)_Nz8y;lD)2gd@L7SRInNJYI_vl(mNkVSibxU$lEjb z^j`~H1OH0j|2p9BfiWf1`N8W`eu~0(0RI++?+5-9c(c#{2n@b)G~RIz_=KmyaO5*} zZf`{RqwoG+k#O#OG3h+wZ6o+T_;;O9+d!|jr&<}&pO8R%ij{aHusy$O6KYSc60^eF zbE(8%Lht)%hFDq938NLHJ$Fj~Q^057AN2iy^PJXo$4SW$6F|L z0H61ZTHFU+h&}yBI!h)XVAko&F=E+5?F3)76Et&R^0kJ%J$6Oh75Gv3PxIw^1E-1TUonl(hq}fjiiZx0Jav<#Qz3f)KYcqheXn_m=g@r`M{?&n;!lCC=_&Ddz%ZB9*0RLEBMTgB zEK7n!-dR&w;xMo^izRLXY>i@x+X7pYSmIv5TRN-Kb5OLjb&M`rYbZxP7A>ujY|*i3 zX^dp?80c9Tg(m?o2WC&iqMZUv<2hSW^MS2R9QCi_4bj%>jf88#V2#*_Zw8(YYq6<* zPV!1tYduE)Cx8d`b)8#$|6Rb=z>EGb16wOGVlK8@BQfGbLG&e;_D5Nx?hFb;z_oujY>-V}x7fHz0sMBu;XpVfy+xidA&KOgv> zDBP4+X&#Cqv;f1AC|m*ja}@3b{96?60o-8T*#P?kr$*r+z&TNP1aOlmJTVTHy?GR2 zDi|uG@EqX3E1;~Umk_m0xyrk*8y*d!Z-0!&k%MF&7bSk0KXQ+ zum$+bD7+2$WEAFeL?1+98vOiM6y5_|cF9@&w4ck2!qqf2Z5~B91UxPZ9|hhWg?|Lj ziz?$^fmcM~KY@=&VTlExZ=-M-I=0NS307ZLdMSEdUg>SDo`+phn-hF=ZcP;K3VdG_ z=823aqwqlB7o+e#q}@|?7djU4aFzG?%uJraCB_7iX-yI!Z9zy0Pmk%-89XiTC3T$`Wh_?f`y21=|h+nGb^m6RZ8VUQs zPyvQ9P)K|T*lwH=e*QBcmd9;f2v9@@N!$(Gyn7pVe-%G zF-_RGuLQU%Di0e0FV9ztFTh-uTS_*Ly+OA&1k^K#e3%!m^y54Rc+g|&b;u31&xeq2 zG3fSXLE=@w_A&+Hb-=uda~}d?Ufcw1pMs?S-N0Dv>UbfF$Ub&Q`fkweQCQ+vfpO*G zV)EJBgh>A$^nN?dCG^C6wPHi5+6g{^i^LD&x7uF6NdG=qtLVMeJpV&n32b*Fh%W@@ zPJzvriNMxOnf}v(?UOac^MUQ%&BP0V?U^`Yyq7V#?(rfL6c}ivZv(g;*glg)|82nb zTmkVDz+L=L5*xuwz}I2#V1un3zsa~^g+JcdS_gW8y~K<3m7v?_8Hv{e=k8Mnp(n;XI;s8~>17JM1D`nxg<@ZA zB=7s+wH9Q=M}X@+3;Q^)t8k8}&7-{L?o!ygdAU994K`$}OhmiMH#aa4j|478T}Db# zcRXhbu)PPL{&RpEj8LVcy_`gQfS>gBlv5)|d$~!oSGi8PUxgn88HaP%jmC0R)ef~2 zV%3iy!&uMH$v@z4H&Cg@#qNlG=#e-U*k0&QoCIuNjUyb=EcIHtyNwm=_oE%5%v=3q4OUf?%Y8;fb; zSAlo`({VU*Cw>=r2qsKbzWhO8d+7lEzhpv(pHl0_A|iIDl^%bAu?ZH;=JlYTE2T2 zeXzZLi3-mJ1Fz@c_=EU-;4rF8b6;RAu=A-JH4eSyfG9;*fX<_a5YrLi{jb&#n|d|^ zUv#C~M!7v0ICG7d5xyUE?uJ!rInQ|<_*L{qSQ^sd?*@i>_V17@uy@N)A1@!Z7cvlk z54>uC>NwuZnY0{B*GnMJ7Q$JsJxEKwM!?&UL09_eDFx2^6wE$9FT%VFC0pwIw*|JZ zm{Pt6@I#-go#WAI*cU`epA0%~=KdYwS3mI{!tmvnfo}Jx$+sHVzG6vyBk;SwVup=`Z@f0BoPyB;E%+fpa}S{_iC_N=@+cC#Kwon&j7#AHig=o}dsf zr`(TB=O3F3-tKbVeGt=ZD4~A?V2K{Jv7d+(;DyUkZGBt-JV<3s^vZ|YH*hI-F39$M zGh$v7IW`BQ96uV9f$h7V^q&uGZ|f#r3|#cG+C0(Aao1Bov#rieLnV(IeKiEOwvCkMWk9$P{UG!wZ9!wnLo(P{c&kyUo{FnNC9|); zk$(l~*{#j08Syp1XUo@fZUpW}+Z_Dyi+Lw-ba#0#@ND!lGvH78hk=j2ZQPjK?K^2VatXh?RUzFtT6r zgeska-of7DK{^jA+1Gc8M*-Uh>4;|nV<&boRP-KKqjzZJXG9z}nC&%i)Ds4_hEK#i@*jwxru*qD0Jg6Y z(Z3n6y@Hgu4e+0NYBRz~>VaOh%nxTM=uU}x9rObGY!CTYfo>mXCcXw38=`R+d0mIv z_rplv3A%kGi1