xref: /llvm-project/libc/src/stdio/gpu/fputs.cpp (revision 5ff3ff33ff930e4ec49da7910612d8a41eb068cb)
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