qcom_glink_native.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (c) 2016-2017, Linaro Ltd
  4. */
  5. #ifndef __QCOM_GLINK_NATIVE_H__
  6. #define __QCOM_GLINK_NATIVE_H__
  7. #include <linux/types.h>
  8. #define GLINK_FEATURE_INTENT_REUSE BIT(0)
  9. #define GLINK_FEATURE_MIGRATION BIT(1)
  10. #define GLINK_FEATURE_TRACER_PKT BIT(2)
  11. struct qcom_glink_pipe {
  12. size_t length;
  13. size_t (*avail)(struct qcom_glink_pipe *glink_pipe);
  14. void (*peek)(struct qcom_glink_pipe *glink_pipe, void *data,
  15. unsigned int offset, size_t count);
  16. void (*advance)(struct qcom_glink_pipe *glink_pipe, size_t count);
  17. void (*write)(struct qcom_glink_pipe *glink_pipe,
  18. const void *hdr, size_t hlen,
  19. const void *data, size_t dlen);
  20. void (*kick)(struct qcom_glink_pipe *glink_pipe);
  21. };
  22. struct device;
  23. struct qcom_glink;
  24. struct qcom_glink *qcom_glink_native_probe(struct device *dev,
  25. unsigned long features,
  26. struct qcom_glink_pipe *rx,
  27. struct qcom_glink_pipe *tx,
  28. bool intentless);
  29. void qcom_glink_native_remove(struct qcom_glink *glink);
  30. void qcom_glink_native_rx(struct qcom_glink *glink);
  31. #endif