20 lines
349 B
ArmAsm
20 lines
349 B
ArmAsm
global ft_read
|
|
extern __errno_location
|
|
section .text
|
|
|
|
ft_read:
|
|
mov rax, 0 ;syscall number for read, args are already set at the right place
|
|
syscall
|
|
|
|
cmp rax, 0 ; if return is < 0, it's an error in negative
|
|
jg success
|
|
|
|
neg rax ; inv errno, and set errno
|
|
mov edi, eax
|
|
call __errno_location wrt ..plt
|
|
mov [rax], edi
|
|
mov rax, -1
|
|
|
|
success:
|
|
ret
|