Merge tag 'for-linus-2023041201' of git://git.kernel.org/pub/scm/linux/kernel/git...
[platform/kernel/linux-starfive.git] / lib / dhry_2.c
1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 /*
3  ****************************************************************************
4  *
5  *                   "DHRYSTONE" Benchmark Program
6  *                   -----------------------------
7  *
8  *  Version:    C, Version 2.1
9  *
10  *  File:       dhry_2.c (part 3 of 3)
11  *
12  *  Date:       May 25, 1988
13  *
14  *  Author:     Reinhold P. Weicker
15  *
16  ****************************************************************************
17  */
18
19 #include "dhry.h"
20
21 #include <linux/string.h>
22
23
24 static Boolean Func_3(Enumeration Enum_Par_Val)
25 /***************************/
26 /* executed once        */
27 /* Enum_Par_Val == Ident_3 */
28 {
29         Enumeration Enum_Loc;
30
31         Enum_Loc = Enum_Par_Val;
32         if (Enum_Loc == Ident_3) {
33                 /* then, executed */
34                 return true;
35         } else {
36                 /* not executed */
37                 return false;
38         }
39 } /* Func_3 */
40
41
42 void Proc_6(Enumeration  Enum_Val_Par, Enumeration *Enum_Ref_Par)
43 /*********************************/
44 /* executed once */
45 /* Enum_Val_Par == Ident_3, Enum_Ref_Par becomes Ident_2 */
46 {
47         *Enum_Ref_Par = Enum_Val_Par;
48         if (!Func_3(Enum_Val_Par)) {
49                 /* then, not executed */
50                 *Enum_Ref_Par = Ident_4;
51         }
52         switch (Enum_Val_Par) {
53         case Ident_1:
54                 *Enum_Ref_Par = Ident_1;
55                 break;
56         case Ident_2:
57                 if (Int_Glob > 100) {
58                         /* then */
59                         *Enum_Ref_Par = Ident_1;
60                 } else {
61                         *Enum_Ref_Par = Ident_4;
62                 }
63                 break;
64         case Ident_3: /* executed */
65                 *Enum_Ref_Par = Ident_2;
66                 break;
67         case Ident_4:
68                 break;
69         case Ident_5:
70                 *Enum_Ref_Par = Ident_3;
71                 break;
72         } /* switch */
73 } /* Proc_6 */
74
75
76 void Proc_7(One_Fifty Int_1_Par_Val, One_Fifty Int_2_Par_Val, One_Fifty *Int_Par_Ref)
77 /**********************************************/
78 /* executed three times                                      */
79 /* first call:      Int_1_Par_Val == 2, Int_2_Par_Val == 3,  */
80 /*                  Int_Par_Ref becomes 7                    */
81 /* second call:     Int_1_Par_Val == 10, Int_2_Par_Val == 5, */
82 /*                  Int_Par_Ref becomes 17                   */
83 /* third call:      Int_1_Par_Val == 6, Int_2_Par_Val == 10, */
84 /*                  Int_Par_Ref becomes 18                   */
85 {
86         One_Fifty Int_Loc;
87
88         Int_Loc = Int_1_Par_Val + 2;
89         *Int_Par_Ref = Int_2_Par_Val + Int_Loc;
90 } /* Proc_7 */
91
92
93 void Proc_8(Arr_1_Dim Arr_1_Par_Ref, Arr_2_Dim Arr_2_Par_Ref, int Int_1_Par_Val, int Int_2_Par_Val)
94 /*********************************************************************/
95 /* executed once      */
96 /* Int_Par_Val_1 == 3 */
97 /* Int_Par_Val_2 == 7 */
98 {
99         One_Fifty Int_Index;
100         One_Fifty Int_Loc;
101
102         Int_Loc = Int_1_Par_Val + 5;
103         Arr_1_Par_Ref[Int_Loc] = Int_2_Par_Val;
104         Arr_1_Par_Ref[Int_Loc+1] = Arr_1_Par_Ref[Int_Loc];
105         Arr_1_Par_Ref[Int_Loc+30] = Int_Loc;
106         for (Int_Index = Int_Loc; Int_Index <= Int_Loc+1; ++Int_Index)
107                 Arr_2_Par_Ref[Int_Loc][Int_Index] = Int_Loc;
108         Arr_2_Par_Ref[Int_Loc][Int_Loc-1] += 1;
109         Arr_2_Par_Ref[Int_Loc+20][Int_Loc] = Arr_1_Par_Ref[Int_Loc];
110         Int_Glob = 5;
111 } /* Proc_8 */
112
113
114 Enumeration Func_1(Capital_Letter Ch_1_Par_Val, Capital_Letter Ch_2_Par_Val)
115 /*************************************************/
116 /* executed three times                                         */
117 /* first call:      Ch_1_Par_Val == 'H', Ch_2_Par_Val == 'R'    */
118 /* second call:     Ch_1_Par_Val == 'A', Ch_2_Par_Val == 'C'    */
119 /* third call:      Ch_1_Par_Val == 'B', Ch_2_Par_Val == 'C'    */
120 {
121         Capital_Letter Ch_1_Loc;
122         Capital_Letter Ch_2_Loc;
123
124         Ch_1_Loc = Ch_1_Par_Val;
125         Ch_2_Loc = Ch_1_Loc;
126         if (Ch_2_Loc != Ch_2_Par_Val) {
127                 /* then, executed */
128                 return Ident_1;
129         } else {
130                 /* not executed */
131                 Ch_1_Glob = Ch_1_Loc;
132                 return Ident_2;
133         }
134 } /* Func_1 */
135
136
137 Boolean Func_2(Str_30 Str_1_Par_Ref, Str_30 Str_2_Par_Ref)
138 /*************************************************/
139 /* executed once */
140 /* Str_1_Par_Ref == "DHRYSTONE PROGRAM, 1'ST STRING" */
141 /* Str_2_Par_Ref == "DHRYSTONE PROGRAM, 2'ND STRING" */
142 {
143         One_Thirty Int_Loc;
144         Capital_Letter Ch_Loc;
145
146         Int_Loc = 2;
147         while (Int_Loc <= 2) {
148                 /* loop body executed once */
149                 if (Func_1(Str_1_Par_Ref[Int_Loc],
150                            Str_2_Par_Ref[Int_Loc+1]) == Ident_1) {
151                         /* then, executed */
152                         Ch_Loc = 'A';
153                         Int_Loc += 1;
154                 }
155         } /* if, while */
156         if (Ch_Loc >= 'W' && Ch_Loc < 'Z') {
157                 /* then, not executed */
158                 Int_Loc = 7;
159         }
160         if (Ch_Loc == 'R') {
161                 /* then, not executed */
162                 return true;
163         } else {
164                 /* executed */
165                 if (strcmp(Str_1_Par_Ref, Str_2_Par_Ref) > 0) {
166                         /* then, not executed */
167                         Int_Loc += 7;
168                         Int_Glob = Int_Loc;
169                         return true;
170                 } else {
171                         /* executed */
172                         return false;
173                 }
174         } /* if Ch_Loc */
175 } /* Func_2 */