1 6bb54fab 2003-11-25 devnull #define NOPLAN9DEFINES
2 fd04aace 2003-11-23 devnull #include <u.h>
3 fd04aace 2003-11-23 devnull #include <libc.h>
4 fd04aace 2003-11-23 devnull #include <sys/time.h>
5 6bb54fab 2003-11-25 devnull #include <sys/stat.h>
7 64bcfff3 2003-11-25 devnull #if defined(__FreeBSD__) || defined(__APPLE__)
8 64bcfff3 2003-11-25 devnull /* do nothing -- futimes exists and is fine */
10 3df902ec 2004-03-26 devnull #elif defined(__SunOS5_9__)
11 64bcfff3 2003-11-25 devnull /* use futimesat */
12 1c253ceb 2003-11-23 devnull static int
13 1c253ceb 2003-11-23 devnull futimes(int fd, struct timeval *tv)
15 1c253ceb 2003-11-23 devnull return futimesat(fd, 0, tv);
19 64bcfff3 2003-11-25 devnull /* provide dummy */
20 64bcfff3 2003-11-25 devnull /* rename just in case -- linux provides an unusable one */
21 64bcfff3 2003-11-25 devnull #undef futimes
22 64bcfff3 2003-11-25 devnull #define futimes myfutimes
23 d2c4ee9e 2003-11-24 devnull static int
24 d2c4ee9e 2003-11-24 devnull futimes(int fd, struct timeval *tv)
26 d2c4ee9e 2003-11-24 devnull werrstr("futimes not available");
27 d2c4ee9e 2003-11-24 devnull return -1;
33 fd04aace 2003-11-23 devnull dirfwstat(int fd, Dir *dir)
36 fd04aace 2003-11-23 devnull struct timeval tv[2];
39 f7012583 2003-11-25 devnull if(~dir->mode != 0){
40 f7012583 2003-11-25 devnull if(fchmod(fd, dir->mode) < 0)
41 f7012583 2003-11-25 devnull ret = -1;
43 f7012583 2003-11-25 devnull if(~dir->mtime != 0){
44 f7012583 2003-11-25 devnull tv[0].tv_sec = dir->mtime;
45 f7012583 2003-11-25 devnull tv[0].tv_usec = 0;
46 f7012583 2003-11-25 devnull tv[1].tv_sec = dir->mtime;
47 f7012583 2003-11-25 devnull tv[1].tv_usec = 0;
48 f7012583 2003-11-25 devnull if(futimes(fd, tv) < 0)
49 f7012583 2003-11-25 devnull ret = -1;
51 f7012583 2003-11-25 devnull return ret;