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(iargc)();
52void FORTRAN_PROCEDURE_NAME(getarg)(
53 std::int32_t &n,
char *arg, std::int64_t length);
56gid_t RTNAME(GetGID)();
59uid_t RTNAME(GetUID)();
62void FORTRAN_PROCEDURE_NAME(getlog)(
char *name, std::int64_t length);
65int FORTRAN_PROCEDURE_NAME(hostnm)(
char *hn,
int length);
67std::intptr_t RTNAME(Malloc)(std::size_t size);
70std::int64_t RTNAME(Signal)(std::int64_t number, void (*handler)(int));
73void RTNAME(Sleep)(std::int64_t seconds);
76std::int64_t RTNAME(time)();
81std::int64_t FORTRAN_PROCEDURE_NAME(access)(
const char *name,
82 std::int64_t nameLength,
const char *mode, std::int64_t modeLength);
86int RTNAME(Chdir)(
const char *name);
89int FORTRAN_PROCEDURE_NAME(ierrno)();
92void RTNAME(Perror)(
const char *str);
95int FORTRAN_PROCEDURE_NAME(mclock)();
98float FORTRAN_PROCEDURE_NAME(secnds)(
float *refTime);
99float RTNAME(Secnds)(
float *refTime,
const char *sourceFile,
int line);