Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / staging / unisys / common-spar / include / diagnostics / appos_subsystems.h
1 /* Copyright (C) 2010 - 2013 UNISYS CORPORATION
2  * All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or (at
7  * your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
12  * NON INFRINGEMENT.  See the GNU General Public License for more
13  * details.
14  */
15
16 /* Please note that this file is to be used ONLY for defining diagnostic
17  * subsystem values for the appos (sPAR Linux service partitions) component.
18  */
19 #ifndef __APPOS_SUBSYSTEMS_H__
20 #define __APPOS_SUBSYSTEMS_H__
21
22 #ifdef __KERNEL__
23 #include <linux/kernel.h>
24 #include <linux/string.h>
25 #else
26 #include <stdio.h>
27 #include <string.h>
28 #endif
29
30 static inline char *
31 subsys_unknown_to_s(int subsys, char *s, int n)
32 {
33         snprintf(s, n, "SUBSYS-%-2.2d", subsys);
34         s[n - 1] = '\0';
35         return s;
36 }
37
38 #define SUBSYS_TO_MASK(subsys)      (1ULL << (subsys))
39
40 /* The first SUBSYS_APPOS_MAX subsystems are the same for each AppOS type
41  * (IOVM, SMS, etc.) The rest have unique values for each AppOS type.
42  */
43 #define SUBSYS_APPOS_MAX 16
44
45 #define SUBSYS_APPOS_DEFAULT         1  /* or "other" */
46 #define SUBSYS_APPOS_CHIPSET         2  /* controlvm and other */
47                                         /* low-level sPAR activity */
48 #define SUBSYS_APPOS_BUS             3  /* sPAR bus */
49 /* DAK #define SUBSYS_APPOS_DIAG            4  // diagnostics and dump */
50 #define SUBSYS_APPOS_CHANNELACCESS   5  /* generic channel access */
51 #define SUBSYS_APPOS_NICCLIENT       6  /* virtual NIC client */
52 #define SUBSYS_APPOS_HBACLIENT       7  /* virtual HBA client */
53 #define SUBSYS_APPOS_CONSOLESERIAL   8  /* sPAR virtual serial console */
54 #define SUBSYS_APPOS_UISLIB          9  /*  */
55 #define SUBSYS_APPOS_VRTCUPDD       10  /*  */
56 #define SUBSYS_APPOS_WATCHDOG       11  /* watchdog timer and healthcheck */
57 #define SUBSYS_APPOS_13             13  /* available */
58 #define SUBSYS_APPOS_14             14  /* available */
59 #define SUBSYS_APPOS_15             15  /* available */
60 #define SUBSYS_APPOS_16             16  /* available */
61 static inline char *
62 subsys_generic_to_s(int subsys, char *s, int n)
63 {
64         switch (subsys) {
65         case SUBSYS_APPOS_DEFAULT:
66                 strncpy(s, "APPOS_DEFAULT", n);
67                 break;
68         case SUBSYS_APPOS_CHIPSET:
69                 strncpy(s, "APPOS_CHIPSET", n);
70                 break;
71         case SUBSYS_APPOS_BUS:
72                 strncpy(s, "APPOS_BUS", n);
73                 break;
74         case SUBSYS_APPOS_CHANNELACCESS:
75                 strncpy(s, "APPOS_CHANNELACCESS", n);
76                 break;
77         case SUBSYS_APPOS_NICCLIENT:
78                 strncpy(s, "APPOS_NICCLIENT", n);
79                 break;
80         case SUBSYS_APPOS_HBACLIENT:
81                 strncpy(s, "APPOS_HBACLIENT", n);
82                 break;
83         case SUBSYS_APPOS_CONSOLESERIAL:
84                 strncpy(s, "APPOS_CONSOLESERIAL", n);
85                 break;
86         case SUBSYS_APPOS_UISLIB:
87                 strncpy(s, "APPOS_UISLIB", n);
88                 break;
89         case SUBSYS_APPOS_VRTCUPDD:
90                 strncpy(s, "APPOS_VRTCUPDD", n);
91                 break;
92         case SUBSYS_APPOS_WATCHDOG:
93                 strncpy(s, "APPOS_WATCHDOG", n);
94                 break;
95         case SUBSYS_APPOS_13:
96                 strncpy(s, "APPOS_13", n);
97                 break;
98         case SUBSYS_APPOS_14:
99                 strncpy(s, "APPOS_14", n);
100                 break;
101         case SUBSYS_APPOS_15:
102                 strncpy(s, "APPOS_15", n);
103                 break;
104         case SUBSYS_APPOS_16:
105                 strncpy(s, "APPOS_16", n);
106                 break;
107         default:
108                 subsys_unknown_to_s(subsys, s, n);
109                 break;
110         }
111         s[n - 1] = '\0';
112         return s;
113 }
114
115 /* CONSOLE */
116
117 #define SUBSYS_CONSOLE_VIDEO        (SUBSYS_APPOS_MAX + 1)      /* 17 */
118 #define SUBSYS_CONSOLE_KBDMOU       (SUBSYS_APPOS_MAX + 2)      /* 18 */
119 #define SUBSYS_CONSOLE_04           (SUBSYS_APPOS_MAX + 4)
120 #define SUBSYS_CONSOLE_05           (SUBSYS_APPOS_MAX + 5)
121 #define SUBSYS_CONSOLE_06           (SUBSYS_APPOS_MAX + 6)
122 #define SUBSYS_CONSOLE_07           (SUBSYS_APPOS_MAX + 7)
123 #define SUBSYS_CONSOLE_08           (SUBSYS_APPOS_MAX + 8)
124 #define SUBSYS_CONSOLE_09           (SUBSYS_APPOS_MAX + 9)
125 #define SUBSYS_CONSOLE_10           (SUBSYS_APPOS_MAX + 10)
126 #define SUBSYS_CONSOLE_11           (SUBSYS_APPOS_MAX + 11)
127 #define SUBSYS_CONSOLE_12           (SUBSYS_APPOS_MAX + 12)
128 #define SUBSYS_CONSOLE_13           (SUBSYS_APPOS_MAX + 13)
129 #define SUBSYS_CONSOLE_14           (SUBSYS_APPOS_MAX + 14)
130 #define SUBSYS_CONSOLE_15           (SUBSYS_APPOS_MAX + 15)
131 #define SUBSYS_CONSOLE_16           (SUBSYS_APPOS_MAX + 16)
132 #define SUBSYS_CONSOLE_17           (SUBSYS_APPOS_MAX + 17)
133 #define SUBSYS_CONSOLE_18           (SUBSYS_APPOS_MAX + 18)
134 #define SUBSYS_CONSOLE_19           (SUBSYS_APPOS_MAX + 19)
135 #define SUBSYS_CONSOLE_20           (SUBSYS_APPOS_MAX + 20)
136 #define SUBSYS_CONSOLE_21           (SUBSYS_APPOS_MAX + 21)
137 #define SUBSYS_CONSOLE_22           (SUBSYS_APPOS_MAX + 22)
138 #define SUBSYS_CONSOLE_23           (SUBSYS_APPOS_MAX + 23)
139 #define SUBSYS_CONSOLE_24           (SUBSYS_APPOS_MAX + 24)
140 #define SUBSYS_CONSOLE_25           (SUBSYS_APPOS_MAX + 25)
141 #define SUBSYS_CONSOLE_26           (SUBSYS_APPOS_MAX + 26)
142 #define SUBSYS_CONSOLE_27           (SUBSYS_APPOS_MAX + 27)
143 #define SUBSYS_CONSOLE_28           (SUBSYS_APPOS_MAX + 28)
144 #define SUBSYS_CONSOLE_29           (SUBSYS_APPOS_MAX + 29)
145 #define SUBSYS_CONSOLE_30           (SUBSYS_APPOS_MAX + 30)
146 #define SUBSYS_CONSOLE_31           (SUBSYS_APPOS_MAX + 31)
147 #define SUBSYS_CONSOLE_32           (SUBSYS_APPOS_MAX + 32)
148 #define SUBSYS_CONSOLE_33           (SUBSYS_APPOS_MAX + 33)
149 #define SUBSYS_CONSOLE_34           (SUBSYS_APPOS_MAX + 34)
150 #define SUBSYS_CONSOLE_35           (SUBSYS_APPOS_MAX + 35)
151 #define SUBSYS_CONSOLE_36           (SUBSYS_APPOS_MAX + 36)
152 #define SUBSYS_CONSOLE_37           (SUBSYS_APPOS_MAX + 37)
153 #define SUBSYS_CONSOLE_38           (SUBSYS_APPOS_MAX + 38)
154 #define SUBSYS_CONSOLE_39           (SUBSYS_APPOS_MAX + 39)
155 #define SUBSYS_CONSOLE_40           (SUBSYS_APPOS_MAX + 40)
156 #define SUBSYS_CONSOLE_41           (SUBSYS_APPOS_MAX + 41)
157 #define SUBSYS_CONSOLE_42           (SUBSYS_APPOS_MAX + 42)
158 #define SUBSYS_CONSOLE_43           (SUBSYS_APPOS_MAX + 43)
159 #define SUBSYS_CONSOLE_44           (SUBSYS_APPOS_MAX + 44)
160 #define SUBSYS_CONSOLE_45           (SUBSYS_APPOS_MAX + 45)
161 #define SUBSYS_CONSOLE_46           (SUBSYS_APPOS_MAX + 46)
162
163 static inline char *
164 subsys_console_to_s(int subsys, char *s, int n)
165 {
166         switch (subsys) {
167         case SUBSYS_CONSOLE_VIDEO:
168                 strncpy(s, "CONSOLE_VIDEO", n);
169                 break;
170         case SUBSYS_CONSOLE_KBDMOU:
171                 strncpy(s, "CONSOLE_KBDMOU", n);
172                 break;
173         case SUBSYS_CONSOLE_04:
174                 strncpy(s, "CONSOLE_04", n);
175                 break;
176         case SUBSYS_CONSOLE_05:
177                 strncpy(s, "CONSOLE_05", n);
178                 break;
179         case SUBSYS_CONSOLE_06:
180                 strncpy(s, "CONSOLE_06", n);
181                 break;
182         case SUBSYS_CONSOLE_07:
183                 strncpy(s, "CONSOLE_07", n);
184                 break;
185         case SUBSYS_CONSOLE_08:
186                 strncpy(s, "CONSOLE_08", n);
187                 break;
188         case SUBSYS_CONSOLE_09:
189                 strncpy(s, "CONSOLE_09", n);
190                 break;
191         case SUBSYS_CONSOLE_10:
192                 strncpy(s, "CONSOLE_10", n);
193                 break;
194         case SUBSYS_CONSOLE_11:
195                 strncpy(s, "CONSOLE_11", n);
196                 break;
197         case SUBSYS_CONSOLE_12:
198                 strncpy(s, "CONSOLE_12", n);
199                 break;
200         case SUBSYS_CONSOLE_13:
201                 strncpy(s, "CONSOLE_13", n);
202                 break;
203         case SUBSYS_CONSOLE_14:
204                 strncpy(s, "CONSOLE_14", n);
205                 break;
206         case SUBSYS_CONSOLE_15:
207                 strncpy(s, "CONSOLE_15", n);
208                 break;
209         case SUBSYS_CONSOLE_16:
210                 strncpy(s, "CONSOLE_16", n);
211                 break;
212         case SUBSYS_CONSOLE_17:
213                 strncpy(s, "CONSOLE_17", n);
214                 break;
215         case SUBSYS_CONSOLE_18:
216                 strncpy(s, "CONSOLE_18", n);
217                 break;
218         case SUBSYS_CONSOLE_19:
219                 strncpy(s, "CONSOLE_19", n);
220                 break;
221         case SUBSYS_CONSOLE_20:
222                 strncpy(s, "CONSOLE_20", n);
223                 break;
224         case SUBSYS_CONSOLE_21:
225                 strncpy(s, "CONSOLE_21", n);
226                 break;
227         case SUBSYS_CONSOLE_22:
228                 strncpy(s, "CONSOLE_22", n);
229                 break;
230         case SUBSYS_CONSOLE_23:
231                 strncpy(s, "CONSOLE_23", n);
232                 break;
233         case SUBSYS_CONSOLE_24:
234                 strncpy(s, "CONSOLE_24", n);
235                 break;
236         case SUBSYS_CONSOLE_25:
237                 strncpy(s, "CONSOLE_25", n);
238                 break;
239         case SUBSYS_CONSOLE_26:
240                 strncpy(s, "CONSOLE_26", n);
241                 break;
242         case SUBSYS_CONSOLE_27:
243                 strncpy(s, "CONSOLE_27", n);
244                 break;
245         case SUBSYS_CONSOLE_28:
246                 strncpy(s, "CONSOLE_28", n);
247                 break;
248         case SUBSYS_CONSOLE_29:
249                 strncpy(s, "CONSOLE_29", n);
250                 break;
251         case SUBSYS_CONSOLE_30:
252                 strncpy(s, "CONSOLE_30", n);
253                 break;
254         case SUBSYS_CONSOLE_31:
255                 strncpy(s, "CONSOLE_31", n);
256                 break;
257         case SUBSYS_CONSOLE_32:
258                 strncpy(s, "CONSOLE_32", n);
259                 break;
260         case SUBSYS_CONSOLE_33:
261                 strncpy(s, "CONSOLE_33", n);
262                 break;
263         case SUBSYS_CONSOLE_34:
264                 strncpy(s, "CONSOLE_34", n);
265                 break;
266         case SUBSYS_CONSOLE_35:
267                 strncpy(s, "CONSOLE_35", n);
268                 break;
269         case SUBSYS_CONSOLE_36:
270                 strncpy(s, "CONSOLE_36", n);
271                 break;
272         case SUBSYS_CONSOLE_37:
273                 strncpy(s, "CONSOLE_37", n);
274                 break;
275         case SUBSYS_CONSOLE_38:
276                 strncpy(s, "CONSOLE_38", n);
277                 break;
278         case SUBSYS_CONSOLE_39:
279                 strncpy(s, "CONSOLE_39", n);
280                 break;
281         case SUBSYS_CONSOLE_40:
282                 strncpy(s, "CONSOLE_40", n);
283                 break;
284         case SUBSYS_CONSOLE_41:
285                 strncpy(s, "CONSOLE_41", n);
286                 break;
287         case SUBSYS_CONSOLE_42:
288                 strncpy(s, "CONSOLE_42", n);
289                 break;
290         case SUBSYS_CONSOLE_43:
291                 strncpy(s, "CONSOLE_43", n);
292                 break;
293         case SUBSYS_CONSOLE_44:
294                 strncpy(s, "CONSOLE_44", n);
295                 break;
296         case SUBSYS_CONSOLE_45:
297                 strncpy(s, "CONSOLE_45", n);
298                 break;
299         case SUBSYS_CONSOLE_46:
300                 strncpy(s, "CONSOLE_46", n);
301                 break;
302         default:
303                 subsys_unknown_to_s(subsys, s, n);
304                 break;
305         }
306         s[n - 1] = '\0';
307         return s;
308 }
309
310 #endif