1261c17c1SSiva Chandra Reddy //===-------------- Linux implementation of IO utils ------------*- C++ -*-===// 2261c17c1SSiva Chandra Reddy // 3261c17c1SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4261c17c1SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 5261c17c1SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6261c17c1SSiva Chandra Reddy // 7261c17c1SSiva Chandra Reddy //===----------------------------------------------------------------------===// 8261c17c1SSiva Chandra Reddy 9270547f3SGuillaume Chatelet #ifndef LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_IO_H 10270547f3SGuillaume Chatelet #define LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_IO_H 11261c17c1SSiva Chandra Reddy 129a99afb4SGuillaume Chatelet #include "src/__support/CPP/string_view.h" 13*5ff3ff33SPetr Hosek #include "src/__support/macros/config.h" 143cc2161cSSiva Chandra Reddy #include "syscall.h" // For internal syscall function. 15261c17c1SSiva Chandra Reddy 1686bebe1aSSiva Chandra Reddy #include <sys/syscall.h> // For syscall numbers. 1786bebe1aSSiva Chandra Reddy 18*5ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL { 19261c17c1SSiva Chandra Reddy 209a99afb4SGuillaume Chatelet LIBC_INLINE void write_to_stderr(cpp::string_view msg) { 21b6bc9d72SGuillaume Chatelet LIBC_NAMESPACE::syscall_impl<long>(SYS_write, 2 /* stderr */, msg.data(), 22f0a3954eSMichael Jones msg.size()); 23261c17c1SSiva Chandra Reddy } 24261c17c1SSiva Chandra Reddy 25*5ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL 26261c17c1SSiva Chandra Reddy 27270547f3SGuillaume Chatelet #endif // LLVM_LIBC_SRC___SUPPORT_OSUTIL_LINUX_IO_H 28