android_kernel_xiaomi_sm8350/offload/rmnet_offload_knob.c

76 lines
4.1 KiB
C
Raw Normal View History

/* 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;}