xref: /aosp_15_r20/external/llvm-libc/libc/shared/rpc_opcodes.h (revision 71db0c75aadcf003ffe3238005f61d7618a3fead)
1 //===-- Definition of RPC opcodes -----------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_LIBC_SHARED_RPC_OPCODES_H
10 #define LLVM_LIBC_SHARED_RPC_OPCODES_H
11 
12 #include "rpc.h"
13 
14 #define LLVM_LIBC_RPC_BASE 'c'
15 #define LLVM_LIBC_OPCODE(n) (LLVM_LIBC_RPC_BASE << 24 | n)
16 
17 typedef enum {
18   RPC_NOOP = LLVM_LIBC_OPCODE(0),
19   RPC_EXIT = LLVM_LIBC_OPCODE(1),
20   RPC_WRITE_TO_STDOUT = LLVM_LIBC_OPCODE(2),
21   RPC_WRITE_TO_STDERR = LLVM_LIBC_OPCODE(3),
22   RPC_WRITE_TO_STREAM = LLVM_LIBC_OPCODE(4),
23   RPC_WRITE_TO_STDOUT_NEWLINE = LLVM_LIBC_OPCODE(5),
24   RPC_READ_FROM_STREAM = LLVM_LIBC_OPCODE(6),
25   RPC_READ_FGETS = LLVM_LIBC_OPCODE(7),
26   RPC_OPEN_FILE = LLVM_LIBC_OPCODE(8),
27   RPC_CLOSE_FILE = LLVM_LIBC_OPCODE(9),
28   RPC_MALLOC = LLVM_LIBC_OPCODE(10),
29   RPC_FREE = LLVM_LIBC_OPCODE(11),
30   RPC_HOST_CALL = LLVM_LIBC_OPCODE(12),
31   RPC_ABORT = LLVM_LIBC_OPCODE(13),
32   RPC_FEOF = LLVM_LIBC_OPCODE(14),
33   RPC_FERROR = LLVM_LIBC_OPCODE(15),
34   RPC_CLEARERR = LLVM_LIBC_OPCODE(16),
35   RPC_FSEEK = LLVM_LIBC_OPCODE(17),
36   RPC_FTELL = LLVM_LIBC_OPCODE(18),
37   RPC_FFLUSH = LLVM_LIBC_OPCODE(19),
38   RPC_UNGETC = LLVM_LIBC_OPCODE(20),
39   RPC_PRINTF_TO_STDOUT = LLVM_LIBC_OPCODE(21),
40   RPC_PRINTF_TO_STDERR = LLVM_LIBC_OPCODE(22),
41   RPC_PRINTF_TO_STREAM = LLVM_LIBC_OPCODE(23),
42   RPC_PRINTF_TO_STDOUT_PACKED = LLVM_LIBC_OPCODE(24),
43   RPC_PRINTF_TO_STDERR_PACKED = LLVM_LIBC_OPCODE(25),
44   RPC_PRINTF_TO_STREAM_PACKED = LLVM_LIBC_OPCODE(26),
45   RPC_REMOVE = LLVM_LIBC_OPCODE(27),
46   RPC_RENAME = LLVM_LIBC_OPCODE(28),
47   RPC_SYSTEM = LLVM_LIBC_OPCODE(29),
48   RPC_LAST = 0xFFFFFFFF,
49 } rpc_opcode_t;
50 
51 #undef LLVM_LIBC_OPCODE
52 
53 namespace rpc {
54 // The implementation of this function currently lives in the utility directory
55 // at 'utils/gpu/server/rpc_server.cpp'.
56 rpc::Status handle_libc_opcodes(rpc::Server::Port &port, uint32_t num_lanes);
57 } // namespace rpc
58 
59 #endif // LLVM_LIBC_SHARED_RPC_OPCODES_H
60