Rev 6926 | Rev 6929 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6926 | Rev 6927 | ||
---|---|---|---|
Line 11... | Line 11... | ||
11 | EBADF equ 9 |
11 | EBADF equ 9 |
12 | EFAULT equ 14 |
12 | EFAULT equ 14 |
13 | ;EINVAL equ 22 11 defined in stack.inc |
13 | ;EINVAL equ 22 11 defined in stack.inc |
14 | ENFILE equ 23 |
14 | ENFILE equ 23 |
15 | EMFILE equ 24 |
15 | EMFILE equ 24 |
16 | - | ||
- | 16 | EPIPE equ 32 |
|
Line 17... | Line 17... | ||
17 | 17 | ||
18 | FILEOP_CLOSE equ 0 |
18 | FILEOP_CLOSE equ 0 |
19 | FILEOP_READ equ 1 |
19 | FILEOP_READ equ 1 |
Line 47... | Line 47... | ||
47 | dd sys_futex ;5 reserved |
47 | dd sys_futex ;5 reserved |
48 | dd sys_futex ;6 reserved |
48 | dd sys_futex ;6 reserved |
49 | dd sys_futex ;7 reserved |
49 | dd sys_futex ;7 reserved |
50 | dd sys_posix.fail ;8 sys_open |
50 | dd sys_posix.fail ;8 sys_open |
51 | dd sys_posix.fail ;9 sys_close |
51 | dd sys_posix.fail ;9 sys_close |
52 | dd sys_posix.fail ;10 sys_read |
52 | dd sys_read ;10 read() |
53 | dd sys_posix.fail ;11 sys_write |
53 | dd sys_write ;11 write() |
54 | dd sys_posix.fail ;12 sys_dup3 |
54 | dd sys_posix.fail ;12 sys_dup3 |
55 | dd sys_pipe2 ;13 |
55 | dd sys_pipe2 ;13 |
56 | .end: |
56 | .end: |
57 | endg |
57 | endg |
Line 93... | Line 93... | ||
93 | jmp dword [eax+FILEOP_READ*4] |
93 | jmp dword [eax+FILEOP_READ*4] |
94 | .fail: |
94 | .fail: |
95 | mov [esp+SYSCALL_STACK._eax], -EBADF |
95 | mov [esp+SYSCALL_STACK._eax], -EBADF |
96 | ret |
96 | ret |
Line -... | Line 97... | ||
- | 97 | ||
- | 98 | ;ssize_t write(int fd, const void *buf, size_t count); |
|
- | 99 | ; ecx fd |
|
- | 100 | ; edx buf |
|
- | 101 | ; esi count |
|
- | 102 | ||
- | 103 | align 4 |
|
- | 104 | sys_write: |
|
- | 105 | cmp ecx, STDERR_FILENO |
|
- | 106 | jbe .fail |
|
- | 107 | cmp ecx, (PROC.pdt_0 - PROC.htab)/4 |
|
- | 108 | jae .fail |
|
- | 109 | ||
- | 110 | mov edi, [current_process] |
|
- | 111 | mov ebp, [edi+PROC.htab+ecx*4] |
|
- | 112 | ||
- | 113 | cmp [ebp+FILED.magic], 'PIPE' |
|
- | 114 | jne .fail |
|
- | 115 | cmp [ebp+FILED.handle], ecx |
|
- | 116 | jne .fail |
|
- | 117 | ||
- | 118 | mov ebp, [ebp+FILED.file] |
|
- | 119 | mov eax, [ebp] |
|
- | 120 | jmp dword [eax+FILEOP_WRITE*4] |
|
- | 121 | .fail: |
|
- | 122 | mov [esp+SYSCALL_STACK._eax], -EBADF |
|
- | 123 | ret |