master
Huan 5 years ago
parent 7eea208b33
commit b6ed791046

Binary file not shown.

@ -480,110 +480,110 @@
00018e23 t put_fs_byte
00018e3b t put_fs_long
00018e47 T sys_getdents
00018fea T sys_pipe2
000191fd T sys_sleep
00019236 T sys_getcwd
0001d5c8 d envp_rc
0001d5dc d envp
0001d600 D sys_call_table
0001d770 D NR_syscalls
0001d780 d init_task
0001e780 D current
0001e7a0 D task
0001e8a0 D stack_start
0001e8a8 D current_DOR
0001e8c0 d thisname.1955
0001e900 d month
0001e940 d last_inode.1935
0001e944 D start_buffer
0001e960 d crw_table
0001e980 d ioctl_table
0001e9a0 d floppy_type
0001ea60 d cur_spec1
0001ea64 d cur_rate
0001ea68 d floppy
0001ea6c d current_track
0001ea70 d callable.1844
0001ea80 D tty_table
00020fa0 D table_list
00020fc0 d quotient
00020fe0 D _ctype
000210e1 B __bss_start
000210e1 D _edata
00021100 b printbuf
00021500 b memory_end
00021504 b buffer_memory_end
00021508 b main_memory_start
00021520 B jiffies
00021524 B startup_time
00021528 B last_task_used_math
0002153c b mon_timer
0002154c b moff_timer
00021560 b timer_list
00021860 b next_timer
00021864 B last_pid
00021880 b buf
00021c80 b HIGH_MEMORY
00021ca0 b mem_map
00022ba0 B inode_table
000232a0 B nr_buffers
000232a4 b free_list
000232a8 b buffer_wait
000232ac B ROOT_DEV
000232e0 B blk_dev
00023318 B do_floppy
0002331c B selected
00023324 b recalibrate
00023328 b reset
0002332c b seek
00023330 b reply_buffer
00023337 b current_drive
00023338 b sector
00023339 b head
0002333a b track
0002333b b seek_track
0002333c b command
00023340 B do_hd
00023360 B hd_info
00023390 b recalibrate
00023394 b reset
00023398 b NR_HD
000233a0 b hd
000233f0 B rd_length
000233f4 b cr_flag.1923
00023400 B beepcount
00023404 b video_type
00023408 b video_num_columns
0002340c b video_size_row
00023410 b video_num_lines
00023414 b video_page
00023418 b video_mem_start
0002341c b video_mem_end
00023420 b video_port_reg
00023422 b video_port_val
00023424 b video_erase_char
00023428 b origin
0002342c b scr_end
00023430 b pos
00023434 b x
00023438 b y
0002343c b top
00023440 b bottom
00023444 b state
00023448 b npar
00023460 b par
000234a0 b ques
000234a4 b saved_x
000234a8 b saved_y
000234c0 B drive_info
000234e0 B user_stack
000244e0 B hash_table
000249c0 B super_block
00024d20 B file_table
00025120 B request
000255a0 B rd_start
000255a4 B _ctmp
000255a8 B errno
000255ac B ___strtok
000255b0 B end
000255b0 B _end
0001901d T sys_pipe2
00019230 T sys_sleep
00019269 T sys_getcwd
0001d608 d envp_rc
0001d61c d envp
0001d640 D sys_call_table
0001d7b0 D NR_syscalls
0001d7c0 d init_task
0001e7c0 D current
0001e7e0 D task
0001e8e0 D stack_start
0001e8e8 D current_DOR
0001e900 d thisname.1955
0001e940 d month
0001e980 d last_inode.1935
0001e984 D start_buffer
0001e9a0 d crw_table
0001e9c0 d ioctl_table
0001e9e0 d floppy_type
0001eaa0 d cur_spec1
0001eaa4 d cur_rate
0001eaa8 d floppy
0001eaac d current_track
0001eab0 d callable.1844
0001eac0 D tty_table
00020fe0 D table_list
00021000 d quotient
00021020 D _ctype
00021121 B __bss_start
00021121 D _edata
00021140 b printbuf
00021540 b memory_end
00021544 b buffer_memory_end
00021548 b main_memory_start
00021560 B jiffies
00021564 B startup_time
00021568 B last_task_used_math
0002157c b mon_timer
0002158c b moff_timer
000215a0 b timer_list
000218a0 b next_timer
000218a4 B last_pid
000218c0 b buf
00021cc0 b HIGH_MEMORY
00021ce0 b mem_map
00022be0 B inode_table
000232e0 B nr_buffers
000232e4 b free_list
000232e8 b buffer_wait
000232ec B ROOT_DEV
00023320 B blk_dev
00023358 B do_floppy
0002335c B selected
00023364 b recalibrate
00023368 b reset
0002336c b seek
00023370 b reply_buffer
00023377 b current_drive
00023378 b sector
00023379 b head
0002337a b track
0002337b b seek_track
0002337c b command
00023380 B do_hd
000233a0 B hd_info
000233d0 b recalibrate
000233d4 b reset
000233d8 b NR_HD
000233e0 b hd
00023430 B rd_length
00023434 b cr_flag.1923
00023440 B beepcount
00023444 b video_type
00023448 b video_num_columns
0002344c b video_size_row
00023450 b video_num_lines
00023454 b video_page
00023458 b video_mem_start
0002345c b video_mem_end
00023460 b video_port_reg
00023462 b video_port_val
00023464 b video_erase_char
00023468 b origin
0002346c b scr_end
00023470 b pos
00023474 b x
00023478 b y
0002347c b top
00023480 b bottom
00023484 b state
00023488 b npar
000234a0 b par
000234e0 b ques
000234e4 b saved_x
000234e8 b saved_y
00023500 B drive_info
00023520 B user_stack
00024520 B hash_table
00024a00 B super_block
00024d60 B file_table
00025160 B request
000255e0 B rd_start
000255e4 B _ctmp
000255e8 B errno
000255ec B ___strtok
000255f0 B end
000255f0 B _end

