diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-23 06:31:47 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-23 06:31:47 +0100 |
| commit | 28424105e255f0a4c887b6e6a83afd6dce372709 (patch) | |
| tree | 98a3665a7643c7f9b0bf2d75be1ff07e3b7fb647 /ft_read.s | |
| parent | fcc8ce8503f42980e6e8ed390363c8e8dc961363 (diff) | |
| download | libasm-28424105e255f0a4c887b6e6a83afd6dce372709.tar.gz libasm-28424105e255f0a4c887b6e6a83afd6dce372709.tar.bz2 libasm-28424105e255f0a4c887b6e6a83afd6dce372709.zip | |
Added ft_read.s ft_write.s error handling
Diffstat (limited to 'ft_read.s')
| -rw-r--r-- | ft_read.s | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -12,6 +12,10 @@ global _ft_read +%define F_GETFD 1 +%define SYSCALL_READ 0x2000003 +%define SYSCALL_FCNTL 0x200005c + ; int ft_read(int, void*, size_t); _ft_read: cmp rdx, 0 @@ -20,7 +24,19 @@ _ft_read: jl FT_READ_ERROR cmp rsi, 0 je FT_READ_ERROR - mov rax, 0x2000003 + + push rdx + push rsi + xor rsi, rsi + mov esi, F_GETFD + mov rax, SYSCALL_FCNTL + syscall + pop rsi + pop rdx + cmp eax, 0 + jne FT_READ_ERROR + + mov rax, SYSCALL_READ syscall ret FT_READ_ERROR: |
