qcom_glink_native.h 1017 B

12345678910111213141516171819202122232425262728293031323334353637
  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. #define GLINK_FEATURE_INTENT_REUSE BIT(0)
  8. #define GLINK_FEATURE_MIGRATION BIT(1)
  9. #define GLINK_FEATURE_TRACER_PKT BIT(2)
  10. struct qcom_glink_pipe {
  11. size_t length;
  12. size_t (*avail)(struct qcom_glink_pipe *glink_pipe);
  13. void (*peak)(struct qcom_glink_pipe *glink_pipe, void *data,
  14. unsigned int offset, size_t count);
  15. void (*advance)(struct qcom_glink_pipe *glink_pipe, size_t count);
  16. void (*write)(struct qcom_glink_pipe *glink_pipe,
  17. const void *hdr, size_t hlen,
  18. const void *data, size_t dlen);
  19. };
  20. struct qcom_glink;
  21. struct qcom_glink *qcom_glink_native_probe(struct device *dev,
  22. unsigned long features,
  23. struct qcom_glink_pipe *rx,
  24. struct qcom_glink_pipe *tx,
  25. bool intentless);
  26. void qcom_glink_native_remove(struct qcom_glink *glink);
  27. void qcom_glink_native_unregister(struct qcom_glink *glink);
  28. #endif