@ -205,7 +205,7 @@ LOAD lib/lib.a
*(.iplt)
.iplt 0x0000000000000000 0x0 boot/head.o
.text 0x0000000000000000 0x195a8
.text 0x0000000000000000 0x195db
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
@ -515,38 +515,38 @@ LOAD lib/lib.a
0x0000000000018d9d memcmp
0x0000000000018dc7 memchr
0x0000000000018dff memset
.text 0x0000000000018e23 0x785 lib/lib.a(update.o)
.text 0x0000000000018e23 0x7b8 lib/lib.a(update.o)
0x0000000000018e47 sys_getdents
0x0000000000018fea sys_pipe2
0x00000000000191fd sys_sleep
0x0000000000019236 sys_getcwd
0x000000000001901d sys_pipe2
0x0000000000019230 sys_sleep
0x0000000000019269 sys_getcwd
*(.gnu.warning)
.fini
*(SORT(.fini))
0x00000000000195a8 PROVIDE (__etext, .)
0x00000000000195a8 PROVIDE (_etext, .)
0x00000000000195a8 PROVIDE (etext, .)
0x00000000000195db PROVIDE (__etext, .)
0x00000000000195db PROVIDE (_etext, .)
0x00000000000195db PROVIDE (etext, .)
.rodata 0x00000000000195a8 0x1422
.rodata 0x00000000000195dc 0x1422
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata 0x00000000000195a8 0xc9 init/main.o
*fill* 0x0000000000019671 0x3
.rodata 0x0000000000019674 0x438 kernel/kernel.o
.rodata 0x0000000000019aac 0x1b5 mm/mm.o
*fill* 0x0000000000019c61 0x3
.rodata 0x0000000000019c64 0x640 fs/fs.o
.rodata 0x000000000001a2a4 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
*fill* 0x000000000001a31e 0x2
.rodata 0x000000000001a320 0x133 kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001a453 0x1
.rodata 0x000000000001a454 0x19b kernel/blk_drv/blk_drv.a(hd.o)
*fill* 0x000000000001a5ef 0x1
.rodata 0x000000000001a5f0 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o)
.rodata 0x000000000001a778 0x17d kernel/chr_drv/chr_drv.a(console.o)
*fill* 0x000000000001a8f5 0x3
.rodata 0x000000000001a8f8 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.rodata 0x000000000001a978 0x52 kernel/math/math.a(math_emulate.o)
.rodata 0x00000000000195dc 0xc9 init/main.o
*fill* 0x00000000000196a5 0x3
.rodata 0x00000000000196a8 0x438 kernel/kernel.o
.rodata 0x0000000000019ae0 0x1b5 mm/mm.o
*fill* 0x0000000000019c95 0x3
.rodata 0x0000000000019c98 0x640 fs/fs.o
.rodata 0x000000000001a2d8 0x7a kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
*fill* 0x000000000001a352 0x2
.rodata 0x000000000001a354 0x133 kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001a487 0x1
.rodata 0x000000000001a488 0x19b kernel/blk_drv/blk_drv.a(hd.o)
*fill* 0x000000000001a623 0x1
.rodata 0x000000000001a624 0x188 kernel/blk_drv/blk_drv.a(ramdisk.o)
.rodata 0x000000000001a7ac 0x17d kernel/chr_drv/chr_drv.a(console.o)
*fill* 0x000000000001a929 0x3
.rodata 0x000000000001a92c 0x80 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.rodata 0x000000000001a9ac 0x52 kernel/math/math.a(math_emulate.o)
.rodata1
*(.rodata1)
@ -554,52 +554,52 @@ LOAD lib/lib.a
.eh_frame_hdr
*(.eh_frame_hdr)
.eh_frame 0x000000000001a9cc 0x2be8
.eh_frame 0x000000000001aa00 0x2be8
*(.eh_frame)
.eh_frame 0x000000000001a9cc 0x108 init/main.o
.eh_frame 0x000000000001aad4 0xb04 kernel/kernel.o
.eh_frame 0x000000000001aa00 0x108 init/main.o
.eh_frame 0x000000000001ab08 0xb04 kernel/kernel.o
0xbf4 (size before relaxing)
.eh_frame 0x000000000001b5d8 0x1b0 mm/mm.o
.eh_frame 0x000000000001b60c 0x1b0 mm/mm.o
0x1c8 (size before relaxing)
.eh_frame 0x000000000001b788 0xe78 fs/fs.o
.eh_frame 0x000000000001b7bc 0xe78 fs/fs.o
0x1010 (size before relaxing)
.eh_frame 0x000000000001c600 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.eh_frame 0x000000000001c634 0x98 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0xb0 (size before relaxing)
.eh_frame 0x000000000001c698 0x23c kernel/blk_drv/blk_drv.a(floppy.o)
.eh_frame 0x000000000001c6cc 0x23c kernel/blk_drv/blk_drv.a(floppy.o)
0x254 (size before relaxing)
.eh_frame 0x000000000001c8d4 0x1e8 kernel/blk_drv/blk_drv.a(hd.o)
.eh_frame 0x000000000001c908 0x1e8 kernel/blk_drv/blk_drv.a(hd.o)
0x200 (size before relaxing)
.eh_frame 0x000000000001cabc 0xac kernel/blk_drv/blk_drv.a(ramdisk.o)
.eh_frame 0x000000000001caf0 0xac kernel/blk_drv/blk_drv.a(ramdisk.o)
0xc4 (size before relaxing)
.eh_frame 0x000000000001cb68 0x12c kernel/chr_drv/chr_drv.a(tty_io.o)
.eh_frame 0x000000000001cb9c 0x12c kernel/chr_drv/chr_drv.a(tty_io.o)
0x144 (size before relaxing)
.eh_frame 0x000000000001cc94 0x2c0 kernel/chr_drv/chr_drv.a(console.o)
.eh_frame 0x000000000001ccc8 0x2c0 kernel/chr_drv/chr_drv.a(console.o)
0x2d8 (size before relaxing)
.eh_frame 0x000000000001cf54 0x54 kernel/chr_drv/chr_drv.a(serial.o)
.eh_frame 0x000000000001cf88 0x54 kernel/chr_drv/chr_drv.a(serial.o)
0x6c (size before relaxing)
.eh_frame 0x000000000001cfa8 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.eh_frame 0x000000000001cfdc 0x148 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x160 (size before relaxing)
.eh_frame 0x000000000001d0f0 0x5c kernel/math/math.a(math_emulate.o)
.eh_frame 0x000000000001d124 0x5c kernel/math/math.a(math_emulate.o)
0x74 (size before relaxing)
.eh_frame 0x000000000001d14c 0x1c lib/lib.a(_exit.o)
.eh_frame 0x000000000001d180 0x1c lib/lib.a(_exit.o)
0x34 (size before relaxing)
.eh_frame 0x000000000001d168 0x24 lib/lib.a(open.o)
.eh_frame 0x000000000001d19c 0x24 lib/lib.a(open.o)
0x3c (size before relaxing)
.eh_frame 0x000000000001d18c 0x20 lib/lib.a(close.o)
.eh_frame 0x000000000001d1c0 0x20 lib/lib.a(close.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001d1ac 0x20 lib/lib.a(write.o)
.eh_frame 0x000000000001d1e0 0x20 lib/lib.a(write.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001d1cc 0x20 lib/lib.a(dup.o)
.eh_frame 0x000000000001d200 0x20 lib/lib.a(dup.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001d1ec 0x18 lib/lib.a(setsid.o)
.eh_frame 0x000000000001d220 0x18 lib/lib.a(setsid.o)
0x30 (size before relaxing)
.eh_frame 0x000000000001d204 0x20 lib/lib.a(execve.o)
.eh_frame 0x000000000001d238 0x20 lib/lib.a(execve.o)
0x38 (size before relaxing)
.eh_frame 0x000000000001d224 0x38 lib/lib.a(wait.o)
.eh_frame 0x000000000001d258 0x38 lib/lib.a(wait.o)
0x50 (size before relaxing)
.eh_frame 0x000000000001d25c 0x2b0 lib/lib.a(string.o)
.eh_frame 0x000000000001d290 0x2b0 lib/lib.a(string.o)
0x2c8 (size before relaxing)
.eh_frame 0x000000000001d50c 0xa8 lib/lib.a(update.o)
.eh_frame 0x000000000001d540 0xa8 lib/lib.a(update.o)
0xc0 (size before relaxing)
.gcc_except_table
@ -607,7 +607,7 @@ LOAD lib/lib.a
.exception_ranges
*(.exception_ranges .exception_ranges*)
0x000000000001d5b4 . = .
0x000000000001d5e8 . = .
.eh_frame
*(.eh_frame)
@ -625,22 +625,22 @@ LOAD lib/lib.a
*(.tbss .tbss.* .gnu.linkonce.tb.*)
*(.tcommon)
.preinit_array 0x000000000001d5b4 0x0
0x000000000001d5b4 PROVIDE (__preinit_array_start, .)
.preinit_array 0x000000000001d5e8 0x0
0x000000000001d5e8 PROVIDE (__preinit_array_start, .)
*(.preinit_array)
0x000000000001d5b4 PROVIDE (__preinit_array_end, .)
0x000000000001d5e8 PROVIDE (__preinit_array_end, .)
.init_array 0x000000000001d5b4 0x0
0x000000000001d5b4 PROVIDE (__init_array_start, .)
.init_array 0x000000000001d5e8 0x0
0x000000000001d5e8 PROVIDE (__init_array_start, .)
*(SORT(.init_array.*) SORT(.ctors.*))
*(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors)
0x000000000001d5b4 PROVIDE (__init_array_end, .)
0x000000000001d5e8 PROVIDE (__init_array_end, .)
.fini_array 0x000000000001d5b4 0x0
0x000000000001d5b4 PROVIDE (__fini_array_start, .)
.fini_array 0x000000000001d5e8 0x0
0x000000000001d5e8 PROVIDE (__fini_array_start, .)
*(SORT(.fini_array.*) SORT(.dtors.*))
*(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors)
0x000000000001d5b4 PROVIDE (__fini_array_end, .)
0x000000000001d5e8 PROVIDE (__fini_array_end, .)
.ctors
*crtbegin.o(.ctors)
@ -670,142 +670,142 @@ LOAD lib/lib.a
*(.got)
*(.igot)
.got.plt 0x000000000001d5b4 0x0
.got.plt 0x000000000001d5e8 0x0
*(.got.plt)
*(.igot.plt)
.igot.plt 0x0000000000000000 0x0 boot/head.o
.data 0x000000000001d5c0 0x3b21
.data 0x000000000001d600 0x3b21
*(.data .data.* .gnu.linkonce.d.*)
.data 0x000000000001d5c0 0x0 boot/head.o
.data 0x000000000001d5c0 0x28 init/main.o
*fill* 0x000000000001d5e8 0x18
.data 0x000000000001d600 0x1330 kernel/kernel.o
0x000000000001d600 sys_call_table
0x000000000001d770 NR_syscalls
0x000000000001e780 current
0x000000000001e7a0 task
0x000000000001e8a0 stack_start
0x000000000001e8a8 current_DOR
.data 0x000000000001e930 0x0 mm/mm.o
*fill* 0x000000000001e930 0x10
.data 0x000000000001e940 0x60 fs/fs.o
0x000000000001e944 start_buffer
.data 0x000000000001e9a0 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.data 0x000000000001e9a0 0xcd kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001ea6d 0x3
.data 0x000000000001ea70 0x4 kernel/blk_drv/blk_drv.a(hd.o)
.data 0x000000000001ea74 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o)
*fill* 0x000000000001ea74 0xc
.data 0x000000000001ea80 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o)
0x000000000001ea80 tty_table
0x0000000000020fa0 table_list
.data 0x0000000000020fb8 0x1 kernel/chr_drv/chr_drv.a(console.o)
.data 0x0000000000020fb9 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.data 0x0000000000020fb9 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.data 0x0000000000020fb9 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
*fill* 0x0000000000020fb9 0x7
.data 0x0000000000020fc0 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.data 0x0000000000020fe0 0x0 kernel/math/math.a(math_emulate.o)
.data 0x0000000000020fe0 0x101 lib/lib.a(ctype.o)
0x0000000000020fe0 _ctype
.data 0x00000000000210e1 0x0 lib/lib.a(_exit.o)
.data 0x00000000000210e1 0x0 lib/lib.a(open.o)
.data 0x00000000000210e1 0x0 lib/lib.a(close.o)
.data 0x00000000000210e1 0x0 lib/lib.a(errno.o)
.data 0x00000000000210e1 0x0 lib/lib.a(write.o)
.data 0x00000000000210e1 0x0 lib/lib.a(dup.o)
.data 0x00000000000210e1 0x0 lib/lib.a(setsid.o)
.data 0x00000000000210e1 0x0 lib/lib.a(execve.o)
.data 0x00000000000210e1 0x0 lib/lib.a(wait.o)
.data 0x00000000000210e1 0x0 lib/lib.a(string.o)
.data 0x00000000000210e1 0x0 lib/lib.a(update.o)
.data 0x000000000001d600 0x0 boot/head.o
.data 0x000000000001d600 0x28 init/main.o
*fill* 0x000000000001d628 0x18
.data 0x000000000001d640 0x1330 kernel/kernel.o
0x000000000001d640 sys_call_table
0x000000000001d7b0 NR_syscalls
0x000000000001e7c0 current
0x000000000001e7e0 task
0x000000000001e8e0 stack_start
0x000000000001e8e8 current_DOR
.data 0x000000000001e970 0x0 mm/mm.o
*fill* 0x000000000001e970 0x10
.data 0x000000000001e980 0x60 fs/fs.o
0x000000000001e984 start_buffer
.data 0x000000000001e9e0 0x0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
.data 0x000000000001e9e0 0xcd kernel/blk_drv/blk_drv.a(floppy.o)
*fill* 0x000000000001eaad 0x3
.data 0x000000000001eab0 0x4 kernel/blk_drv/blk_drv.a(hd.o)
.data 0x000000000001eab4 0x0 kernel/blk_drv/blk_drv.a(ramdisk.o)
*fill* 0x000000000001eab4 0xc
.data 0x000000000001eac0 0x2538 kernel/chr_drv/chr_drv.a(tty_io.o)
0x000000000001eac0 tty_table
0x0000000000020fe0 table_list
.data 0x0000000000020ff8 0x1 kernel/chr_drv/chr_drv.a(console.o)
.data 0x0000000000020ff9 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.data 0x0000000000020ff9 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.data 0x0000000000020ff9 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
*fill* 0x0000000000020ff9 0x7
.data 0x0000000000021000 0x20 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.data 0x0000000000021020 0x0 kernel/math/math.a(math_emulate.o)
.data 0x0000000000021020 0x101 lib/lib.a(ctype.o)
0x0000000000021020 _ctype
.data 0x0000000000021121 0x0 lib/lib.a(_exit.o)
.data 0x0000000000021121 0x0 lib/lib.a(open.o)
.data 0x0000000000021121 0x0 lib/lib.a(close.o)
.data 0x0000000000021121 0x0 lib/lib.a(errno.o)
.data 0x0000000000021121 0x0 lib/lib.a(write.o)
.data 0x0000000000021121 0x0 lib/lib.a(dup.o)
.data 0x0000000000021121 0x0 lib/lib.a(setsid.o)
.data 0x0000000000021121 0x0 lib/lib.a(execve.o)
.data 0x0000000000021121 0x0 lib/lib.a(wait.o)
.data 0x0000000000021121 0x0 lib/lib.a(string.o)
.data 0x0000000000021121 0x0 lib/lib.a(update.o)
.data1
*(.data1)
0x00000000000210e1 _edata = .
0x00000000000210e1 PROVIDE (edata, .)
0x00000000000210e1 . = .
0x00000000000210e1 __bss_start = .
0x0000000000021121 _edata = .
0x0000000000021121 PROVIDE (edata, .)
0x0000000000021121 . = .
0x0000000000021121 __bss_start = .
.bss 0x0000000000021100 0x44b0
.bss 0x0000000000021140 0x44b0
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x0000000000021100 0x0 boot/head.o
.bss 0x0000000000021100 0x40c init/main.o
*fill* 0x000000000002150c 0x14
.bss 0x0000000000021520 0x760 kernel/kernel.o
0x0000000000021520 jiffies
0x0000000000021524 startup_time
0x0000000000021528 last_task_used_math
0x0000000000021864 last_pid
.bss 0x0000000000021c80 0xf20 mm/mm.o
.bss 0x0000000000022ba0 0x710 fs/fs.o
0x0000000000022ba0 inode_table
0x00000000000232a0 nr_buffers
0x00000000000232ac ROOT_DEV
*fill* 0x00000000000232b0 0x10
.bss 0x00000000000232c0 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x00000000000232c0 wait_for_request
0x00000000000232e0 blk_dev
.bss 0x0000000000023318 0x25 kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000023318 do_floppy
0x000000000002331c selected
0x0000000000023320 wait_on_floppy_select
*fill* 0x000000000002333d 0x3
.bss 0x0000000000023340 0xb0 kernel/blk_drv/blk_drv.a(hd.o)
0x0000000000023340 do_hd
0x0000000000023360 hd_info
.bss 0x00000000000233f0 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x00000000000233f0 rd_length
.bss 0x00000000000233f4 0x4 kernel/chr_drv/chr_drv.a(tty_io.o)
*fill* 0x00000000000233f8 0x8
.bss 0x0000000000023400 0xac kernel/chr_drv/chr_drv.a(console.o)
0x0000000000023400 beepcount
.bss 0x00000000000234ac 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.bss 0x00000000000234ac 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.bss 0x00000000000234ac 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
.bss 0x00000000000234ac 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.bss 0x00000000000234ac 0x0 kernel/math/math.a(math_emulate.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(ctype.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(_exit.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(open.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(close.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(errno.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(write.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(dup.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(setsid.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(execve.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(wait.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(string.o)
.bss 0x00000000000234ac 0x0 lib/lib.a(update.o)
.bss 0x0000000000021140 0x0 boot/head.o
.bss 0x0000000000021140 0x40c init/main.o
*fill* 0x000000000002154c 0x14
.bss 0x0000000000021560 0x760 kernel/kernel.o
0x0000000000021560 jiffies
0x0000000000021564 startup_time
0x0000000000021568 last_task_used_math
0x00000000000218a4 last_pid
.bss 0x0000000000021cc0 0xf20 mm/mm.o
.bss 0x0000000000022be0 0x710 fs/fs.o
0x0000000000022be0 inode_table
0x00000000000232e0 nr_buffers
0x00000000000232ec ROOT_DEV
*fill* 0x00000000000232f0 0x10
.bss 0x0000000000023300 0x58 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000023300 wait_for_request
0x0000000000023320 blk_dev
.bss 0x0000000000023358 0x25 kernel/blk_drv/blk_drv.a(floppy.o)
0x0000000000023358 do_floppy
0x000000000002335c selected
0x0000000000023360 wait_on_floppy_select
*fill* 0x000000000002337d 0x3
.bss 0x0000000000023380 0xb0 kernel/blk_drv/blk_drv.a(hd.o)
0x0000000000023380 do_hd
0x00000000000233a0 hd_info
.bss 0x0000000000023430 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x0000000000023430 rd_length
.bss 0x0000000000023434 0x4 kernel/chr_drv/chr_drv.a(tty_io.o)
*fill* 0x0000000000023438 0x8
.bss 0x0000000000023440 0xac kernel/chr_drv/chr_drv.a(console.o)
0x0000000000023440 beepcount
.bss 0x00000000000234ec 0x0 kernel/chr_drv/chr_drv.a(keyboard.2.o)
.bss 0x00000000000234ec 0x0 kernel/chr_drv/chr_drv.a(serial.o)
.bss 0x00000000000234ec 0x0 kernel/chr_drv/chr_drv.a(rs_io.o)
.bss 0x00000000000234ec 0x0 kernel/chr_drv/chr_drv.a(tty_ioctl.o)
.bss 0x00000000000234ec 0x0 kernel/math/math.a(math_emulate.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(ctype.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(_exit.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(open.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(close.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(errno.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(write.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(dup.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(setsid.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(execve.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(wait.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(string.o)
.bss 0x00000000000234ec 0x0 lib/lib.a(update.o)
*(COMMON)
*fill* 0x00000000000234ac 0x14
COMMON 0x00000000000234c0 0x20 init/main.o
0x00000000000234c0 drive_info
COMMON 0x00000000000234e0 0x1000 kernel/kernel.o
0x00000000000234e0 user_stack
COMMON 0x00000000000244e0 0xc40 fs/fs.o
0x00000000000244e0 hash_table
0x00000000000249c0 super_block
0x0000000000024d20 file_table
COMMON 0x0000000000025120 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000025120 request
COMMON 0x00000000000255a0 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x00000000000255a0 rd_start
COMMON 0x00000000000255a4 0x1 lib/lib.a(ctype.o)
0x00000000000255a4 _ctmp
*fill* 0x00000000000255a5 0x3
COMMON 0x00000000000255a8 0x4 lib/lib.a(errno.o)
0x00000000000255a8 errno
COMMON 0x00000000000255ac 0x4 lib/lib.a(string.o)
0x00000000000255ac ___strtok
0x00000000000255b0 . = ALIGN ((. != 0x0)?0x4:0x1)
0x00000000000255b0 . = ALIGN (0x4)
0x00000000000255b0 . = SEGMENT_START ("ldata-segment", .)
0x00000000000255b0 . = ALIGN (0x4)
0x00000000000255b0 _end = .
0x00000000000255b0 PROVIDE (end, .)
*fill* 0x00000000000234ec 0x14
COMMON 0x0000000000023500 0x20 init/main.o
0x0000000000023500 drive_info
COMMON 0x0000000000023520 0x1000 kernel/kernel.o
0x0000000000023520 user_stack
COMMON 0x0000000000024520 0xc40 fs/fs.o
0x0000000000024520 hash_table
0x0000000000024a00 super_block
0x0000000000024d60 file_table
COMMON 0x0000000000025160 0x480 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x0000000000025160 request
COMMON 0x00000000000255e0 0x4 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x00000000000255e0 rd_start
COMMON 0x00000000000255e4 0x1 lib/lib.a(ctype.o)
0x00000000000255e4 _ctmp
*fill* 0x00000000000255e5 0x3
COMMON 0x00000000000255e8 0x4 lib/lib.a(errno.o)
0x00000000000255e8 errno
COMMON 0x00000000000255ec 0x4 lib/lib.a(string.o)
0x00000000000255ec ___strtok
0x00000000000255f0 . = ALIGN ((. != 0x0)?0x4:0x1)
0x00000000000255f0 . = ALIGN (0x4)
0x00000000000255f0 . = SEGMENT_START ("ldata-segment", .)
0x00000000000255f0 . = ALIGN (0x4)
0x00000000000255f0 _end = .
0x00000000000255f0 PROVIDE (end, .)
.stab
*(.stab)
@ -978,7 +978,7 @@ LOAD lib/lib.a
.debug_abbrev 0x00000000000043b1 0xe9 lib/lib.a(string.o)
.debug_abbrev 0x000000000000449a 0x18b lib/lib.a(update.o)
.debug_line 0x0000000000000000 0x4a3f
.debug_line 0x0000000000000000 0x4a50
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x0000000000000000 0x1e5 init/main.o
.debug_line 0x00000000000001e5 0xe86 kernel/kernel.o
@ -1004,62 +1004,62 @@ LOAD lib/lib.a
.debug_line 0x00000000000046c2 0x5d lib/lib.a(execve.o)
.debug_line 0x000000000000471f 0x7a lib/lib.a(wait.o)
.debug_line 0x0000000000004799 0xc6 lib/lib.a(string.o)
.debug_line 0x000000000000485f 0x1e0 lib/lib.a(update.o)
.debug_line 0x000000000000485f 0x1f1 lib/lib.a(update.o)
.debug_frame
*(.debug_frame)
.debug_str 0x0000000000000000 0x2232
.debug_str 0x0000000000000000 0x21be
*(.debug_str)
.debug_str 0x0000000000000000 0x3c8 init/main.o
0x46b (size before relaxing)
.debug_str 0x00000000000003c8 0x8ff kernel/kernel.o
0x2339 (size before relaxing)
.debug_str 0x0000000000000cc7 0x19a mm/mm.o
.debug_str 0x00000000000003c8 0x8cf kernel/kernel.o
0x2378 (size before relaxing)
.debug_str 0x0000000000000c97 0x19a mm/mm.o
0x4f5 (size before relaxing)
.debug_str 0x0000000000000e61 0x975 fs/fs.o
0x4a0c (size before relaxing)
.debug_str 0x00000000000017d6 0xf0 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x491 (size before relaxing)
.debug_str 0x00000000000018c6 0x1cf kernel/blk_drv/blk_drv.a(floppy.o)
0x673 (size before relaxing)
.debug_str 0x0000000000001a95 0x15e kernel/blk_drv/blk_drv.a(hd.o)
0x5e8 (size before relaxing)
.debug_str 0x0000000000001bf3 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x58a (size before relaxing)
.debug_str 0x0000000000001c36 0xfb kernel/chr_drv/chr_drv.a(tty_io.o)
0x4e3 (size before relaxing)
.debug_str 0x0000000000001d31 0x1b9 kernel/chr_drv/chr_drv.a(console.o)
0x5b7 (size before relaxing)
.debug_str 0x0000000000001eea 0x1a kernel/chr_drv/chr_drv.a(serial.o)
0x3fc (size before relaxing)
.debug_str 0x0000000000001f04 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x4a7 (size before relaxing)
.debug_str 0x0000000000001f8f 0x70 kernel/math/math.a(math_emulate.o)
0x392 (size before relaxing)
.debug_str 0x0000000000001fff 0x8d lib/lib.a(ctype.o)
0xb6 (size before relaxing)
.debug_str 0x000000000000208c 0x3c lib/lib.a(_exit.o)
.debug_str 0x0000000000000e31 0x949 fs/fs.o
0x4a75 (size before relaxing)
.debug_str 0x000000000000177a 0xf7 kernel/blk_drv/blk_drv.a(ll_rw_blk.o)
0x498 (size before relaxing)
.debug_str 0x0000000000001871 0x1cf kernel/blk_drv/blk_drv.a(floppy.o)
0x67a (size before relaxing)
.debug_str 0x0000000000001a40 0x15e kernel/blk_drv/blk_drv.a(hd.o)
0x5ef (size before relaxing)
.debug_str 0x0000000000001b9e 0x43 kernel/blk_drv/blk_drv.a(ramdisk.o)
0x591 (size before relaxing)
.debug_str 0x0000000000001be1 0x102 kernel/chr_drv/chr_drv.a(tty_io.o)
0x4ea (size before relaxing)
.debug_str 0x0000000000001ce3 0x1b9 kernel/chr_drv/chr_drv.a(console.o)
0x5be (size before relaxing)
.debug_str 0x0000000000001e9c 0x1a kernel/chr_drv/chr_drv.a(serial.o)
0x403 (size before relaxing)
.debug_str 0x0000000000001eb6 0x8b kernel/chr_drv/chr_drv.a(tty_ioctl.o)
0x4ae (size before relaxing)
.debug_str 0x0000000000001f41 0x77 kernel/math/math.a(math_emulate.o)
0x399 (size before relaxing)
.debug_str 0x0000000000001fb8 0x94 lib/lib.a(ctype.o)
0xbd (size before relaxing)
.debug_str 0x000000000000204c 0x8 lib/lib.a(_exit.o)
0xe9 (size before relaxing)
.debug_str 0x0000000000000000 0x3c lib/lib.a(open.o)
.debug_str 0x0000000000000000 0x8 lib/lib.a(open.o)
0xf9 (size before relaxing)
.debug_str 0x00000000000020c8 0x8 lib/lib.a(close.o)
.debug_str 0x0000000000002054 0x8 lib/lib.a(close.o)
0xeb (size before relaxing)
.debug_str 0x00000000000020d0 0x8 lib/lib.a(errno.o)
0x93 (size before relaxing)
.debug_str 0x000000000000205c 0x8 lib/lib.a(errno.o)
0x9a (size before relaxing)
.debug_str 0x0000000000000000 0x8 lib/lib.a(write.o)
0xf7 (size before relaxing)
.debug_str 0x00000000000020d8 0x6 lib/lib.a(dup.o)
.debug_str 0x0000000000002064 0x6 lib/lib.a(dup.o)
0xe3 (size before relaxing)
.debug_str 0x00000000000020de 0x9 lib/lib.a(setsid.o)
.debug_str 0x000000000000206a 0x9 lib/lib.a(setsid.o)
0xf3 (size before relaxing)
.debug_str 0x00000000000020e7 0x9 lib/lib.a(execve.o)
.debug_str 0x0000000000002073 0x9 lib/lib.a(execve.o)
0xfc (size before relaxing)
.debug_str 0x00000000000020f0 0x11 lib/lib.a(wait.o)
.debug_str 0x000000000000207c 0x11 lib/lib.a(wait.o)
0x109 (size before relaxing)
.debug_str 0x0000000000002101 0x93 lib/lib.a(string.o)
0x147 (size before relaxing)
.debug_str 0x0000000000002194 0x9e lib/lib.a(update.o)
.debug_str 0x000000000000208d 0x93 lib/lib.a(string.o)
0x14e (size before relaxing)
.debug_str 0x0000000000002120 0x9e lib/lib.a(update.o)
0x4e6 (size before relaxing)
.debug_loc

@ -360,10 +360,7 @@ exec_error1:
/*
* 'do_execve2()' executes a new program by using execve2
<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/exec.c
* without page fault
=======
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/exec.c
*/
int do_execve2(unsigned long * eip,long tmp,char * filename,
char ** argv, char ** envp)
@ -378,11 +375,7 @@ int do_execve2(unsigned long * eip,long tmp,char * filename,
int sh_bang = 0;
unsigned long p=PAGE_SIZE*MAX_ARG_PAGES-4;
unsigned long tmp1; /* by lzh */
<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/exec.c
printk("This is do_execve2!\n");
=======
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/exec.c
if ((0xffff & eip[1]) != 0x000f)
panic("execve called from supervisor mode");
for (i=0 ; i<MAX_ARG_PAGES ; i++) /* clear page-table */
@ -529,27 +522,16 @@ restart_interp:
current->start_stack = p & 0xfffff000;
current->euid = e_uid;
current->egid = e_gid;
<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/exec.c
/* printk("current->brk=%x, current->start_code=%x\n",current->brk,current->start_code); */
/* by lzh */
for (tmp1 = 0; tmp1 <= ((current->brk - 1) & 0xfffff000); tmp1 += 4096)
do_no_page_my(5, tmp1 + current->start_code);
/* by lzh */
=======
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/exec.c
i = ex.a_text+ex.a_data;
while (i&0xfff)
put_fs_byte(0,(char *) (i++));
eip[0] = ex.a_entry; /* eip, magic happens :-) */
eip[3] = p; /* stack pointer */
<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/exec.c
=======
/* printk("current->brk=%x, current->start_code=%x\n",current->brk,current->start_code); */
/* by lzh */
for (tmp1 = 0; tmp1 <= ((current->brk - 1) & 0xfffff000); tmp1 += 4096)
do_no_page_my(5, tmp1 + current->start_code);
/* by lzh */
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/exec.c
return 0;
exec_error2:
iput(inode);

Binary file not shown.

Binary file not shown.

@ -10,14 +10,11 @@
#include <linux/sched.h>
#include <linux/kernel.h>
#include <asm/segment.h>
#include <sys/types.h>
#include <new.h>
#define MIN(a,b) (((a)<(b))?(a):(b))
#define MAX(a,b) (((a)>(b))?(a):(b))
#define PATH_MAX 255
int file_read(struct m_inode * inode, struct file * filp, char * buf, int count)
int file_read(struct m_inode * inode, struct file * filp, char * buf, int count)
{
int left,chars,nr;
struct buffer_head * bh;
@ -91,64 +88,3 @@ int file_write(struct m_inode * inode, struct file * filp, char * buf, int count
}
return (i?i:-1);
}
int sys_getdents(unsigned int fd, struct linux_dirent *d, unsigned int count)
{
struct linux_dirent tmp;
struct file * file;
struct m_inode * inode;
struct buffer_head * block;
struct dir_entry * ptr;
char * buf;
int bpos;
int dpos;
int ld_size;
int i;
ld_size = sizeof(struct linux_dirent); /* size of linux_dirent */
file = current->filp[fd]; /* opened file */
if (fd >= NR_OPEN)
return -EINVAL;
if (!count)
return -1;
if (!file)
return ENOTDIR;
inode = file->f_inode;
block = bread(inode->i_dev,inode->i_zone[0]);
/* count: size of linux_dirent[], target
* dd_size: size of dir_entry[], block 400?
*/
for (dpos = 0,bpos = 0;bpos<inode->i_size;bpos += sizeof(struct dir_entry)) {
if (dpos >= (count-ld_size))
return 0; /* d full */
ptr = (struct dir_entry *) (bpos + block->b_data);
if (!ptr -> inode)
continue; /* when it 's empty inode, jump it */
tmp.d_ino = ptr -> inode;
for (i = 0; i < 14; i++) tmp.d_name[i] = ptr -> name[i];
tmp.d_reclen = sizeof(tmp);
tmp.d_off = 0;
buf = &tmp;
for (i = 0; i < tmp.d_reclen; i++){
put_fs_byte(*(buf+i),((char*)d)+i+dpos); /* move data from kernel to user */
}
dpos += tmp.d_reclen;
}
return dpos;
}
long sys_mmap(void *start, size_t len, int prot, int flags,
int fd, off_t off)
{
return 0;
}
int sys_munmap(void * start, size_t len)
{
return 0;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -29,7 +29,6 @@
#define MAY_EXEC 1
#define MAY_WRITE 2
#define MAY_READ 4
#define PATH_MAX 255
/*
* permission()
@ -94,10 +93,7 @@ static int match_kernel(int len,const char * name,struct dir_entry * de)
);
return same;
}
<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/namei.c
=======
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/namei.c
/*
* find_entry()
*
@ -173,11 +169,7 @@ static struct buffer_head * find_entry(struct m_inode ** dir,
return NULL;
}
<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/namei.c
struct buffer_head * find_entry_kernel(struct m_inode ** dir,
=======
static struct buffer_head * find_entry_kernel(struct m_inode ** dir,
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/namei.c
const char * name, int namelen, struct dir_entry ** res_dir)
{
int entries;
@ -198,11 +190,7 @@ static struct buffer_head * find_entry_kernel(struct m_inode ** dir,
if (!namelen)
return NULL;
/* check for '..', as we might have to do some "magic" for it */
<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/namei.c
if (namelen==2 && *name=='.' && *(name+1)=='.') {
=======
if (namelen==2 && *(name)=='.' && *(name+1)=='.') {
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/namei.c
/* '..' in a pseudo-root results in a faked '.' (just change namelen) */
if ((*dir) == current->root)
namelen=1;
@ -362,11 +350,7 @@ static struct m_inode * get_dir(const char * pathname)
}
}
<<<<<<< HEAD:linux-0.11-lab/1/linux/fs/namei.c
struct m_inode * get_dir_kernel(const char * pathname)
=======
static struct m_inode * get_dir_kernel(const char * pathname)
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/fs/namei.c
{
char c;
const char * thisname;
@ -922,67 +906,3 @@ int sys_link(const char * oldname, const char * newname)
iput(oldinode);
return 0;
}
char * sys_getcwd(char * buf, size_t size)
{
struct m_inode * inode;
struct buffer_head * block;
struct dir_entry * ptr;
char path[PATH_MAX];
char path_buf[PATH_MAX];
char back[PATH_MAX];
int bpos;
int inode_down;
int inode_up;
int i;
strcpy(back,"..");
if (!(inode = get_dir_kernel(back)))
return NULL;
if (!(block = bread(inode->i_dev,inode->i_zone[0])))
return NULL;
ptr = (struct dir_entry *) (block->b_data);
inode_down = ptr->inode;
for (i = 0; i < PATH_MAX; i+=3)
{
back[2+i] = '/';
back[3+i] = '.';
back[4+i] = '.';
if (!(inode = get_dir_kernel(back)))
return NULL;
if (!(block = bread(inode->i_dev,inode->i_zone[0])))
return NULL;
ptr = (struct dir_entry *) (block->b_data);
inode_up = ptr->inode;
for (bpos = 0;bpos<inode->i_size;bpos += sizeof(struct dir_entry))
{
ptr = (struct dir_entry *) (bpos + block->b_data);
if (!ptr -> inode)
continue; /* when it 's empty inode, jump it */
if (ptr->inode == inode_down)
{
strcpy(path_buf,path);
memset(path,0,PATH_MAX);
if (ptr->name[0] == '.')
{
path[0] = '/';
strcat(path,path_buf);
goto end;
}
strcpy(path,ptr->name);
path[strlen(path)] = '/';
strcat(path,path_buf);
inode_down = inode_up;
break;
}
}
}
end:
path[strlen(path)-1] = 0;
if (size < strlen(path))
return NULL;
for (i = 0; i < strlen(path); i++){
put_fs_byte(*(path+i),buf+i);
}
return buf;
}

Binary file not shown.

Binary file not shown.

@ -109,45 +109,3 @@ int sys_pipe(unsigned long * fildes)
put_fs_long(fd[1],1+fildes);
return 0;
}
int sys_pipe2(int * fildes, int x)
{
struct m_inode * inode;
struct file * f[2];
int fd[2];
int i,j;
if(x != 0) return 0; /* add condition */
j=0;
for(i=0;j<2 && i<NR_FILE;i++)
if (!file_table[i].f_count)
(f[j++]=i+file_table)->f_count++;
if (j==1)
f[0]->f_count=0;
if (j<2)
return -1;
j=0;
for(i=0;j<2 && i<NR_OPEN;i++)
if (!current->filp[i]) {
current->filp[ fd[j]=i ] = f[j];
j++;
}
if (j==1)
current->filp[fd[0]]=NULL;
if (j<2) {
f[0]->f_count=f[1]->f_count=0;
return -1;
}
if (!(inode=get_pipe_inode())) {
current->filp[fd[0]] =
current->filp[fd[1]] = NULL;
f[0]->f_count = f[1]->f_count = 0;
return -1;
}
f[0]->f_inode = f[1]->f_inode = inode;
f[0]->f_pos = f[1]->f_pos = 0;
f[0]->f_mode = 1; /* read */
f[1]->f_mode = 2; /* write */
put_fs_long(fd[0],0+fildes);
put_fs_long(fd[1],1+fildes);
return 0;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -94,13 +94,6 @@ extern int sys_getdents();
extern int sys_pipe2();
extern int sys_sleep();
extern int sys_getcwd();
<<<<<<< HEAD:linux-0.11-lab/1/linux/include/linux/sys.h
=======
extern int sys_mmap();
extern int sys_munmap();
extern int sys_clone();
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/include/linux/sys.h
fn_ptr sys_call_table[] = { sys_setup, sys_exit, sys_fork, sys_read,
sys_write, sys_open, sys_close, sys_waitpid, sys_creat, sys_link,
@ -117,13 +110,8 @@ sys_getpgrp, sys_setsid, sys_sigaction, sys_sgetmask, sys_ssetmask,
sys_setreuid,sys_setregid, sys_sigsuspend, sys_sigpending, sys_sethostname,
sys_setrlimit, sys_getrlimit, sys_getrusage, sys_gettimeofday,
sys_settimeofday, sys_getgroups, sys_setgroups, sys_select, sys_symlink,
<<<<<<< HEAD:linux-0.11-lab/1/linux/include/linux/sys.h
sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents, sys_pipe2,
sys_sleep, sys_getcwd };
=======
sys_lstat, sys_readlink, sys_uselib, sys_execve2, sys_getdents,
sys_pipe2, sys_sleep, sys_getcwd, sys_mmap, sys_munmap, sys_clone };
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/include/linux/sys.h
/* So we don't have to do any more manual updating.... */
int NR_syscalls = sizeof(sys_call_table)/sizeof(fn_ptr);

@ -144,11 +144,7 @@
#define __NR_lstat 84
#define __NR_readlink 85
#define __NR_uselib 86
<<<<<<< HEAD:linux-0.11-lab/1/linux/include/unistd.h
#define __NR_execve2 87
=======
#define __NR_execve2 87 /* by lzh */
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/include/unistd.h
#define __NR_getdents 88
#define __NR_pipe2 89
#define __NR_sleep 90
@ -157,10 +153,6 @@
#define __NR_munmap 93
#define __NR_clone 94
<<<<<<< HEAD:linux-0.11-lab/1/linux/include/unistd.h
=======
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/include/unistd.h
#define _syscall0(type,name) \
type name(void) \
{ \

@ -213,8 +213,4 @@ void print_nr(int sid)
{
if (sid > 86)
printk(" --syscall: sid=%d, pid=%d\n", sid, current->pid);
<<<<<<< HEAD:linux-0.11-lab/1/linux/init/main.c
}
=======
}
>>>>>>> 5fa5668828e5effb6ddee83634da390ce88f4aa9:linux-0.11-lab/0/linux/init/main.c

@ -146,115 +146,3 @@ int find_empty_process(void)
return i;
return -EAGAIN;
}
int copy_mem_clone(int nr,struct task_struct * p)
{
unsigned long old_data_base,new_data_base,data_limit;
unsigned long old_code_base,new_code_base,code_limit;
long stack_floor,stack_ceil;
code_limit=get_limit(0x0f);
data_limit=get_limit(0x17);
old_code_base = get_base(current->ldt[1]);
old_data_base = get_base(current->ldt[2]);
if (old_data_base != old_code_base)
panic("We don't support separate I&D");
if (data_limit < code_limit)
panic("Bad data_limit");
new_data_base = new_code_base = nr * 0x4000000;
p->start_code = new_code_base;
set_base(p->ldt[1],new_code_base);
set_base(p->ldt[2],new_data_base);
stack_floor = (p->start_stack / 0x4000000) * 0x4000000;
stack_ceil = ((p->start_stack + 0x3ffffff) / 0x4000000) * 0x4000000;
if (copy_page_tables_clone(old_data_base,new_data_base,stack_floor))
{
free_page_tables(new_data_base,stack_floor);
return -ENOMEM;
}
if (stack_floor != stack_ceil)
if (copy_page_tables_fixed(old_data_base + stack_floor,new_data_base + stack_floor,p->start_stack))
{
free_page_tables(new_data_base + stack_floor,0x4000000);
return -ENOMEM;
}
if (copy_page_tables(old_data_base + stack_ceil,new_data_base + stack_ceil,data_limit - stack_ceil))
{
free_page_tables(new_data_base + stack_ceil,data_limit - stack_ceil);
return -ENOMEM;
}
return 0;
}
int copy_process_clone(int nr,long ebp,long edi,long esi,long gs,long none,
long ebx,long ecx,long edx,
long fs,long es,long ds,
long eip,long cs,long eflags,long esp,long ss)
{
struct task_struct *p;
int i;
struct file *f;
p = (struct task_struct *) get_free_page();
if (!p)
return -EAGAIN;
task[nr] = p;
__asm__ volatile ("cld"); /* by wyj */
*p = *current; /* NOTE! this doesn't copy the supervisor stack */
p->state = TASK_UNINTERRUPTIBLE;
p->pid = last_pid;
p->father = current->pid;
p->counter = p->priority;
p->signal = 0;
p->alarm = 0;
p->leader = 0; /* process leadership doesn't inherit */
p->utime = p->stime = 0;
p->cutime = p->cstime = 0;
p->start_time = jiffies;
p->start_stack = ecx - 4096; /* by lzh */
p->tss.back_link = 0;
p->tss.esp0 = PAGE_SIZE + (long) p;
p->tss.ss0 = 0x10;
p->tss.eip = ebx; /* by lzh */
p->tss.eflags = eflags;
p->tss.eax = 0;
p->tss.ecx = ecx;
p->tss.edx = edx;
p->tss.ebx = ebx;
p->tss.esp = ecx; /* by lzh */
p->tss.ebp = ebp;
p->tss.esi = esi;
p->tss.edi = edi;
p->tss.es = es & 0xffff;
p->tss.cs = cs & 0xffff;
p->tss.ss = ss & 0xffff;
p->tss.ds = ds & 0xffff;
p->tss.fs = fs & 0xffff;
p->tss.gs = gs & 0xffff;
p->tss.ldt = _LDT(nr);
p->tss.trace_bitmap = 0x80000000;
if (last_task_used_math == current)
__asm__("clts ; fnsave %0"::"m" (p->tss.i387));
if (copy_mem_clone(nr,p)) {
task[nr] = NULL;
free_page((long) p);
return -EAGAIN;
}
for (i=0; i<NR_OPEN;i++)
if (f=p->filp[i])
f->f_count++;
if (current->pwd)
current->pwd->i_count++;
if (current->root)
current->root->i_count++;
if (current->executable)
current->executable->i_count++;
set_tss_desc(gdt+(nr<<1)+FIRST_TSS_ENTRY,&(p->tss));
set_ldt_desc(gdt+(nr<<1)+FIRST_LDT_ENTRY,&(p->ldt));
p->state = TASK_RUNNING; /* do this last, just in case */
return last_pid;
}

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

Loading…
Cancel
Save