second and build all code frame

master
unknown 3 years ago
parent 754200246a
commit 8d2fb264ee

Binary file not shown.

@ -297,280 +297,291 @@
00012348 t free_dind
000123e7 T truncate
0001251c T sys_select
00012522 t lock_buffer
0001254f t unlock_buffer
00012741 t make_request
000128e5 T ll_rw_block
0001293e T blk_dev_init
0001298c t unlock_buffer
000129c1 t end_request
00012a72 T floppy_deselect
00012aa9 T floppy_change
00012b2f t setup_DMA
00012be5 t output_byte
00012c5b t result
00012d18 t bad_flp_intr
00012d77 t rw_interrupt
00012e66 T setup_rw_floppy
00012f27 t seek_interrupt
00012f80 t transfer
000130b5 t recal_interrupt
000130ff T unexpected_floppy_interrupt
00013144 t recalibrate_floppy
000131a6 t reset_interrupt
000131eb t reset_floppy
00013268 t floppy_on_interrupt
000132d3 t do_fd_request
000134d7 T floppy_init
00013529 t unlock_buffer
0001355e t end_request
000135fd T sys_setup
000139b0 t controller_ready
00013a44 t hd_out
00013b31 t drive_busy
00013b97 t reset_controller
00013c14 t reset_hd
00013cac T unexpected_hd_interrupt
00013cbf t bad_rw_intr
00013cfd t read_intr
00013e23 t recal_intr
00013e3d t do_hd_request
0001413e T hd_init
000141b8 t unlock_buffer
000141ed t end_request
0001428c t do_rd_request
000143c2 T rd_init
00014418 T rd_load
000146c4 t get_fs_byte
000146d2 t put_fs_byte
000146ea T tty_init
000146fb T tty_intr
0001476f t sleep_if_empty
000147a7 t sleep_if_full
0001481b T copy_to_cooked
00014dd6 T tty_read
00015144 T tty_write
00015356 T do_tty_interrupt
0001537e T chr_dev_init
0001537f t gotoxy
000153cd t set_origin
00015433 t scrup
00015623 t scrdown
0001571a t lf
00015750 t ri
00015786 t cr
000157a7 t del
000157d9 t csi_J
0001586a t csi_K
0001591c T csi_m
00015983 t set_cursor
000159e9 t respond
00015a41 t insert_char
00015aa4 t insert_line
00015ae8 t delete_char
00015b46 t delete_line
00015b8a t csi_at
00015bc8 t csi_L
00015c06 t csi_P
00015c44 t csi_M
00015c82 t save_cur
00015c97 t restore_cur
00015cb6 T con_write
00016344 T con_init
0001657b T sysbeepstop
000165a4 t sysbeep
00016602 t mode
00016603 t leds
00016604 t e0
00016605 T keyboard_interrupt
0001662e t e0_e1
00016659 t set_e0
00016662 t set_e1
0001666b t put_queue
000166a4 t ctrl
000166bc t unctrl
000166c0 t unalt
000166d6 t lshift
000166de t unlshift
000166e6 t rshift
000166ee t unrshift
000166f6 t caps
00016718 t set_leds
0001672e t uncaps
00016736 t scroll
0001673f t num
00016748 t cursor
00016768 t cur2
00016791 t cur
0001679d t ok_cur
000167ab t num_table
000167b8 t cur_table
000167c5 t func
000167e2 t ok_func
000167f5 t end_func
000167f6 t func_table
00016826 t key_map
00016887 t shift_map
00016949 t do_self
000169b1 t none
000169b2 t minus
000169c7 t key_table
00016dc7 t kb_wait
00016dd0 t reboot
00016de2 t die
00016de4 t init
00016e59 T rs_init
00016edc T rs_write
00016f2c T rs1_interrupt
00016f34 T rs2_interrupt
00016f39 t rs_int
00016f50 t rep_int
00016f6d t end
00016f7b t jmp_table
00016f8c t modem_status
00016f94 t line_status
00016f9c t read_char
00017023 t get_fs_byte
00017031 t get_fs_long
00017047 t put_fs_byte
0001705f t put_fs_long
0001706b t change_speed
000170e9 t flush
000170fb t send_break
000170fc t get_termios
00017158 t set_termios
000171a8 t get_termio
00017270 t set_termio
00017334 T tty_ioctl
00017632 t get_fs_byte
00017640 T math_emulate
00017723 T math_error
00017743 T _exit
00017753 T open
0001779c T close
00017810 T dup
00017847 T setsid
00017876 T execve
00017913 T strcpy
0001792f T strncpy
00017954 T strcat
0001797f T strncat
000179b4 T strcmp
000179db T strncmp
00017a09 T strchr
00017a36 T strrchr
00017a65 T strspn
00017aa2 T strcspn
00017adf T strpbrk
00017b16 T strstr
00017b4f T strlen
00017b72 T strtok
00017bf5 T memcpy
00017c15 T memmove
00017c69 T memcmp
00017c93 T memchr
00017ccb T memset
0001bb48 d envp_rc
0001bb5c d envp
0001bb80 D sys_call_table
0001bcdc D NR_syscalls
0001bce0 d init_task
0001cce0 D current
0001cd00 D task
0001ce00 D stack_start
0001ce08 D current_DOR
0001ce20 d thisname.1955
0001ce60 d month
0001cea0 d last_inode.1935
0001cea4 D start_buffer
0001cec0 d crw_table
0001cee0 d ioctl_table
0001cf00 d floppy_type
0001cfc0 d cur_spec1
0001cfc4 d cur_rate
0001cfc8 d floppy
0001cfcc d current_track
0001cfd0 d callable.1844
0001cfe0 D tty_table
0001f500 D table_list
0001f520 d quotient
0001f540 D _ctype
0001f641 B __bss_start
0001f641 D _edata
0001f660 b printbuf
0001fa60 b memory_end
0001fa64 b buffer_memory_end
0001fa68 b main_memory_start
0001fa80 B jiffies
0001fa84 B startup_time
0001fa88 B last_task_used_math
0001fa9c b mon_timer
0001faac b moff_timer
0001fac0 b timer_list
0001fdc0 b next_timer
0001fdc4 B last_pid
0001fde0 b buf
000201e0 b HIGH_MEMORY
00020200 b mem_map
00021100 B inode_table
00021800 B nr_buffers
00021804 b free_list
00021808 b buffer_wait
0002180c B ROOT_DEV
00021840 B blk_dev
00021878 B do_floppy
0002187c B selected
00021884 b recalibrate
00021888 b reset
0002188c b seek
00021890 b reply_buffer
00021897 b current_drive
00021898 b sector
00021899 b head
0002189a b track
0002189b b seek_track
0002189c b command
000218a0 B do_hd
000218c0 B hd_info
000218f0 b recalibrate
000218f4 b reset
000218f8 b NR_HD
00021900 b hd
00021950 B rd_length
00021954 b cr_flag.1923
00021960 B beepcount
00021964 b video_type
00021968 b video_num_columns
0002196c b video_size_row
00021970 b video_num_lines
00021974 b video_page
00021978 b video_mem_start
0002197c b video_mem_end
00021980 b video_port_reg
00021982 b video_port_val
00021984 b video_erase_char
00021988 b origin
0002198c b scr_end
00021990 b pos
00021994 b x
00021998 b y
0002199c b top
000219a0 b bottom
000219a4 b state
000219a8 b npar
000219c0 b par
00021a00 b ques
00021a04 b saved_x
00021a08 b saved_y
00021a20 B drive_info
00021a40 B user_stack
00022a40 B hash_table
00022f20 B super_block
00023280 B file_table
00023680 B request
00023b00 B rd_start
00023b04 B _ctmp
00023b08 B errno
00023b0c B ___strtok
00023b10 B end
00023b10 B _end
00012522 t put_fs_byte
0001253a T sys_getdents
00012700 T sys_execve2
00012706 T sys_getcwd
0001270c T sys_sleep
00012761 T sys_something
00012767 t lock_buffer
00012794 t unlock_buffer
00012986 t make_request
00012b2a T ll_rw_block
00012b83 T blk_dev_init
00012bd1 t unlock_buffer
00012c06 t end_request
00012cb7 T floppy_deselect
00012cee T floppy_change
00012d74 t setup_DMA
00012e2a t output_byte
00012ea0 t result
00012f5d t bad_flp_intr
00012fbc t rw_interrupt
000130ab T setup_rw_floppy
0001316c t seek_interrupt
000131c5 t transfer
000132fa t recal_interrupt
00013344 T unexpected_floppy_interrupt
00013389 t recalibrate_floppy
000133eb t reset_interrupt
00013430 t reset_floppy
000134ad t floppy_on_interrupt
00013518 t do_fd_request
0001371c T floppy_init
0001376e t unlock_buffer
000137a3 t end_request
00013842 T sys_setup
00013bf5 t controller_ready
00013c89 t hd_out
00013d76 t drive_busy
00013ddc t reset_controller
00013e59 t reset_hd
00013ef1 T unexpected_hd_interrupt
00013f04 t bad_rw_intr
00013f42 t read_intr
00014068 t recal_intr
00014082 t do_hd_request
00014383 T hd_init
000143fd t unlock_buffer
00014432 t end_request
000144d1 t do_rd_request
00014607 T rd_init
0001465d T rd_load
00014909 t get_fs_byte
00014917 t put_fs_byte
0001492f T tty_init
00014940 T tty_intr
000149b4 t sleep_if_empty
000149ec t sleep_if_full
00014a60 T copy_to_cooked
0001501b T tty_read
00015389 T tty_write
0001559b T do_tty_interrupt
000155c3 T chr_dev_init
000155c4 t gotoxy
00015612 t set_origin
00015678 t scrup
00015868 t scrdown
0001595f t lf
00015995 t ri
000159cb t cr
000159ec t del
00015a1e t csi_J
00015aaf t csi_K
00015b61 T csi_m
00015bc8 t set_cursor
00015c2e t respond
00015c86 t insert_char
00015ce9 t insert_line
00015d2d t delete_char
00015d8b t delete_line
00015dcf t csi_at
00015e0d t csi_L
00015e4b t csi_P
00015e89 t csi_M
00015ec7 t save_cur
00015edc t restore_cur
00015efb T con_write
00016589 T con_init
000167c0 T sysbeepstop
000167e9 t sysbeep
00016847 t mode
00016848 t leds
00016849 t e0
0001684a T keyboard_interrupt
00016873 t e0_e1
0001689e t set_e0
000168a7 t set_e1
000168b0 t put_queue
000168e9 t ctrl
00016901 t unctrl
00016905 t unalt
0001691b t lshift
00016923 t unlshift
0001692b t rshift
00016933 t unrshift
0001693b t caps
0001695d t set_leds
00016973 t uncaps
0001697b t scroll
00016984 t num
0001698d t cursor
000169ad t cur2
000169d6 t cur
000169e2 t ok_cur
000169f0 t num_table
000169fd t cur_table
00016a0a t func
00016a27 t ok_func
00016a3a t end_func
00016a3b t func_table
00016a6b t key_map
00016acc t shift_map
00016b8e t do_self
00016bf6 t none
00016bf7 t minus
00016c0c t key_table
0001700c t kb_wait
00017015 t reboot
00017027 t die
00017029 t init
0001709e T rs_init
00017121 T rs_write
00017170 T rs1_interrupt
00017178 T rs2_interrupt
0001717d t rs_int
00017194 t rep_int
000171b1 t end
000171bf t jmp_table
000171d0 t modem_status
000171d8 t line_status
000171e0 t read_char
00017267 t get_fs_byte
00017275 t get_fs_long
0001728b t put_fs_byte
000172a3 t put_fs_long
000172af t change_speed
0001732d t flush
0001733f t send_break
00017340 t get_termios
0001739c t set_termios
000173ec t get_termio
000174b4 t set_termio
00017578 T tty_ioctl
00017876 t get_fs_byte
00017884 T math_emulate
00017967 T math_error
00017987 T _exit
00017997 T open
000179e0 T close
00017a54 T dup
00017a8b T setsid
00017aba T execve
00017b57 T strcpy
00017b73 T strncpy
00017b98 T strcat
00017bc3 T strncat
00017bf8 T strcmp
00017c1f T strncmp
00017c4d T strchr
00017c7a T strrchr
00017ca9 T strspn
00017ce6 T strcspn
00017d23 T strpbrk
00017d5a T strstr
00017d93 T strlen
00017db6 T strtok
00017e39 T memcpy
00017e59 T memmove
00017ead T memcmp
00017ed7 T memchr
00017f0f T memset
00017f33 t init_bucket_desc
00017f9c T malloc
00018128 T free_s
0001c2a8 d envp_rc
0001c2bc d envp
0001c2e0 D sys_call_table
0001c450 D NR_syscalls
0001c460 d init_task
0001d460 D current
0001d480 D task
0001d580 D stack_start
0001d588 D current_DOR
0001d5a0 d thisname.1955
0001d5e0 d month
0001d620 d last_inode.1935
0001d624 D start_buffer
0001d640 d crw_table
0001d660 d ioctl_table
0001d680 d floppy_type
0001d740 d cur_spec1
0001d744 d cur_rate
0001d748 d floppy
0001d74c d current_track
0001d750 d callable.1844
0001d760 D tty_table
0001fc80 D table_list
0001fca0 d quotient
0001fcc0 D _ctype
0001fde0 D bucket_dir
0001fe30 B __bss_start
0001fe30 D _edata
0001fe40 b printbuf
00020240 b memory_end
00020244 b buffer_memory_end
00020248 b main_memory_start
00020260 B jiffies
00020264 B startup_time
00020268 B last_task_used_math
0002027c b mon_timer
0002028c b moff_timer
000202a0 b timer_list
000205a0 b next_timer
000205a4 B last_pid
000205c0 b buf
000209c0 b HIGH_MEMORY
000209e0 b mem_map
000218e0 B inode_table
00021fe0 B nr_buffers
00021fe4 b free_list
00021fe8 b buffer_wait
00021fec B ROOT_DEV
00022020 B blk_dev
00022058 B do_floppy
0002205c B selected
00022064 b recalibrate
00022068 b reset
0002206c b seek
00022070 b reply_buffer
00022077 b current_drive
00022078 b sector
00022079 b head
0002207a b track
0002207b b seek_track
0002207c b command
00022080 B do_hd
000220a0 B hd_info
000220d0 b recalibrate
000220d4 b reset
000220d8 b NR_HD
000220e0 b hd
00022130 B rd_length
00022134 b cr_flag.1923
00022140 B beepcount
00022144 b video_type
00022148 b video_num_columns
0002214c b video_size_row
00022150 b video_num_lines
00022154 b video_page
00022158 b video_mem_start
0002215c b video_mem_end
00022160 b video_port_reg
00022162 b video_port_val
00022164 b video_erase_char
00022168 b origin
0002216c b scr_end
00022170 b pos
00022174 b x
00022178 b y
0002217c b top
00022180 b bottom
00022184 b state
00022188 b npar
000221a0 b par
000221e0 b ques
000221e4 b saved_x
000221e8 b saved_y
000221ec B free_bucket_desc
00022200 B drive_info
00022220 B user_stack
00023220 B hash_table
00023700 B super_block
00023a60 B file_table
00023e60 B request
000242e0 B rd_start
000242e4 B _ctmp
000242e8 B errno
000242ec B ___strtok
000242f0 B end
000242f0 B _end

