annotate lib/stat-time.h @ 6471:54a70822331f

* m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC, to fix IRIX 5.3 porting problem reported by Georg Schwarz in <http://lists.gnu.org/archive/html/bug-coreutils/2005-12/msg00083.html>. * m4/stat-time.m4 (gl_STAT_TIME): Add check for TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC.
author Paul Eggert <eggert@cs.ucla.edu>
date Wed, 07 Dec 2005 18:18:33 +0000 (2005-12-07)
parents e64c2e62add0
children ca249819379f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6237
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
1 /* stat-related time functions.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
2
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
3 Copyright (C) 2005 Free Software Foundation, Inc.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
4
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
5 This program is free software; you can redistribute it and/or modify
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
7 the Free Software Foundation; either version 2, or (at your option)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
8 any later version.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
9
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
13 GNU General Public License for more details.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
14
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
16 along with this program; if not, write to the Free Software Foundation,
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
17 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
18
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
19 /* Written by Paul Eggert. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
20
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
21 #ifndef STAT_TIME_H
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
22 #define STAT_TIME_H 1
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
23
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
24 #include "timespec.h"
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
25
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
26 /* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
27 struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST,
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
28 ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST,
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
29 if available. ST_XTIM can be st_atim, st_ctim, or st_mtim for
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
30 access, status change, or data modification time, respectively.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
31
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
32 These macros are private to stat-time.h. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
33 #if defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
6471
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6242
diff changeset
34 # ifdef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6242
diff changeset
35 # define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim)
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6242
diff changeset
36 # else
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6242
diff changeset
37 # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec)
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6242
diff changeset
38 # endif
6237
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
39 #elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
40 # define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
41 #elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
42 # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
43 #elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
44 # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
45 #endif
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
46
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
47 /* Return the nanosecond component of *ST's access time. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
48 static inline long int
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
49 get_stat_atime_ns (struct stat const *st)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
50 {
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
51 # if defined STAT_TIMESPEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
52 return STAT_TIMESPEC (st, st_atim).tv_nsec;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
53 # elif defined STAT_TIMESPEC_NS
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
54 return STAT_TIMESPEC_NS (st, st_atim);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
55 # elif defined HAVE_STRUCT_STAT_ST_SPARE1
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
56 return st->st_spare1 * 1000;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
57 # else
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
58 return 0;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
59 # endif
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
60 }
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
61
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
62 /* Return the nanosecond component of *ST's status change time. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
63 static inline long int
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
64 get_stat_ctime_ns (struct stat const *st)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
65 {
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
66 # if defined STAT_TIMESPEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
67 return STAT_TIMESPEC (st, st_ctim).tv_nsec;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
68 # elif defined STAT_TIMESPEC_NS
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
69 return STAT_TIMESPEC_NS (st, st_ctim);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
70 # elif defined HAVE_STRUCT_STAT_ST_SPARE1
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
71 return st->st_spare3 * 1000;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
72 # else
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
73 return 0;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
74 # endif
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
75 }
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
76
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
77 /* Return the nanosecond component of *ST's data modification time. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
78 static inline long int
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
79 get_stat_mtime_ns (struct stat const *st)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
80 {
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
81 # if defined STAT_TIMESPEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
82 return STAT_TIMESPEC (st, st_mtim).tv_nsec;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
83 # elif defined STAT_TIMESPEC_NS
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
84 return STAT_TIMESPEC_NS (st, st_mtim);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
85 # elif defined HAVE_STRUCT_STAT_ST_SPARE1
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
86 return st->st_spare2 * 1000;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
87 # else
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
88 return 0;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
89 # endif
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
90 }
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
91
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
92 /* Return *ST's access time. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
93 static inline struct timespec
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
94 get_stat_atime (struct stat const *st)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
95 {
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
96 #ifdef STAT_TIMESPEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
97 return STAT_TIMESPEC (st, st_atim);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
98 #else
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
99 struct timespec t;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
100 t.tv_sec = st->st_atime;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
101 t.tv_nsec = get_stat_atime_ns (st);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
102 return t;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
103 #endif
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
104 }
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
105
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
106 /* Return *ST's status change time. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
107 static inline struct timespec
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
108 get_stat_ctime (struct stat const *st)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
109 {
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
110 #ifdef STAT_TIMESPEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
111 return STAT_TIMESPEC (st, st_ctim);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
112 #else
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
113 struct timespec t;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
114 t.tv_sec = st->st_ctime;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
115 t.tv_nsec = get_stat_ctime_ns (st);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
116 return t;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
117 #endif
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
118 }
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
119
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
120 /* Return *ST's data modification time. */
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
121 static inline struct timespec
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
122 get_stat_mtime (struct stat const *st)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
123 {
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
124 #ifdef STAT_TIMESPEC
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
125 return STAT_TIMESPEC (st, st_mtim);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
126 #else
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
127 struct timespec t;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
128 t.tv_sec = st->st_mtime;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
129 t.tv_nsec = get_stat_mtime_ns (st);
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
130 return t;
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
131 #endif
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
132 }
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
133
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
134 #endif