12#ifndef FORTRAN_RUNTIME_EXTENSIONS_H_
13#define FORTRAN_RUNTIME_EXTENSIONS_H_
15#include "flang/Runtime/entry-names.h"
19#define FORTRAN_PROCEDURE_NAME(name) name##_
23typedef std::uint32_t uid_t;
24typedef std::uint32_t gid_t;
32double FORTRAN_PROCEDURE_NAME(dsecnds)(
double *refTime);
33double RTNAME(Dsecnds)(
double *refTime,
const char *sourceFile,
int line);
36void FORTRAN_PROCEDURE_NAME(flush)(
const int &unit);
39void FORTRAN_PROCEDURE_NAME(fdate)(
char *string, std::int64_t length);
41void RTNAME(Free)(std::intptr_t ptr);
44std::int32_t RTNAME(Fseek)(
int unit, std::int64_t zeroBasedPos,
int whence,
45 const char *sourceFileName,
int lineNumber);
46std::int64_t RTNAME(Ftell)(
int unit);
49std::int32_t FORTRAN_PROCEDURE_NAME(fnum)(
const int &unitNumber);
52std::int32_t FORTRAN_PROCEDURE_NAME(iargc)();
55void FORTRAN_PROCEDURE_NAME(getarg)(
56 std::int32_t &n,
char *arg, std::int64_t length);
59gid_t RTNAME(GetGID)();
62uid_t RTNAME(GetUID)();
65void FORTRAN_PROCEDURE_NAME(getlog)(
char *name, std::int64_t length);
68int FORTRAN_PROCEDURE_NAME(hostnm)(
char *hn,
int length);
70std::intptr_t RTNAME(Malloc)(std::size_t size);
73std::int64_t RTNAME(Signal)(std::int64_t number, void (*handler)(int));
76void RTNAME(Sleep)(std::int64_t seconds);
79std::int64_t RTNAME(time)();
84std::int64_t FORTRAN_PROCEDURE_NAME(access)(
const char *name,
85 std::int64_t nameLength,
const char *mode, std::int64_t modeLength);
89int RTNAME(Chdir)(
const char *name);
92int FORTRAN_PROCEDURE_NAME(ierrno)();
95void RTNAME(Perror)(
const char *str);
98int FORTRAN_PROCEDURE_NAME(mclock)();
101float FORTRAN_PROCEDURE_NAME(secnds)(
float *refTime);
102float RTNAME(Secnds)(
float *refTime,
const char *sourceFile,
int line);