64 lines · c
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_H8#define __ARPC_H9 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 0x0134#define ARPC_TYPE_CPORT_QUIESCE 0x0235#define ARPC_TYPE_CPORT_CLEAR 0x0336#define ARPC_TYPE_CPORT_FLUSH 0x0437#define ARPC_TYPE_CPORT_SHUTDOWN 0x0538 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 */64