xref: /llvm-project/libc/src/__support/OSUtil/linux/io.h (revision 5ff3ff33ff930e4ec49da7910612d8a41eb068cb)
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