Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/drivers/greybus/arpc.h
26278 views
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
12
enum 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
20
struct 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
27
struct 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
39
struct arpc_cport_connected_req {
40
__le16 cport_id;
41
} __packed;
42
43
struct arpc_cport_quiesce_req {
44
__le16 cport_id;
45
__le16 peer_space;
46
__le16 timeout;
47
} __packed;
48
49
struct arpc_cport_clear_req {
50
__le16 cport_id;
51
} __packed;
52
53
struct arpc_cport_flush_req {
54
__le16 cport_id;
55
} __packed;
56
57
struct arpc_cport_shutdown_req {
58
__le16 cport_id;
59
__le16 timeout;
60
__u8 phase;
61
} __packed;
62
63
#endif /* __ARPC_H */
64
65