xref: /freebsd/contrib/llvm-project/libc/src/__support/OSUtil/io.h (revision bb722a7d0f1642bff6487f943ad0427799a6e5bf)
1*bb722a7dSDimitry Andric //===---------------- Implementation of IO utils ----------------*- C++ -*-===//
2*bb722a7dSDimitry Andric //
3*bb722a7dSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*bb722a7dSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*bb722a7dSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*bb722a7dSDimitry Andric //
7*bb722a7dSDimitry Andric //===----------------------------------------------------------------------===//
8*bb722a7dSDimitry Andric 
9*bb722a7dSDimitry Andric #ifndef LLVM_LIBC_SRC___SUPPORT_OSUTIL_IO_H
10*bb722a7dSDimitry Andric #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_IO_H
11*bb722a7dSDimitry Andric 
12*bb722a7dSDimitry Andric #include "src/__support/macros/properties/architectures.h"
13*bb722a7dSDimitry Andric 
14*bb722a7dSDimitry Andric #if defined(LIBC_TARGET_ARCH_IS_GPU)
15*bb722a7dSDimitry Andric #include "gpu/io.h"
16*bb722a7dSDimitry Andric #elif defined(__APPLE__)
17*bb722a7dSDimitry Andric #include "darwin/io.h"
18*bb722a7dSDimitry Andric #elif defined(__linux__)
19*bb722a7dSDimitry Andric #include "linux/io.h"
20*bb722a7dSDimitry Andric #elif defined(__Fuchsia__)
21*bb722a7dSDimitry Andric #include "fuchsia/io.h"
22*bb722a7dSDimitry Andric #elif defined(_WIN32)
23*bb722a7dSDimitry Andric #include "windows/io.h"
24*bb722a7dSDimitry Andric #elif defined(__ELF__)
25*bb722a7dSDimitry Andric // TODO: Ideally we would have LIBC_TARGET_OS_IS_BAREMETAL.
26*bb722a7dSDimitry Andric #include "baremetal/io.h"
27*bb722a7dSDimitry Andric #elif defined(__UEFI__)
28*bb722a7dSDimitry Andric #include "uefi/io.h"
29*bb722a7dSDimitry Andric #endif
30*bb722a7dSDimitry Andric 
31*bb722a7dSDimitry Andric #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_IO_H
32