mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
6017979796
This enables IO error reports in both the child and server processes. The scheme still isn't entirely satisfactory and output is jumbled but it beats having no output at all. This will hopefully unblock ARM support (PR18057). llvm-svn: 200017
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
//===---------- RPCChannel.h - LLVM out-of-process JIT execution ----------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Definition of the RemoteTargetExternal class which executes JITed code in a
|
|
// separate process from where it was built.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLI_RPCCHANNEL_H
|
|
#define LLI_RPCCHANNEL_H
|
|
|
|
#include <stdlib.h>
|
|
#include <string>
|
|
|
|
namespace llvm {
|
|
|
|
class RPCChannel {
|
|
public:
|
|
std::string ChildName;
|
|
|
|
RPCChannel() {}
|
|
~RPCChannel();
|
|
|
|
/// Start the remote process.
|
|
///
|
|
/// @returns True on success. On failure, ErrorMsg is updated with
|
|
/// descriptive text of the encountered error.
|
|
bool createServer();
|
|
|
|
bool createClient();
|
|
|
|
// This will get filled in as a point to an OS-specific structure.
|
|
void *ConnectionData;
|
|
|
|
bool WriteBytes(const void *Data, size_t Size);
|
|
bool ReadBytes(void *Data, size_t Size);
|
|
|
|
void Wait();
|
|
};
|
|
|
|
} // end namespace llvm
|
|
|
|
#endif // LLI_RPCCHANNEL_H
|