diff options
author | Miles Bader <miles@gnu.org> | 1997-06-20 05:33:43 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 1997-06-20 05:33:43 +0000 |
commit | 8a290ad4039cce88259c5cf2444086379075f593 (patch) | |
tree | a46e2e7378175f1fc830ca60aa425b84cdaaea4d | |
parent | 8ed7b018a32e9a575c3dca0df6d083c9f6bdb767 (diff) |
(fshelp_touch):
New function.
(TOUCH_ATIME, TOUCH_MTIME, TOUCH_CTIME):
New macros.
(fshelp_fetch_root_callback1_t):
Chage ARGZ_LEN to type size_t.
Include <maptime.h>.
-rw-r--r-- | libfshelp/fshelp.h | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/libfshelp/fshelp.h b/libfshelp/fshelp.h index 3392006f..7f4b01eb 100644 --- a/libfshelp/fshelp.h +++ b/libfshelp/fshelp.h @@ -1,5 +1,5 @@ /* FS helper library definitions - Copyright (C) 1994, 1995, 1996 Free Software Foundation + Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -29,6 +29,7 @@ #include <cthreads.h> #include <hurd/iohelp.h> #include <sys/stat.h> +#include <maptime.h> #ifndef FSHELP_EI #define FSHELP_EI extern inline @@ -105,7 +106,7 @@ struct transbox COOKIE2 is the cookie passed in the call to fshelp_fetch_root. */ typedef error_t (*fshelp_fetch_root_callback1_t) (void *cookie1, void *cookie2, uid_t *uid, gid_t *gid, - char **argz, int *argz_len); + char **argz, size_t *argz_len); /* This routine is called by fshelp_fetch_root to fetch more information. Return an unauthenticated node for the file itself in *UNDERLYING and @@ -305,5 +306,37 @@ fshelp_checkdirmod (struct stat *dir, struct stat *st, struct iouser *user) return 0; } + +/* Timestamps to change. */ +#define TOUCH_ATIME 0x1 +#define TOUCH_MTIME 0x2 +#define TOUCH_CTIME 0x4 + +/* Change the stat times of NODE as indicated by WHAT (from the set TOUCH_*) + to the current time. */ +FSHELP_EI void +fshelp_touch (struct stat *st, unsigned what, + volatile struct mapped_time_value *maptime) +{ + struct timeval tv; + + maptime_read (maptime, &tv); + + if (what & TOUCH_ATIME) + { + st->st_atime = tv.tv_sec; + st->st_atime_usec = tv.tv_usec; + } + if (what & TOUCH_CTIME) + { + st->st_ctime = tv.tv_sec; + st->st_ctime_usec = tv.tv_usec; + } + if (what & TOUCH_MTIME) + { + st->st_mtime = tv.tv_sec; + st->st_mtime_usec = tv.tv_usec; + } +} #endif |