mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-27 22:55:25 +00:00
12889449a8
This patch moves some posix specific file i/o code into a new file, FuzzerIOPosix.cpp, and provides implementations for these functions on Windows in FuzzerIOWindows.cpp. This is another incremental step towards getting libfuzzer working on Windows, although it still should not be expected to be fully working. Patch by Marcos Pividori Differential Revision: https://reviews.llvm.org/D27233 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288275 91177308-0d34-0410-b5e6-96231b3b80d8
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
//===- FuzzerIO.h - Internal header for IO utils ----------------*- C++ -* ===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
// IO interface.
|
|
//===----------------------------------------------------------------------===//
|
|
#ifndef LLVM_FUZZER_IO_H
|
|
#define LLVM_FUZZER_IO_H
|
|
|
|
#include "FuzzerDefs.h"
|
|
|
|
namespace fuzzer {
|
|
|
|
long GetEpoch(const std::string &Path);
|
|
|
|
Unit FileToVector(const std::string &Path, size_t MaxSize = 0,
|
|
bool ExitOnError = true);
|
|
|
|
std::string FileToString(const std::string &Path);
|
|
|
|
void CopyFileToErr(const std::string &Path);
|
|
|
|
void WriteToFile(const Unit &U, const std::string &Path);
|
|
|
|
void ReadDirToVectorOfUnits(const char *Path, std::vector<Unit> *V,
|
|
long *Epoch, size_t MaxSize, bool ExitOnError);
|
|
|
|
// Returns "Dir/FileName" or equivalent for the current OS.
|
|
std::string DirPlusFile(const std::string &DirPath,
|
|
const std::string &FileName);
|
|
|
|
void DupAndCloseStderr();
|
|
|
|
void CloseStdout();
|
|
|
|
void Printf(const char *Fmt, ...);
|
|
|
|
// Platform specific functions:
|
|
bool IsFile(const std::string &Path);
|
|
|
|
void ListFilesInDirRecursive(const std::string &Dir, long *Epoch,
|
|
std::vector<std::string> *V, bool TopDir);
|
|
|
|
char GetSeparator();
|
|
|
|
FILE* OpenFile(int Fd, const char *Mode);
|
|
|
|
int CloseFile(int Fd);
|
|
|
|
int DuplicateFile(int Fd);
|
|
|
|
void DeleteFile(const std::string &Path);
|
|
|
|
} // namespace fuzzer
|
|
#endif // LLVM_FUZZER_IO_H
|