Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libast/tm/tvsettime.c
1810 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1985-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* David Korn <[email protected]> *
19
* Phong Vo <[email protected]> *
20
* *
21
***********************************************************************/
22
#pragma prototyped
23
24
#include <tv.h>
25
#include <tm.h>
26
#include <errno.h>
27
28
#include "FEATURE/tvlib"
29
30
int
31
tvsettime(const Tv_t* tv)
32
{
33
34
#if _lib_clock_settime && defined(CLOCK_REALTIME)
35
36
struct timespec s;
37
38
s.tv_sec = tv->tv_sec;
39
s.tv_nsec = tv->tv_nsec;
40
return clock_settime(CLOCK_REALTIME, &s);
41
42
#else
43
44
#if defined(tmsettimeofday)
45
46
struct timeval v;
47
48
v.tv_sec = tv->tv_sec;
49
v.tv_usec = tv->tv_nsec / 1000;
50
return tmsettimeofday(&v);
51
52
#else
53
54
#if _lib_stime
55
56
static time_t s;
57
58
s = tv->tv_sec + (tv->tv_nsec != 0);
59
return stime(s);
60
61
#else
62
63
errno = EPERM;
64
return -1;
65
66
#endif
67
68
#endif
69
70
#endif
71
72
}
73
74