1*2e6eccfeSMichael Jones //===-- Internal implementation of vfprintf ---------------------*- C++ -*-===// 2*2e6eccfeSMichael Jones // 3*2e6eccfeSMichael Jones // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2e6eccfeSMichael Jones // See https://llvm.org/LICENSE.txt for license information. 5*2e6eccfeSMichael Jones // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*2e6eccfeSMichael Jones // 7*2e6eccfeSMichael Jones //===----------------------------------------------------------------------===// 8*2e6eccfeSMichael Jones 9*2e6eccfeSMichael Jones #include "src/stdio/printf_core/vfprintf_internal.h" 10*2e6eccfeSMichael Jones 11*2e6eccfeSMichael Jones #include "src/__support/arg_list.h" 12*2e6eccfeSMichael Jones #include "src/stdio/printf_core/file_writer.h" 13*2e6eccfeSMichael Jones #include "src/stdio/printf_core/printf_main.h" 14*2e6eccfeSMichael Jones #include "src/stdio/printf_core/writer.h" 15*2e6eccfeSMichael Jones 16*2e6eccfeSMichael Jones #include <stdio.h> 17*2e6eccfeSMichael Jones 18*2e6eccfeSMichael Jones namespace __llvm_libc { 19*2e6eccfeSMichael Jones namespace printf_core { 20*2e6eccfeSMichael Jones vfprintf_internal(::FILE * __restrict stream,const char * __restrict format,internal::ArgList & args)21*2e6eccfeSMichael Jonesint vfprintf_internal(::FILE *__restrict stream, const char *__restrict format, 22*2e6eccfeSMichael Jones internal::ArgList &args) { 23*2e6eccfeSMichael Jones FileWriter file_writer(stream); 24*2e6eccfeSMichael Jones printf_core::Writer writer(reinterpret_cast<void *>(&file_writer), 25*2e6eccfeSMichael Jones printf_core::write_to_file); 26*2e6eccfeSMichael Jones return printf_core::printf_main(&writer, format, args); 27*2e6eccfeSMichael Jones } 28*2e6eccfeSMichael Jones 29*2e6eccfeSMichael Jones } // namespace printf_core 30*2e6eccfeSMichael Jones } // namespace __llvm_libc 31