@ -32,7 +32,8 @@ lib/lib.a(dup.o) init/main.o (dup)
lib/lib.a(setsid.o) init/main.o (setsid)
lib/lib.a(execve.o) init/main.o (execve)
lib/lib.a(wait.o) init/main.o (wait)
lib/lib.a(string.o) fs/fs.o (strncpy)
lib/lib.a(string.o) fs/fs.o (strcpy)
lib/lib.a(malloc.o) fs/fs.o (malloc)
分配公共符号
公共符号 大小 文件
@ -98,6 +99,8 @@ Discarded input sections
0x0000000000000000 0x0 lib/lib.a(wait.o)
.note.GNU-stack
0x0000000000000000 0x0 lib/lib.a(string.o)
.note.GNU-stack
0x0000000000000000 0x0 lib/lib.a(malloc.o)
内存配置
@ -202,7 +205,7 @@ LOAD lib/lib.a
*(.iplt)
.iplt 0x0000000000000000 0x0 boot/head.o
.text 0x0000000000000000 0x17cef
.text 0x0000000000000000 0x1829f
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
@ -354,7 +357,7 @@ LOAD lib/lib.a
0x000000000000ae49 mem_init
0x000000000000aebd calc_mem
0x000000000000afb2 page_fault
.text 0x000000000000afe9 0x7539 fs/fs.o
.text 0x000000000000afe9 0x777e fs/fs.o
0x000000000000afff sys_ustat
0x000000000000b005 sys_utime
0x000000000000b0b2 sys_access
@ -424,116 +427,127 @@ LOAD lib/lib.a
0x00000000000121d8 sys_ioctl
0x00000000000123e7 truncate
0x000000000001251c sys_select
.text 0x0000000000012522 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x00000000000128e5 ll_rw_block
0x000000000001293e blk_dev_init
.text 0x000000000001298c 0xb9d kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000012a72 floppy_deselect
0x0000000000012aa9 floppy_change
0x0000000000012e66 setup_rw_floppy
0x00000000000130ff unexpected_floppy_interrupt
0x00000000000134d7 floppy_init
.text 0x0000000000013529 0xc8f kernel/blk_drv/blk_drv.a(hd.o)
0x00000000000135fd sys_setup
0x0000000000013cac unexpected_hd_interrupt
0x000000000001413e hd_init
.text 0x00000000000141b8 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o)
0x00000000000143c2 rd_init
0x0000000000014418 rd_load
.text 0x00000000000146c4 0xcbb kernel/chr_drv/chr_drv.a(tty_io.o)
0x00000000000146ea tty_init
0x00000000000146fb tty_intr
0x0000000000014808 wait_for_keypress
0x000000000001481b copy_to_cooked
0x0000000000014dd6 tty_read
0x0000000000015144 tty_write
0x0000000000015356 do_tty_interrupt
0x000000000001537e chr_dev_init
.text 0x000000000001537f 0x1283 kernel/chr_drv/chr_drv.a(console.o)
0x000000000001591c csi_m
0x0000000000015cb6 con_write
0x0000000000016344 con_init
0x000000000001657b sysbeepstop
.text 0x0000000000016602 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o)
0x0000000000016605 keyboard_interrupt
.text 0x0000000000016de4 0x145 kernel/chr_drv/chr_drv.a(serial.o)
0x0000000000016e59 rs_init
0x0000000000016edc rs_write
*fill* 0x0000000000016f29 0x3
.text 0x0000000000016f2c 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o)
0x0000000000016f2c rs1_interrupt
0x0000000000016f34 rs2_interrupt
.text 0x0000000000017023 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x0000000000017334 tty_ioctl
.text 0x0000000000017632 0x111 kernel/math/math.a(math_emulate.o)
0x0000000000017640 math_emulate
0x0000000000017723 math_error
.text 0x0000000000017743 0x0 lib/lib.a(ctype.o)
.text 0x0000000000017743 0x10 lib/lib.a(_exit.o)
0x0000000000017743 _exit
.text 0x0000000000017753 0x49 lib/lib.a(open.o)
0x0000000000017753 open
.text 0x000000000001779c 0x37 lib/lib.a(close.o)
0x000000000001779c close
.text 0x00000000000177d3 0x0 lib/lib.a(errno.o)
.text 0x00000000000177d3 0x3d lib/lib.a(write.o)
0x00000000000177d3 write
.text 0x0000000000017810 0x37 lib/lib.a(dup.o)
0x0000000000017810 dup
.text 0x0000000000017847 0x2f lib/lib.a(setsid.o)
0x0000000000017847 setsid
.text 0x0000000000017876 0x3d lib/lib.a(execve.o)
0x0000000000017876 execve
.text 0x00000000000178b3 0x60 lib/lib.a(wait.o)
0x00000000000178b3 waitpid
0x00000000000178f0 wait
.text 0x0000000000017913 0x3dc lib/lib.a(string.o)
0x0000000000017913 strcpy
0x000000000001792f strncpy
0x0000000000017954 strcat
0x000000000001797f strncat
0x00000000000179b4 strcmp
0x00000000000179db strncmp
0x0000000000017a09 strchr
0x0000000000017a36 strrchr
0x0000000000017a65 strspn
0x0000000000017aa2 strcspn
0x0000000000017adf strpbrk
0x0000000000017b16 strstr
0x0000000000017b4f strlen
0x0000000000017b72 strtok
0x0000000000017bf5 memcpy
0x0000000000017c15 memmove
0x0000000000017c69 memcmp
0x0000000000017c93 memchr
0x0000000000017ccb memset
0x000000000001253a sys_getdents
0x0000000000012700 sys_execve2
0x0000000000012706 sys_getcwd
0x000000000001270c sys_sleep
0x0000000000012761 sys_something
.text 0x0000000000012767 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000012b2a ll_rw_block
0x0000000000012b83 blk_dev_init
.text 0x0000000000012bd1 0xb9d kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000012cb7 floppy_deselect
0x0000000000012cee floppy_change
0x00000000000130ab setup_rw_floppy
0x0000000000013344 unexpected_floppy_interrupt
0x000000000001371c floppy_init
.text 0x000000000001376e 0xc8f kernel/blk_drv/blk_drv.a(hd.o)
0x0000000000013842 sys_setup
0x0000000000013ef1 unexpected_hd_interrupt
0x0000000000014383 hd_init
.text 0x00000000000143fd 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000014607 rd_init
0x000000000001465d rd_load
.text 0x0000000000014909 0xcbb kernel/chr_drv/chr_drv.a(tty_io.o)
0x000000000001492f tty_init
0x0000000000014940 tty_intr
0x0000000000014a4d wait_for_keypress
0x0000000000014a60 copy_to_cooked
0x000000000001501b tty_read
0x0000000000015389 tty_write
0x000000000001559b do_tty_interrupt
0x00000000000155c3 chr_dev_init
.text 0x00000000000155c4 0x1283 kernel/chr_drv/chr_drv.a(console.o)
0x0000000000015b61 csi_m
0x0000000000015efb con_write
0x0000000000016589 con_init
0x00000000000167c0 sysbeepstop
.text 0x0000000000016847 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o)
0x000000000001684a keyboard_interrupt
.text 0x0000000000017029 0x145 kernel/chr_drv/chr_drv.a(serial.o)
0x000000000001709e rs_init
0x0000000000017121 rs_write
*fill* 0x000000000001716e 0x2
.text 0x0000000000017170 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o)
0x0000000000017170 rs1_interrupt
0x0000000000017178 rs2_interrupt
.text 0x0000000000017267 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x0000000000017578 tty_ioctl
.text 0x0000000000017876 0x111 kernel/math/math.a(math_emulate.o)
0x0000000000017884 math_emulate
0x0000000000017967 math_error
.text 0x0000000000017987 0x0 lib/lib.a(ctype.o)
.text 0x0000000000017987 0x10 lib/lib.a(_exit.o)
0x0000000000017987 _exit
.text 0x0000000000017997 0x49 lib/lib.a(open.o)
0x0000000000017997 open
.text 0x00000000000179e0 0x37 lib/lib.a(close.o)
0x00000000000179e0 close
.text 0x0000000000017a17 0x0 lib/lib.a(errno.o)
.text 0x0000000000017a17 0x3d lib/lib.a(write.o)
0x0000000000017a17 write
.text 0x0000000000017a54 0x37 lib/lib.a(dup.o)
0x0000000000017a54 dup
.text 0x0000000000017a8b 0x2f lib/lib.a(setsid.o)
0x0000000000017a8b setsid
.text 0x0000000000017aba 0x3d lib/lib.a(execve.o)
0x0000000000017aba execve
.text 0x0000000000017af7 0x60 lib/lib.a(wait.o)
0x0000000000017af7 waitpid
0x0000000000017b34 wait
.text 0x0000000000017b57 0x3dc lib/lib.a(string.o)
0x0000000000017b57 strcpy
0x0000000000017b73 strncpy
0x0000000000017b98 strcat
0x0000000000017bc3 strncat
0x0000000000017bf8 strcmp
0x0000000000017c1f strncmp
0x0000000000017c4d strchr
0x0000000000017c7a strrchr
0x0000000000017ca9 strspn
0x0000000000017ce6 strcspn
0x0000000000017d23 strpbrk
0x0000000000017d5a strstr
0x0000000000017d93 strlen
0x0000000000017db6 strtok
0x0000000000017e39 memcpy
0x0000000000017e59 memmove
0x0000000000017ead memcmp
0x0000000000017ed7 memchr
0x0000000000017f0f memset
.text 0x0000000000017f33 0x36c lib/lib.a(malloc.o)
0x0000000000017f9c malloc
0x0000000000018128 free_s
*(.gnu.warning)
.fini
*(SORT(.fini))
0x0000000000017cef PROVIDE (__etext, .)
0x0000000000017cef PROVIDE (_etext, .)
0x0000000000017cef PROVIDE (etext, .)
0x000000000001829f PROVIDE (__etext, .)
0x000000000001829f PROVIDE (_etext, .)
0x000000000001829f PROVIDE (etext, .)
.rodata 0x0000000000017cf0 0x13ca
.rodata 0x00000000000182a0 0x14b7
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata 0x0000000000017cf0 0xad init/main.o
*fill* 0x0000000000017d9d 0x3
.rodata 0x0000000000017da0 0x438 kernel/kernel.o
.rodata 0x00000000000181d8 0x18f mm/mm.o
*fill* 0x0000000000018367 0x1
.rodata 0x0000000000018368 0x62c fs/fs.o
.rodata 0x0000000000018994 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
*fill* 0x0000000000018a0e 0x2
.rodata 0x0000000000018a10 0x133 kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x0000000000018b43 0x1
.rodata 0x0000000000018b44 0x19b kernel/blk_drv/blk_drv.a(hd.o)
*fill* 0x0000000000018cdf 0x1
.rodata 0x0000000000018ce0 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o)
.rodata 0x0000000000018e68 0x17d kernel/chr_drv/chr_drv.a(console.o)
*fill* 0x0000000000018fe5 0x3
.rodata 0x0000000000018fe8 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.rodata 0x0000000000019068 0x52 kernel/math/math.a(math_emulate.o)
.rodata 0x00000000000182a0 0xad init/main.o
*fill* 0x000000000001834d 0x3
.rodata 0x0000000000018350 0x438 kernel/kernel.o
.rodata 0x0000000000018788 0x18f mm/mm.o
*fill* 0x0000000000018917 0x1
.rodata 0x0000000000018918 0x641 fs/fs.o
*fill* 0x0000000000018f59 0x3
.rodata 0x0000000000018f5c 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
*fill* 0x0000000000018fd6 0x2
.rodata 0x0000000000018fd8 0x133 kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001910b 0x1
.rodata 0x000000000001910c 0x19b kernel/blk_drv/blk_drv.a(hd.o)
*fill* 0x00000000000192a7 0x1
.rodata 0x00000000000192a8 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o)
.rodata 0x0000000000019430 0x17d kernel/chr_drv/chr_drv.a(console.o)
*fill* 0x00000000000195ad 0x3
.rodata 0x00000000000195b0 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.rodata 0x0000000000019630 0x52 kernel/math/math.a(math_emulate.o)
*fill* 0x0000000000019682 0x2
.rodata 0x0000000000019684 0xd3 lib/lib.a(malloc.o)
.rodata1
*(.rodata1)
@ -541,58 +555,60 @@ LOAD lib/lib.a
.eh_frame_hdr
*(.eh_frame_hdr)
.eh_frame 0x00000000000190bc 0x2a6c
.eh_frame 0x0000000000019758 0x2b44
*(.eh_frame)
.eh_frame 0x00000000000190bc 0xf0 init/main.o
.eh_frame 0x00000000000191ac 0xb04 kernel/kernel.o
.eh_frame 0x0000000000019758 0xf0 init/main.o
.eh_frame 0x0000000000019848 0xb04 kernel/kernel.o
0xbf4 (size before relaxing)
.eh_frame 0x0000000000019cb0 0x194 mm/mm.o
.eh_frame 0x000000000001a34c 0x194 mm/mm.o
0x1ac (size before relaxing)
.eh_frame 0x0000000000019e44 0xdd8 fs/fs.o
0xf70 (size before relaxing)
.eh_frame 0x000000000001ac1c 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.eh_frame 0x000000000001a4e0 0xe60 fs/fs.o
0x1010 (size before relaxing)
.eh_frame 0x000000000001b340 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0xb0 (size before relaxing)
.eh_frame 0x000000000001acb4 0x23c kernel/blk_drv/blk_drv.a(floppy.o)
.eh_frame 0x000000000001b3d8 0x23c kernel/blk_drv/blk_drv.a(floppy.o)
0x254 (size before relaxing)
.eh_frame 0x000000000001aef0 0x1e8 kernel/blk_drv/blk_drv.a(hd.o)
.eh_frame 0x000000000001b614 0x1e8 kernel/blk_drv/blk_drv.a(hd.o)
0x200 (size before relaxing)
.eh_frame 0x000000000001b0d8 0xac kernel/blk_drv/blk_drv.a(ramdisk.o)
.eh_frame 0x000000000001b7fc 0xac kernel/blk_drv/blk_drv.a(ramdisk.o)
0xc4 (size before relaxing)
.eh_frame 0x000000000001b184 0x12c kernel/chr_drv/chr_drv.a(tty_io.o)
.eh_frame 0x000000000001b8a8 0x12c kernel/chr_drv/chr_drv.a(tty_io.o)
0x144 (size before relaxing)
.eh_frame 0x000000000001b2b0 0x2c0 kernel/chr_drv/chr_drv.a(console.o)
.eh_frame 0x000000000001b9d4 0x2c0 kernel/chr_drv/chr_drv.a(console.o)
0x2d8 (size before relaxing)
.eh_frame 0x000000000001b570 0x54 kernel/chr_drv/chr_drv.a(serial.o)
.eh_frame 0x000000000001bc94 0x54 kernel/chr_drv/chr_drv.a(serial.o)
0x6c (size before relaxing)
.eh_frame 0x000000000001b5c4 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.eh_frame 0x000000000001bce8 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x160 (size before relaxing)
.eh_frame 0x000000000001b70c 0x5c kernel/math/math.a(math_emulate.o)
.eh_frame 0x000000000001be30 0x5c kernel/math/math.a(math_emulate.o)
0x74 (size before relaxing)
.eh_frame 0x000000000001b768 0x1c lib/lib.a(_exit.o)
.eh_frame 0x000000000001be8c 0x1c lib/lib.a(_exit.o)
0x34 (size before relaxing)
.eh_frame 0x000000000001b784 0x24 lib/lib.a(open.o)
.eh_frame 0x000000000001bea8 0x24 lib/lib.a(open.o)
0x3c (size before relaxing)
.eh_frame 0x000000000001b7a8 0x20 lib/lib.a(close.o)
.eh_frame 0x000000000001becc 0x20 lib/lib.a(close.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001b7c8 0x20 lib/lib.a(write.o)
.eh_frame 0x000000000001beec 0x20 lib/lib.a(write.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001b7e8 0x20 lib/lib.a(dup.o)
.eh_frame 0x000000000001bf0c 0x20 lib/lib.a(dup.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001b808 0x18 lib/lib.a(setsid.o)
.eh_frame 0x000000000001bf2c 0x18 lib/lib.a(setsid.o)
0x30 (size before relaxing)
.eh_frame 0x000000000001b820 0x20 lib/lib.a(execve.o)
.eh_frame 0x000000000001bf44 0x20 lib/lib.a(execve.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001b840 0x38 lib/lib.a(wait.o)
.eh_frame 0x000000000001bf64 0x38 lib/lib.a(wait.o)
0x50 (size before relaxing)
.eh_frame 0x000000000001b878 0x2b0 lib/lib.a(string.o)
.eh_frame 0x000000000001bf9c 0x2b0 lib/lib.a(string.o)
0x2c8 (size before relaxing)
.eh_frame 0x000000000001c24c 0x50 lib/lib.a(malloc.o)
0x68 (size before relaxing)
.gcc_except_table
*(.gcc_except_table .gcc_except_table.*)
.exception_ranges
*(.exception_ranges .exception_ranges*)
0x000000000001bb28 . = .
0x000000000001c29c . = .
.eh_frame
*(.eh_frame)
@ -610,22 +626,22 @@ LOAD lib/lib.a
*(.tbss .tbss.* .gnu.linkonce.tb.*)
*(.tcommon)
.preinit_array 0x000000000001bb28 0x0
0x000000000001bb28 PROVIDE (__preinit_array_start, .)
.preinit_array 0x000000000001c29c 0x0
0x000000000001c29c PROVIDE (__preinit_array_start, .)
*(.preinit_array)
0x000000000001bb28 PROVIDE (__preinit_array_end, .)
0x000000000001c29c PROVIDE (__preinit_array_end, .)
.init_array 0x000000000001bb28 0x0
0x000000000001bb28 PROVIDE (__init_array_start, .)
.init_array 0x000000000001c29c 0x0
0x000000000001c29c PROVIDE (__init_array_start, .)
*(SORT(.init_array.*) SORT(.ctors.*))
*(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors)
0x000000000001bb28 PROVIDE (__init_array_end, .)
0x000000000001c29c PROVIDE (__init_array_end, .)
.fini_array 0x000000000001bb28 0x0
0x000000000001bb28 PROVIDE (__fini_array_start, .)
.fini_array 0x000000000001c29c 0x0
0x000000000001c29c PROVIDE (__fini_array_start, .)
*(SORT(.fini_array.*) SORT(.dtors.*))
*(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors)
0x000000000001bb28 PROVIDE (__fini_array_end, .)
0x000000000001c29c PROVIDE (__fini_array_end, .)
.ctors
*crtbegin.o(.ctors)
@ -655,140 +671,145 @@ LOAD lib/lib.a
*(.got)
*(.igot)
.got.plt 0x000000000001bb28 0x0
.got.plt 0x000000000001c29c 0x0
*(.got.plt)
*(.igot.plt)
.igot.plt 0x0000000000000000 0x0 boot/head.o
.data 0x000000000001bb40 0x3b01
.data 0x000000000001c2a0 0x3b90
*(.data .data.* .gnu.linkonce.d.*)
.data 0x000000000001bb40 0x0 boot/head.o
.data 0x000000000001bb40 0x28 init/main.o
*fill* 0x000000000001bb68 0x18
.data 0x000000000001bb80 0x1310 kernel/kernel.o
0x000000000001bb80 sys_call_table
0x000000000001bcdc NR_syscalls
0x000000000001cce0 current
0x000000000001cd00 task
0x000000000001ce00 stack_start
0x000000000001ce08 current_DOR
.data 0x000000000001ce90 0x0 mm/mm.o
*fill* 0x000000000001ce90 0x10
.data 0x000000000001cea0 0x60 fs/fs.o
0x000000000001cea4 start_buffer
.data 0x000000000001cf00 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.data 0x000000000001cf00 0xcd kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001cfcd 0x3
.data 0x000000000001cfd0 0x4 kernel/blk_drv/blk_drv.a(hd.o)
.data 0x000000000001cfd4 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o)
*fill* 0x000000000001cfd4 0xc
.data 0x000000000001cfe0 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o)
0x000000000001cfe0 tty_table
0x000000000001f500 table_list
.data 0x000000000001f518 0x1 kernel/chr_drv/chr_drv.a(console.o)
.data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
*fill* 0x000000000001f519 0x7
.data 0x000000000001f520 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.data 0x000000000001f540 0x0 kernel/math/math.a(math_emulate.o)
.data 0x000000000001f540 0x101 lib/lib.a(ctype.o)
0x000000000001f540 _ctype
.data 0x000000000001f641 0x0 lib/lib.a(_exit.o)
.data 0x000000000001f641 0x0 lib/lib.a(open.o)
.data 0x000000000001f641 0x0 lib/lib.a(close.o)
.data 0x000000000001f641 0x0 lib/lib.a(errno.o)
.data 0x000000000001f641 0x0 lib/lib.a(write.o)
.data 0x000000000001f641 0x0 lib/lib.a(dup.o)
.data 0x000000000001f641 0x0 lib/lib.a(setsid.o)
.data 0x000000000001f641 0x0 lib/lib.a(execve.o)
.data 0x000000000001f641 0x0 lib/lib.a(wait.o)
.data 0x000000000001f641 0x0 lib/lib.a(string.o)
.data 0x000000000001c2a0 0x0 boot/head.o
.data 0x000000000001c2a0 0x28 init/main.o
*fill* 0x000000000001c2c8 0x18
.data 0x000000000001c2e0 0x1330 kernel/kernel.o
0x000000000001c2e0 sys_call_table
0x000000000001c450 NR_syscalls
0x000000000001d460 current
0x000000000001d480 task
0x000000000001d580 stack_start
0x000000000001d588 current_DOR
.data 0x000000000001d610 0x0 mm/mm.o
*fill* 0x000000000001d610 0x10
.data 0x000000000001d620 0x60 fs/fs.o
0x000000000001d624 start_buffer
.data 0x000000000001d680 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.data 0x000000000001d680 0xcd kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001d74d 0x3
.data 0x000000000001d750 0x4 kernel/blk_drv/blk_drv.a(hd.o)
.data 0x000000000001d754 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o)
*fill* 0x000000000001d754 0xc
.data 0x000000000001d760 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o)
0x000000000001d760 tty_table
0x000000000001fc80 table_list
.data 0x000000000001fc98 0x1 kernel/chr_drv/chr_drv.a(console.o)
.data 0x000000000001fc99 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.data 0x000000000001fc99 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.data 0x000000000001fc99 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
*fill* 0x000000000001fc99 0x7
.data 0x000000000001fca0 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.data 0x000000000001fcc0 0x0 kernel/math/math.a(math_emulate.o)
.data 0x000000000001fcc0 0x101 lib/lib.a(ctype.o)
0x000000000001fcc0 _ctype
.data 0x000000000001fdc1 0x0 lib/lib.a(_exit.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(open.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(close.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(errno.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(write.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(dup.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(setsid.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(execve.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(wait.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(string.o)
*fill* 0x000000000001fdc1 0x1f
.data 0x000000000001fde0 0x50 lib/lib.a(malloc.o)
0x000000000001fde0 bucket_dir
.data1
*(.data1)
0x000000000001f641 _edata = .
0x000000000001f641 PROVIDE (edata, .)
0x000000000001f641 . = .
0x000000000001f641 __bss_start = .
0x000000000001fe30 _edata = .
0x000000000001fe30 PROVIDE (edata, .)
0x000000000001fe30 . = .
0x000000000001fe30 __bss_start = .
.bss 0x000000000001f660 0x44b0
.bss 0x000000000001fe40 0x44b0
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x000000000001f660 0x0 boot/head.o
.bss 0x000000000001f660 0x40c init/main.o
*fill* 0x000000000001fa6c 0x14
.bss 0x000000000001fa80 0x760 kernel/kernel.o
0x000000000001fa80 jiffies
0x000000000001fa84 startup_time
0x000000000001fa88 last_task_used_math
0x000000000001fdc4 last_pid
.bss 0x00000000000201e0 0xf20 mm/mm.o
.bss 0x0000000000021100 0x710 fs/fs.o
0x0000000000021100 inode_table
0x0000000000021800 nr_buffers
0x000000000002180c ROOT_DEV
*fill* 0x0000000000021810 0x10
.bss 0x0000000000021820 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000021820 wait_for_request
0x0000000000021840 blk_dev
.bss 0x0000000000021878 0x25 kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000021878 do_floppy
0x000000000002187c selected
0x0000000000021880 wait_on_floppy_select
*fill* 0x000000000002189d 0x3
.bss 0x00000000000218a0 0xb0 kernel/blk_drv/blk_drv.a(hd.o)
0x00000000000218a0 do_hd
0x00000000000218c0 hd_info
.bss 0x0000000000021950 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000021950 rd_length
.bss 0x0000000000021954 0x4 kernel/chr_drv/chr_drv.a(tty_io.o)
*fill* 0x0000000000021958 0x8
.bss 0x0000000000021960 0xac kernel/chr_drv/chr_drv.a(console.o)
0x0000000000021960 beepcount
.bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
.bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.bss 0x0000000000021a0c 0x0 kernel/math/math.a(math_emulate.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(ctype.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(_exit.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(open.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(close.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(errno.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(write.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(dup.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(setsid.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(execve.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(wait.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(string.o)
.bss 0x000000000001fe40 0x0 boot/head.o
.bss 0x000000000001fe40 0x40c init/main.o
*fill* 0x000000000002024c 0x14
.bss 0x0000000000020260 0x760 kernel/kernel.o
0x0000000000020260 jiffies
0x0000000000020264 startup_time
0x0000000000020268 last_task_used_math
0x00000000000205a4 last_pid
.bss 0x00000000000209c0 0xf20 mm/mm.o
.bss 0x00000000000218e0 0x710 fs/fs.o
0x00000000000218e0 inode_table
0x0000000000021fe0 nr_buffers
0x0000000000021fec ROOT_DEV
*fill* 0x0000000000021ff0 0x10
.bss 0x0000000000022000 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000022000 wait_for_request
0x0000000000022020 blk_dev
.bss 0x0000000000022058 0x25 kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000022058 do_floppy
0x000000000002205c selected
0x0000000000022060 wait_on_floppy_select
*fill* 0x000000000002207d 0x3
.bss 0x0000000000022080 0xb0 kernel/blk_drv/blk_drv.a(hd.o)
0x0000000000022080 do_hd
0x00000000000220a0 hd_info
.bss 0x0000000000022130 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000022130 rd_length
.bss 0x0000000000022134 0x4 kernel/chr_drv/chr_drv.a(tty_io.o)
*fill* 0x0000000000022138 0x8
.bss 0x0000000000022140 0xac kernel/chr_drv/chr_drv.a(console.o)
0x0000000000022140 beepcount
.bss 0x00000000000221ec 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.bss 0x00000000000221ec 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.bss 0x00000000000221ec 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
.bss 0x00000000000221ec 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.bss 0x00000000000221ec 0x0 kernel/math/math.a(math_emulate.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(ctype.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(_exit.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(open.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(close.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(errno.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(write.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(dup.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(setsid.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(execve.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(wait.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(string.o)
.bss 0x00000000000221ec 0x4 lib/lib.a(malloc.o)
0x00000000000221ec free_bucket_desc
*(COMMON)
*fill* 0x0000000000021a0c 0x14
COMMON 0x0000000000021a20 0x20 init/main.o
0x0000000000021a20 drive_info
COMMON 0x0000000000021a40 0x1000 kernel/kernel.o
0x0000000000021a40 user_stack
COMMON 0x0000000000022a40 0xc40 fs/fs.o
0x0000000000022a40 hash_table
0x0000000000022f20 super_block
0x0000000000023280 file_table
COMMON 0x0000000000023680 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000023680 request
COMMON 0x0000000000023b00 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000023b00 rd_start
COMMON 0x0000000000023b04 0x1 lib/lib.a(ctype.o)
0x0000000000023b04 _ctmp
*fill* 0x0000000000023b05 0x3
COMMON 0x0000000000023b08 0x4 lib/lib.a(errno.o)
0x0000000000023b08 errno
COMMON 0x0000000000023b0c 0x4 lib/lib.a(string.o)
0x0000000000023b0c ___strtok
0x0000000000023b10 . = ALIGN ((. != 0x0)?0x4:0x1)
0x0000000000023b10 . = ALIGN (0x4)
0x0000000000023b10 . = SEGMENT_START ("ldata-segment", .)
0x0000000000023b10 . = ALIGN (0x4)
0x0000000000023b10 _end = .
0x0000000000023b10 PROVIDE (end, .)
*fill* 0x00000000000221f0 0x10
COMMON 0x0000000000022200 0x20 init/main.o
0x0000000000022200 drive_info
COMMON 0x0000000000022220 0x1000 kernel/kernel.o
0x0000000000022220 user_stack
COMMON 0x0000000000023220 0xc40 fs/fs.o
0x0000000000023220 hash_table
0x0000000000023700 super_block
0x0000000000023a60 file_table
COMMON 0x0000000000023e60 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000023e60 request
COMMON 0x00000000000242e0 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x00000000000242e0 rd_start
COMMON 0x00000000000242e4 0x1 lib/lib.a(ctype.o)
0x00000000000242e4 _ctmp
*fill* 0x00000000000242e5 0x3
COMMON 0x00000000000242e8 0x4 lib/lib.a(errno.o)
0x00000000000242e8 errno
COMMON 0x00000000000242ec 0x4 lib/lib.a(string.o)
0x00000000000242ec ___strtok
0x00000000000242f0 . = ALIGN ((. != 0x0)?0x4:0x1)
0x00000000000242f0 . = ALIGN (0x4)
0x00000000000242f0 . = SEGMENT_START ("ldata-segment", .)
0x00000000000242f0 . = ALIGN (0x4)
0x00000000000242f0 _end = .
0x00000000000242f0 PROVIDE (end, .)
.stab
*(.stab)
@ -814,7 +835,7 @@ LOAD lib/lib.a
0x2a (size before relaxing)
.comment 0x0000000000000000 0x1a4 kernel/kernel.o
.comment 0x0000000000000000 0x2a mm/mm.o
.comment 0x0000000000000000 0x2f4 fs/fs.o
.comment 0x0000000000000000 0x31e fs/fs.o
.comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(floppy.o)
.comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(hd.o)
@ -835,6 +856,7 @@ LOAD lib/lib.a
.comment 0x0000000000000000 0x2a lib/lib.a(execve.o)
.comment 0x0000000000000000 0x2a lib/lib.a(wait.o)
.comment 0x0000000000000000 0x2a lib/lib.a(string.o)
.comment 0x0000000000000000 0x2a lib/lib.a(malloc.o)
.debug
*(.debug)
@ -848,7 +870,7 @@ LOAD lib/lib.a
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x0000000000000000 0x628
.debug_aranges 0x0000000000000000 0x668
*(.debug_aranges)
.debug_aranges
0x0000000000000000 0x20 init/main.o
@ -857,185 +879,192 @@ LOAD lib/lib.a
.debug_aranges
0x0000000000000160 0x20 mm/mm.o
.debug_aranges
0x0000000000000180 0x238 fs/fs.o
0x0000000000000180 0x258 fs/fs.o
.debug_aranges
0x00000000000003d8 0x20 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_aranges
0x00000000000003b8 0x20 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x00000000000003f8 0x20 kernel/blk_drv/blk_drv.a(floppy.o)
.debug_aranges
0x00000000000003d8 0x20 kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000000418 0x20 kernel/blk_drv/blk_drv.a(hd.o)
.debug_aranges
0x00000000000003f8 0x20 kernel/blk_drv/blk_drv.a(hd.o)
0x0000000000000438 0x20 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_aranges
0x0000000000000418 0x20 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000000458 0x20 kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_aranges
0x0000000000000438 0x20 kernel/chr_drv/chr_drv.a(tty_io.o)
0x0000000000000478 0x20 kernel/chr_drv/chr_drv.a(console.o)
.debug_aranges
0x0000000000000458 0x20 kernel/chr_drv/chr_drv.a(console.o)
0x0000000000000498 0x20 kernel/chr_drv/chr_drv.a(serial.o)
.debug_aranges
0x0000000000000478 0x20 kernel/chr_drv/chr_drv.a(serial.o)
0x00000000000004b8 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_aranges
0x0000000000000498 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x00000000000004d8 0x20 kernel/math/math.a(math_emulate.o)
.debug_aranges
0x00000000000004b8 0x20 kernel/math/math.a(math_emulate.o)
0x00000000000004f8 0x18 lib/lib.a(ctype.o)
.debug_aranges
0x00000000000004d8 0x18 lib/lib.a(ctype.o)
0x0000000000000510 0x20 lib/lib.a(_exit.o)
.debug_aranges
0x00000000000004f0 0x20 lib/lib.a(_exit.o)
0x0000000000000530 0x20 lib/lib.a(open.o)
.debug_aranges
0x0000000000000510 0x20 lib/lib.a(open.o)
0x0000000000000550 0x20 lib/lib.a(close.o)
.debug_aranges
0x0000000000000530 0x20 lib/lib.a(close.o)
0x0000000000000570 0x18 lib/lib.a(errno.o)
.debug_aranges
0x0000000000000550 0x18 lib/lib.a(errno.o)
0x0000000000000588 0x20 lib/lib.a(write.o)
.debug_aranges
0x0000000000000568 0x20 lib/lib.a(write.o)
0x00000000000005a8 0x20 lib/lib.a(dup.o)
.debug_aranges
0x0000000000000588 0x20 lib/lib.a(dup.o)
0x00000000000005c8 0x20 lib/lib.a(setsid.o)
.debug_aranges
0x00000000000005a8 0x20 lib/lib.a(setsid.o)
0x00000000000005e8 0x20 lib/lib.a(execve.o)
.debug_aranges
0x00000000000005c8 0x20 lib/lib.a(execve.o)
0x0000000000000608 0x20 lib/lib.a(wait.o)
.debug_aranges
0x00000000000005e8 0x20 lib/lib.a(wait.o)
0x0000000000000628 0x20 lib/lib.a(string.o)
.debug_aranges
0x0000000000000608 0x20 lib/lib.a(string.o)
0x0000000000000648 0x20 lib/lib.a(malloc.o)
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x0000000000000000 0x16d23
.debug_info 0x0000000000000000 0x178f7
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x0000000000000000 0x553 init/main.o
.debug_info 0x0000000000000553 0x4cb6 kernel/kernel.o
.debug_info 0x0000000000005209 0xb2b mm/mm.o
.debug_info 0x0000000000005d34 0xa290 fs/fs.o
.debug_info 0x000000000000ffc4 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_info 0x00000000000108f6 0xc9f kernel/blk_drv/blk_drv.a(floppy.o)
.debug_info 0x0000000000011595 0xd5f kernel/blk_drv/blk_drv.a(hd.o)
.debug_info 0x00000000000122f4 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_info 0x0000000000012dc9 0xacd kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_info 0x0000000000013896 0xdb0 kernel/chr_drv/chr_drv.a(console.o)
.debug_info 0x0000000000014646 0x85c kernel/chr_drv/chr_drv.a(serial.o)
.debug_info 0x0000000000014ea2 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_info 0x00000000000159e9 0x7b5 kernel/math/math.a(math_emulate.o)
.debug_info 0x000000000001619e 0x66 lib/lib.a(ctype.o)
.debug_info 0x0000000000016204 0x77 lib/lib.a(_exit.o)
.debug_info 0x000000000001627b 0xd0 lib/lib.a(open.o)
.debug_info 0x000000000001634b 0x97 lib/lib.a(close.o)
.debug_info 0x00000000000163e2 0x36 lib/lib.a(errno.o)
.debug_info 0x0000000000016418 0xc9 lib/lib.a(write.o)
.debug_info 0x00000000000164e1 0x97 lib/lib.a(dup.o)
.debug_info 0x0000000000016578 0x95 lib/lib.a(setsid.o)
.debug_info 0x000000000001660d 0xcb lib/lib.a(execve.o)
.debug_info 0x00000000000166d8 0xed lib/lib.a(wait.o)
.debug_info 0x00000000000167c5 0x55e lib/lib.a(string.o)
.debug_abbrev 0x0000000000000000 0x43b9
.debug_info 0x0000000000005d34 0xac3f fs/fs.o
.debug_info 0x0000000000010973 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_info 0x00000000000112a5 0xc9f kernel/blk_drv/blk_drv.a(floppy.o)
.debug_info 0x0000000000011f44 0xd5f kernel/blk_drv/blk_drv.a(hd.o)
.debug_info 0x0000000000012ca3 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_info 0x0000000000013778 0xacd kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_info 0x0000000000014245 0xdb0 kernel/chr_drv/chr_drv.a(console.o)
.debug_info 0x0000000000014ff5 0x85c kernel/chr_drv/chr_drv.a(serial.o)
.debug_info 0x0000000000015851 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_info 0x0000000000016398 0x7b5 kernel/math/math.a(math_emulate.o)
.debug_info 0x0000000000016b4d 0x66 lib/lib.a(ctype.o)
.debug_info 0x0000000000016bb3 0x77 lib/lib.a(_exit.o)
.debug_info 0x0000000000016c2a 0xd0 lib/lib.a(open.o)
.debug_info 0x0000000000016cfa 0x97 lib/lib.a(close.o)
.debug_info 0x0000000000016d91 0x36 lib/lib.a(errno.o)
.debug_info 0x0000000000016dc7 0xc9 lib/lib.a(write.o)
.debug_info 0x0000000000016e90 0x97 lib/lib.a(dup.o)
.debug_info 0x0000000000016f27 0x95 lib/lib.a(setsid.o)
.debug_info 0x0000000000016fbc 0xcb lib/lib.a(execve.o)
.debug_info 0x0000000000017087 0xed lib/lib.a(wait.o)
.debug_info 0x0000000000017174 0x55e lib/lib.a(string.o)
.debug_info 0x00000000000176d2 0x225 lib/lib.a(malloc.o)
.debug_abbrev 0x0000000000000000 0x4694
*(.debug_abbrev)
.debug_abbrev 0x0000000000000000 0x1d3 init/main.o
.debug_abbrev 0x00000000000001d3 0xf63 kernel/kernel.o
.debug_abbrev 0x0000000000001136 0x20b mm/mm.o
.debug_abbrev 0x0000000000001341 0x19f1 fs/fs.o
.debug_abbrev 0x0000000000002d32 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_abbrev 0x0000000000002e9b 0x27d kernel/blk_drv/blk_drv.a(floppy.o)
.debug_abbrev 0x0000000000003118 0x23c kernel/blk_drv/blk_drv.a(hd.o)
.debug_abbrev 0x0000000000003354 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_abbrev 0x00000000000034fc 0x279 kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_abbrev 0x0000000000003775 0x26b kernel/chr_drv/chr_drv.a(console.o)
.debug_abbrev 0x00000000000039e0 0x175 kernel/chr_drv/chr_drv.a(serial.o)
.debug_abbrev 0x0000000000003b55 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_abbrev 0x0000000000003ce2 0x163 kernel/math/math.a(math_emulate.o)
.debug_abbrev 0x0000000000003e45 0x3e lib/lib.a(ctype.o)
.debug_abbrev 0x0000000000003e83 0x51 lib/lib.a(_exit.o)
.debug_abbrev 0x0000000000003ed4 0x97 lib/lib.a(open.o)
.debug_abbrev 0x0000000000003f6b 0x75 lib/lib.a(close.o)
.debug_abbrev 0x0000000000003fe0 0x2c lib/lib.a(errno.o)
.debug_abbrev 0x000000000000400c 0xa1 lib/lib.a(write.o)
.debug_abbrev 0x00000000000040ad 0x75 lib/lib.a(dup.o)
.debug_abbrev 0x0000000000004122 0x73 lib/lib.a(setsid.o)
.debug_abbrev 0x0000000000004195 0x85 lib/lib.a(execve.o)
.debug_abbrev 0x000000000000421a 0xb6 lib/lib.a(wait.o)
.debug_abbrev 0x00000000000042d0 0xe9 lib/lib.a(string.o)
.debug_line 0x0000000000000000 0x4599
.debug_abbrev 0x0000000000001341 0x1bb3 fs/fs.o
.debug_abbrev 0x0000000000002ef4 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_abbrev 0x000000000000305d 0x27d kernel/blk_drv/blk_drv.a(floppy.o)
.debug_abbrev 0x00000000000032da 0x23c kernel/blk_drv/blk_drv.a(hd.o)
.debug_abbrev 0x0000000000003516 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_abbrev 0x00000000000036be 0x279 kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_abbrev 0x0000000000003937 0x26b kernel/chr_drv/chr_drv.a(console.o)
.debug_abbrev 0x0000000000003ba2 0x175 kernel/chr_drv/chr_drv.a(serial.o)
.debug_abbrev 0x0000000000003d17 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_abbrev 0x0000000000003ea4 0x163 kernel/math/math.a(math_emulate.o)
.debug_abbrev 0x0000000000004007 0x3e lib/lib.a(ctype.o)
.debug_abbrev 0x0000000000004045 0x51 lib/lib.a(_exit.o)
.debug_abbrev 0x0000000000004096 0x97 lib/lib.a(open.o)
.debug_abbrev 0x000000000000412d 0x75 lib/lib.a(close.o)
.debug_abbrev 0x00000000000041a2 0x2c lib/lib.a(errno.o)
.debug_abbrev 0x00000000000041ce 0xa1 lib/lib.a(write.o)
.debug_abbrev 0x000000000000426f 0x75 lib/lib.a(dup.o)
.debug_abbrev 0x00000000000042e4 0x73 lib/lib.a(setsid.o)
.debug_abbrev 0x0000000000004357 0x85 lib/lib.a(execve.o)
.debug_abbrev 0x00000000000043dc 0xb6 lib/lib.a(wait.o)
.debug_abbrev 0x0000000000004492 0xe9 lib/lib.a(string.o)
.debug_abbrev 0x000000000000457b 0x119 lib/lib.a(malloc.o)
.debug_line 0x0000000000000000 0x47b9
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x0000000000000000 0x1a7 init/main.o
.debug_line 0x00000000000001a7 0xe86 kernel/kernel.o
.debug_line 0x000000000000102d 0x274 mm/mm.o
.debug_line 0x00000000000012a1 0x1c50 fs/fs.o
.debug_line 0x0000000000002ef1 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_line 0x0000000000003088 0x24c kernel/blk_drv/blk_drv.a(floppy.o)
.debug_line 0x00000000000032d4 0x2bf kernel/blk_drv/blk_drv.a(hd.o)
.debug_line 0x0000000000003593 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_line 0x00000000000036f3 0x33b kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_line 0x0000000000003a2e 0x3ab kernel/chr_drv/chr_drv.a(console.o)
.debug_line 0x0000000000003dd9 0xd9 kernel/chr_drv/chr_drv.a(serial.o)
.debug_line 0x0000000000003eb2 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_line 0x000000000000408d 0xe1 kernel/math/math.a(math_emulate.o)
.debug_line 0x000000000000416e 0x28 lib/lib.a(ctype.o)
.debug_line 0x0000000000004196 0x39 lib/lib.a(_exit.o)
.debug_line 0x00000000000041cf 0x62 lib/lib.a(open.o)
.debug_line 0x0000000000004231 0x5c lib/lib.a(close.o)
.debug_line 0x000000000000428d 0x28 lib/lib.a(errno.o)
.debug_line 0x00000000000042b5 0x76 lib/lib.a(write.o)
.debug_line 0x000000000000432b 0x5a lib/lib.a(dup.o)
.debug_line 0x0000000000004385 0x77 lib/lib.a(setsid.o)
.debug_line 0x00000000000043fc 0x5d lib/lib.a(execve.o)
.debug_line 0x0000000000004459 0x7a lib/lib.a(wait.o)
.debug_line 0x00000000000044d3 0xc6 lib/lib.a(string.o)
.debug_line 0x00000000000012a1 0x1d86 fs/fs.o
.debug_line 0x0000000000003027 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_line 0x00000000000031be 0x24c kernel/blk_drv/blk_drv.a(floppy.o)
.debug_line 0x000000000000340a 0x2bf kernel/blk_drv/blk_drv.a(hd.o)
.debug_line 0x00000000000036c9 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_line 0x0000000000003829 0x33b kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_line 0x0000000000003b64 0x3ab kernel/chr_drv/chr_drv.a(console.o)
.debug_line 0x0000000000003f0f 0xd9 kernel/chr_drv/chr_drv.a(serial.o)
.debug_line 0x0000000000003fe8 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_line 0x00000000000041c3 0xe1 kernel/math/math.a(math_emulate.o)
.debug_line 0x00000000000042a4 0x28 lib/lib.a(ctype.o)
.debug_line 0x00000000000042cc 0x39 lib/lib.a(_exit.o)
.debug_line 0x0000000000004305 0x62 lib/lib.a(open.o)
.debug_line 0x0000000000004367 0x5c lib/lib.a(close.o)
.debug_line 0x00000000000043c3 0x28 lib/lib.a(errno.o)
.debug_line 0x00000000000043eb 0x76 lib/lib.a(write.o)
.debug_line 0x0000000000004461 0x5a lib/lib.a(dup.o)
.debug_line 0x00000000000044bb 0x77 lib/lib.a(setsid.o)
.debug_line 0x0000000000004532 0x5d lib/lib.a(execve.o)
.debug_line 0x000000000000458f 0x7a lib/lib.a(wait.o)
.debug_line 0x0000000000004609 0xc6 lib/lib.a(string.o)
.debug_line 0x00000000000046cf 0xea lib/lib.a(malloc.o)
.debug_frame
*(.debug_frame)
.debug_str 0x0000000000000000 0x2093
.debug_str 0x0000000000000000 0x217e
*(.debug_str)
.debug_str 0x0000000000000000 0x1c0 init/main.o
0x1ff (size before relaxing)
.debug_str 0x00000000000001c0 0xac0 kernel/kernel.o
0x2332 (size before relaxing)
.debug_str 0x0000000000000c80 0x185 mm/mm.o
0x4e0 (size before relaxing)
.debug_str 0x0000000000000e05 0x904 fs/fs.o
0x49ab (size before relaxing)
.debug_str 0x0000000000001709 0xf0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x491 (size before relaxing)
.debug_str 0x00000000000017f9 0x1cf kernel/blk_drv/blk_drv.a(floppy.o)
0x673 (size before relaxing)
.debug_str 0x00000000000019c8 0x15e kernel/blk_drv/blk_drv.a(hd.o)
0x5e8 (size before relaxing)
.debug_str 0x0000000000001b26 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x58a (size before relaxing)
.debug_str 0x0000000000001b69 0xfb kernel/chr_drv/chr_drv.a(tty_io.o)
0x4e3 (size before relaxing)
.debug_str 0x0000000000001c64 0x1b9 kernel/chr_drv/chr_drv.a(console.o)
0x5b7 (size before relaxing)
.debug_str 0x0000000000001e1d 0x1a kernel/chr_drv/chr_drv.a(serial.o)
0x3fc (size before relaxing)
.debug_str 0x0000000000001e37 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x4a7 (size before relaxing)
.debug_str 0x0000000000001ec2 0x70 kernel/math/math.a(math_emulate.o)
0x392 (size before relaxing)
.debug_str 0x0000000000001f32 0x8d lib/lib.a(ctype.o)
0xb6 (size before relaxing)
.debug_str 0x0000000000001fbf 0x8 lib/lib.a(_exit.o)
0xe2 (size before relaxing)
.debug_str 0x0000000000000000 0x1bc init/main.o
0x1fb (size before relaxing)
.debug_str 0x00000000000001bc 0xabc kernel/kernel.o
0x230a (size before relaxing)
.debug_str 0x0000000000000c78 0x181 mm/mm.o
0x4dc (size before relaxing)
.debug_str 0x0000000000000df9 0x994 fs/fs.o
0x4e20 (size before relaxing)
.debug_str 0x000000000000178d 0xec kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x48d (size before relaxing)
.debug_str 0x0000000000001879 0x1cf kernel/blk_drv/blk_drv.a(floppy.o)
0x66f (size before relaxing)
.debug_str 0x0000000000001a48 0x15e kernel/blk_drv/blk_drv.a(hd.o)
0x5e4 (size before relaxing)
.debug_str 0x0000000000001ba6 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x586 (size before relaxing)
.debug_str 0x0000000000001be9 0xf7 kernel/chr_drv/chr_drv.a(tty_io.o)
0x4df (size before relaxing)
.debug_str 0x0000000000001ce0 0x1b9 kernel/chr_drv/chr_drv.a(console.o)
0x5b3 (size before relaxing)
.debug_str 0x0000000000001e99 0x1a kernel/chr_drv/chr_drv.a(serial.o)
0x3f8 (size before relaxing)
.debug_str 0x0000000000001eb3 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x4a3 (size before relaxing)
.debug_str 0x0000000000001f3e 0x6c kernel/math/math.a(math_emulate.o)
0x38e (size before relaxing)
.debug_str 0x0000000000001faa 0x89 lib/lib.a(ctype.o)
0xb2 (size before relaxing)
.debug_str 0x0000000000002033 0x8 lib/lib.a(_exit.o)
0xde (size before relaxing)
.debug_str 0x0000000000000000 0x8 lib/lib.a(open.o)
0xf2 (size before relaxing)
.debug_str 0x0000000000001fc7 0x8 lib/lib.a(close.o)
0xe4 (size before relaxing)
.debug_str 0x0000000000001fcf 0x8 lib/lib.a(errno.o)
0x93 (size before relaxing)
0xee (size before relaxing)
.debug_str 0x000000000000203b 0x8 lib/lib.a(close.o)
0xe0 (size before relaxing)
.debug_str 0x0000000000002043 0x8 lib/lib.a(errno.o)
0x8f (size before relaxing)
.debug_str 0x0000000000000000 0x8 lib/lib.a(write.o)
0xf0 (size before relaxing)
.debug_str 0x0000000000001fd7 0x6 lib/lib.a(dup.o)
0xdc (size before relaxing)
.debug_str 0x0000000000001fdd 0x9 lib/lib.a(setsid.o)
0xec (size before relaxing)
.debug_str 0x0000000000001fe6 0x9 lib/lib.a(execve.o)
0xf5 (size before relaxing)
.debug_str 0x0000000000001fef 0x11 lib/lib.a(wait.o)
0x102 (size before relaxing)
.debug_str 0x0000000000002000 0x93 lib/lib.a(string.o)
0x147 (size before relaxing)
.debug_str 0x000000000000204b 0x6 lib/lib.a(dup.o)
0xd8 (size before relaxing)
.debug_str 0x0000000000002051 0x9 lib/lib.a(setsid.o)
0xe8 (size before relaxing)
.debug_str 0x000000000000205a 0x9 lib/lib.a(execve.o)
0xf1 (size before relaxing)
.debug_str 0x0000000000002063 0x11 lib/lib.a(wait.o)
0xfe (size before relaxing)
.debug_str 0x0000000000002074 0x93 lib/lib.a(string.o)
0x143 (size before relaxing)
.debug_str 0x0000000000002107 0x77 lib/lib.a(malloc.o)
0x15e (size before relaxing)
.debug_loc
*(.debug_loc)

@ -18,7 +18,7 @@ CPP =gcc -E -nostdinc -I../include
OBJS= open.o read_write.o inode.o file_table.o buffer.o super.o \
block_dev.o char_dev.o file_dev.o stat.o exec.o pipe.o namei.o \
bitmap.o fcntl.o ioctl.o truncate.o select.o
bitmap.o fcntl.o ioctl.o truncate.o select.o mysystem_call.o
fs.o: $(OBJS)
$(LD) -r -o fs.o $(OBJS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,290 @@
#define __LIBRARY__
#include <unistd.h>
#include <stdarg.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <asm/segment.h>
#include <sys/stat.h>
#include <fcntl.h>
#define BUF_MAX 4096
#define DIRBUF 8192
#define NAME_MAX 14
struct dirent {
long d_ino;
off_t d_off;
unsigned short d_reclen;
char d_name[NAME_MAX+1];
};
/*参数count指定该缓冲区的大小*/
int sys_getdents(unsigned int fd,struct linux_dirent *dirp,unsigned int count)
{
if(!count)return -1;/*count is zero*/
if(fd>=NR_OPEN)return -EINVAL;/*fd is over range*/
struct file *file;
struct m_inode * inode;
int ret;
struct buffer_head *hd;
struct dir_entry *de;
struct dirent * temp;
char * buf;
int desize,ldsize,i,ldi;
file=current->filp[fd];
if(!file)return ENOTDIR;/*the file is not exist or not file*/
ldsize = sizeof(struct dirent);
desize = sizeof(struct dir_entry);
inode = file ->f_inode;
temp = (struct dirent *)malloc(ldsize);/* //the inter veriable */
buf = (char*)malloc(ldsize);
/*get the inode's bread*/
hd = bread(inode->i_dev , inode->i_zone[0]);
ldi=0;
ret=0;
for (;ret<inode->i_size;ret += desize){
if (ldi >= count-ldsize)
break; /* full */
de = (struct dir_entry *)(hd->b_data + ret);/* de is set to the current dir_entry */
if (!de -> inode )/* to skip if there is no data in de */
continue;
/*To write, copying current dirent, */
temp->d_ino = de->inode;
temp->d_off = 0;
temp->d_reclen = ldsize;
strcpy(temp->d_name,de->name);
/* by put_fs_byte to write back data to the usr */
memcpy(buf, temp, ldsize);
for (i=0;i < ldsize;i++){
put_fs_byte(*(buf+i), ((char*)dirp)+i+ldi);
}
/* memcpy(temp, buf, ldsize); */
ldi += ldsize;
}
return ldi;
}
int do_execve2(unsigned long * eip,long tmp,char * filename,
char ** argv, char ** envp)
{
struct m_inode * inode;
struct buffer_head * bh;
struct exec ex;
unsigned long page[MAX_ARG_PAGES];
int i,argc,envc;
int e_uid, e_gid;
int retval;
int sh_bang = 0;
unsigned long p=PAGE_SIZE*MAX_ARG_PAGES-4;
if ((0xffff & eip[1]) != 0x000f)
panic("execve called from supervisor mode");
for (i=0 ; i<MAX_ARG_PAGES ; i++) /* clear page-table */
page[i]=0;
if (!(inode=namei(filename))) /* get executables inode */
return -ENOENT;
argc = count(argv);
envc = count(envp);
restart_interp:
if (!S_ISREG(inode->i_mode)) { /* must be regular file */
retval = -EACCES;
goto exec_error2;
}
i = inode->i_mode;
e_uid = (i & S_ISUID) ? inode->i_uid : current->euid;
e_gid = (i & S_ISGID) ? inode->i_gid : current->egid;
if (current->euid == inode->i_uid)
i >>= 6;
else if (current->egid == inode->i_gid)
i >>= 3;
if (!(i & 1) &&
!((inode->i_mode & 0111) && suser())) {
retval = -ENOEXEC;
goto exec_error2;
}
if (!(bh = bread(inode->i_dev,inode->i_zone[0]))) {
retval = -EACCES;
goto exec_error2;
}
ex = *((struct exec *) bh->b_data); /* read exec-header */
if ((bh->b_data[0] == '#') && (bh->b_data[1] == '!') && (!sh_bang)) {
/*
* This section does the #! interpretation.
* Sorta complicated, but hopefully it will work. -TYT
*/
char buf[1023], *cp, *interp, *i_name, *i_arg;
unsigned long old_fs;
strncpy(buf, bh->b_data+2, 1022);
brelse(bh);
iput(inode);
buf[1022] = '\0';
if (cp = strchr(buf, '\n')) {
*cp = '\0';
for (cp = buf; (*cp == ' ') || (*cp == '\t'); cp++);
}
if (!cp || *cp == '\0') {
retval = -ENOEXEC; /* No interpreter name found */
goto exec_error1;
}
interp = i_name = cp;
i_arg = 0;
for ( ; *cp && (*cp != ' ') && (*cp != '\t'); cp++) {
if (*cp == '/')
i_name = cp+1;
}
if (*cp) {
*cp++ = '\0';
i_arg = cp;
}
/*
* OK, we've parsed out the interpreter name and
* (optional) argument.
*/
if (sh_bang++ == 0) {
p = copy_strings(envc, envp, page, p, 0);
p = copy_strings(--argc, argv+1, page, p, 0);
}
/*
* Splice in (1) the interpreter's name for argv[0]
* (2) (optional) argument to interpreter
* (3) filename of shell script
*
* This is done in reverse order, because of how the
* user environment and arguments are stored.
*/
p = copy_strings(1, &filename, page, p, 1);
argc++;
if (i_arg) {
p = copy_strings(1, &i_arg, page, p, 2);
argc++;
}
p = copy_strings(1, &i_name, page, p, 2);
argc++;
if (!p) {
retval = -ENOMEM;
goto exec_error1;
}
/*
* OK, now restart the process with the interpreter's inode.
*/
old_fs = get_fs();
set_fs(get_ds());
if (!(inode=namei(interp))) { /* get executables inode */
set_fs(old_fs);
retval = -ENOENT;
goto exec_error1;
}
set_fs(old_fs);
goto restart_interp;
}
brelse(bh);
if (N_MAGIC(ex) != ZMAGIC || ex.a_trsize || ex.a_drsize ||
ex.a_text+ex.a_data+ex.a_bss>0x3000000 ||
inode->i_size < ex.a_text+ex.a_data+ex.a_syms+N_TXTOFF(ex)) {
retval = -ENOEXEC;
goto exec_error2;
}
if (N_TXTOFF(ex) != BLOCK_SIZE) {
printk("%s: N_TXTOFF != BLOCK_SIZE. See a.out.h.", filename);
retval = -ENOEXEC;
goto exec_error2;
}
if (!sh_bang) {
p = copy_strings(envc,envp,page,p,0);
p = copy_strings(argc,argv,page,p,0);
if (!p) {
retval = -ENOMEM;
goto exec_error2;
}
}
/* OK, This is the point of no return */
if (current->executable)
iput(current->executable);
current->executable = inode;
for (i=0 ; i<32 ; i++)
current->sigaction[i].sa_handler = NULL;
for (i=0 ; i<NR_OPEN ; i++)
if ((current->close_on_exec>>i)&1)
sys_close(i);
current->close_on_exec = 0;
free_page_tables(get_base(current->ldt[1]),get_limit(0x0f));
free_page_tables(get_base(current->ldt[2]),get_limit(0x17));
/*we should rewrite here*/
/**/
if (last_task_used_math == current)
last_task_used_math = NULL;
current->used_math = 0;
p += change_ldt(ex.a_text,page)-MAX_ARG_PAGES*PAGE_SIZE;
p = (unsigned long) create_tables((char *)p,argc,envc);
current->brk = ex.a_bss +
(current->end_data = ex.a_data +
(current->end_code = ex.a_text));
current->start_stack = p & 0xfffff000;
current->euid = e_uid;
current->egid = e_gid;
i = ex.a_text+ex.a_data;
while (i&0xfff)
put_fs_byte(0,(char *) (i++));
eip[0] = ex.a_entry; /* eip, magic happens :-) */
eip[3] = p; /* stack pointer */
return 0;
exec_error2:
iput(inode);
exec_error1:
for (i=0 ; i<MAX_ARG_PAGES ; i++)
free_page(page[i]);
return(retval);
}
int sys_sleep(unsigned int seconds)
{
sys_signal(SIGALRM,SIG_IGN);
sys_alarm(seconds);
if(sys_pause()!=-1)
{
/* printk("sleep\n");*/
return 0;
}
/*printk("do not sleep\n");*/
return -1;
}
/*just full the sys_call_table[89]*/
int sys_something()
{
return 0;
}
/*find the father inode constantly*/
long sys_getcwd(char *buf,size_t size)
{
return 0;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -89,8 +89,11 @@ extern int sys_symlink();
extern int sys_lstat();
extern int sys_readlink();
extern int sys_uselib();
extern int sys_execve2();
extern int sys_getdents();
extern int sys_something();
extern int sys_sleep();
extern int sys_getcwd();
@ -109,7 +112,7 @@ sys_getpgrp, sys_setsid, sys_sigaction, sys_sgetmask, sys_ssetmask,
sys_setreuid,sys_setregid, sys_sigsuspend, sys_sigpending, sys_sethostname,
sys_setrlimit, sys_getrlimit, sys_getrusage, sys_gettimeofday,
sys_settimeofday, sys_getgroups, sys_setgroups, sys_select, sys_symlink,
sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, sys_sleep, sys_getcwd};
sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, sys_something ,sys_sleep, sys_getcwd};
/* So we don't have to do any more manual updating.... */
int NR_syscalls = sizeof(sys_call_table)/sizeof(fn_ptr);

@ -58,8 +58,8 @@
#ifdef __LIBRARY__
#define __NR_setup 0 /* used only by init, to get system going */
#define _exit 1
#define _fork 2
#define __NR_exit 1
#define __NR_fork 2
#define __NR_read 3
#define __NR_write 4
#define __NR_open 5
@ -144,8 +144,12 @@
#define __NR_lstat 84
#define __NR_readlink 85
#define __NR_uselib 86
#define __NR_execve2 87
#define __NR_getdents 88
#define __NR_something 89
#define __NR_sleep 90
#define __NR_getcwd 91
#define _syscall0(type,name) \
@ -268,6 +272,13 @@ int getppid(void);
pid_t getpgrp(void);
pid_t setsid(void);
long getcwd(char *buf,size_t size);
int something(void);
int sleep(unsigned int seconds);
int execve2(const char *path,char *argv[],char *envp[]);
#define __always_inline inline __attribute__((always_inline))
#endif

@ -204,6 +204,14 @@ sys_execve:
addl $4,%esp
ret
.align 4
sys_execve2:
lea EIP(%esp),%eax
pushl %eax
call do_execve2
addl $4,%esp
ret
.align 4
sys_fork:
call find_empty_process

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -31,7 +31,7 @@
00000000000i[ ] Sound support: no
00000000000i[ ] USB support: no
00000000000i[ ] VGA extension support: vbe
00000000000i[MEM0 ] allocated memory at 0xb593b008. after alignment, vector=0xb593c000
00000000000i[MEM0 ] allocated memory at 0xb589f008. after alignment, vector=0xb58a0000
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: Mon Jun 20 04:41:50 2022 (time0=1655696510)
00000000000i[CMOS ] Setting initial clock to: Thu Jun 23 04:28:30 2022 (time0=1655954910)
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.v1sKuG'
00000000000i[IMG ] 'vvfat' disk opened: directory is 'b/', redolog is 'b//vvfat.dir.VbyubY'
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,14 +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
00003430065i[XGUI ] charmap update. Font is 9 x 16
00002352465i[XGUI ] charmap update. Font is 9 x 16
00005872240i[BIOS ] IDE time out
00051753879i[BIOS ] Booting from 0000:7c00
00094288168i[FLOPPY] partial read() on floppy image returns 484/512
00094454833i[FLOPPY] read() on floppy image returns 0
00094621498i[FLOPPY] read() on floppy image returns 0
00094788163i[FLOPPY] read() on floppy image returns 0
00094954828i[FLOPPY] read() on floppy image returns 0
00094954828i[FLOPPY] partial read() on floppy image returns 464/512
00095122539i[FLOPPY] read() on floppy image returns 0
00095289204i[FLOPPY] read() on floppy image returns 0
00095455869i[FLOPPY] read() on floppy image returns 0
@ -323,28 +319,3 @@
00116129680i[FLOPPY] read() on floppy image returns 0
00116296345i[FLOPPY] read() on floppy image returns 0
00116467319i[BIOS ] int13_harddisk: function 15, unmapped device for ELDL=81
00466820786i[FLOPPY] controller reset in software
00474779271i[FLOPPY] io_write: config control register: 0x00
143594175000p[XGUI ] >>PANIC<< POWER button turned off.
143594175000i[CPU0 ] CPU is in protected mode (active)
143594175000i[CPU0 ] CS.mode = 32 bit
143594175000i[CPU0 ] SS.mode = 32 bit
143594175000i[CPU0 ] EFER = 0x00000000
143594175000i[CPU0 ] | EAX=00000000 EBX=00090080 ECX=000055f0 EDX=00000017
143594175000i[CPU0 ] | ESP=0001cc8c EBP=00022a2c ESI=000900a0 EDI=00021a40
143594175000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df IF tf sf zf af pf cf
143594175000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
143594175000i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 00ffffff 1 1
143594175000i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 00ffffff 1 1
143594175000i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 00ffffff 1 1
143594175000i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 00ffffff 1 1
143594175000i[CPU0 ] | FS:0017( 0002| 1| 3) 00000000 0009ffff 1 1
143594175000i[CPU0 ] | GS:0017( 0002| 1| 3) 00000000 0009ffff 1 1
143594175000i[CPU0 ] | EIP=00006dad (00006dad)
143594175000i[CPU0 ] | CR0=0x8000001b CR2=0x08038000
143594175000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000
143594175000i[CPU0 ] 0x00006dad>> jnbe .-166 (0x00006d0d) : 0F875AFFFFFF
143594175000i[CMOS ] Last time is 1655706082 (Mon Jun 20 07:21:22 2022)
143594175000i[XGUI ] Exit
143594175000i[ ] restoring default signal behavior
143594175000i[SIM ] quit_sim called with exit code 1

Binary file not shown.

@ -297,280 +297,291 @@
00012348 t free_dind
000123e7 T truncate
0001251c T sys_select
00012522 t lock_buffer
0001254f t unlock_buffer
00012741 t make_request
000128e5 T ll_rw_block
0001293e T blk_dev_init
0001298c t unlock_buffer
000129c1 t end_request
00012a72 T floppy_deselect
00012aa9 T floppy_change
00012b2f t setup_DMA
00012be5 t output_byte
00012c5b t result
00012d18 t bad_flp_intr
00012d77 t rw_interrupt
00012e66 T setup_rw_floppy
00012f27 t seek_interrupt
00012f80 t transfer
000130b5 t recal_interrupt
000130ff T unexpected_floppy_interrupt
00013144 t recalibrate_floppy
000131a6 t reset_interrupt
000131eb t reset_floppy
00013268 t floppy_on_interrupt
000132d3 t do_fd_request
000134d7 T floppy_init
00013529 t unlock_buffer
0001355e t end_request
000135fd T sys_setup
000139b0 t controller_ready
00013a44 t hd_out
00013b31 t drive_busy
00013b97 t reset_controller
00013c14 t reset_hd
00013cac T unexpected_hd_interrupt
00013cbf t bad_rw_intr
00013cfd t read_intr
00013e23 t recal_intr
00013e3d t do_hd_request
0001413e T hd_init
000141b8 t unlock_buffer
000141ed t end_request
0001428c t do_rd_request
000143c2 T rd_init
00014418 T rd_load
000146c4 t get_fs_byte
000146d2 t put_fs_byte
000146ea T tty_init
000146fb T tty_intr
0001476f t sleep_if_empty
000147a7 t sleep_if_full
0001481b T copy_to_cooked
00014dd6 T tty_read
00015144 T tty_write
00015356 T do_tty_interrupt
0001537e T chr_dev_init
0001537f t gotoxy
000153cd t set_origin
00015433 t scrup
00015623 t scrdown
0001571a t lf
00015750 t ri
00015786 t cr
000157a7 t del
000157d9 t csi_J
0001586a t csi_K
0001591c T csi_m
00015983 t set_cursor
000159e9 t respond
00015a41 t insert_char
00015aa4 t insert_line
00015ae8 t delete_char
00015b46 t delete_line
00015b8a t csi_at
00015bc8 t csi_L
00015c06 t csi_P
00015c44 t csi_M
00015c82 t save_cur
00015c97 t restore_cur
00015cb6 T con_write
00016344 T con_init
0001657b T sysbeepstop
000165a4 t sysbeep
00016602 t mode
00016603 t leds
00016604 t e0
00016605 T keyboard_interrupt
0001662e t e0_e1
00016659 t set_e0
00016662 t set_e1
0001666b t put_queue
000166a4 t ctrl
000166bc t unctrl
000166c0 t unalt
000166d6 t lshift
000166de t unlshift
000166e6 t rshift
000166ee t unrshift
000166f6 t caps
00016718 t set_leds
0001672e t uncaps
00016736 t scroll
0001673f t num
00016748 t cursor
00016768 t cur2
00016791 t cur
0001679d t ok_cur
000167ab t num_table
000167b8 t cur_table
000167c5 t func
000167e2 t ok_func
000167f5 t end_func
000167f6 t func_table
00016826 t key_map
00016887 t shift_map
00016949 t do_self
000169b1 t none
000169b2 t minus
000169c7 t key_table
00016dc7 t kb_wait
00016dd0 t reboot
00016de2 t die
00016de4 t init
00016e59 T rs_init
00016edc T rs_write
00016f2c T rs1_interrupt
00016f34 T rs2_interrupt
00016f39 t rs_int
00016f50 t rep_int
00016f6d t end
00016f7b t jmp_table
00016f8c t modem_status
00016f94 t line_status
00016f9c t read_char
00017023 t get_fs_byte
00017031 t get_fs_long
00017047 t put_fs_byte
0001705f t put_fs_long
0001706b t change_speed
000170e9 t flush
000170fb t send_break
000170fc t get_termios
00017158 t set_termios
000171a8 t get_termio
00017270 t set_termio
00017334 T tty_ioctl
00017632 t get_fs_byte
00017640 T math_emulate
00017723 T math_error
00017743 T _exit
00017753 T open
0001779c T close
00017810 T dup
00017847 T setsid
00017876 T execve
00017913 T strcpy
0001792f T strncpy
00017954 T strcat
0001797f T strncat
000179b4 T strcmp
000179db T strncmp
00017a09 T strchr
00017a36 T strrchr
00017a65 T strspn
00017aa2 T strcspn
00017adf T strpbrk
00017b16 T strstr
00017b4f T strlen
00017b72 T strtok
00017bf5 T memcpy
00017c15 T memmove
00017c69 T memcmp
00017c93 T memchr
00017ccb T memset
0001bb48 d envp_rc
0001bb5c d envp
0001bb80 D sys_call_table
0001bcdc D NR_syscalls
0001bce0 d init_task
0001cce0 D current
0001cd00 D task
0001ce00 D stack_start
0001ce08 D current_DOR
0001ce20 d thisname.1955
0001ce60 d month
0001cea0 d last_inode.1935
0001cea4 D start_buffer
0001cec0 d crw_table
0001cee0 d ioctl_table
0001cf00 d floppy_type
0001cfc0 d cur_spec1
0001cfc4 d cur_rate
0001cfc8 d floppy
0001cfcc d current_track
0001cfd0 d callable.1844
0001cfe0 D tty_table
0001f500 D table_list
0001f520 d quotient
0001f540 D _ctype
0001f641 B __bss_start
0001f641 D _edata
0001f660 b printbuf
0001fa60 b memory_end
0001fa64 b buffer_memory_end
0001fa68 b main_memory_start
0001fa80 B jiffies
0001fa84 B startup_time
0001fa88 B last_task_used_math
0001fa9c b mon_timer
0001faac b moff_timer
0001fac0 b timer_list
0001fdc0 b next_timer
0001fdc4 B last_pid
0001fde0 b buf
000201e0 b HIGH_MEMORY
00020200 b mem_map
00021100 B inode_table
00021800 B nr_buffers
00021804 b free_list
00021808 b buffer_wait
0002180c B ROOT_DEV
00021840 B blk_dev
00021878 B do_floppy
0002187c B selected
00021884 b recalibrate
00021888 b reset
0002188c b seek
00021890 b reply_buffer
00021897 b current_drive
00021898 b sector
00021899 b head
0002189a b track
0002189b b seek_track
0002189c b command
000218a0 B do_hd
000218c0 B hd_info
000218f0 b recalibrate
000218f4 b reset
000218f8 b NR_HD
00021900 b hd
00021950 B rd_length
00021954 b cr_flag.1923
00021960 B beepcount
00021964 b video_type
00021968 b video_num_columns
0002196c b video_size_row
00021970 b video_num_lines
00021974 b video_page
00021978 b video_mem_start
0002197c b video_mem_end
00021980 b video_port_reg
00021982 b video_port_val
00021984 b video_erase_char
00021988 b origin
0002198c b scr_end
00021990 b pos
00021994 b x
00021998 b y
0002199c b top
000219a0 b bottom
000219a4 b state
000219a8 b npar
000219c0 b par
00021a00 b ques
00021a04 b saved_x
00021a08 b saved_y
00021a20 B drive_info
00021a40 B user_stack
00022a40 B hash_table
00022f20 B super_block
00023280 B file_table
00023680 B request
00023b00 B rd_start
00023b04 B _ctmp
00023b08 B errno
00023b0c B ___strtok
00023b10 B end
00023b10 B _end
00012522 t put_fs_byte
0001253a T sys_getdents
00012700 T sys_execve2
00012706 T sys_getcwd
0001270c T sys_sleep
00012761 T sys_something
00012767 t lock_buffer
00012794 t unlock_buffer
00012986 t make_request
00012b2a T ll_rw_block
00012b83 T blk_dev_init
00012bd1 t unlock_buffer
00012c06 t end_request
00012cb7 T floppy_deselect
00012cee T floppy_change
00012d74 t setup_DMA
00012e2a t output_byte
00012ea0 t result
00012f5d t bad_flp_intr
00012fbc t rw_interrupt
000130ab T setup_rw_floppy
0001316c t seek_interrupt
000131c5 t transfer
000132fa t recal_interrupt
00013344 T unexpected_floppy_interrupt
00013389 t recalibrate_floppy
000133eb t reset_interrupt
00013430 t reset_floppy
000134ad t floppy_on_interrupt
00013518 t do_fd_request
0001371c T floppy_init
0001376e t unlock_buffer
000137a3 t end_request
00013842 T sys_setup
00013bf5 t controller_ready
00013c89 t hd_out
00013d76 t drive_busy
00013ddc t reset_controller
00013e59 t reset_hd
00013ef1 T unexpected_hd_interrupt
00013f04 t bad_rw_intr
00013f42 t read_intr
00014068 t recal_intr
00014082 t do_hd_request
00014383 T hd_init
000143fd t unlock_buffer
00014432 t end_request
000144d1 t do_rd_request
00014607 T rd_init
0001465d T rd_load
00014909 t get_fs_byte
00014917 t put_fs_byte
0001492f T tty_init
00014940 T tty_intr
000149b4 t sleep_if_empty
000149ec t sleep_if_full
00014a60 T copy_to_cooked
0001501b T tty_read
00015389 T tty_write
0001559b T do_tty_interrupt
000155c3 T chr_dev_init
000155c4 t gotoxy
00015612 t set_origin
00015678 t scrup
00015868 t scrdown
0001595f t lf
00015995 t ri
000159cb t cr
000159ec t del
00015a1e t csi_J
00015aaf t csi_K
00015b61 T csi_m
00015bc8 t set_cursor
00015c2e t respond
00015c86 t insert_char
00015ce9 t insert_line
00015d2d t delete_char
00015d8b t delete_line
00015dcf t csi_at
00015e0d t csi_L
00015e4b t csi_P
00015e89 t csi_M
00015ec7 t save_cur
00015edc t restore_cur
00015efb T con_write
00016589 T con_init
000167c0 T sysbeepstop
000167e9 t sysbeep
00016847 t mode
00016848 t leds
00016849 t e0
0001684a T keyboard_interrupt
00016873 t e0_e1
0001689e t set_e0
000168a7 t set_e1
000168b0 t put_queue
000168e9 t ctrl
00016901 t unctrl
00016905 t unalt
0001691b t lshift
00016923 t unlshift
0001692b t rshift
00016933 t unrshift
0001693b t caps
0001695d t set_leds
00016973 t uncaps
0001697b t scroll
00016984 t num
0001698d t cursor
000169ad t cur2
000169d6 t cur
000169e2 t ok_cur
000169f0 t num_table
000169fd t cur_table
00016a0a t func
00016a27 t ok_func
00016a3a t end_func
00016a3b t func_table
00016a6b t key_map
00016acc t shift_map
00016b8e t do_self
00016bf6 t none
00016bf7 t minus
00016c0c t key_table
0001700c t kb_wait
00017015 t reboot
00017027 t die
00017029 t init
0001709e T rs_init
00017121 T rs_write
00017170 T rs1_interrupt
00017178 T rs2_interrupt
0001717d t rs_int
00017194 t rep_int
000171b1 t end
000171bf t jmp_table
000171d0 t modem_status
000171d8 t line_status
000171e0 t read_char
00017267 t get_fs_byte
00017275 t get_fs_long
0001728b t put_fs_byte
000172a3 t put_fs_long
000172af t change_speed
0001732d t flush
0001733f t send_break
00017340 t get_termios
0001739c t set_termios
000173ec t get_termio
000174b4 t set_termio
00017578 T tty_ioctl
00017876 t get_fs_byte
00017884 T math_emulate
00017967 T math_error
00017987 T _exit
00017997 T open
000179e0 T close
00017a54 T dup
00017a8b T setsid
00017aba T execve
00017b57 T strcpy
00017b73 T strncpy
00017b98 T strcat
00017bc3 T strncat
00017bf8 T strcmp
00017c1f T strncmp
00017c4d T strchr
00017c7a T strrchr
00017ca9 T strspn
00017ce6 T strcspn
00017d23 T strpbrk
00017d5a T strstr
00017d93 T strlen
00017db6 T strtok
00017e39 T memcpy
00017e59 T memmove
00017ead T memcmp
00017ed7 T memchr
00017f0f T memset
00017f33 t init_bucket_desc
00017f9c T malloc
00018128 T free_s
0001c2a8 d envp_rc
0001c2bc d envp
0001c2e0 D sys_call_table
0001c450 D NR_syscalls
0001c460 d init_task
0001d460 D current
0001d480 D task
0001d580 D stack_start
0001d588 D current_DOR
0001d5a0 d thisname.1955
0001d5e0 d month
0001d620 d last_inode.1935
0001d624 D start_buffer
0001d640 d crw_table
0001d660 d ioctl_table
0001d680 d floppy_type
0001d740 d cur_spec1
0001d744 d cur_rate
0001d748 d floppy
0001d74c d current_track
0001d750 d callable.1844
0001d760 D tty_table
0001fc80 D table_list
0001fca0 d quotient
0001fcc0 D _ctype
0001fde0 D bucket_dir
0001fe30 B __bss_start
0001fe30 D _edata
0001fe40 b printbuf
00020240 b memory_end
00020244 b buffer_memory_end
00020248 b main_memory_start
00020260 B jiffies
00020264 B startup_time
00020268 B last_task_used_math
0002027c b mon_timer
0002028c b moff_timer
000202a0 b timer_list
000205a0 b next_timer
000205a4 B last_pid
000205c0 b buf
000209c0 b HIGH_MEMORY
000209e0 b mem_map
000218e0 B inode_table
00021fe0 B nr_buffers
00021fe4 b free_list
00021fe8 b buffer_wait
00021fec B ROOT_DEV
00022020 B blk_dev
00022058 B do_floppy
0002205c B selected
00022064 b recalibrate
00022068 b reset
0002206c b seek
00022070 b reply_buffer
00022077 b current_drive
00022078 b sector
00022079 b head
0002207a b track
0002207b b seek_track
0002207c b command
00022080 B do_hd
000220a0 B hd_info
000220d0 b recalibrate
000220d4 b reset
000220d8 b NR_HD
000220e0 b hd
00022130 B rd_length
00022134 b cr_flag.1923
00022140 B beepcount
00022144 b video_type
00022148 b video_num_columns
0002214c b video_size_row
00022150 b video_num_lines
00022154 b video_page
00022158 b video_mem_start
0002215c b video_mem_end
00022160 b video_port_reg
00022162 b video_port_val
00022164 b video_erase_char
00022168 b origin
0002216c b scr_end
00022170 b pos
00022174 b x
00022178 b y
0002217c b top
00022180 b bottom
00022184 b state
00022188 b npar
000221a0 b par
000221e0 b ques
000221e4 b saved_x
000221e8 b saved_y
000221ec B free_bucket_desc
00022200 B drive_info
00022220 B user_stack
00023220 B hash_table
00023700 B super_block
00023a60 B file_table
00023e60 B request
000242e0 B rd_start
000242e4 B _ctmp
000242e8 B errno
000242ec B ___strtok
000242f0 B end
000242f0 B _end

@ -32,7 +32,8 @@ lib/lib.a(dup.o) init/main.o (dup)
lib/lib.a(setsid.o) init/main.o (setsid)
lib/lib.a(execve.o) init/main.o (execve)
lib/lib.a(wait.o) init/main.o (wait)
lib/lib.a(string.o) fs/fs.o (strncpy)
lib/lib.a(string.o) fs/fs.o (strcpy)
lib/lib.a(malloc.o) fs/fs.o (malloc)
分配公共符号
公共符号 大小 文件
@ -98,6 +99,8 @@ Discarded input sections
0x0000000000000000 0x0 lib/lib.a(wait.o)
.note.GNU-stack
0x0000000000000000 0x0 lib/lib.a(string.o)
.note.GNU-stack
0x0000000000000000 0x0 lib/lib.a(malloc.o)
内存配置
@ -202,7 +205,7 @@ LOAD lib/lib.a
*(.iplt)
.iplt 0x0000000000000000 0x0 boot/head.o
.text 0x0000000000000000 0x17cef
.text 0x0000000000000000 0x1829f
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
@ -354,7 +357,7 @@ LOAD lib/lib.a
0x000000000000ae49 mem_init
0x000000000000aebd calc_mem
0x000000000000afb2 page_fault
.text 0x000000000000afe9 0x7539 fs/fs.o
.text 0x000000000000afe9 0x777e fs/fs.o
0x000000000000afff sys_ustat
0x000000000000b005 sys_utime
0x000000000000b0b2 sys_access
@ -424,116 +427,127 @@ LOAD lib/lib.a
0x00000000000121d8 sys_ioctl
0x00000000000123e7 truncate
0x000000000001251c sys_select
.text 0x0000000000012522 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x00000000000128e5 ll_rw_block
0x000000000001293e blk_dev_init
.text 0x000000000001298c 0xb9d kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000012a72 floppy_deselect
0x0000000000012aa9 floppy_change
0x0000000000012e66 setup_rw_floppy
0x00000000000130ff unexpected_floppy_interrupt
0x00000000000134d7 floppy_init
.text 0x0000000000013529 0xc8f kernel/blk_drv/blk_drv.a(hd.o)
0x00000000000135fd sys_setup
0x0000000000013cac unexpected_hd_interrupt
0x000000000001413e hd_init
.text 0x00000000000141b8 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o)
0x00000000000143c2 rd_init
0x0000000000014418 rd_load
.text 0x00000000000146c4 0xcbb kernel/chr_drv/chr_drv.a(tty_io.o)
0x00000000000146ea tty_init
0x00000000000146fb tty_intr
0x0000000000014808 wait_for_keypress
0x000000000001481b copy_to_cooked
0x0000000000014dd6 tty_read
0x0000000000015144 tty_write
0x0000000000015356 do_tty_interrupt
0x000000000001537e chr_dev_init
.text 0x000000000001537f 0x1283 kernel/chr_drv/chr_drv.a(console.o)
0x000000000001591c csi_m
0x0000000000015cb6 con_write
0x0000000000016344 con_init
0x000000000001657b sysbeepstop
.text 0x0000000000016602 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o)
0x0000000000016605 keyboard_interrupt
.text 0x0000000000016de4 0x145 kernel/chr_drv/chr_drv.a(serial.o)
0x0000000000016e59 rs_init
0x0000000000016edc rs_write
*fill* 0x0000000000016f29 0x3
.text 0x0000000000016f2c 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o)
0x0000000000016f2c rs1_interrupt
0x0000000000016f34 rs2_interrupt
.text 0x0000000000017023 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x0000000000017334 tty_ioctl
.text 0x0000000000017632 0x111 kernel/math/math.a(math_emulate.o)
0x0000000000017640 math_emulate
0x0000000000017723 math_error
.text 0x0000000000017743 0x0 lib/lib.a(ctype.o)
.text 0x0000000000017743 0x10 lib/lib.a(_exit.o)
0x0000000000017743 _exit
.text 0x0000000000017753 0x49 lib/lib.a(open.o)
0x0000000000017753 open
.text 0x000000000001779c 0x37 lib/lib.a(close.o)
0x000000000001779c close
.text 0x00000000000177d3 0x0 lib/lib.a(errno.o)
.text 0x00000000000177d3 0x3d lib/lib.a(write.o)
0x00000000000177d3 write
.text 0x0000000000017810 0x37 lib/lib.a(dup.o)
0x0000000000017810 dup
.text 0x0000000000017847 0x2f lib/lib.a(setsid.o)
0x0000000000017847 setsid
.text 0x0000000000017876 0x3d lib/lib.a(execve.o)
0x0000000000017876 execve
.text 0x00000000000178b3 0x60 lib/lib.a(wait.o)
0x00000000000178b3 waitpid
0x00000000000178f0 wait
.text 0x0000000000017913 0x3dc lib/lib.a(string.o)
0x0000000000017913 strcpy
0x000000000001792f strncpy
0x0000000000017954 strcat
0x000000000001797f strncat
0x00000000000179b4 strcmp
0x00000000000179db strncmp
0x0000000000017a09 strchr
0x0000000000017a36 strrchr
0x0000000000017a65 strspn
0x0000000000017aa2 strcspn
0x0000000000017adf strpbrk
0x0000000000017b16 strstr
0x0000000000017b4f strlen
0x0000000000017b72 strtok
0x0000000000017bf5 memcpy
0x0000000000017c15 memmove
0x0000000000017c69 memcmp
0x0000000000017c93 memchr
0x0000000000017ccb memset
0x000000000001253a sys_getdents
0x0000000000012700 sys_execve2
0x0000000000012706 sys_getcwd
0x000000000001270c sys_sleep
0x0000000000012761 sys_something
.text 0x0000000000012767 0x46a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000012b2a ll_rw_block
0x0000000000012b83 blk_dev_init
.text 0x0000000000012bd1 0xb9d kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000012cb7 floppy_deselect
0x0000000000012cee floppy_change
0x00000000000130ab setup_rw_floppy
0x0000000000013344 unexpected_floppy_interrupt
0x000000000001371c floppy_init
.text 0x000000000001376e 0xc8f kernel/blk_drv/blk_drv.a(hd.o)
0x0000000000013842 sys_setup
0x0000000000013ef1 unexpected_hd_interrupt
0x0000000000014383 hd_init
.text 0x00000000000143fd 0x50c kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000014607 rd_init
0x000000000001465d rd_load
.text 0x0000000000014909 0xcbb kernel/chr_drv/chr_drv.a(tty_io.o)
0x000000000001492f tty_init
0x0000000000014940 tty_intr
0x0000000000014a4d wait_for_keypress
0x0000000000014a60 copy_to_cooked
0x000000000001501b tty_read
0x0000000000015389 tty_write
0x000000000001559b do_tty_interrupt
0x00000000000155c3 chr_dev_init
.text 0x00000000000155c4 0x1283 kernel/chr_drv/chr_drv.a(console.o)
0x0000000000015b61 csi_m
0x0000000000015efb con_write
0x0000000000016589 con_init
0x00000000000167c0 sysbeepstop
.text 0x0000000000016847 0x7e2 kernel/chr_drv/chr_drv.a(keyboard.2.o)
0x000000000001684a keyboard_interrupt
.text 0x0000000000017029 0x145 kernel/chr_drv/chr_drv.a(serial.o)
0x000000000001709e rs_init
0x0000000000017121 rs_write
*fill* 0x000000000001716e 0x2
.text 0x0000000000017170 0xf7 kernel/chr_drv/chr_drv.a(rs_io.o)
0x0000000000017170 rs1_interrupt
0x0000000000017178 rs2_interrupt
.text 0x0000000000017267 0x60f kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x0000000000017578 tty_ioctl
.text 0x0000000000017876 0x111 kernel/math/math.a(math_emulate.o)
0x0000000000017884 math_emulate
0x0000000000017967 math_error
.text 0x0000000000017987 0x0 lib/lib.a(ctype.o)
.text 0x0000000000017987 0x10 lib/lib.a(_exit.o)
0x0000000000017987 _exit
.text 0x0000000000017997 0x49 lib/lib.a(open.o)
0x0000000000017997 open
.text 0x00000000000179e0 0x37 lib/lib.a(close.o)
0x00000000000179e0 close
.text 0x0000000000017a17 0x0 lib/lib.a(errno.o)
.text 0x0000000000017a17 0x3d lib/lib.a(write.o)
0x0000000000017a17 write
.text 0x0000000000017a54 0x37 lib/lib.a(dup.o)
0x0000000000017a54 dup
.text 0x0000000000017a8b 0x2f lib/lib.a(setsid.o)
0x0000000000017a8b setsid
.text 0x0000000000017aba 0x3d lib/lib.a(execve.o)
0x0000000000017aba execve
.text 0x0000000000017af7 0x60 lib/lib.a(wait.o)
0x0000000000017af7 waitpid
0x0000000000017b34 wait
.text 0x0000000000017b57 0x3dc lib/lib.a(string.o)
0x0000000000017b57 strcpy
0x0000000000017b73 strncpy
0x0000000000017b98 strcat
0x0000000000017bc3 strncat
0x0000000000017bf8 strcmp
0x0000000000017c1f strncmp
0x0000000000017c4d strchr
0x0000000000017c7a strrchr
0x0000000000017ca9 strspn
0x0000000000017ce6 strcspn
0x0000000000017d23 strpbrk
0x0000000000017d5a strstr
0x0000000000017d93 strlen
0x0000000000017db6 strtok
0x0000000000017e39 memcpy
0x0000000000017e59 memmove
0x0000000000017ead memcmp
0x0000000000017ed7 memchr
0x0000000000017f0f memset
.text 0x0000000000017f33 0x36c lib/lib.a(malloc.o)
0x0000000000017f9c malloc
0x0000000000018128 free_s
*(.gnu.warning)
.fini
*(SORT(.fini))
0x0000000000017cef PROVIDE (__etext, .)
0x0000000000017cef PROVIDE (_etext, .)
0x0000000000017cef PROVIDE (etext, .)
0x000000000001829f PROVIDE (__etext, .)
0x000000000001829f PROVIDE (_etext, .)
0x000000000001829f PROVIDE (etext, .)
.rodata 0x0000000000017cf0 0x13ca
.rodata 0x00000000000182a0 0x14b7
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata 0x0000000000017cf0 0xad init/main.o
*fill* 0x0000000000017d9d 0x3
.rodata 0x0000000000017da0 0x438 kernel/kernel.o
.rodata 0x00000000000181d8 0x18f mm/mm.o
*fill* 0x0000000000018367 0x1
.rodata 0x0000000000018368 0x62c fs/fs.o
.rodata 0x0000000000018994 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
*fill* 0x0000000000018a0e 0x2
.rodata 0x0000000000018a10 0x133 kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x0000000000018b43 0x1
.rodata 0x0000000000018b44 0x19b kernel/blk_drv/blk_drv.a(hd.o)
*fill* 0x0000000000018cdf 0x1
.rodata 0x0000000000018ce0 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o)
.rodata 0x0000000000018e68 0x17d kernel/chr_drv/chr_drv.a(console.o)
*fill* 0x0000000000018fe5 0x3
.rodata 0x0000000000018fe8 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.rodata 0x0000000000019068 0x52 kernel/math/math.a(math_emulate.o)
.rodata 0x00000000000182a0 0xad init/main.o
*fill* 0x000000000001834d 0x3
.rodata 0x0000000000018350 0x438 kernel/kernel.o
.rodata 0x0000000000018788 0x18f mm/mm.o
*fill* 0x0000000000018917 0x1
.rodata 0x0000000000018918 0x641 fs/fs.o
*fill* 0x0000000000018f59 0x3
.rodata 0x0000000000018f5c 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
*fill* 0x0000000000018fd6 0x2
.rodata 0x0000000000018fd8 0x133 kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001910b 0x1
.rodata 0x000000000001910c 0x19b kernel/blk_drv/blk_drv.a(hd.o)
*fill* 0x00000000000192a7 0x1
.rodata 0x00000000000192a8 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o)
.rodata 0x0000000000019430 0x17d kernel/chr_drv/chr_drv.a(console.o)
*fill* 0x00000000000195ad 0x3
.rodata 0x00000000000195b0 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.rodata 0x0000000000019630 0x52 kernel/math/math.a(math_emulate.o)
*fill* 0x0000000000019682 0x2
.rodata 0x0000000000019684 0xd3 lib/lib.a(malloc.o)
.rodata1
*(.rodata1)
@ -541,58 +555,60 @@ LOAD lib/lib.a
.eh_frame_hdr
*(.eh_frame_hdr)
.eh_frame 0x00000000000190bc 0x2a6c
.eh_frame 0x0000000000019758 0x2b44
*(.eh_frame)
.eh_frame 0x00000000000190bc 0xf0 init/main.o
.eh_frame 0x00000000000191ac 0xb04 kernel/kernel.o
.eh_frame 0x0000000000019758 0xf0 init/main.o
.eh_frame 0x0000000000019848 0xb04 kernel/kernel.o
0xbf4 (size before relaxing)
.eh_frame 0x0000000000019cb0 0x194 mm/mm.o
.eh_frame 0x000000000001a34c 0x194 mm/mm.o
0x1ac (size before relaxing)
.eh_frame 0x0000000000019e44 0xdd8 fs/fs.o
0xf70 (size before relaxing)
.eh_frame 0x000000000001ac1c 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.eh_frame 0x000000000001a4e0 0xe60 fs/fs.o
0x1010 (size before relaxing)
.eh_frame 0x000000000001b340 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0xb0 (size before relaxing)
.eh_frame 0x000000000001acb4 0x23c kernel/blk_drv/blk_drv.a(floppy.o)
.eh_frame 0x000000000001b3d8 0x23c kernel/blk_drv/blk_drv.a(floppy.o)
0x254 (size before relaxing)
.eh_frame 0x000000000001aef0 0x1e8 kernel/blk_drv/blk_drv.a(hd.o)
.eh_frame 0x000000000001b614 0x1e8 kernel/blk_drv/blk_drv.a(hd.o)
0x200 (size before relaxing)
.eh_frame 0x000000000001b0d8 0xac kernel/blk_drv/blk_drv.a(ramdisk.o)
.eh_frame 0x000000000001b7fc 0xac kernel/blk_drv/blk_drv.a(ramdisk.o)
0xc4 (size before relaxing)
.eh_frame 0x000000000001b184 0x12c kernel/chr_drv/chr_drv.a(tty_io.o)
.eh_frame 0x000000000001b8a8 0x12c kernel/chr_drv/chr_drv.a(tty_io.o)
0x144 (size before relaxing)
.eh_frame 0x000000000001b2b0 0x2c0 kernel/chr_drv/chr_drv.a(console.o)
.eh_frame 0x000000000001b9d4 0x2c0 kernel/chr_drv/chr_drv.a(console.o)
0x2d8 (size before relaxing)
.eh_frame 0x000000000001b570 0x54 kernel/chr_drv/chr_drv.a(serial.o)
.eh_frame 0x000000000001bc94 0x54 kernel/chr_drv/chr_drv.a(serial.o)
0x6c (size before relaxing)
.eh_frame 0x000000000001b5c4 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.eh_frame 0x000000000001bce8 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x160 (size before relaxing)
.eh_frame 0x000000000001b70c 0x5c kernel/math/math.a(math_emulate.o)
.eh_frame 0x000000000001be30 0x5c kernel/math/math.a(math_emulate.o)
0x74 (size before relaxing)
.eh_frame 0x000000000001b768 0x1c lib/lib.a(_exit.o)
.eh_frame 0x000000000001be8c 0x1c lib/lib.a(_exit.o)
0x34 (size before relaxing)
.eh_frame 0x000000000001b784 0x24 lib/lib.a(open.o)
.eh_frame 0x000000000001bea8 0x24 lib/lib.a(open.o)
0x3c (size before relaxing)
.eh_frame 0x000000000001b7a8 0x20 lib/lib.a(close.o)
.eh_frame 0x000000000001becc 0x20 lib/lib.a(close.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001b7c8 0x20 lib/lib.a(write.o)
.eh_frame 0x000000000001beec 0x20 lib/lib.a(write.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001b7e8 0x20 lib/lib.a(dup.o)
.eh_frame 0x000000000001bf0c 0x20 lib/lib.a(dup.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001b808 0x18 lib/lib.a(setsid.o)
.eh_frame 0x000000000001bf2c 0x18 lib/lib.a(setsid.o)
0x30 (size before relaxing)
.eh_frame 0x000000000001b820 0x20 lib/lib.a(execve.o)
.eh_frame 0x000000000001bf44 0x20 lib/lib.a(execve.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001b840 0x38 lib/lib.a(wait.o)
.eh_frame 0x000000000001bf64 0x38 lib/lib.a(wait.o)
0x50 (size before relaxing)
.eh_frame 0x000000000001b878 0x2b0 lib/lib.a(string.o)
.eh_frame 0x000000000001bf9c 0x2b0 lib/lib.a(string.o)
0x2c8 (size before relaxing)
.eh_frame 0x000000000001c24c 0x50 lib/lib.a(malloc.o)
0x68 (size before relaxing)
.gcc_except_table
*(.gcc_except_table .gcc_except_table.*)
.exception_ranges
*(.exception_ranges .exception_ranges*)
0x000000000001bb28 . = .
0x000000000001c29c . = .
.eh_frame
*(.eh_frame)
@ -610,22 +626,22 @@ LOAD lib/lib.a
*(.tbss .tbss.* .gnu.linkonce.tb.*)
*(.tcommon)
.preinit_array 0x000000000001bb28 0x0
0x000000000001bb28 PROVIDE (__preinit_array_start, .)
.preinit_array 0x000000000001c29c 0x0
0x000000000001c29c PROVIDE (__preinit_array_start, .)
*(.preinit_array)
0x000000000001bb28 PROVIDE (__preinit_array_end, .)
0x000000000001c29c PROVIDE (__preinit_array_end, .)
.init_array 0x000000000001bb28 0x0
0x000000000001bb28 PROVIDE (__init_array_start, .)
.init_array 0x000000000001c29c 0x0
0x000000000001c29c PROVIDE (__init_array_start, .)
*(SORT(.init_array.*) SORT(.ctors.*))
*(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors)
0x000000000001bb28 PROVIDE (__init_array_end, .)
0x000000000001c29c PROVIDE (__init_array_end, .)
.fini_array 0x000000000001bb28 0x0
0x000000000001bb28 PROVIDE (__fini_array_start, .)
.fini_array 0x000000000001c29c 0x0
0x000000000001c29c PROVIDE (__fini_array_start, .)
*(SORT(.fini_array.*) SORT(.dtors.*))
*(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors)
0x000000000001bb28 PROVIDE (__fini_array_end, .)
0x000000000001c29c PROVIDE (__fini_array_end, .)
.ctors
*crtbegin.o(.ctors)
@ -655,140 +671,145 @@ LOAD lib/lib.a
*(.got)
*(.igot)
.got.plt 0x000000000001bb28 0x0
.got.plt 0x000000000001c29c 0x0
*(.got.plt)
*(.igot.plt)
.igot.plt 0x0000000000000000 0x0 boot/head.o
.data 0x000000000001bb40 0x3b01
.data 0x000000000001c2a0 0x3b90
*(.data .data.* .gnu.linkonce.d.*)
.data 0x000000000001bb40 0x0 boot/head.o
.data 0x000000000001bb40 0x28 init/main.o
*fill* 0x000000000001bb68 0x18
.data 0x000000000001bb80 0x1310 kernel/kernel.o
0x000000000001bb80 sys_call_table
0x000000000001bcdc NR_syscalls
0x000000000001cce0 current
0x000000000001cd00 task
0x000000000001ce00 stack_start
0x000000000001ce08 current_DOR
.data 0x000000000001ce90 0x0 mm/mm.o
*fill* 0x000000000001ce90 0x10
.data 0x000000000001cea0 0x60 fs/fs.o
0x000000000001cea4 start_buffer
.data 0x000000000001cf00 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.data 0x000000000001cf00 0xcd kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001cfcd 0x3
.data 0x000000000001cfd0 0x4 kernel/blk_drv/blk_drv.a(hd.o)
.data 0x000000000001cfd4 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o)
*fill* 0x000000000001cfd4 0xc
.data 0x000000000001cfe0 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o)
0x000000000001cfe0 tty_table
0x000000000001f500 table_list
.data 0x000000000001f518 0x1 kernel/chr_drv/chr_drv.a(console.o)
.data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.data 0x000000000001f519 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
*fill* 0x000000000001f519 0x7
.data 0x000000000001f520 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.data 0x000000000001f540 0x0 kernel/math/math.a(math_emulate.o)
.data 0x000000000001f540 0x101 lib/lib.a(ctype.o)
0x000000000001f540 _ctype
.data 0x000000000001f641 0x0 lib/lib.a(_exit.o)
.data 0x000000000001f641 0x0 lib/lib.a(open.o)
.data 0x000000000001f641 0x0 lib/lib.a(close.o)
.data 0x000000000001f641 0x0 lib/lib.a(errno.o)
.data 0x000000000001f641 0x0 lib/lib.a(write.o)
.data 0x000000000001f641 0x0 lib/lib.a(dup.o)
.data 0x000000000001f641 0x0 lib/lib.a(setsid.o)
.data 0x000000000001f641 0x0 lib/lib.a(execve.o)
.data 0x000000000001f641 0x0 lib/lib.a(wait.o)
.data 0x000000000001f641 0x0 lib/lib.a(string.o)
.data 0x000000000001c2a0 0x0 boot/head.o
.data 0x000000000001c2a0 0x28 init/main.o
*fill* 0x000000000001c2c8 0x18
.data 0x000000000001c2e0 0x1330 kernel/kernel.o
0x000000000001c2e0 sys_call_table
0x000000000001c450 NR_syscalls
0x000000000001d460 current
0x000000000001d480 task
0x000000000001d580 stack_start
0x000000000001d588 current_DOR
.data 0x000000000001d610 0x0 mm/mm.o
*fill* 0x000000000001d610 0x10
.data 0x000000000001d620 0x60 fs/fs.o
0x000000000001d624 start_buffer
.data 0x000000000001d680 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.data 0x000000000001d680 0xcd kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001d74d 0x3
.data 0x000000000001d750 0x4 kernel/blk_drv/blk_drv.a(hd.o)
.data 0x000000000001d754 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o)
*fill* 0x000000000001d754 0xc
.data 0x000000000001d760 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o)
0x000000000001d760 tty_table
0x000000000001fc80 table_list
.data 0x000000000001fc98 0x1 kernel/chr_drv/chr_drv.a(console.o)
.data 0x000000000001fc99 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.data 0x000000000001fc99 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.data 0x000000000001fc99 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
*fill* 0x000000000001fc99 0x7
.data 0x000000000001fca0 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.data 0x000000000001fcc0 0x0 kernel/math/math.a(math_emulate.o)
.data 0x000000000001fcc0 0x101 lib/lib.a(ctype.o)
0x000000000001fcc0 _ctype
.data 0x000000000001fdc1 0x0 lib/lib.a(_exit.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(open.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(close.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(errno.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(write.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(dup.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(setsid.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(execve.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(wait.o)
.data 0x000000000001fdc1 0x0 lib/lib.a(string.o)
*fill* 0x000000000001fdc1 0x1f
.data 0x000000000001fde0 0x50 lib/lib.a(malloc.o)
0x000000000001fde0 bucket_dir
.data1
*(.data1)
0x000000000001f641 _edata = .
0x000000000001f641 PROVIDE (edata, .)
0x000000000001f641 . = .
0x000000000001f641 __bss_start = .
0x000000000001fe30 _edata = .
0x000000000001fe30 PROVIDE (edata, .)
0x000000000001fe30 . = .
0x000000000001fe30 __bss_start = .
.bss 0x000000000001f660 0x44b0
.bss 0x000000000001fe40 0x44b0
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x000000000001f660 0x0 boot/head.o
.bss 0x000000000001f660 0x40c init/main.o
*fill* 0x000000000001fa6c 0x14
.bss 0x000000000001fa80 0x760 kernel/kernel.o
0x000000000001fa80 jiffies
0x000000000001fa84 startup_time
0x000000000001fa88 last_task_used_math
0x000000000001fdc4 last_pid
.bss 0x00000000000201e0 0xf20 mm/mm.o
.bss 0x0000000000021100 0x710 fs/fs.o
0x0000000000021100 inode_table
0x0000000000021800 nr_buffers
0x000000000002180c ROOT_DEV
*fill* 0x0000000000021810 0x10
.bss 0x0000000000021820 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000021820 wait_for_request
0x0000000000021840 blk_dev
.bss 0x0000000000021878 0x25 kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000021878 do_floppy
0x000000000002187c selected
0x0000000000021880 wait_on_floppy_select
*fill* 0x000000000002189d 0x3
.bss 0x00000000000218a0 0xb0 kernel/blk_drv/blk_drv.a(hd.o)
0x00000000000218a0 do_hd
0x00000000000218c0 hd_info
.bss 0x0000000000021950 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000021950 rd_length
.bss 0x0000000000021954 0x4 kernel/chr_drv/chr_drv.a(tty_io.o)
*fill* 0x0000000000021958 0x8
.bss 0x0000000000021960 0xac kernel/chr_drv/chr_drv.a(console.o)
0x0000000000021960 beepcount
.bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
.bss 0x0000000000021a0c 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.bss 0x0000000000021a0c 0x0 kernel/math/math.a(math_emulate.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(ctype.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(_exit.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(open.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(close.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(errno.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(write.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(dup.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(setsid.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(execve.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(wait.o)
.bss 0x0000000000021a0c 0x0 lib/lib.a(string.o)
.bss 0x000000000001fe40 0x0 boot/head.o
.bss 0x000000000001fe40 0x40c init/main.o
*fill* 0x000000000002024c 0x14
.bss 0x0000000000020260 0x760 kernel/kernel.o
0x0000000000020260 jiffies
0x0000000000020264 startup_time
0x0000000000020268 last_task_used_math
0x00000000000205a4 last_pid
.bss 0x00000000000209c0 0xf20 mm/mm.o
.bss 0x00000000000218e0 0x710 fs/fs.o
0x00000000000218e0 inode_table
0x0000000000021fe0 nr_buffers
0x0000000000021fec ROOT_DEV
*fill* 0x0000000000021ff0 0x10
.bss 0x0000000000022000 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000022000 wait_for_request
0x0000000000022020 blk_dev
.bss 0x0000000000022058 0x25 kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000022058 do_floppy
0x000000000002205c selected
0x0000000000022060 wait_on_floppy_select
*fill* 0x000000000002207d 0x3
.bss 0x0000000000022080 0xb0 kernel/blk_drv/blk_drv.a(hd.o)
0x0000000000022080 do_hd
0x00000000000220a0 hd_info
.bss 0x0000000000022130 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000022130 rd_length
.bss 0x0000000000022134 0x4 kernel/chr_drv/chr_drv.a(tty_io.o)
*fill* 0x0000000000022138 0x8
.bss 0x0000000000022140 0xac kernel/chr_drv/chr_drv.a(console.o)
0x0000000000022140 beepcount
.bss 0x00000000000221ec 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.bss 0x00000000000221ec 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.bss 0x00000000000221ec 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
.bss 0x00000000000221ec 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.bss 0x00000000000221ec 0x0 kernel/math/math.a(math_emulate.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(ctype.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(_exit.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(open.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(close.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(errno.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(write.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(dup.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(setsid.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(execve.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(wait.o)
.bss 0x00000000000221ec 0x0 lib/lib.a(string.o)
.bss 0x00000000000221ec 0x4 lib/lib.a(malloc.o)
0x00000000000221ec free_bucket_desc
*(COMMON)
*fill* 0x0000000000021a0c 0x14
COMMON 0x0000000000021a20 0x20 init/main.o
0x0000000000021a20 drive_info
COMMON 0x0000000000021a40 0x1000 kernel/kernel.o
0x0000000000021a40 user_stack
COMMON 0x0000000000022a40 0xc40 fs/fs.o
0x0000000000022a40 hash_table
0x0000000000022f20 super_block
0x0000000000023280 file_table
COMMON 0x0000000000023680 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000023680 request
COMMON 0x0000000000023b00 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000023b00 rd_start
COMMON 0x0000000000023b04 0x1 lib/lib.a(ctype.o)
0x0000000000023b04 _ctmp
*fill* 0x0000000000023b05 0x3
COMMON 0x0000000000023b08 0x4 lib/lib.a(errno.o)
0x0000000000023b08 errno
COMMON 0x0000000000023b0c 0x4 lib/lib.a(string.o)
0x0000000000023b0c ___strtok
0x0000000000023b10 . = ALIGN ((. != 0x0)?0x4:0x1)
0x0000000000023b10 . = ALIGN (0x4)
0x0000000000023b10 . = SEGMENT_START ("ldata-segment", .)
0x0000000000023b10 . = ALIGN (0x4)
0x0000000000023b10 _end = .
0x0000000000023b10 PROVIDE (end, .)
*fill* 0x00000000000221f0 0x10
COMMON 0x0000000000022200 0x20 init/main.o
0x0000000000022200 drive_info
COMMON 0x0000000000022220 0x1000 kernel/kernel.o
0x0000000000022220 user_stack
COMMON 0x0000000000023220 0xc40 fs/fs.o
0x0000000000023220 hash_table
0x0000000000023700 super_block
0x0000000000023a60 file_table
COMMON 0x0000000000023e60 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000023e60 request
COMMON 0x00000000000242e0 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x00000000000242e0 rd_start
COMMON 0x00000000000242e4 0x1 lib/lib.a(ctype.o)
0x00000000000242e4 _ctmp
*fill* 0x00000000000242e5 0x3
COMMON 0x00000000000242e8 0x4 lib/lib.a(errno.o)
0x00000000000242e8 errno
COMMON 0x00000000000242ec 0x4 lib/lib.a(string.o)
0x00000000000242ec ___strtok
0x00000000000242f0 . = ALIGN ((. != 0x0)?0x4:0x1)
0x00000000000242f0 . = ALIGN (0x4)
0x00000000000242f0 . = SEGMENT_START ("ldata-segment", .)
0x00000000000242f0 . = ALIGN (0x4)
0x00000000000242f0 _end = .
0x00000000000242f0 PROVIDE (end, .)
.stab
*(.stab)
@ -814,7 +835,7 @@ LOAD lib/lib.a
0x2a (size before relaxing)
.comment 0x0000000000000000 0x1a4 kernel/kernel.o
.comment 0x0000000000000000 0x2a mm/mm.o
.comment 0x0000000000000000 0x2f4 fs/fs.o
.comment 0x0000000000000000 0x31e fs/fs.o
.comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(floppy.o)
.comment 0x0000000000000000 0x2a kernel/blk_drv/blk_drv.a(hd.o)
@ -835,6 +856,7 @@ LOAD lib/lib.a
.comment 0x0000000000000000 0x2a lib/lib.a(execve.o)
.comment 0x0000000000000000 0x2a lib/lib.a(wait.o)
.comment 0x0000000000000000 0x2a lib/lib.a(string.o)
.comment 0x0000000000000000 0x2a lib/lib.a(malloc.o)
.debug
*(.debug)
@ -848,7 +870,7 @@ LOAD lib/lib.a
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x0000000000000000 0x628
.debug_aranges 0x0000000000000000 0x668
*(.debug_aranges)
.debug_aranges
0x0000000000000000 0x20 init/main.o
@ -857,185 +879,192 @@ LOAD lib/lib.a
.debug_aranges
0x0000000000000160 0x20 mm/mm.o
.debug_aranges
0x0000000000000180 0x238 fs/fs.o
0x0000000000000180 0x258 fs/fs.o
.debug_aranges
0x00000000000003d8 0x20 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_aranges
0x00000000000003b8 0x20 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x00000000000003f8 0x20 kernel/blk_drv/blk_drv.a(floppy.o)
.debug_aranges
0x00000000000003d8 0x20 kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000000418 0x20 kernel/blk_drv/blk_drv.a(hd.o)
.debug_aranges
0x00000000000003f8 0x20 kernel/blk_drv/blk_drv.a(hd.o)
0x0000000000000438 0x20 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_aranges
0x0000000000000418 0x20 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000000458 0x20 kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_aranges
0x0000000000000438 0x20 kernel/chr_drv/chr_drv.a(tty_io.o)
0x0000000000000478 0x20 kernel/chr_drv/chr_drv.a(console.o)
.debug_aranges
0x0000000000000458 0x20 kernel/chr_drv/chr_drv.a(console.o)
0x0000000000000498 0x20 kernel/chr_drv/chr_drv.a(serial.o)
.debug_aranges
0x0000000000000478 0x20 kernel/chr_drv/chr_drv.a(serial.o)
0x00000000000004b8 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_aranges
0x0000000000000498 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x00000000000004d8 0x20 kernel/math/math.a(math_emulate.o)
.debug_aranges
0x00000000000004b8 0x20 kernel/math/math.a(math_emulate.o)
0x00000000000004f8 0x18 lib/lib.a(ctype.o)
.debug_aranges
0x00000000000004d8 0x18 lib/lib.a(ctype.o)
0x0000000000000510 0x20 lib/lib.a(_exit.o)
.debug_aranges
0x00000000000004f0 0x20 lib/lib.a(_exit.o)
0x0000000000000530 0x20 lib/lib.a(open.o)
.debug_aranges
0x0000000000000510 0x20 lib/lib.a(open.o)
0x0000000000000550 0x20 lib/lib.a(close.o)
.debug_aranges
0x0000000000000530 0x20 lib/lib.a(close.o)
0x0000000000000570 0x18 lib/lib.a(errno.o)
.debug_aranges
0x0000000000000550 0x18 lib/lib.a(errno.o)
0x0000000000000588 0x20 lib/lib.a(write.o)
.debug_aranges
0x0000000000000568 0x20 lib/lib.a(write.o)
0x00000000000005a8 0x20 lib/lib.a(dup.o)
.debug_aranges
0x0000000000000588 0x20 lib/lib.a(dup.o)
0x00000000000005c8 0x20 lib/lib.a(setsid.o)
.debug_aranges
0x00000000000005a8 0x20 lib/lib.a(setsid.o)
0x00000000000005e8 0x20 lib/lib.a(execve.o)
.debug_aranges
0x00000000000005c8 0x20 lib/lib.a(execve.o)
0x0000000000000608 0x20 lib/lib.a(wait.o)
.debug_aranges
0x00000000000005e8 0x20 lib/lib.a(wait.o)
0x0000000000000628 0x20 lib/lib.a(string.o)
.debug_aranges
0x0000000000000608 0x20 lib/lib.a(string.o)
0x0000000000000648 0x20 lib/lib.a(malloc.o)
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x0000000000000000 0x16d23
.debug_info 0x0000000000000000 0x178f7
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x0000000000000000 0x553 init/main.o
.debug_info 0x0000000000000553 0x4cb6 kernel/kernel.o
.debug_info 0x0000000000005209 0xb2b mm/mm.o
.debug_info 0x0000000000005d34 0xa290 fs/fs.o
.debug_info 0x000000000000ffc4 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_info 0x00000000000108f6 0xc9f kernel/blk_drv/blk_drv.a(floppy.o)
.debug_info 0x0000000000011595 0xd5f kernel/blk_drv/blk_drv.a(hd.o)
.debug_info 0x00000000000122f4 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_info 0x0000000000012dc9 0xacd kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_info 0x0000000000013896 0xdb0 kernel/chr_drv/chr_drv.a(console.o)
.debug_info 0x0000000000014646 0x85c kernel/chr_drv/chr_drv.a(serial.o)
.debug_info 0x0000000000014ea2 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_info 0x00000000000159e9 0x7b5 kernel/math/math.a(math_emulate.o)
.debug_info 0x000000000001619e 0x66 lib/lib.a(ctype.o)
.debug_info 0x0000000000016204 0x77 lib/lib.a(_exit.o)
.debug_info 0x000000000001627b 0xd0 lib/lib.a(open.o)
.debug_info 0x000000000001634b 0x97 lib/lib.a(close.o)
.debug_info 0x00000000000163e2 0x36 lib/lib.a(errno.o)
.debug_info 0x0000000000016418 0xc9 lib/lib.a(write.o)
.debug_info 0x00000000000164e1 0x97 lib/lib.a(dup.o)
.debug_info 0x0000000000016578 0x95 lib/lib.a(setsid.o)
.debug_info 0x000000000001660d 0xcb lib/lib.a(execve.o)
.debug_info 0x00000000000166d8 0xed lib/lib.a(wait.o)
.debug_info 0x00000000000167c5 0x55e lib/lib.a(string.o)
.debug_abbrev 0x0000000000000000 0x43b9
.debug_info 0x0000000000005d34 0xac3f fs/fs.o
.debug_info 0x0000000000010973 0x932 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_info 0x00000000000112a5 0xc9f kernel/blk_drv/blk_drv.a(floppy.o)
.debug_info 0x0000000000011f44 0xd5f kernel/blk_drv/blk_drv.a(hd.o)
.debug_info 0x0000000000012ca3 0xad5 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_info 0x0000000000013778 0xacd kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_info 0x0000000000014245 0xdb0 kernel/chr_drv/chr_drv.a(console.o)
.debug_info 0x0000000000014ff5 0x85c kernel/chr_drv/chr_drv.a(serial.o)
.debug_info 0x0000000000015851 0xb47 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_info 0x0000000000016398 0x7b5 kernel/math/math.a(math_emulate.o)
.debug_info 0x0000000000016b4d 0x66 lib/lib.a(ctype.o)
.debug_info 0x0000000000016bb3 0x77 lib/lib.a(_exit.o)
.debug_info 0x0000000000016c2a 0xd0 lib/lib.a(open.o)
.debug_info 0x0000000000016cfa 0x97 lib/lib.a(close.o)
.debug_info 0x0000000000016d91 0x36 lib/lib.a(errno.o)
.debug_info 0x0000000000016dc7 0xc9 lib/lib.a(write.o)
.debug_info 0x0000000000016e90 0x97 lib/lib.a(dup.o)
.debug_info 0x0000000000016f27 0x95 lib/lib.a(setsid.o)
.debug_info 0x0000000000016fbc 0xcb lib/lib.a(execve.o)
.debug_info 0x0000000000017087 0xed lib/lib.a(wait.o)
.debug_info 0x0000000000017174 0x55e lib/lib.a(string.o)
.debug_info 0x00000000000176d2 0x225 lib/lib.a(malloc.o)
.debug_abbrev 0x0000000000000000 0x4694
*(.debug_abbrev)
.debug_abbrev 0x0000000000000000 0x1d3 init/main.o
.debug_abbrev 0x00000000000001d3 0xf63 kernel/kernel.o
.debug_abbrev 0x0000000000001136 0x20b mm/mm.o
.debug_abbrev 0x0000000000001341 0x19f1 fs/fs.o
.debug_abbrev 0x0000000000002d32 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_abbrev 0x0000000000002e9b 0x27d kernel/blk_drv/blk_drv.a(floppy.o)
.debug_abbrev 0x0000000000003118 0x23c kernel/blk_drv/blk_drv.a(hd.o)
.debug_abbrev 0x0000000000003354 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_abbrev 0x00000000000034fc 0x279 kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_abbrev 0x0000000000003775 0x26b kernel/chr_drv/chr_drv.a(console.o)
.debug_abbrev 0x00000000000039e0 0x175 kernel/chr_drv/chr_drv.a(serial.o)
.debug_abbrev 0x0000000000003b55 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_abbrev 0x0000000000003ce2 0x163 kernel/math/math.a(math_emulate.o)
.debug_abbrev 0x0000000000003e45 0x3e lib/lib.a(ctype.o)
.debug_abbrev 0x0000000000003e83 0x51 lib/lib.a(_exit.o)
.debug_abbrev 0x0000000000003ed4 0x97 lib/lib.a(open.o)
.debug_abbrev 0x0000000000003f6b 0x75 lib/lib.a(close.o)
.debug_abbrev 0x0000000000003fe0 0x2c lib/lib.a(errno.o)
.debug_abbrev 0x000000000000400c 0xa1 lib/lib.a(write.o)
.debug_abbrev 0x00000000000040ad 0x75 lib/lib.a(dup.o)
.debug_abbrev 0x0000000000004122 0x73 lib/lib.a(setsid.o)
.debug_abbrev 0x0000000000004195 0x85 lib/lib.a(execve.o)
.debug_abbrev 0x000000000000421a 0xb6 lib/lib.a(wait.o)
.debug_abbrev 0x00000000000042d0 0xe9 lib/lib.a(string.o)
.debug_line 0x0000000000000000 0x4599
.debug_abbrev 0x0000000000001341 0x1bb3 fs/fs.o
.debug_abbrev 0x0000000000002ef4 0x169 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_abbrev 0x000000000000305d 0x27d kernel/blk_drv/blk_drv.a(floppy.o)
.debug_abbrev 0x00000000000032da 0x23c kernel/blk_drv/blk_drv.a(hd.o)
.debug_abbrev 0x0000000000003516 0x1a8 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_abbrev 0x00000000000036be 0x279 kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_abbrev 0x0000000000003937 0x26b kernel/chr_drv/chr_drv.a(console.o)
.debug_abbrev 0x0000000000003ba2 0x175 kernel/chr_drv/chr_drv.a(serial.o)
.debug_abbrev 0x0000000000003d17 0x18d kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_abbrev 0x0000000000003ea4 0x163 kernel/math/math.a(math_emulate.o)
.debug_abbrev 0x0000000000004007 0x3e lib/lib.a(ctype.o)
.debug_abbrev 0x0000000000004045 0x51 lib/lib.a(_exit.o)
.debug_abbrev 0x0000000000004096 0x97 lib/lib.a(open.o)
.debug_abbrev 0x000000000000412d 0x75 lib/lib.a(close.o)
.debug_abbrev 0x00000000000041a2 0x2c lib/lib.a(errno.o)
.debug_abbrev 0x00000000000041ce 0xa1 lib/lib.a(write.o)
.debug_abbrev 0x000000000000426f 0x75 lib/lib.a(dup.o)
.debug_abbrev 0x00000000000042e4 0x73 lib/lib.a(setsid.o)
.debug_abbrev 0x0000000000004357 0x85 lib/lib.a(execve.o)
.debug_abbrev 0x00000000000043dc 0xb6 lib/lib.a(wait.o)
.debug_abbrev 0x0000000000004492 0xe9 lib/lib.a(string.o)
.debug_abbrev 0x000000000000457b 0x119 lib/lib.a(malloc.o)
.debug_line 0x0000000000000000 0x47b9
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x0000000000000000 0x1a7 init/main.o
.debug_line 0x00000000000001a7 0xe86 kernel/kernel.o
.debug_line 0x000000000000102d 0x274 mm/mm.o
.debug_line 0x00000000000012a1 0x1c50 fs/fs.o
.debug_line 0x0000000000002ef1 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_line 0x0000000000003088 0x24c kernel/blk_drv/blk_drv.a(floppy.o)
.debug_line 0x00000000000032d4 0x2bf kernel/blk_drv/blk_drv.a(hd.o)
.debug_line 0x0000000000003593 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_line 0x00000000000036f3 0x33b kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_line 0x0000000000003a2e 0x3ab kernel/chr_drv/chr_drv.a(console.o)
.debug_line 0x0000000000003dd9 0xd9 kernel/chr_drv/chr_drv.a(serial.o)
.debug_line 0x0000000000003eb2 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_line 0x000000000000408d 0xe1 kernel/math/math.a(math_emulate.o)
.debug_line 0x000000000000416e 0x28 lib/lib.a(ctype.o)
.debug_line 0x0000000000004196 0x39 lib/lib.a(_exit.o)
.debug_line 0x00000000000041cf 0x62 lib/lib.a(open.o)
.debug_line 0x0000000000004231 0x5c lib/lib.a(close.o)
.debug_line 0x000000000000428d 0x28 lib/lib.a(errno.o)
.debug_line 0x00000000000042b5 0x76 lib/lib.a(write.o)
.debug_line 0x000000000000432b 0x5a lib/lib.a(dup.o)
.debug_line 0x0000000000004385 0x77 lib/lib.a(setsid.o)
.debug_line 0x00000000000043fc 0x5d lib/lib.a(execve.o)
.debug_line 0x0000000000004459 0x7a lib/lib.a(wait.o)
.debug_line 0x00000000000044d3 0xc6 lib/lib.a(string.o)
.debug_line 0x00000000000012a1 0x1d86 fs/fs.o
.debug_line 0x0000000000003027 0x197 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.debug_line 0x00000000000031be 0x24c kernel/blk_drv/blk_drv.a(floppy.o)
.debug_line 0x000000000000340a 0x2bf kernel/blk_drv/blk_drv.a(hd.o)
.debug_line 0x00000000000036c9 0x160 kernel/blk_drv/blk_drv.a(ramdisk.o)
.debug_line 0x0000000000003829 0x33b kernel/chr_drv/chr_drv.a(tty_io.o)
.debug_line 0x0000000000003b64 0x3ab kernel/chr_drv/chr_drv.a(console.o)
.debug_line 0x0000000000003f0f 0xd9 kernel/chr_drv/chr_drv.a(serial.o)
.debug_line 0x0000000000003fe8 0x1db kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.debug_line 0x00000000000041c3 0xe1 kernel/math/math.a(math_emulate.o)
.debug_line 0x00000000000042a4 0x28 lib/lib.a(ctype.o)
.debug_line 0x00000000000042cc 0x39 lib/lib.a(_exit.o)
.debug_line 0x0000000000004305 0x62 lib/lib.a(open.o)
.debug_line 0x0000000000004367 0x5c lib/lib.a(close.o)
.debug_line 0x00000000000043c3 0x28 lib/lib.a(errno.o)
.debug_line 0x00000000000043eb 0x76 lib/lib.a(write.o)
.debug_line 0x0000000000004461 0x5a lib/lib.a(dup.o)
.debug_line 0x00000000000044bb 0x77 lib/lib.a(setsid.o)
.debug_line 0x0000000000004532 0x5d lib/lib.a(execve.o)
.debug_line 0x000000000000458f 0x7a lib/lib.a(wait.o)
.debug_line 0x0000000000004609 0xc6 lib/lib.a(string.o)
.debug_line 0x00000000000046cf 0xea lib/lib.a(malloc.o)
.debug_frame
*(.debug_frame)
.debug_str 0x0000000000000000 0x2093
.debug_str 0x0000000000000000 0x217e
*(.debug_str)
.debug_str 0x0000000000000000 0x1c0 init/main.o
0x1ff (size before relaxing)
.debug_str 0x00000000000001c0 0xac0 kernel/kernel.o
0x2332 (size before relaxing)
.debug_str 0x0000000000000c80 0x185 mm/mm.o
0x4e0 (size before relaxing)
.debug_str 0x0000000000000e05 0x904 fs/fs.o
0x49ab (size before relaxing)
.debug_str 0x0000000000001709 0xf0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x491 (size before relaxing)
.debug_str 0x00000000000017f9 0x1cf kernel/blk_drv/blk_drv.a(floppy.o)
0x673 (size before relaxing)
.debug_str 0x00000000000019c8 0x15e kernel/blk_drv/blk_drv.a(hd.o)
0x5e8 (size before relaxing)
.debug_str 0x0000000000001b26 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x58a (size before relaxing)
.debug_str 0x0000000000001b69 0xfb kernel/chr_drv/chr_drv.a(tty_io.o)
0x4e3 (size before relaxing)
.debug_str 0x0000000000001c64 0x1b9 kernel/chr_drv/chr_drv.a(console.o)
0x5b7 (size before relaxing)
.debug_str 0x0000000000001e1d 0x1a kernel/chr_drv/chr_drv.a(serial.o)
0x3fc (size before relaxing)
.debug_str 0x0000000000001e37 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x4a7 (size before relaxing)
.debug_str 0x0000000000001ec2 0x70 kernel/math/math.a(math_emulate.o)
0x392 (size before relaxing)
.debug_str 0x0000000000001f32 0x8d lib/lib.a(ctype.o)
0xb6 (size before relaxing)
.debug_str 0x0000000000001fbf 0x8 lib/lib.a(_exit.o)
0xe2 (size before relaxing)
.debug_str 0x0000000000000000 0x1bc init/main.o
0x1fb (size before relaxing)
.debug_str 0x00000000000001bc 0xabc kernel/kernel.o
0x230a (size before relaxing)
.debug_str 0x0000000000000c78 0x181 mm/mm.o
0x4dc (size before relaxing)
.debug_str 0x0000000000000df9 0x994 fs/fs.o
0x4e20 (size before relaxing)
.debug_str 0x000000000000178d 0xec kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x48d (size before relaxing)
.debug_str 0x0000000000001879 0x1cf kernel/blk_drv/blk_drv.a(floppy.o)
0x66f (size before relaxing)
.debug_str 0x0000000000001a48 0x15e kernel/blk_drv/blk_drv.a(hd.o)
0x5e4 (size before relaxing)
.debug_str 0x0000000000001ba6 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x586 (size before relaxing)
.debug_str 0x0000000000001be9 0xf7 kernel/chr_drv/chr_drv.a(tty_io.o)
0x4df (size before relaxing)
.debug_str 0x0000000000001ce0 0x1b9 kernel/chr_drv/chr_drv.a(console.o)
0x5b3 (size before relaxing)
.debug_str 0x0000000000001e99 0x1a kernel/chr_drv/chr_drv.a(serial.o)
0x3f8 (size before relaxing)
.debug_str 0x0000000000001eb3 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x4a3 (size before relaxing)
.debug_str 0x0000000000001f3e 0x6c kernel/math/math.a(math_emulate.o)
0x38e (size before relaxing)
.debug_str 0x0000000000001faa 0x89 lib/lib.a(ctype.o)
0xb2 (size before relaxing)
.debug_str 0x0000000000002033 0x8 lib/lib.a(_exit.o)
0xde (size before relaxing)
.debug_str 0x0000000000000000 0x8 lib/lib.a(open.o)
0xf2 (size before relaxing)
.debug_str 0x0000000000001fc7 0x8 lib/lib.a(close.o)
0xe4 (size before relaxing)
.debug_str 0x0000000000001fcf 0x8 lib/lib.a(errno.o)
0x93 (size before relaxing)
0xee (size before relaxing)
.debug_str 0x000000000000203b 0x8 lib/lib.a(close.o)
0xe0 (size before relaxing)
.debug_str 0x0000000000002043 0x8 lib/lib.a(errno.o)
0x8f (size before relaxing)
.debug_str 0x0000000000000000 0x8 lib/lib.a(write.o)
0xf0 (size before relaxing)
.debug_str 0x0000000000001fd7 0x6 lib/lib.a(dup.o)
0xdc (size before relaxing)
.debug_str 0x0000000000001fdd 0x9 lib/lib.a(setsid.o)
0xec (size before relaxing)
.debug_str 0x0000000000001fe6 0x9 lib/lib.a(execve.o)
0xf5 (size before relaxing)
.debug_str 0x0000000000001fef 0x11 lib/lib.a(wait.o)
0x102 (size before relaxing)
.debug_str 0x0000000000002000 0x93 lib/lib.a(string.o)
0x147 (size before relaxing)
.debug_str 0x000000000000204b 0x6 lib/lib.a(dup.o)
0xd8 (size before relaxing)
.debug_str 0x0000000000002051 0x9 lib/lib.a(setsid.o)
0xe8 (size before relaxing)
.debug_str 0x000000000000205a 0x9 lib/lib.a(execve.o)
0xf1 (size before relaxing)
.debug_str 0x0000000000002063 0x11 lib/lib.a(wait.o)
0xfe (size before relaxing)
.debug_str 0x0000000000002074 0x93 lib/lib.a(string.o)
0x143 (size before relaxing)
.debug_str 0x0000000000002107 0x77 lib/lib.a(malloc.o)
0x15e (size before relaxing)
.debug_loc
*(.debug_loc)

@ -18,7 +18,7 @@ CPP =gcc -E -nostdinc -I../include
OBJS= open.o read_write.o inode.o file_table.o buffer.o super.o \
block_dev.o char_dev.o file_dev.o stat.o exec.o pipe.o namei.o \
bitmap.o fcntl.o ioctl.o truncate.o select.o
bitmap.o fcntl.o ioctl.o truncate.o select.o mysystem_call.o
fs.o: $(OBJS)
$(LD) -r -o fs.o $(OBJS)

Binary file not shown.

@ -0,0 +1,290 @@
#define __LIBRARY__
#include <unistd.h>
#include <stdarg.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <asm/segment.h>
#include <sys/stat.h>
#include <fcntl.h>
#define BUF_MAX 4096
#define DIRBUF 8192
#define NAME_MAX 14
struct dirent {
long d_ino;
off_t d_off;
unsigned short d_reclen;
char d_name[NAME_MAX+1];
};
/*参数count指定该缓冲区的大小*/
int sys_getdents(unsigned int fd,struct linux_dirent *dirp,unsigned int count)
{
if(!count)return -1;/*count is zero*/
if(fd>=NR_OPEN)return -EINVAL;/*fd is over range*/
struct file *file;
struct m_inode * inode;
int ret;
struct buffer_head *hd;
struct dir_entry *de;
struct dirent * temp;
char * buf;
int desize,ldsize,i,ldi;
file=current->filp[fd];
if(!file)return ENOTDIR;/*the file is not exist or not file*/
ldsize = sizeof(struct dirent);
desize = sizeof(struct dir_entry);
inode = file ->f_inode;
temp = (struct dirent *)malloc(ldsize);/* //the inter veriable */
buf = (char*)malloc(ldsize);
/*get the inode's bread*/
hd = bread(inode->i_dev , inode->i_zone[0]);
ldi=0;
ret=0;
for (;ret<inode->i_size;ret += desize){
if (ldi >= count-ldsize)
break; /* full */
de = (struct dir_entry *)(hd->b_data + ret);/* de is set to the current dir_entry */
if (!de -> inode )/* to skip if there is no data in de */
continue;
/*To write, copying current dirent, */
temp->d_ino = de->inode;
temp->d_off = 0;
temp->d_reclen = ldsize;
strcpy(temp->d_name,de->name);
/* by put_fs_byte to write back data to the usr */
memcpy(buf, temp, ldsize);
for (i=0;i < ldsize;i++){
put_fs_byte(*(buf+i), ((char*)dirp)+i+ldi);
}
/* memcpy(temp, buf, ldsize); */
ldi += ldsize;
}
return ldi;
}
int do_execve2(unsigned long * eip,long tmp,char * filename,
char ** argv, char ** envp)
{
struct m_inode * inode;
struct buffer_head * bh;
struct exec ex;
unsigned long page[MAX_ARG_PAGES];
int i,argc,envc;
int e_uid, e_gid;
int retval;
int sh_bang = 0;
unsigned long p=PAGE_SIZE*MAX_ARG_PAGES-4;
if ((0xffff & eip[1]) != 0x000f)
panic("execve called from supervisor mode");
for (i=0 ; i<MAX_ARG_PAGES ; i++) /* clear page-table */
page[i]=0;
if (!(inode=namei(filename))) /* get executables inode */
return -ENOENT;
argc = count(argv);
envc = count(envp);
restart_interp:
if (!S_ISREG(inode->i_mode)) { /* must be regular file */
retval = -EACCES;
goto exec_error2;
}
i = inode->i_mode;
e_uid = (i & S_ISUID) ? inode->i_uid : current->euid;
e_gid = (i & S_ISGID) ? inode->i_gid : current->egid;
if (current->euid == inode->i_uid)
i >>= 6;
else if (current->egid == inode->i_gid)
i >>= 3;
if (!(i & 1) &&
!((inode->i_mode & 0111) && suser())) {
retval = -ENOEXEC;
goto exec_error2;
}
if (!(bh = bread(inode->i_dev,inode->i_zone[0]))) {
retval = -EACCES;
goto exec_error2;
}
ex = *((struct exec *) bh->b_data); /* read exec-header */
if ((bh->b_data[0] == '#') && (bh->b_data[1] == '!') && (!sh_bang)) {
/*
* This section does the #! interpretation.
* Sorta complicated, but hopefully it will work. -TYT
*/
char buf[1023], *cp, *interp, *i_name, *i_arg;
unsigned long old_fs;
strncpy(buf, bh->b_data+2, 1022);
brelse(bh);
iput(inode);
buf[1022] = '\0';
if (cp = strchr(buf, '\n')) {
*cp = '\0';
for (cp = buf; (*cp == ' ') || (*cp == '\t'); cp++);
}
if (!cp || *cp == '\0') {
retval = -ENOEXEC; /* No interpreter name found */
goto exec_error1;
}
interp = i_name = cp;
i_arg = 0;
for ( ; *cp && (*cp != ' ') && (*cp != '\t'); cp++) {
if (*cp == '/')
i_name = cp+1;
}
if (*cp) {
*cp++ = '\0';
i_arg = cp;
}
/*
* OK, we've parsed out the interpreter name and
* (optional) argument.
*/
if (sh_bang++ == 0) {
p = copy_strings(envc, envp, page, p, 0);
p = copy_strings(--argc, argv+1, page, p, 0);
}
/*
* Splice in (1) the interpreter's name for argv[0]
* (2) (optional) argument to interpreter
* (3) filename of shell script
*
* This is done in reverse order, because of how the
* user environment and arguments are stored.
*/
p = copy_strings(1, &filename, page, p, 1);
argc++;
if (i_arg) {
p = copy_strings(1, &i_arg, page, p, 2);
argc++;
}
p = copy_strings(1, &i_name, page, p, 2);
argc++;
if (!p) {
retval = -ENOMEM;
goto exec_error1;
}
/*
* OK, now restart the process with the interpreter's inode.
*/
old_fs = get_fs();
set_fs(get_ds());
if (!(inode=namei(interp))) { /* get executables inode */
set_fs(old_fs);
retval = -ENOENT;
goto exec_error1;
}
set_fs(old_fs);
goto restart_interp;
}
brelse(bh);
if (N_MAGIC(ex) != ZMAGIC || ex.a_trsize || ex.a_drsize ||
ex.a_text+ex.a_data+ex.a_bss>0x3000000 ||
inode->i_size < ex.a_text+ex.a_data+ex.a_syms+N_TXTOFF(ex)) {
retval = -ENOEXEC;
goto exec_error2;
}
if (N_TXTOFF(ex) != BLOCK_SIZE) {
printk("%s: N_TXTOFF != BLOCK_SIZE. See a.out.h.", filename);
retval = -ENOEXEC;
goto exec_error2;
}
if (!sh_bang) {
p = copy_strings(envc,envp,page,p,0);
p = copy_strings(argc,argv,page,p,0);
if (!p) {
retval = -ENOMEM;
goto exec_error2;
}
}
/* OK, This is the point of no return */
if (current->executable)
iput(current->executable);
current->executable = inode;
for (i=0 ; i<32 ; i++)
current->sigaction[i].sa_handler = NULL;
for (i=0 ; i<NR_OPEN ; i++)
if ((current->close_on_exec>>i)&1)
sys_close(i);
current->close_on_exec = 0;
free_page_tables(get_base(current->ldt[1]),get_limit(0x0f));
free_page_tables(get_base(current->ldt[2]),get_limit(0x17));
/*we should rewrite here*/
/**/
if (last_task_used_math == current)
last_task_used_math = NULL;
current->used_math = 0;
p += change_ldt(ex.a_text,page)-MAX_ARG_PAGES*PAGE_SIZE;
p = (unsigned long) create_tables((char *)p,argc,envc);
current->brk = ex.a_bss +
(current->end_data = ex.a_data +
(current->end_code = ex.a_text));
current->start_stack = p & 0xfffff000;
current->euid = e_uid;
current->egid = e_gid;
i = ex.a_text+ex.a_data;
while (i&0xfff)
put_fs_byte(0,(char *) (i++));
eip[0] = ex.a_entry; /* eip, magic happens :-) */
eip[3] = p; /* stack pointer */
return 0;
exec_error2:
iput(inode);
exec_error1:
for (i=0 ; i<MAX_ARG_PAGES ; i++)
free_page(page[i]);
return(retval);
}
int sys_sleep(unsigned int seconds)
{
sys_signal(SIGALRM,SIG_IGN);
sys_alarm(seconds);
if(sys_pause()!=-1)
{
/* printk("sleep\n");*/
return 0;
}
/*printk("do not sleep\n");*/
return -1;
}
/*just full the sys_call_table[89]*/
int sys_something()
{
return 0;
}
/*find the father inode constantly*/
long sys_getcwd(char *buf,size_t size)
{
return 0;
}

@ -89,8 +89,11 @@ extern int sys_symlink();
extern int sys_lstat();
extern int sys_readlink();
extern int sys_uselib();
extern int sys_execve2();
extern int sys_getdents();
extern int sys_something();
extern int sys_sleep();
extern int sys_getcwd();
@ -109,7 +112,7 @@ sys_getpgrp, sys_setsid, sys_sigaction, sys_sgetmask, sys_ssetmask,
sys_setreuid,sys_setregid, sys_sigsuspend, sys_sigpending, sys_sethostname,
sys_setrlimit, sys_getrlimit, sys_getrusage, sys_gettimeofday,
sys_settimeofday, sys_getgroups, sys_setgroups, sys_select, sys_symlink,
sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, sys_sleep, sys_getcwd};
sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, sys_something ,sys_sleep, sys_getcwd};
/* So we don't have to do any more manual updating.... */
int NR_syscalls = sizeof(sys_call_table)/sizeof(fn_ptr);

@ -58,8 +58,8 @@
#ifdef __LIBRARY__
#define __NR_setup 0 /* used only by init, to get system going */
#define _exit 1
#define _fork 2
#define __NR_exit 1
#define __NR_fork 2
#define __NR_read 3
#define __NR_write 4
#define __NR_open 5
@ -144,8 +144,12 @@
#define __NR_lstat 84
#define __NR_readlink 85
#define __NR_uselib 86
#define __NR_execve2 87
#define __NR_getdents 88
#define __NR_something 89
#define __NR_sleep 90
#define __NR_getcwd 91
#define _syscall0(type,name) \
@ -268,6 +272,13 @@ int getppid(void);
pid_t getpgrp(void);
pid_t setsid(void);
long getcwd(char *buf,size_t size);
int something(void);
int sleep(unsigned int seconds);
int execve2(const char *path,char *argv[],char *envp[]);
#define __always_inline inline __attribute__((always_inline))
#endif

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save