Datasheet
Semihosting
5-16 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI0058D
5.4.6 SYS_READ (0x06)
Reads the contents of a file into a buffer. The file position is specified either:
• explicitly by a SYS_SEEK
• implicitly one byte beyond the previous SYS_READ or SYS_WRITE request.
The file position is at the start of the file when the file is opened, and is lost when the
file is closed. Perform the file operation as a single action whenever possible.For
example, do not split a read of 16KB into four 4KB chunks unless there is no alternative.
Entry
On entry, r1 contains a pointer to a four-word data block:
word 1 This contains a handle for a file previously opened with SYS_OPEN.
word 2 This points to a buffer.
word 3 This contains the number of bytes to read to the buffer from the file.
Return
On exit:
• r0 contains zero if the call is successful.
• If r0 contains the same value as word 3, the call has failed and end-of-file is
assumed.
• If r0 contains a greater value than word 3, the call was partially successful. No
error is assumed, but the buffer has not been filled.
If the handle is for an interactive device (that is, SYS_ISTTY returns –1 for this handle),
a nonzero return from SYS_READ indicates that the line read did not fill the buffer.