8354 sync regcomp(3C) with upstream (fix make catalog)
[unleashed/tickless.git] / usr / src / lib / libast / common / man / tv.3
blob82b0dc40c6e3c054aac1a5424645e63f1e0a92b5
1 .fp 5 CW
2 .de Af
3 .ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
4 .if !\a\\$4\a\a .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
5 ..
6 .de aF
7 .ie \a\\$3\a\a .ft \\$1
8 .el \{\
9 .ds ;G \&
10 .nr ;G \\n(.f
11 .Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
12 \\*(;G
13 .ft \\n(;G \}
15 .de L
16 .aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
18 .de LR
19 .aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
21 .de RL
22 .aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
24 .de EX          \" start example
25 .ta 1i 2i 3i 4i 5i 6i
26 .PP
27 .RS 
28 .PD 0
29 .ft 5
30 .nf
32 .de EE          \" end example
33 .fi
34 .ft
35 .PD
36 .RE
37 .PP
39 .TH TM 3
40 .SH NAME
41 tv \- high resolution time support
42 .SH SYNOPSIS
43 .L "#include <tv.h>"
44 .SH DESCRIPTION
45 The
46 .I tv
47 library supports high resolution
48 .B Tv_t
49 time specifications.
50 .SS Tv_t
51 contains these elements:
52 .TP
53 .L unsigned
54 .L _ast_int4_t
55 .L tv_sec
56 Seconds since the epoch.
57 .TP
58 .L unsigned
59 .L _ast_int4_t
60 .L tv_nsec
61 Nanosecond resolution.
62 .PP
63 In practice resolution is much coarser than 1 nanosecond.
64 Systems that only support 1 second resolution always set
65 .L tv_nsec
66 to 0.
67 .SS "int tvgettime(Tv_t* tv)"
68 Sets
69 .L tv
70 to the current time.
71 .L 0
72 is returned on success,
73 .L -1
74 on error.
75 .SS "int tvsettime(const Tv_t* tv)"
76 Sets the system time to
77 .LR tv .
78 The caller must have sufficient privilege.
79 .L 0
80 is returned on success,
81 .L -1
82 on error.
83 .SS "int tvcmp(const Tv_t* av, const Tv_t* bv)"
84 Compares the times
85 .L av
86 and
87 .L bv
88 and returns
89 .L -1
91 .L av
92 is less than
93 .LR bv ,
94 .L 0
96 .L av
97 is equal to
98 .LR bv ,
99 and
100 .L 1
102 .L av
103 is greater than
104 .LR bv .
105 .SS "time_t tvgetatime(const struct stat* st, Tv_t* tv)"
106 .SS "time_t tvgetmtime(const struct stat* st, Tv_t* tv)"
107 .SS "time_t tvgetctime(const struct stat* st, Tv_t* tv)"
108 These macros set
109 .L tv
110 to the
111 .L st
112 the access, modify, or change time, respectively.
113 The seconds portion of
114 .L tv
115 is returned.
116 .SS "time_t tvsetatime(struct stat* st, const Tv_t* tv)"
117 .SS "time_t tvsetmtime(struct stat* st, const Tv_t* tv)"
118 .SS "time_t tvsetctime(struct stat* st, const Tv_t* tv)"
119 These macros set the
120 .L st
121 access, modify, or change time, respectively, to
122 .LR tv .
123 The seconds portion of
124 .L tv
125 is returned.
126 .SS "int tvtouch(const char* path, const Tv_t* av, const Tv_t* mv, const Tv_t* cv, int copy)"
127 Sets the file
128 .L path
129 access time from
130 .LR av ,
131 modify time from
132 .LR mv ,
133 and change time from
134 .LR cv .
135 Any of
136 .LR av ,
137 .LR mv ,
139 .L cv
140 may be 0; the corresponding file time will retain the previous value if
141 .L path
142 exists and
143 .L copy
145 .L 1 ;
146 otherwise the corresponding file time will be set to the current time.
147 .L 0
148 is returned on success,
149 .L -1
150 on error.
151 .SS "int tvsleep(const Tv_t* tv, Tv_t* rv)"
152 Pauses execution for
153 .L tv
154 time.
155 .L 0
156 is returned if the full
157 .L tv
158 amount has expired.
159 Otherwise
160 .L -1
161 is returned and
162 .LR rv ,
163 if not 0, is set to the sleep time remaining.
164 .SH "RETURN VALUE"
165 Except for
166 .LR tvcmp() ,
167 an error return of
168 .L -1
169 also sets
170 .L errno
171 to the corresponding error code.
172 .SH "SEE ALSO"
173 tm(3)