1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __QRTR_H_ |
3 | #define __QRTR_H_ |
4 | |
5 | #include <linux/types.h> |
6 | |
7 | struct sk_buff; |
8 | |
9 | /* endpoint node id auto assignment */ |
10 | #define QRTR_EP_NID_AUTO (-1) |
11 | |
12 | /** |
13 | * struct qrtr_endpoint - endpoint handle |
14 | * @xmit: Callback for outgoing packets |
15 | * |
16 | * The socket buffer passed to the xmit function becomes owned by the endpoint |
17 | * driver. As such, when the driver is done with the buffer, it should |
18 | * call kfree_skb() on failure, or consume_skb() on success. |
19 | */ |
20 | struct qrtr_endpoint { |
21 | int (*xmit)(struct qrtr_endpoint *ep, struct sk_buff *skb); |
22 | /* private: not for endpoint use */ |
23 | struct qrtr_node *node; |
24 | }; |
25 | |
26 | int qrtr_endpoint_register(struct qrtr_endpoint *ep, unsigned int nid); |
27 | |
28 | void qrtr_endpoint_unregister(struct qrtr_endpoint *ep); |
29 | |
30 | int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len); |
31 | |
32 | int qrtr_ns_init(void); |
33 | |
34 | void qrtr_ns_remove(void); |
35 | |
36 | #endif |
37 | |