pktlog_ac_i.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. #ifndef _PKTLOG_AC_I_
  19. #define _PKTLOG_AC_I_
  20. #ifndef REMOVE_PKT_LOG
  21. #include <ol_txrx_internal.h>
  22. #include <pktlog_ac.h>
  23. #define PKTLOG_DEFAULT_BUFSIZE (10 * 1024 * 1024) /* 10MB */
  24. #define PKTLOG_DEFAULT_SACK_THR 3
  25. #define PKTLOG_DEFAULT_TAIL_LENGTH 100
  26. #define PKTLOG_DEFAULT_THRUPUT_THRESH (64 * 1024)
  27. #define PKTLOG_DEFAULT_PER_THRESH 30
  28. #define PKTLOG_DEFAULT_PHYERR_THRESH 300
  29. #define PKTLOG_DEFAULT_TRIGGER_INTERVAL 500
  30. struct ath_pktlog_arg {
  31. struct ath_pktlog_info *pl_info;
  32. uint32_t flags;
  33. uint16_t missed_cnt;
  34. #ifdef HELIUMPLUS
  35. uint8_t log_type;
  36. uint8_t macId;
  37. #else
  38. uint16_t log_type;
  39. #endif
  40. size_t log_size;
  41. uint16_t timestamp;
  42. uint32_t type_specific_data;
  43. char *buf;
  44. };
  45. void pktlog_getbuf_intsafe(struct ath_pktlog_arg *plarg);
  46. char *pktlog_getbuf(struct pktlog_dev_t *pl_dev,
  47. struct ath_pktlog_info *pl_info,
  48. size_t log_size, struct ath_pktlog_hdr *pl_hdr);
  49. A_STATUS process_tx_info(struct cdp_pdev *pdev, void *data);
  50. A_STATUS process_rx_info(void *pdev, void *data);
  51. A_STATUS process_rx_info_remote(void *pdev, void *data);
  52. A_STATUS process_rate_find(void *pdev, void *data);
  53. A_STATUS process_rate_update(void *pdev, void *data);
  54. A_STATUS process_sw_event(void *pdev, void *data);
  55. int process_pktlog_lite(void *context, void *log_data, uint16_t log_type);
  56. int process_rx_desc_remote(void *pdev, void *data);
  57. A_STATUS process_offload_pktlog(struct cdp_pdev *pdev, void *data);
  58. #endif /* REMOVE_PKT_LOG */
  59. #endif