pktlog_ac_i.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * Copyright (c) 2012-2017 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 (1 * 1024 * 1024) /* 1MB */
  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. #ifdef HELIUMPLUS
  43. uint32_t type_specific_data;
  44. #endif
  45. char *buf;
  46. };
  47. void pktlog_getbuf_intsafe(struct ath_pktlog_arg *plarg);
  48. char *pktlog_getbuf(struct pktlog_dev_t *pl_dev,
  49. struct ath_pktlog_info *pl_info,
  50. size_t log_size, struct ath_pktlog_hdr *pl_hdr);
  51. A_STATUS process_tx_info(struct cdp_pdev *pdev, void *data);
  52. A_STATUS process_rx_info(void *pdev, void *data);
  53. A_STATUS process_rx_info_remote(void *pdev, void *data);
  54. A_STATUS process_rate_find(void *pdev, void *data);
  55. A_STATUS process_rate_update(void *pdev, void *data);
  56. A_STATUS process_sw_event(void *pdev, void *data);
  57. int process_pktlog_lite(void *context, void *log_data, uint16_t log_type);
  58. int process_rx_desc_remote(void *pdev, void *data);
  59. #endif /* REMOVE_PKT_LOG */
  60. #endif