rmnet_shs.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
  2. * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 and
  6. * only version 2 as published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. */
  14. #include <linux/skbuff.h>
  15. #include <linux/in.h>
  16. #include <linux/ip.h>
  17. #include <linux/ipv6.h>
  18. #include <linux/tcp.h>
  19. #include <linux/udp.h>
  20. #include "rmnet_shs_wq.h"
  21. #ifndef DATARMNETbd5709177a
  22. #define DATARMNETbd5709177a
  23. #include "rmnet_shs_freq.h"
  24. #include "rmnet_config.h"
  25. #include "rmnet_map.h"
  26. #include "rmnet_shs_wq_genl.h"
  27. #include "rmnet_private.h"
  28. #include "rmnet_handlers.h"
  29. #include "rmnet_trace.h"
  30. #include "qmi_rmnet.h"
  31. #define DATARMNETe603c3a4b3 DATARMNETbfe1afe595
  32. #define DATARMNET25437d35fd 9
  33. #define DATARMNET4899358462 (0xeb7+1101-0x12f5)
  34. #define DATARMNET401583e606 DATARMNETecc0627c70.DATARMNET2f954f58f8
  35. #define DATARMNETc6782fed88 (0xd35+210-0xdff)
  36. #define DATARMNETbc3c416b77 DATARMNETecc0627c70.DATARMNETf510b48c29
  37. #define DATARMNET9273f84bf1 DATARMNETecc0627c70.DATARMNET637025ccc1
  38. #define DATARMNET12f3a261a0 ((0xc07+4861-0x1e3c))
  39. #define DATARMNETb91aee91fd -(0xd26+209-0xdf6)
  40. #define DATARMNET2edff26954 (0xd2d+202-0xdf7)
  41. #define DATARMNET752465942a (0xbf7+4364-0x1c04)
  42. #define DATARMNETbfe31ef643 (0xc07+1233-0xe1c)
  43. #define DATARMNET2d0941aa7c (0xd11+230-0xdf3)
  44. #define DATARMNETaa0602144b 11184810
  45. #define DATARMNET7a815512d3 (0xef7+1100-0x12fd)
  46. #define DATARMNET270b564b55 (0xd35+210-0xdff)
  47. #define DATARMNET1c2d76f636 (0xf07+658-0x110d)
  48. #define DATARMNET2922c89d50 (0xd1f+216-0xdf5)
  49. #define DATARMNET015fb2ba0e(...) \
  50. do { if (DATARMNET756bdd424a) trace_rmnet_shs_err(__VA_ARGS__); } while (\
  51. (0xd2d+202-0xdf7))
  52. #define DATARMNET52de1f3dc0(...) \
  53. do { if (DATARMNET756bdd424a) trace_rmnet_shs_high(__VA_ARGS__); } while (\
  54. (0xd2d+202-0xdf7))
  55. #define DATARMNETda96251102(...) \
  56. do { if (DATARMNET756bdd424a) trace_rmnet_shs_low(__VA_ARGS__); } while (\
  57. (0xd2d+202-0xdf7))
  58. #define DATARMNETd82a2ed45e 204800
  59. #define DATARMNETc668d192f2 (0xec7+1093-0x12f5)
  60. #define DATARMNETb38cb72105 100000
  61. #define DATARMNETfbee9e182e 100000
  62. #define DATARMNETac6d632788 (80000*DATARMNETc668d192f2)
  63. #define DATARMNET243c638e7d 210000
  64. #define DATARMNET03fd42433e (210000*DATARMNETc668d192f2)
  65. #define DATARMNET9bc9e0cac3 (0xd2d+202-0xdf7)
  66. #define DATARMNET22feab5726 40000
  67. #define DATARMNET4298ee0d38 (40000*DATARMNETc668d192f2)
  68. #define DATARMNET3a9bca9cba 20000
  69. #define DATARMNETcdee526004 (DATARMNET243c638e7d / (0xd1f+216-0xdf5))
  70. struct DATARMNETa6f2d499b2{struct hrtimer DATARMNET758a55f103;struct work_struct
  71. DATARMNET33110a3ff5;struct timespec64 DATARMNET251b97a380;int
  72. DATARMNETe61d62310f;u8 DATARMNET42c3ecbd5e;};struct DATARMNETa6b20d7e8b{struct
  73. hrtimer DATARMNET6fd692fc7a;struct hrtimer DATARMNET645fb3b468;struct hrtimer
  74. hrtimer_wake;struct hrtimer DATARMNET533dba0f29;struct rmnet_map_dl_ind
  75. DATARMNET08dbb5ab35;struct rmnet_map_pb_ind DATARMNET6b783c98fe;struct
  76. qmi_rmnet_ps_ind rmnet_idl_ind_cb;struct rmnet_port*port;struct
  77. DATARMNETa6f2d499b2 DATARMNET132b9c7dc4[DATARMNETc6782fed88];u64
  78. DATARMNETbd3a0ee74e[DATARMNETc6782fed88];long DATARMNETc252a1f55d;long
  79. DATARMNETa2e32cdd3a;atomic_long_t DATARMNET64bb8a8f57;u8 DATARMNET110549da6f;u8
  80. DATARMNET9c869c1ec2;u8 DATARMNETd9cfd2812b;u8 DATARMNETf5ab31b9b0;u8
  81. DATARMNET34097703c8;u8 DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8
  82. DATARMNETba3f7a11ef;u8 map_mask;u8 map_len;u8 DATARMNET5c24e1df05;u8
  83. DATARMNET6625085b71;u16 DATARMNETfeee6933fc;u8 DATARMNET7d667e828e;u8
  84. DATARMNETe250463eef;ktime_t DATARMNETdd3caf9200;struct wakeup_source*ws;u8
  85. DATARMNET2f954f58f8;u8 DATARMNETf510b48c29;u8 DATARMNET637025ccc1;u8
  86. DATARMNET75af9f3c31;};struct DATARMNETa034b2e60c{struct sk_buff*head;struct
  87. sk_buff*tail;u64 DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32
  88. DATARMNET35234676d4;};struct DATARMNET63d7680df2{union{struct iphdr
  89. DATARMNETac9bbaad7c;struct ipv6hdr DATARMNET1688a97aa4;}ip_hdr;union{struct
  90. tcphdr tp;struct udphdr up;}DATARMNETe33b41dad9;struct list_head
  91. DATARMNET04c88b8191;struct net_device*dev;struct DATARMNET6c78e47d24*
  92. DATARMNET341ea38662;struct DATARMNETa034b2e60c DATARMNETae4b27456e;struct
  93. hlist_node list;u64 DATARMNET11930c5df8;u64 DATARMNETa8940e4a7b;u64
  94. DATARMNET2594c418db;u64 DATARMNET3ecedac168;u64 DATARMNETce5f56eab9;u32
  95. DATARMNET1743c92e66;u32 queue_head;u32 hash;u32 bif;u32 ack_thresh;u16 map_index
  96. ;u16 map_cpu;u16 DATARMNETfbbec4c537;u16 DATARMNETa59ce1fd2d;u8
  97. DATARMNET85c698ec34;u16 DATARMNET0371465875;u16 DATARMNET1e9d25d9ff;u8
  98. DATARMNET6250e93187;u8 DATARMNET80eb31d7b8;u8 DATARMNETd986107d55;u8 mux_id;};
  99. enum DATARMNETa40e71cf32{DATARMNET39a19f2e82,DATARMNETbb52958049,
  100. DATARMNET46a17e3ec5,DATARMNETfeb864b93d,DATARMNET3503c562cb};enum
  101. DATARMNET055bc2777b{DATARMNETf8fcf5a1db,DATARMNET6a801720f2,DATARMNET64165df74d,
  102. DATARMNETfb9ca677b8};enum DATARMNET156842d55e{DATARMNET7bc926fdbe,
  103. DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{
  104. DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f,
  105. DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETf13db5ace8,DATARMNETb6eae1e097,
  106. DATARMNET0e398136dc,DATARMNET975060d6b5,DATARMNET7f401828b3,DATARMNET6ea8a58f4e,
  107. DATARMNETcf84373518,DATARMNET6bf40b86f6,DATARMNET9f8bd72ee5,DATARMNET5eefd5051a,
  108. DATARMNET6d1e5ff045,DATARMNETf6458f40e6,DATARMNET438fb7f8f3,DATARMNET6fed39da20,
  109. DATARMNET706cd2d052,DATARMNETaac8ed4c2d,DATARMNETeccb61ebc3};enum
  110. DATARMNETf355367410{DATARMNET557ff68d74,DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,
  111. DATARMNETde2dd86539};enum DATARMNET6c7f7f22c7{DATARMNETe35e238437,
  112. DATARMNET465c0e5e6d,DATARMNET0d61981934};enum DATARMNET3f3bc61c03{
  113. DATARMNETf5157a9b85,DATARMNET709b59b0e6,DATARMNET99db6e7d86,DATARMNETe3c02ddaeb,
  114. DATARMNET394acaf558,DATARMNETef8cbfa62f,DATARMNETe6e77f9f03,DATARMNETecdf13872c,
  115. DATARMNETd1687e0776,DATARMNET1828d69e96,DATARMNET40ceff078e,DATARMNET42b73d0f3f,
  116. DATARMNETb8fe2c0e64,DATARMNET72db8b9bac,DATARMNET33a9d4759f,DATARMNET46966e7828,
  117. DATARMNETa1f9420686,DATARMNET54b67b8a75,DATARMNETac729c3d29,DATARMNET6533f70c87,
  118. DATARMNET6f6efeaf61,DATARMNETcc0ef52ccb,DATARMNETf8de7cb644,DATARMNETdd6bf3de6b,
  119. DATARMNETfeaf903a28,DATARMNET767c76ca08,DATARMNET048727d1d9,DATARMNET43405942ed,
  120. DATARMNET2e68f4bd9f,DATARMNET0fa3506473,DATARMNETbb641cd339,DATARMNETf352684b06,
  121. DATARMNET62807647a4,DATARMNET3b5329031b,DATARMNETdfffcec2c8,DATARMNETf3110711cb}
  122. ;enum DATARMNET269385986c{DATARMNET5c4c7e20f2,DATARMNET95c85e6fe1,
  123. DATARMNET27fb9a225d,DATARMNETbbf8fe40aa,DATARMNETa7d45fb6d4,DATARMNET0acd775aa8,
  124. DATARMNET2217440c2e,DATARMNET6aecae7be2,DATARMNETf3dfa53867,DATARMNET0492ddb5d5}
  125. ;enum DATARMNETd751e3ec84{DATARMNETcc3c294f38,DATARMNET802083239a,
  126. DATARMNETed69052342,DATARMNETcfb1764a91,DATARMNET84a9e136b8,DATARMNET01bf75e27c,
  127. DATARMNETd45c383019,DATARMNETbb5757569c,DATARMNETc8058e2cff,DATARMNET04dac3a62b,
  128. DATARMNETdf6ecde77a,DATARMNET94658618fc,DATARMNET0d07041c32,DATARMNET3cef75f6cd}
  129. ;struct DATARMNETfd554c7eac{struct sk_buff*skb;struct DATARMNETfd554c7eac*next;}
  130. ;struct DATARMNET37ef896af8{struct work_struct DATARMNET33110a3ff5;struct
  131. rmnet_port*port;};struct DATARMNETe600c5b727{struct list_head
  132. DATARMNET3dc4262f53;u32 DATARMNETae196235f2;u32 qtail;u32 DATARMNET96571b28de;
  133. u32 DATARMNET4133fc9428;u32 seg;u8 DATARMNETef866573e0;u8 DATARMNET1e1f197118;u8
  134. DATARMNET72067bf727;};enum DATARMNETf0a06dc55a{DATARMNET1790979ccf,
  135. DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7,DATARMNET6b317c4c73,
  136. DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9,DATARMNET4510abc30d,
  137. DATARMNET23f8730007,DATARMNETb77d87790d,DATARMNETf783febe14,};enum
  138. DATARMNETc1d9e38720{DATARMNET0b15fd8b54,DATARMNET5b5927fd7e,DATARMNETba3049005f}
  139. ;enum DATARMNET4f392b0182{DATARMNET72cb00fdc0,DATARMNET443dab7031,
  140. DATARMNET96db46917c,DATARMNET89958f9b63,DATARMNET6d7a3a033a,DATARMNET16a68afc17,
  141. DATARMNET916f444e0a,DATARMNETe9a79499ac,DATARMNET89f4779456,DATARMNETa94c7e31a0,
  142. DATARMNET116c96c236,DATARMNET9da2ea4f74,DATARMNETe55953a107,DATARMNET43225b7a7c,
  143. DATARMNET4dbb6812b5,DATARMNETbf80eada88,DATARMNET26438cb654,DATARMNETa6d85c8497,
  144. DATARMNET650a0ef6e1,DATARMNET3e031f1532,DATARMNET9f467b9ce4,DATARMNETc154fd2d48,
  145. DATARMNET5874e1ecd7,DATARMNET4f09dc5794,DATARMNET11a1fd3964,DATARMNETf2fc7954d4,
  146. DATARMNET4e91ddb48a,DATARMNET16befe9635,DATARMNET856c53293b,DATARMNET7e63a08ad4,
  147. DATARMNETf7c8c7aa3f,DATARMNET08b6defcff,DATARMNETf5c836f9ae,DATARMNETdd870ee64c,
  148. DATARMNETf730f80f06,DATARMNET998c6de143,DATARMNETe7afce2292,DATARMNETe0fee0991a,
  149. DATARMNETbc2a6aea12,DATARMNETde91850c28,DATARMNET237e7bd5f6,DATARMNETf16e78412b,
  150. DATARMNET83147a2e7d,DATARMNET816bb1e327,DATARMNETf311f20c00,DATARMNETa2bd301af7,
  151. DATARMNET99640d60f7,DATARMNET562b7d32a8,DATARMNET0808844559,DATARMNET5410705c1c,
  152. DATARMNET022082b219,DATARMNETe4ee0d2636,DATARMNET23b8465daf,DATARMNET052f49b190,
  153. DATARMNETfb753e521e,DATARMNET64b02f64c6,DATARMNET576793621a,DATARMNETc262b24b02,
  154. DATARMNET4ebbc01257,DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,
  155. DATARMNET8a2898988b,DATARMNET0709c9f764,DATARMNETae009376be,DATARMNET5994bb1411,
  156. DATARMNET623224aa0a,DATARMNET94906cea05,};struct DATARMNETe2f668ccb4{u8
  157. DATARMNET42c3ecbd5e;u8 DATARMNET24fec1b9ad;u8 DATARMNETf58377e952;unsigned long
  158. DATARMNET5c98629e14;};extern struct DATARMNET37ef896af8 DATARMNET1731db288b;
  159. extern spinlock_t DATARMNETd83ee17944;extern spinlock_t DATARMNET3764d083f0;
  160. extern spinlock_t DATARMNETec2a4f5211;extern spinlock_t DATARMNETfbdbab2ef6;
  161. extern struct hlist_head DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(
  162. DATARMNET25437d35fd)];extern int(*rmnet_shs_skb_entry)(struct sk_buff*skb,struct
  163. rmnet_shs_clnt_s*DATARMNET9e820fbfe3);extern int(*rmnet_shs_ll_skb_entry)(
  164. struct sk_buff*skb,struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3);extern int(*
  165. rmnet_shs_switch)(struct sk_buff*skb,struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3
  166. );void DATARMNET203752febd(void);void DATARMNET7520667b38(void);void
  167. DATARMNETa871eeb7e7(void);void DATARMNET8f9da46b14(void);int DATARMNET362b15f941
  168. (u16 cpu);void DATARMNETeacad8334e(void);void DATARMNETe1f95274f1(void);void
  169. DATARMNETaeb508acb0(void);unsigned int DATARMNET02cdd9b125(void);int
  170. DATARMNET310c3eb16e(u8 mask);int DATARMNETe02152c351(struct DATARMNET63d7680df2*
  171. DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733,struct sk_buff
  172. **DATARMNETc88d0a6cdd);void DATARMNET4684d6c911(struct rmnet_map_pb_ind_hdr*
  173. DATARMNET4e61dda775);void DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,
  174. struct rmnet_map_control_command_header*qcmd);void DATARMNETf61cd23b90(struct
  175. rmnet_map_dl_ind_trl*dltrl,struct rmnet_map_control_command_header*qcmd);void
  176. DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8(
  177. struct rmnet_map_dl_ind_trl*dltrl);int DATARMNET756778f14f(struct sk_buff*skb,
  178. struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3);void DATARMNETa4bf9fbf64(u8
  179. DATARMNET665469cfb6,u8 DATARMNET5447204733);void DATARMNETde8ee16f92(struct
  180. DATARMNET63d7680df2*DATARMNET63b1a086d5);void DATARMNET45d8cdb224(struct
  181. net_device*dev,struct net_device*vnd);void DATARMNET9297340f58(unsigned int
  182. DATARMNET9f4bc49c6f);void DATARMNET7f1d9480cb(void*port);void
  183. DATARMNETa4bd2ef52c(void*port);void DATARMNETe074a09496(void);void
  184. DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8
  185. DATARMNET5447204733);void DATARMNET349c3a0cab(u16 map_cpu,bool
  186. DATARMNETb639f6e1b1);void DATARMNETe767554e6e(struct sk_buff*skb);u32
  187. DATARMNETadb0248bd4(u8 DATARMNET42a992465f);
  188. #endif