17ac8e26fSJoseph Huber //===-- Implementation of fflush ------------------------------------------===// 27ac8e26fSJoseph Huber // 37ac8e26fSJoseph Huber // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 47ac8e26fSJoseph Huber // See https://llvm.org/LICENSE.txt for license information. 57ac8e26fSJoseph Huber // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 67ac8e26fSJoseph Huber // 77ac8e26fSJoseph Huber //===----------------------------------------------------------------------===// 87ac8e26fSJoseph Huber 97ac8e26fSJoseph Huber #include "src/stdio/fflush.h" 107ac8e26fSJoseph Huber #include "src/__support/File/file.h" 117ac8e26fSJoseph Huber 125aed6d67SMichael Jones #include "hdr/types/FILE.h" 13*5ff3ff33SPetr Hosek #include "src/__support/macros/config.h" 147ac8e26fSJoseph Huber #include "src/errno/libc_errno.h" 157ac8e26fSJoseph Huber 16*5ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL { 177ac8e26fSJoseph Huber 187ac8e26fSJoseph Huber LLVM_LIBC_FUNCTION(int, fflush, (::FILE * stream)) { 197ac8e26fSJoseph Huber int result = reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->flush(); 207ac8e26fSJoseph Huber if (result != 0) { 217ac8e26fSJoseph Huber libc_errno = result; 227ac8e26fSJoseph Huber return EOF; 237ac8e26fSJoseph Huber } 247ac8e26fSJoseph Huber return 0; 257ac8e26fSJoseph Huber } 267ac8e26fSJoseph Huber 27*5ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL 28