• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (c) 2022 Huawei Device Co., Ltd.
4  *
5  * Description: check NewIP enable.
6  *
7  * Author: Yang Yanjun <yangyanjun@huawei.com>
8  *
9  * Data: 2022-09-06
10  */
11 #include <stdlib.h>
12 #include <string.h>
13 #include <stdio.h>
14 #include <unistd.h>
15 
16 #define NIP_DISABLE_PATH        ("/sys/module/newip/parameters/disable")
17 #define NIP_DISABLE_LENTH       (5)
18 #define NIP_ENABLE_INVALID      (0xFF)
19 
20 int g_nip_enable = NIP_ENABLE_INVALID;
21 
_check_nip_enable(void)22 static void _check_nip_enable(void)
23 {
24 	char tmp[NIP_DISABLE_LENTH];
25 	FILE *fn = fopen(NIP_DISABLE_PATH, "r");
26 
27 	if (!fn) {
28 		printf("fail to open %s\n\n", NIP_DISABLE_PATH);
29 		return;
30 	}
31 
32 	if (fgets(tmp, NIP_DISABLE_LENTH, fn) == NULL) {
33 		printf("fail to gets %s\n\n", NIP_DISABLE_PATH);
34 		fclose(fn);
35 		return;
36 	}
37 
38 	if (fclose(fn) == EOF) {
39 		printf("fclose failed\n");
40 		return;
41 	}
42 	g_nip_enable = atoi(tmp) ? 0 : 1;
43 }
44 
check_nip_enable(void)45 static int check_nip_enable(void)
46 {
47 	if (g_nip_enable == NIP_ENABLE_INVALID) {
48 		_check_nip_enable();
49 		g_nip_enable = (g_nip_enable == 1 ? 1 : 0);
50 	}
51 
52 	return g_nip_enable;
53 }
54 
main(int argc,char ** argv)55 int main(int argc, char **argv)
56 {
57 	int af_ninet = check_nip_enable();
58 
59 	if (af_ninet)
60 		printf("Support NewIP\n\n");
61 	else
62 		printf("Not support NewIP\n\n");
63 	return 0;
64 }
65 
66