2020-03-17 19:19:38 +08:00
|
|
|
/*
|
2021-04-16 18:59:40 +08:00
|
|
|
* Copyright (C) 2020-2021 Intel Corporation
|
2020-03-17 19:19:38 +08:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
#include <cstdarg>
|
|
|
|
#include <cstdio>
|
2020-06-08 22:19:52 +08:00
|
|
|
#include <stdlib.h>
|
2020-03-17 19:19:38 +08:00
|
|
|
|
|
|
|
namespace NEO {
|
2020-03-27 23:32:07 +08:00
|
|
|
namespace IoFunctions {
|
2020-03-17 19:19:38 +08:00
|
|
|
using fopenFuncPtr = FILE *(*)(const char *, const char *);
|
|
|
|
using vfprintfFuncPtr = int (*)(FILE *, char const *const formatStr, va_list arg);
|
|
|
|
using fcloseFuncPtr = int (*)(FILE *);
|
2020-06-08 22:19:52 +08:00
|
|
|
using getenvFuncPtr = decltype(&getenv);
|
2021-04-16 18:59:40 +08:00
|
|
|
using fseekFuncPtr = decltype(&fseek);
|
|
|
|
using ftellFuncPtr = decltype(&ftell);
|
|
|
|
using rewindFuncPtr = decltype(&rewind);
|
|
|
|
using freadFuncPtr = decltype(&fread);
|
2021-11-16 01:41:22 +08:00
|
|
|
using fwriteFuncPtr = decltype(&fwrite);
|
2020-03-17 19:19:38 +08:00
|
|
|
|
|
|
|
extern fopenFuncPtr fopenPtr;
|
|
|
|
extern vfprintfFuncPtr vfprintfPtr;
|
|
|
|
extern fcloseFuncPtr fclosePtr;
|
2020-06-08 22:19:52 +08:00
|
|
|
extern getenvFuncPtr getenvPtr;
|
2021-04-16 18:59:40 +08:00
|
|
|
extern fseekFuncPtr fseekPtr;
|
|
|
|
extern ftellFuncPtr ftellPtr;
|
|
|
|
extern rewindFuncPtr rewindPtr;
|
|
|
|
extern freadFuncPtr freadPtr;
|
2021-11-16 01:41:22 +08:00
|
|
|
extern fwriteFuncPtr fwritePtr;
|
2020-03-17 19:19:38 +08:00
|
|
|
|
2020-03-27 23:32:07 +08:00
|
|
|
inline int fprintf(FILE *fileDesc, char const *const formatStr, ...) {
|
|
|
|
va_list args;
|
|
|
|
va_start(args, formatStr);
|
|
|
|
int ret = IoFunctions::vfprintfPtr(fileDesc, formatStr, args);
|
|
|
|
va_end(args);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
} // namespace IoFunctions
|
|
|
|
|
2020-03-17 19:19:38 +08:00
|
|
|
} // namespace NEO
|