//===-- Definition of RPC opcodes -----------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_LIBC_SHARED_RPC_OPCODES_H #define LLVM_LIBC_SHARED_RPC_OPCODES_H #include "rpc.h" #define LLVM_LIBC_RPC_BASE 'c' #define LLVM_LIBC_OPCODE(n) (LLVM_LIBC_RPC_BASE << 24 | n) typedef enum { RPC_NOOP = LLVM_LIBC_OPCODE(0), RPC_EXIT = LLVM_LIBC_OPCODE(1), RPC_WRITE_TO_STDOUT = LLVM_LIBC_OPCODE(2), RPC_WRITE_TO_STDERR = LLVM_LIBC_OPCODE(3), RPC_WRITE_TO_STREAM = LLVM_LIBC_OPCODE(4), RPC_WRITE_TO_STDOUT_NEWLINE = LLVM_LIBC_OPCODE(5), RPC_READ_FROM_STREAM = LLVM_LIBC_OPCODE(6), RPC_READ_FGETS = LLVM_LIBC_OPCODE(7), RPC_OPEN_FILE = LLVM_LIBC_OPCODE(8), RPC_CLOSE_FILE = LLVM_LIBC_OPCODE(9), RPC_MALLOC = LLVM_LIBC_OPCODE(10), RPC_FREE = LLVM_LIBC_OPCODE(11), RPC_HOST_CALL = LLVM_LIBC_OPCODE(12), RPC_ABORT = LLVM_LIBC_OPCODE(13), RPC_FEOF = LLVM_LIBC_OPCODE(14), RPC_FERROR = LLVM_LIBC_OPCODE(15), RPC_CLEARERR = LLVM_LIBC_OPCODE(16), RPC_FSEEK = LLVM_LIBC_OPCODE(17), RPC_FTELL = LLVM_LIBC_OPCODE(18), RPC_FFLUSH = LLVM_LIBC_OPCODE(19), RPC_UNGETC = LLVM_LIBC_OPCODE(20), RPC_PRINTF_TO_STDOUT = LLVM_LIBC_OPCODE(21), RPC_PRINTF_TO_STDERR = LLVM_LIBC_OPCODE(22), RPC_PRINTF_TO_STREAM = LLVM_LIBC_OPCODE(23), RPC_PRINTF_TO_STDOUT_PACKED = LLVM_LIBC_OPCODE(24), RPC_PRINTF_TO_STDERR_PACKED = LLVM_LIBC_OPCODE(25), RPC_PRINTF_TO_STREAM_PACKED = LLVM_LIBC_OPCODE(26), RPC_REMOVE = LLVM_LIBC_OPCODE(27), RPC_RENAME = LLVM_LIBC_OPCODE(28), RPC_SYSTEM = LLVM_LIBC_OPCODE(29), RPC_LAST = 0xFFFFFFFF, } rpc_opcode_t; #undef LLVM_LIBC_OPCODE namespace rpc { // The implementation of this function currently lives in the utility directory // at 'utils/gpu/server/rpc_server.cpp'. rpc::Status handle_libc_opcodes(rpc::Server::Port &port, uint32_t num_lanes); } // namespace rpc #endif // LLVM_LIBC_SHARED_RPC_OPCODES_H