kernel/vfs: Don't ignore buffer length in write(stream)
This commit is contained in:
parent
d94611a250
commit
73eee3e599
|
@ -233,16 +233,19 @@ shell_clear_buffer:
|
||||||
; outputs:
|
; outputs:
|
||||||
; none
|
; none
|
||||||
print_character_to_terminal:
|
print_character_to_terminal:
|
||||||
|
push r0
|
||||||
push r1
|
push r1
|
||||||
push r2
|
push r2
|
||||||
|
|
||||||
mov.8 [shell_char_buffer], r0
|
mov.8 [shell_char_buffer], r0
|
||||||
|
mov r0, 1
|
||||||
mov r1, [shell_terminal_stream_struct_ptr]
|
mov r1, [shell_terminal_stream_struct_ptr]
|
||||||
mov r2, shell_char_buffer
|
mov r2, shell_char_buffer
|
||||||
call write
|
call write
|
||||||
|
|
||||||
pop r2
|
pop r2
|
||||||
pop r1
|
pop r1
|
||||||
|
pop r0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; print a string to the terminal
|
; print a string to the terminal
|
||||||
|
@ -257,6 +260,7 @@ print_str_to_terminal:
|
||||||
mov r1, [shell_terminal_stream_struct_ptr]
|
mov r1, [shell_terminal_stream_struct_ptr]
|
||||||
mov r2, r0
|
mov r2, r0
|
||||||
print_str_to_terminal_loop:
|
print_str_to_terminal_loop:
|
||||||
|
mov r0, 1
|
||||||
call write
|
call write
|
||||||
inc r2
|
inc r2
|
||||||
cmp.8 [r2], 0x00
|
cmp.8 [r2], 0x00
|
||||||
|
|
|
@ -91,7 +91,7 @@ stream_read:
|
||||||
|
|
||||||
; write specified number of bytes into the specified file
|
; write specified number of bytes into the specified file
|
||||||
; inputs:
|
; inputs:
|
||||||
; r0: number of bytes to write (ignored if file struct is a stream)
|
; r0: number of bytes to write
|
||||||
; r1: pointer to file struct
|
; r1: pointer to file struct
|
||||||
; r2: pointer to source buffer (always 4 bytes if file struct is a stream)
|
; r2: pointer to source buffer (always 4 bytes if file struct is a stream)
|
||||||
; outputs:
|
; outputs:
|
||||||
|
@ -111,6 +111,20 @@ write:
|
||||||
pop r3
|
pop r3
|
||||||
ret
|
ret
|
||||||
stream_write:
|
stream_write:
|
||||||
|
push r31
|
||||||
|
push r2
|
||||||
|
|
||||||
|
mov r31, r0 ; number of bytes to write = loop count
|
||||||
|
stream_write_loop:
|
||||||
|
call stream_write_char
|
||||||
|
inc r2
|
||||||
|
loop stream_write_loop
|
||||||
|
|
||||||
|
pop r2
|
||||||
|
pop r31
|
||||||
|
ret
|
||||||
|
|
||||||
|
stream_write_char:
|
||||||
push r0
|
push r0
|
||||||
push r1
|
push r1
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user