Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #ifndef _NACL_SYSDEP_H | 1 #ifndef _NACL_SYSDEP_H |
| 2 #define _NACL_SYSDEP_H 1 | 2 #define _NACL_SYSDEP_H 1 |
| 3 | 3 |
| 4 #if !defined(__ASSEMBLER__) | 4 #if !defined(__ASSEMBLER__) |
| 5 #include <futex_emulation.h> | 5 #include <futex_emulation.h> |
| 6 #include <irt_syscalls.h> | 6 #include <irt_syscalls.h> |
| 7 #include <lowlevellock.h> | 7 #include <lowlevellock.h> |
| 8 | 8 |
| 9 /* Implementation of all syscalls for use in platform- and OS- independent code | 9 /* Implementation of all syscalls for use in platform- and OS- independent code |
| 10 as inline functions. Each function translates the syscall arguments into IRT | 10 as inline functions. Each function translates the syscall arguments into IRT |
| (...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 591 The system call just returns the length of the buffer filled (which includes | 591 The system call just returns the length of the buffer filled (which includes |
| 592 the ending '\0' character), or zero in case of error. */ | 592 the ending '\0' character), or zero in case of error. */ |
| 593 __extern_always_inline int | 593 __extern_always_inline int |
| 594 INTERNAL_SYSCALL_getcwd_2 (int *err, char *buf, size_t size) | 594 INTERNAL_SYSCALL_getcwd_2 (int *err, char *buf, size_t size) |
| 595 { | 595 { |
| 596 int len; | 596 int len; |
| 597 *err = __nacl_irt_getcwd (buf, size); | 597 *err = __nacl_irt_getcwd (buf, size); |
| 598 if (*err) { | 598 if (*err) { |
| 599 return 0; | 599 return 0; |
| 600 } | 600 } |
| 601 for (len = 0; len < size && buf[len] != '\0'; ++len); | 601 for (len = 0; buf[len] != '\0'; ++len); |
|
Roland McGrath
2014/12/08 20:56:48
Why is it safe to presume it's terminated and not
Sam Clegg
2014/12/08 21:10:29
Because the __nacl_irt_getcwd will fail if it coul
Sam Clegg
2014/12/08 22:38:39
Ok. Done. Although in the case when __nacl_irt_ge
| |
| 602 return len; | 602 return len + 1; |
| 603 } | 603 } |
| 604 | 604 |
| 605 __extern_always_inline gid_t | 605 __extern_always_inline gid_t |
| 606 INTERNAL_SYSCALL_getegid_0 (int *err) | 606 INTERNAL_SYSCALL_getegid_0 (int *err) |
| 607 { | 607 { |
| 608 *err = (38 /* ENOSYS */); | 608 *err = (38 /* ENOSYS */); |
| 609 return 0; | 609 return 0; |
| 610 } | 610 } |
| 611 | 611 |
| 612 __extern_always_inline uid_t | 612 __extern_always_inline uid_t |
| (...skipping 1642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2255 #define PSEUDO_END_ERRVAL(name) \ | 2255 #define PSEUDO_END_ERRVAL(name) \ |
| 2256 END (name) | 2256 END (name) |
| 2257 | 2257 |
| 2258 #undef SYSCALL_ERROR_HANDLER_TLS_STORE | 2258 #undef SYSCALL_ERROR_HANDLER_TLS_STORE |
| 2259 #define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ | 2259 #define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ |
| 2260 movl %gs:0, %eax; \ | 2260 movl %gs:0, %eax; \ |
| 2261 movl src, (%eax,destoff) | 2261 movl src, (%eax,destoff) |
| 2262 | 2262 |
| 2263 #endif | 2263 #endif |
| 2264 #endif | 2264 #endif |
| OLD | NEW |