/* 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 #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) DATARMNETcd597b0a1bDATARMNET949fb858da||(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;}