1d04494ccSJoseph Huber //===-- GPU Implementation of fputs ---------------------------------------===// 2d04494ccSJoseph Huber // 3d04494ccSJoseph Huber // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4d04494ccSJoseph Huber // See https://llvm.org/LICENSE.txt for license information. 5d04494ccSJoseph Huber // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6d04494ccSJoseph Huber // 7d04494ccSJoseph Huber //===----------------------------------------------------------------------===// 8d04494ccSJoseph Huber 9d04494ccSJoseph Huber #include "src/stdio/fputs.h" 10d04494ccSJoseph Huber #include "src/__support/CPP/string_view.h" 11*5ff3ff33SPetr Hosek #include "src/__support/macros/config.h" 12d04494ccSJoseph Huber #include "src/errno/libc_errno.h" 13d04494ccSJoseph Huber #include "src/stdio/gpu/file.h" 14d04494ccSJoseph Huber 155aed6d67SMichael Jones #include "hdr/stdio_macros.h" // for EOF. 165aed6d67SMichael Jones #include "hdr/types/FILE.h" 17d04494ccSJoseph Huber 18*5ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL { 19d04494ccSJoseph Huber 20d04494ccSJoseph Huber LLVM_LIBC_FUNCTION(int, fputs, 21d04494ccSJoseph Huber (const char *__restrict str, ::FILE *__restrict stream)) { 22d04494ccSJoseph Huber cpp::string_view str_view(str); 23d04494ccSJoseph Huber auto written = file::write(stream, str, str_view.size()); 24d04494ccSJoseph Huber if (written != str_view.size()) 25d04494ccSJoseph Huber return EOF; 26d04494ccSJoseph Huber return 0; 27d04494ccSJoseph Huber } 28d04494ccSJoseph Huber 29*5ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL 30