arpc.h (1298B)
1/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */ 2/* 3 * Copyright(c) 2016 Google Inc. All rights reserved. 4 * Copyright(c) 2016 Linaro Ltd. All rights reserved. 5 */ 6 7#ifndef __ARPC_H 8#define __ARPC_H 9 10/* APBridgeA RPC (ARPC) */ 11 12enum arpc_result { 13 ARPC_SUCCESS = 0x00, 14 ARPC_NO_MEMORY = 0x01, 15 ARPC_INVALID = 0x02, 16 ARPC_TIMEOUT = 0x03, 17 ARPC_UNKNOWN_ERROR = 0xff, 18}; 19 20struct arpc_request_message { 21 __le16 id; /* RPC unique id */ 22 __le16 size; /* Size in bytes of header + payload */ 23 __u8 type; /* RPC type */ 24 __u8 data[]; /* ARPC data */ 25} __packed; 26 27struct arpc_response_message { 28 __le16 id; /* RPC unique id */ 29 __u8 result; /* Result of RPC */ 30} __packed; 31 32/* ARPC requests */ 33#define ARPC_TYPE_CPORT_CONNECTED 0x01 34#define ARPC_TYPE_CPORT_QUIESCE 0x02 35#define ARPC_TYPE_CPORT_CLEAR 0x03 36#define ARPC_TYPE_CPORT_FLUSH 0x04 37#define ARPC_TYPE_CPORT_SHUTDOWN 0x05 38 39struct arpc_cport_connected_req { 40 __le16 cport_id; 41} __packed; 42 43struct arpc_cport_quiesce_req { 44 __le16 cport_id; 45 __le16 peer_space; 46 __le16 timeout; 47} __packed; 48 49struct arpc_cport_clear_req { 50 __le16 cport_id; 51} __packed; 52 53struct arpc_cport_flush_req { 54 __le16 cport_id; 55} __packed; 56 57struct arpc_cport_shutdown_req { 58 __le16 cport_id; 59 __le16 timeout; 60 __u8 phase; 61} __packed; 62 63#endif /* __ARPC_H */