xref: /freebsd/contrib/llvm-project/clang/lib/Headers/llvm_libc_wrappers/time.h (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
1*5f757f3fSDimitry Andric //===-- Wrapper for C standard time.h declarations on the GPU -------------===//
2*5f757f3fSDimitry Andric //
3*5f757f3fSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*5f757f3fSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*5f757f3fSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*5f757f3fSDimitry Andric //
7*5f757f3fSDimitry Andric //===----------------------------------------------------------------------===//
8*5f757f3fSDimitry Andric 
9*5f757f3fSDimitry Andric #ifndef __CLANG_LLVM_LIBC_WRAPPERS_TIME_H__
10*5f757f3fSDimitry Andric #define __CLANG_LLVM_LIBC_WRAPPERS_TIME_H__
11*5f757f3fSDimitry Andric 
12*5f757f3fSDimitry Andric #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
13*5f757f3fSDimitry Andric #error "This file is for GPU offloading compilation only"
14*5f757f3fSDimitry Andric #endif
15*5f757f3fSDimitry Andric 
16*5f757f3fSDimitry Andric #include_next <time.h>
17*5f757f3fSDimitry Andric 
18*5f757f3fSDimitry Andric #if __has_include(<llvm-libc-decls/time.h>)
19*5f757f3fSDimitry Andric 
20*5f757f3fSDimitry Andric #if defined(__HIP__) || defined(__CUDA__)
21*5f757f3fSDimitry Andric #define __LIBC_ATTRS __attribute__((device))
22*5f757f3fSDimitry Andric #endif
23*5f757f3fSDimitry Andric 
24*5f757f3fSDimitry Andric #pragma omp begin declare target
25*5f757f3fSDimitry Andric 
26*5f757f3fSDimitry Andric _Static_assert(sizeof(clock_t) == sizeof(long), "ABI mismatch!");
27*5f757f3fSDimitry Andric 
28*5f757f3fSDimitry Andric #include <llvm-libc-decls/time.h>
29*5f757f3fSDimitry Andric 
30*5f757f3fSDimitry Andric #pragma omp end declare target
31*5f757f3fSDimitry Andric 
32*5f757f3fSDimitry Andric #endif
33*5f757f3fSDimitry Andric 
34*5f757f3fSDimitry Andric #endif // __CLANG_LLVM_LIBC_WRAPPERS_TIME_H__
35