blob: 35f6fd3aac8a0dd9dba92dc8de88b75ee7b34dd0 [file] [log] [blame]
xf.liaa4d92f2023-09-13 00:18:58 -07001#include <stdio.h>
2#include <stdlib.h>
3#include <string.h>
4#include "libcpnv.h"
5#include "flags_api.h"
6
7int main(int argc, char *argv[])
8{
9 unsigned int nvro_flag;
10 int ret;
11
12 if (argc == 1)
13 {
14 printf("%s backup\n", argv[0]);
15 printf("%s restore\n", argv[0]);
16 printf("%s check\n", argv[0]);
xf.li9d1a0e12023-09-20 01:43:20 -070017 printf("%s getflag\n", argv[0]);
xf.liaa4d92f2023-09-13 00:18:58 -070018 return -1;
19 }
20 if (argc > 1 && (strcmp("backup", argv[1])==0))
21 {
22 if (cpnv_NvroBackup() == CPNV_OK)
23 {
24 printf("cpnv_NvroBackup success\n");
25 return 0;
26 }
27 else
28 {
29 printf("cpnv_NvroBackup fail\n");
30 return -1;
31 }
32 }
33 if (argc > 1 && (strcmp("restore", argv[1])==0))
34 {
35 ret = flags_set_nvroflag(NVRO_RESTORING);
36 if (ret != 0)
37 {
38 printf("[error]nvro_tool set NVRO_RESTORING\n");
39 return -1;
40 }
41 else
42 {
43 printf("nvro_tool set NVRO_RESTORING success\n");
44 return 0;
45 }
46
47 }
48 if (argc > 1 && (strcmp("check", argv[1])==0))
49 {
50 nvro_flag = flags_get_nvroflag();
51 if (nvro_flag != NVRO_RESTORING)
52 {
53 printf("nvro_tool restore check and do nothing:%08x\n", nvro_flag);
54 return 0;
55 }
56 if (cpnv_NvroRestore() == CPNV_OK)
57 {
58 printf("cpnv_NvroRestore success\n");
59 return 0;
60 }
61 else
62 {
63 printf("cpnv_NvroRestore fail\n");
64 return -1;
65 }
66 }
xf.li9d1a0e12023-09-20 01:43:20 -070067 if (argc > 1 && (strcmp("getflag", argv[1])==0))
68 {
69 nvro_flag = flags_get_nvroflag();
70 switch (nvro_flag)
71 {
72 case NVRO_INIT:
73 printf("nvro_flag init:%08x\n", nvro_flag);
74 break;
75 case NVRO_BACKED_UP:
76 printf("nvro_flag backed up:%08x\n", nvro_flag);
77 break;
78 case NVRO_RESTORING:
79 printf("nvro_flag restoring:%08x\n", nvro_flag);
80 break;
81 default:
82 printf("nvro_flag invalid:%08x\n", nvro_flag);
83 break;
84 }
85 return 0;
86 }
xf.liaa4d92f2023-09-13 00:18:58 -070087
88 return -1;
89}
90