rmnet_offload_knob.c 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
  2. *
  3. * This program is free software; you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License version 2 and
  5. * only version 2 as published by the Free Software Foundation.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. */
  12. #include <linux/moduleparam.h>
  13. #include "rmnet_offload_knob.h"
  14. #include "rmnet_offload_main.h"
  15. #include "rmnet_offload_engine.h"
  16. #define DATARMNET7996ea045b(DATARMNET4c4a5ce272) \
  17. static int __ ## DATARMNET4c4a5ce272(const char *DATARMNETcc6099cb14, const \
  18. struct kernel_param *DATARMNETb3ce0fdc63) \
  19. { \
  20. return DATARMNETf467eaf6fc(DATARMNETcc6099cb14, DATARMNETb3ce0fdc63, \
  21. DATARMNET4c4a5ce272); \
  22. }
  23. #define DATARMNETce9a74c748(DATARMNET4c4a5ce272, DATARMNET91574ba67a, \
  24. DATARMNET8f535916a4, DATARMNETae9bf9b111, DATARMNETbdf6f9d425) \
  25. (struct DATARMNET5374f6eafa) { \
  26. .DATARMNETd67569df12 = DATARMNET91574ba67a, \
  27. .DATARMNET949fb858da = DATARMNET8f535916a4, \
  28. .DATARMNET6c81c0097b = DATARMNETae9bf9b111, \
  29. .DATARMNET8a7dce7d36 = DATARMNETbdf6f9d425, \
  30. .DATARMNET9cee06cbe4 = { \
  31. .set = __ ## DATARMNET4c4a5ce272, \
  32. .get = param_get_ullong, \
  33. }, \
  34. }
  35. #define DATARMNET584f34118e(DATARMNETe1196c6554, DATARMNET4c4a5ce272) \
  36. module_param_cb(DATARMNETe1196c6554, &DATARMNET07ae1e39fb[DATARMNET4c4a5ce272].\
  37. DATARMNET9cee06cbe4, \
  38. &DATARMNET07ae1e39fb[DATARMNET4c4a5ce272].DATARMNETd67569df12, \
  39. (0xdb7+6665-0x261c))
  40. struct DATARMNET5374f6eafa{u64 DATARMNETd67569df12;u64 DATARMNET949fb858da;u64
  41. DATARMNET6c81c0097b;int(*DATARMNET8a7dce7d36)(u64 DATARMNET7e07157b72,u64
  42. DATARMNETcd597b0a1b);struct kernel_param_ops DATARMNET9cee06cbe4;};static int
  43. DATARMNETf467eaf6fc(const char*DATARMNETcc6099cb14,const struct kernel_param*
  44. DATARMNETb3ce0fdc63,u32 DATARMNET4c4a5ce272);DATARMNET7996ea045b(
  45. DATARMNETdf66588a73);DATARMNET7996ea045b(DATARMNET9c85bb95a3);
  46. DATARMNET7996ea045b(DATARMNET6d2ed4b822);static struct DATARMNET5374f6eafa
  47. DATARMNET07ae1e39fb[DATARMNET94aa767bca]={DATARMNETce9a74c748(
  48. DATARMNETdf66588a73,65000,(0xd2d+202-0xdf7),65000,NULL),DATARMNETce9a74c748(
  49. DATARMNET9c85bb95a3,65000,(0xd2d+202-0xdf7),65000,NULL),DATARMNETce9a74c748(
  50. DATARMNET6d2ed4b822,DATARMNET2d89680280,DATARMNETa2ddeec85f,DATARMNETaccb69cf16,
  51. DATARMNET241493ab9a),};static int DATARMNETf467eaf6fc(const char*
  52. DATARMNETcc6099cb14,const struct kernel_param*DATARMNETb3ce0fdc63,u32
  53. DATARMNET4c4a5ce272){struct DATARMNET5374f6eafa*DATARMNET0751f2024d;unsigned
  54. long long DATARMNETcd597b0a1b;u64 DATARMNET7e07157b72;int DATARMNETb14e52a504;if
  55. (DATARMNET4c4a5ce272>=DATARMNET94aa767bca)return-EINVAL;DATARMNETb14e52a504=
  56. kstrtoull(DATARMNETcc6099cb14,(0xd2d+202-0xdf7),&DATARMNETcd597b0a1b);if(
  57. DATARMNETb14e52a504<(0xd2d+202-0xdf7))return DATARMNETb14e52a504;
  58. DATARMNET0751f2024d=&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272];if((u64)
  59. DATARMNETcd597b0a1b<DATARMNET0751f2024d->DATARMNET949fb858da||(u64)
  60. DATARMNETcd597b0a1b>DATARMNET0751f2024d->DATARMNET6c81c0097b)return-ERANGE;
  61. DATARMNET664568fcd0();DATARMNET7e07157b72=*(u64*)DATARMNETb3ce0fdc63->arg;if((
  62. u64)DATARMNETcd597b0a1b==DATARMNET7e07157b72){DATARMNET6a76048590();return
  63. (0xd2d+202-0xdf7);}if(DATARMNET0751f2024d->DATARMNET8a7dce7d36){
  64. DATARMNETb14e52a504=DATARMNET0751f2024d->DATARMNET8a7dce7d36(DATARMNET7e07157b72
  65. ,(u64)DATARMNETcd597b0a1b);if(DATARMNETb14e52a504<(0xd2d+202-0xdf7)){
  66. DATARMNET6a76048590();return DATARMNETb14e52a504;}}*(u64*)DATARMNETb3ce0fdc63->
  67. arg=(u64)DATARMNETcd597b0a1b;DATARMNET6a76048590();return(0xd2d+202-0xdf7);}
  68. DATARMNET584f34118e(rmnet_offload_knob0,DATARMNETdf66588a73);DATARMNET584f34118e
  69. (rmnet_offload_knob1,DATARMNET9c85bb95a3);DATARMNET584f34118e(
  70. rmnet_offload_knob2,DATARMNET6d2ed4b822);u64 DATARMNETf1d1b8287f(u32
  71. DATARMNET4c4a5ce272){struct DATARMNET5374f6eafa*DATARMNET0751f2024d;if(
  72. DATARMNET4c4a5ce272>=DATARMNET94aa767bca)return(u64)~(0xd2d+202-0xdf7);
  73. DATARMNET0751f2024d=&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272];return
  74. DATARMNET0751f2024d->DATARMNETd67569df12;}