123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- #include <linux/moduleparam.h>
- #include "rmnet_offload_knob.h"
- #include "rmnet_offload_main.h"
- #include "rmnet_offload_engine.h"
- #define DATARMNET7996ea045b(DATARMNET4c4a5ce272) \
- static int __ ## DATARMNET4c4a5ce272(const char *DATARMNETcc6099cb14, const \
- struct kernel_param *DATARMNETb3ce0fdc63) \
- { \
- return DATARMNETf467eaf6fc(DATARMNETcc6099cb14, DATARMNETb3ce0fdc63, \
- DATARMNET4c4a5ce272); \
- }
- #define DATARMNETce9a74c748(DATARMNET4c4a5ce272, DATARMNET91574ba67a, \
- DATARMNET8f535916a4, DATARMNETae9bf9b111, DATARMNETbdf6f9d425) \
- (struct DATARMNET5374f6eafa) { \
- .DATARMNETd67569df12 = DATARMNET91574ba67a, \
- .DATARMNET949fb858da = DATARMNET8f535916a4, \
- .DATARMNET6c81c0097b = DATARMNETae9bf9b111, \
- .DATARMNET8a7dce7d36 = DATARMNETbdf6f9d425, \
- .DATARMNET9cee06cbe4 = { \
- .set = __ ## DATARMNET4c4a5ce272, \
- .get = param_get_ullong, \
- }, \
- }
- #define DATARMNET584f34118e(DATARMNETe1196c6554, DATARMNET4c4a5ce272) \
- module_param_cb(DATARMNETe1196c6554, &DATARMNET07ae1e39fb[DATARMNET4c4a5ce272].\
- DATARMNET9cee06cbe4, \
- &DATARMNET07ae1e39fb[DATARMNET4c4a5ce272].DATARMNETd67569df12, \
- (0xdb7+6665-0x261c))
- struct DATARMNET5374f6eafa{u64 DATARMNETd67569df12;u64 DATARMNET949fb858da;u64
- DATARMNET6c81c0097b;int(*DATARMNET8a7dce7d36)(u64 DATARMNET7e07157b72,u64
- DATARMNETcd597b0a1b);struct kernel_param_ops DATARMNET9cee06cbe4;};static int
- DATARMNETf467eaf6fc(const char*DATARMNETcc6099cb14,const struct kernel_param*
- DATARMNETb3ce0fdc63,u32 DATARMNET4c4a5ce272);DATARMNET7996ea045b(
- DATARMNETdf66588a73);DATARMNET7996ea045b(DATARMNET9c85bb95a3);
- DATARMNET7996ea045b(DATARMNET6d2ed4b822);static struct DATARMNET5374f6eafa
- DATARMNET07ae1e39fb[DATARMNET94aa767bca]={DATARMNETce9a74c748(
- DATARMNETdf66588a73,65000,(0xd2d+202-0xdf7),65000,NULL),DATARMNETce9a74c748(
- DATARMNET9c85bb95a3,65000,(0xd2d+202-0xdf7),65000,NULL),DATARMNETce9a74c748(
- DATARMNET6d2ed4b822,DATARMNET2d89680280,DATARMNETa2ddeec85f,DATARMNETaccb69cf16,
- DATARMNET241493ab9a),};static int DATARMNETf467eaf6fc(const char*
- DATARMNETcc6099cb14,const struct kernel_param*DATARMNETb3ce0fdc63,u32
- DATARMNET4c4a5ce272){struct DATARMNET5374f6eafa*DATARMNET0751f2024d;unsigned
- long long DATARMNETcd597b0a1b;u64 DATARMNET7e07157b72;int DATARMNETb14e52a504;if
- (DATARMNET4c4a5ce272>=DATARMNET94aa767bca)return-EINVAL;DATARMNETb14e52a504=
- kstrtoull(DATARMNETcc6099cb14,(0xd2d+202-0xdf7),&DATARMNETcd597b0a1b);if(
- DATARMNETb14e52a504<(0xd2d+202-0xdf7))return DATARMNETb14e52a504;
- DATARMNET0751f2024d=&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272];if((u64)
- DATARMNETcd597b0a1b<DATARMNET0751f2024d->DATARMNET949fb858da||(u64)
- DATARMNETcd597b0a1b>DATARMNET0751f2024d->DATARMNET6c81c0097b)return-ERANGE;
- DATARMNET664568fcd0();DATARMNET7e07157b72=*(u64*)DATARMNETb3ce0fdc63->arg;if((
- u64)DATARMNETcd597b0a1b==DATARMNET7e07157b72){DATARMNET6a76048590();return
- (0xd2d+202-0xdf7);}if(DATARMNET0751f2024d->DATARMNET8a7dce7d36){
- DATARMNETb14e52a504=DATARMNET0751f2024d->DATARMNET8a7dce7d36(DATARMNET7e07157b72
- ,(u64)DATARMNETcd597b0a1b);if(DATARMNETb14e52a504<(0xd2d+202-0xdf7)){
- DATARMNET6a76048590();return DATARMNETb14e52a504;}}*(u64*)DATARMNETb3ce0fdc63->
- arg=(u64)DATARMNETcd597b0a1b;DATARMNET6a76048590();return(0xd2d+202-0xdf7);}
- DATARMNET584f34118e(rmnet_offload_knob0,DATARMNETdf66588a73);DATARMNET584f34118e
- (rmnet_offload_knob1,DATARMNET9c85bb95a3);DATARMNET584f34118e(
- rmnet_offload_knob2,DATARMNET6d2ed4b822);u64 DATARMNETf1d1b8287f(u32
- DATARMNET4c4a5ce272){struct DATARMNET5374f6eafa*DATARMNET0751f2024d;if(
- DATARMNET4c4a5ce272>=DATARMNET94aa767bca)return(u64)~(0xd2d+202-0xdf7);
- DATARMNET0751f2024d=&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272];return
- DATARMNET0751f2024d->DATARMNETd67569df12;}
|