xref: /freebsd/contrib/llvm-project/libcxx/include/ctime (revision 0b57cec536236d46e3dba9bd041533462f33dbb7)
1*0b57cec5SDimitry Andric// -*- C++ -*-
2*0b57cec5SDimitry Andric//===---------------------------- ctime -----------------------------------===//
3*0b57cec5SDimitry Andric//
4*0b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*0b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
6*0b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*0b57cec5SDimitry Andric//
8*0b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
9*0b57cec5SDimitry Andric
10*0b57cec5SDimitry Andric#ifndef _LIBCPP_CTIME
11*0b57cec5SDimitry Andric#define _LIBCPP_CTIME
12*0b57cec5SDimitry Andric
13*0b57cec5SDimitry Andric/*
14*0b57cec5SDimitry Andric    ctime synopsis
15*0b57cec5SDimitry Andric
16*0b57cec5SDimitry AndricMacros:
17*0b57cec5SDimitry Andric
18*0b57cec5SDimitry Andric    NULL
19*0b57cec5SDimitry Andric    CLOCKS_PER_SEC
20*0b57cec5SDimitry Andric    TIME_UTC // C++17
21*0b57cec5SDimitry Andric
22*0b57cec5SDimitry Andricnamespace std
23*0b57cec5SDimitry Andric{
24*0b57cec5SDimitry Andric
25*0b57cec5SDimitry AndricTypes:
26*0b57cec5SDimitry Andric
27*0b57cec5SDimitry Andric    clock_t
28*0b57cec5SDimitry Andric    size_t
29*0b57cec5SDimitry Andric    time_t
30*0b57cec5SDimitry Andric    tm
31*0b57cec5SDimitry Andric    timespec // C++17
32*0b57cec5SDimitry Andric
33*0b57cec5SDimitry Andricclock_t clock();
34*0b57cec5SDimitry Andricdouble difftime(time_t time1, time_t time0);
35*0b57cec5SDimitry Andrictime_t mktime(tm* timeptr);
36*0b57cec5SDimitry Andrictime_t time(time_t* timer);
37*0b57cec5SDimitry Andricchar* asctime(const tm* timeptr);
38*0b57cec5SDimitry Andricchar* ctime(const time_t* timer);
39*0b57cec5SDimitry Andrictm*    gmtime(const time_t* timer);
40*0b57cec5SDimitry Andrictm* localtime(const time_t* timer);
41*0b57cec5SDimitry Andricsize_t strftime(char* restrict s, size_t maxsize, const char* restrict format,
42*0b57cec5SDimitry Andric                const tm* restrict timeptr);
43*0b57cec5SDimitry Andricint timespec_get( struct timespec *ts, int base); // C++17
44*0b57cec5SDimitry Andric}  // std
45*0b57cec5SDimitry Andric
46*0b57cec5SDimitry Andric*/
47*0b57cec5SDimitry Andric
48*0b57cec5SDimitry Andric#include <__config>
49*0b57cec5SDimitry Andric#include <time.h>
50*0b57cec5SDimitry Andric
51*0b57cec5SDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
52*0b57cec5SDimitry Andric#pragma GCC system_header
53*0b57cec5SDimitry Andric#endif
54*0b57cec5SDimitry Andric
55*0b57cec5SDimitry Andric_LIBCPP_BEGIN_NAMESPACE_STD
56*0b57cec5SDimitry Andric
57*0b57cec5SDimitry Andricusing ::clock_t;
58*0b57cec5SDimitry Andricusing ::size_t;
59*0b57cec5SDimitry Andricusing ::time_t;
60*0b57cec5SDimitry Andricusing ::tm;
61*0b57cec5SDimitry Andric#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_C11_FEATURES)
62*0b57cec5SDimitry Andricusing ::timespec;
63*0b57cec5SDimitry Andric#endif
64*0b57cec5SDimitry Andricusing ::clock;
65*0b57cec5SDimitry Andricusing ::difftime;
66*0b57cec5SDimitry Andricusing ::mktime;
67*0b57cec5SDimitry Andricusing ::time;
68*0b57cec5SDimitry Andric#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS
69*0b57cec5SDimitry Andricusing ::asctime;
70*0b57cec5SDimitry Andricusing ::ctime;
71*0b57cec5SDimitry Andricusing ::gmtime;
72*0b57cec5SDimitry Andricusing ::localtime;
73*0b57cec5SDimitry Andric#endif
74*0b57cec5SDimitry Andricusing ::strftime;
75*0b57cec5SDimitry Andric#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_TIMESPEC_GET)
76*0b57cec5SDimitry Andricusing ::timespec_get;
77*0b57cec5SDimitry Andric#endif
78*0b57cec5SDimitry Andric
79*0b57cec5SDimitry Andric_LIBCPP_END_NAMESPACE_STD
80*0b57cec5SDimitry Andric
81*0b57cec5SDimitry Andric#endif  // _LIBCPP_CTIME
82