| OLD | NEW | 
|---|
| 1 #include <sys/stat.h> | 1 #include <sys/stat.h> | 
| 2 #include <sys/time.h> | 2 #include <sys/time.h> | 
| 3 #include <fcntl.h> | 3 #include <fcntl.h> | 
| 4 #include <errno.h> | 4 #include <errno.h> | 
| 5 #include "syscall.h" | 5 #include "syscall.h" | 
| 6 | 6 | 
| 7 int utimensat(int fd, const char *path, const struct timespec times[2], int flag
    s) | 7 int utimensat(int fd, | 
| 8 { | 8               const char* path, | 
| 9 »       int r = __syscall(SYS_utimensat, fd, path, times, flags); | 9               const struct timespec times[2], | 
|  | 10               int flags) { | 
|  | 11   int r = __syscall(SYS_utimensat, fd, path, times, flags); | 
| 10 #ifdef SYS_futimesat | 12 #ifdef SYS_futimesat | 
| 11 »       if (r != -ENOSYS || flags) return __syscall_ret(r); | 13   if (r != -ENOSYS || flags) | 
| 12 »       struct timeval *tv = 0, tmp[2]; | 14     return __syscall_ret(r); | 
| 13 »       if (times) { | 15   struct timeval *tv = 0, tmp[2]; | 
| 14 »       »       int i; | 16   if (times) { | 
| 15 »       »       tv = tmp; | 17     int i; | 
| 16 »       »       for (i=0; i<2; i++) { | 18     tv = tmp; | 
| 17 »       »       »       if (times[i].tv_nsec >= 1000000000ULL) { | 19     for (i = 0; i < 2; i++) { | 
| 18 »       »       »       »       if (times[i].tv_nsec == UTIME_NOW && | 20       if (times[i].tv_nsec >= 1000000000ULL) { | 
| 19 »       »       »       »           times[1-i].tv_nsec == UTIME_NOW) { | 21         if (times[i].tv_nsec == UTIME_NOW && | 
| 20 »       »       »       »       »       tv = 0; | 22             times[1 - i].tv_nsec == UTIME_NOW) { | 
| 21 »       »       »       »       »       break; | 23           tv = 0; | 
| 22 »       »       »       »       } | 24           break; | 
| 23 »       »       »       »       if (times[i].tv_nsec == UTIME_OMIT) | 25         } | 
| 24 »       »       »       »       »       return __syscall_ret(-ENOSYS); | 26         if (times[i].tv_nsec == UTIME_OMIT) | 
| 25 »       »       »       »       return __syscall_ret(-EINVAL); | 27           return __syscall_ret(-ENOSYS); | 
| 26 »       »       »       } | 28         return __syscall_ret(-EINVAL); | 
| 27 »       »       »       tmp[i].tv_sec = times[i].tv_sec; | 29       } | 
| 28 »       »       »       tmp[i].tv_usec = times[i].tv_nsec / 1000; | 30       tmp[i].tv_sec = times[i].tv_sec; | 
| 29 »       »       } | 31       tmp[i].tv_usec = times[i].tv_nsec / 1000; | 
| 30 »       } | 32     } | 
|  | 33   } | 
| 31 | 34 | 
| 32 »       r = __syscall(SYS_futimesat, fd, path, tv); | 35   r = __syscall(SYS_futimesat, fd, path, tv); | 
| 33 »       if (r != -ENOSYS || fd != AT_FDCWD) return __syscall_ret(r); | 36   if (r != -ENOSYS || fd != AT_FDCWD) | 
| 34 »       r = __syscall(SYS_utimes, path, tv); | 37     return __syscall_ret(r); | 
|  | 38   r = __syscall(SYS_utimes, path, tv); | 
| 35 #endif | 39 #endif | 
| 36 »       return __syscall_ret(r); | 40   return __syscall_ret(r); | 
| 37 } | 41 } | 
| OLD | NEW | 
|---|