2018-11-09 16:54:00 +03:00
/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
2016-08-10 13:58:41 +03:00
/*
2016-08-10 18:02:05 +03:00
* Copyright ( c ) 2016 Google Inc . All rights reserved .
* Copyright ( c ) 2016 Linaro Ltd . All rights reserved .
2016-08-10 13:58:41 +03:00
*/
# ifndef __ARPC_H
# define __ARPC_H
/* APBridgeA RPC (ARPC) */
enum arpc_result {
ARPC_SUCCESS = 0x00 ,
ARPC_NO_MEMORY = 0x01 ,
ARPC_INVALID = 0x02 ,
ARPC_TIMEOUT = 0x03 ,
ARPC_UNKNOWN_ERROR = 0xff ,
} ;
struct arpc_request_message {
__le16 id ; /* RPC unique id */
__le16 size ; /* Size in bytes of header + payload */
__u8 type ; /* RPC type */
2020-05-07 21:53:18 +03:00
__u8 data [ ] ; /* ARPC data */
2016-08-10 13:58:41 +03:00
} __packed ;
struct arpc_response_message {
__le16 id ; /* RPC unique id */
__u8 result ; /* Result of RPC */
} __packed ;
/* ARPC requests */
2016-08-10 13:58:42 +03:00
# define ARPC_TYPE_CPORT_CONNECTED 0x01
2016-08-10 13:58:43 +03:00
# define ARPC_TYPE_CPORT_QUIESCE 0x02
2016-08-10 13:58:44 +03:00
# define ARPC_TYPE_CPORT_CLEAR 0x03
2016-08-26 13:55:47 +03:00
# define ARPC_TYPE_CPORT_FLUSH 0x04
2016-08-26 13:55:48 +03:00
# define ARPC_TYPE_CPORT_SHUTDOWN 0x05
2016-08-10 13:58:41 +03:00
2016-08-10 13:58:42 +03:00
struct arpc_cport_connected_req {
__le16 cport_id ;
} __packed ;
2016-08-10 13:58:43 +03:00
struct arpc_cport_quiesce_req {
__le16 cport_id ;
__le16 peer_space ;
__le16 timeout ;
} __packed ;
2016-08-10 13:58:44 +03:00
struct arpc_cport_clear_req {
__le16 cport_id ;
} __packed ;
2016-08-26 13:55:47 +03:00
struct arpc_cport_flush_req {
__le16 cport_id ;
} __packed ;
2016-08-10 13:58:42 +03:00
2016-08-26 13:55:48 +03:00
struct arpc_cport_shutdown_req {
__le16 cport_id ;
__le16 timeout ;
__u8 phase ;
} __packed ;
2016-08-10 13:58:41 +03:00
# endif /* __ARPC_H */