xref: /llvm-project/flang/include/flang/Runtime/io-api.h (revision c91ba04328e1ded6f284469a7828d181324d4e30)
1 //===-- include/flang/Runtime/io-api.h --------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 // Defines API between compiled code and I/O runtime library.
10 
11 #ifndef FORTRAN_RUNTIME_IO_API_H_
12 #define FORTRAN_RUNTIME_IO_API_H_
13 
14 #include "flang/Common/uint128.h"
15 #include "flang/Runtime/entry-names.h"
16 #include "flang/Runtime/io-api-consts.h"
17 #include "flang/Runtime/iostat-consts.h"
18 #include "flang/Runtime/magic-numbers.h"
19 #include <cinttypes>
20 #include <cstddef>
21 
22 namespace Fortran::runtime {
23 class Descriptor;
24 } // namespace Fortran::runtime
25 
26 namespace Fortran::runtime::io {
27 
28 struct NonTbpDefinedIoTable;
29 class NamelistGroup;
30 class IoStatementState;
31 using Cookie = IoStatementState *;
32 using ExternalUnit = int;
33 using AsynchronousId = int;
34 
35 RT_API_ATTRS const char *InquiryKeywordHashDecode(
36     char *buffer, std::size_t, InquiryKeywordHash);
37 
38 } // namespace Fortran::runtime::io
39 #endif
40