1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2016-2017, Linaro Ltd
6 #ifndef __QCOM_GLINK_NATIVE_H__
7 #define __QCOM_GLINK_NATIVE_H__
9 #include <linux/types.h>
11 #define GLINK_FEATURE_INTENT_REUSE BIT(0)
12 #define GLINK_FEATURE_MIGRATION BIT(1)
13 #define GLINK_FEATURE_TRACER_PKT BIT(2)
15 struct qcom_glink_pipe
{
18 size_t (*avail
)(struct qcom_glink_pipe
*glink_pipe
);
20 void (*peek
)(struct qcom_glink_pipe
*glink_pipe
, void *data
,
21 unsigned int offset
, size_t count
);
22 void (*advance
)(struct qcom_glink_pipe
*glink_pipe
, size_t count
);
24 void (*write
)(struct qcom_glink_pipe
*glink_pipe
,
25 const void *hdr
, size_t hlen
,
26 const void *data
, size_t dlen
);
27 void (*kick
)(struct qcom_glink_pipe
*glink_pipe
);
33 struct qcom_glink
*qcom_glink_native_probe(struct device
*dev
,
34 unsigned long features
,
35 struct qcom_glink_pipe
*rx
,
36 struct qcom_glink_pipe
*tx
,
38 void qcom_glink_native_remove(struct qcom_glink
*glink
);
39 void qcom_glink_native_rx(struct qcom_glink
*glink
);