xref: /freebsd-12.1/contrib/libc++/include/ctime (revision 4ba319b5)
17a984708SDavid Chisnall// -*- C++ -*-
27a984708SDavid Chisnall//===---------------------------- ctime -----------------------------------===//
37a984708SDavid Chisnall//
47a984708SDavid Chisnall//                     The LLVM Compiler Infrastructure
57a984708SDavid Chisnall//
67a984708SDavid Chisnall// This file is dual licensed under the MIT and the University of Illinois Open
77a984708SDavid Chisnall// Source Licenses. See LICENSE.TXT for details.
87a984708SDavid Chisnall//
97a984708SDavid Chisnall//===----------------------------------------------------------------------===//
107a984708SDavid Chisnall
117a984708SDavid Chisnall#ifndef _LIBCPP_CTIME
127a984708SDavid Chisnall#define _LIBCPP_CTIME
137a984708SDavid Chisnall
147a984708SDavid Chisnall/*
157a984708SDavid Chisnall    ctime synopsis
167a984708SDavid Chisnall
177a984708SDavid ChisnallMacros:
187a984708SDavid Chisnall
197a984708SDavid Chisnall    NULL
207a984708SDavid Chisnall    CLOCKS_PER_SEC
21*4ba319b5SDimitry Andric    TIME_UTC // C++17
227a984708SDavid Chisnall
237a984708SDavid Chisnallnamespace std
247a984708SDavid Chisnall{
257a984708SDavid Chisnall
267a984708SDavid ChisnallTypes:
277a984708SDavid Chisnall
287a984708SDavid Chisnall    clock_t
297a984708SDavid Chisnall    size_t
307a984708SDavid Chisnall    time_t
317a984708SDavid Chisnall    tm
32*4ba319b5SDimitry Andric    timespec // C++17
337a984708SDavid Chisnall
347a984708SDavid Chisnallclock_t clock();
357a984708SDavid Chisnalldouble difftime(time_t time1, time_t time0);
367a984708SDavid Chisnalltime_t mktime(tm* timeptr);
377a984708SDavid Chisnalltime_t time(time_t* timer);
387a984708SDavid Chisnallchar* asctime(const tm* timeptr);
397a984708SDavid Chisnallchar* ctime(const time_t* timer);
407a984708SDavid Chisnalltm*    gmtime(const time_t* timer);
417a984708SDavid Chisnalltm* localtime(const time_t* timer);
427a984708SDavid Chisnallsize_t strftime(char* restrict s, size_t maxsize, const char* restrict format,
437a984708SDavid Chisnall                const tm* restrict timeptr);
44*4ba319b5SDimitry Andricint timespec_get( struct timespec *ts, int base); // C++17
457a984708SDavid Chisnall}  // std
467a984708SDavid Chisnall
477a984708SDavid Chisnall*/
487a984708SDavid Chisnall
497a984708SDavid Chisnall#include <__config>
507a984708SDavid Chisnall#include <time.h>
517a984708SDavid Chisnall
527a984708SDavid Chisnall#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
537a984708SDavid Chisnall#pragma GCC system_header
547a984708SDavid Chisnall#endif
557a984708SDavid Chisnall
567a984708SDavid Chisnall_LIBCPP_BEGIN_NAMESPACE_STD
577a984708SDavid Chisnall
587a984708SDavid Chisnallusing ::clock_t;
597a984708SDavid Chisnallusing ::size_t;
607a984708SDavid Chisnallusing ::time_t;
617a984708SDavid Chisnallusing ::tm;
62*4ba319b5SDimitry Andric#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_C11_FEATURES)
63*4ba319b5SDimitry Andricusing ::timespec;
64*4ba319b5SDimitry Andric#endif
657a984708SDavid Chisnallusing ::clock;
667a984708SDavid Chisnallusing ::difftime;
677a984708SDavid Chisnallusing ::mktime;
687a984708SDavid Chisnallusing ::time;
69854fa44bSDimitry Andric#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS
707a984708SDavid Chisnallusing ::asctime;
717a984708SDavid Chisnallusing ::ctime;
727a984708SDavid Chisnallusing ::gmtime;
737a984708SDavid Chisnallusing ::localtime;
74854fa44bSDimitry Andric#endif
757a984708SDavid Chisnallusing ::strftime;
76*4ba319b5SDimitry Andric#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_TIMESPEC_GET)
77*4ba319b5SDimitry Andricusing ::timespec_get;
78*4ba319b5SDimitry Andric#endif
797a984708SDavid Chisnall
807a984708SDavid Chisnall_LIBCPP_END_NAMESPACE_STD
817a984708SDavid Chisnall
827a984708SDavid Chisnall#endif  // _LIBCPP_CTIME
83