1 /* 2 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. 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 __DP_RH_H 19 #define __DP_RH_H 20 21 #include <dp_types.h> 22 #include <dp_mon.h> 23 #include <hal_rh_tx.h> 24 #include <hal_rh_rx.h> 25 #include <qdf_pkt_add_timestamp.h> 26 27 /** 28 * struct dp_soc_rh - Extended DP soc for RH targets 29 * @soc: dp soc structure 30 */ 31 struct dp_soc_rh { 32 struct dp_soc soc; 33 }; 34 35 /** 36 * struct dp_pdev_rh - Extended DP pdev for RH targets 37 * @pdev: dp_pdev structure 38 */ 39 struct dp_pdev_rh { 40 struct dp_pdev pdev; 41 }; 42 43 /** 44 * struct dp_vdev_rh - Extended DP vdev for RH targets 45 * @vdev: dp_vdev structure 46 */ 47 struct dp_vdev_rh { 48 struct dp_vdev vdev; 49 }; 50 51 /** 52 * struct dp_peer_rh - Extended DP peer for RH targets 53 * @peer: dp_peer structure 54 */ 55 struct dp_peer_rh { 56 struct dp_peer peer; 57 }; 58 59 /** 60 * struct dp_mon_soc_rh - Extended DP mon soc for RH targets 61 * @mon_soc: dp_mon_soc structure 62 */ 63 struct dp_mon_soc_rh { 64 struct dp_mon_soc mon_soc; 65 }; 66 67 /** 68 * struct dp_mon_pdev_rh - Extended DP mon pdev for RH targets 69 * @mon_pdev: dp_mon_pdev structure 70 */ 71 struct dp_mon_pdev_rh { 72 struct dp_mon_pdev mon_pdev; 73 }; 74 75 /** 76 * dp_get_soc_context_size_rh() - get context size for dp_soc_rh 77 * 78 * Return: value in bytes for RH specific soc structure 79 */ 80 qdf_size_t dp_get_soc_context_size_rh(void); 81 82 /** 83 * dp_initialize_arch_ops_rh() - initialize RH specific arch ops 84 * @arch_ops: arch ops pointer 85 * 86 * Return: none 87 */ 88 void dp_initialize_arch_ops_rh(struct dp_arch_ops *arch_ops); 89 90 /** 91 * dp_get_context_size_rh() - get RH specific size for peer/vdev/pdev/soc 92 * @context_type: Context type to get size 93 * 94 * Return: size in bytes for the context_type 95 */ 96 97 qdf_size_t dp_get_context_size_rh(enum dp_context_type context_type); 98 99 /** 100 * dp_mon_get_context_size_rh() - get RH specific size for mon pdev/soc 101 * @context_type: Mon context type to get size 102 * 103 * Return: size in bytes for the context_type 104 */ 105 106 qdf_size_t dp_mon_get_context_size_rh(enum dp_context_type context_type); 107 108 #endif 109