| /* Copyright (C) 2010 - 2013 UNISYS CORPORATION |
| * 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 as published by |
| * the Free Software Foundation; either version 2 of the License, or (at |
| * your option) any later version. |
| * |
| * 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, GOOD TITLE or |
| * NON INFRINGEMENT. See the GNU General Public License for more |
| * details. |
| */ |
| |
| /* Please note that this file is to be used ONLY for defining diagnostic |
| * subsystem values for the appos (sPAR Linux service partitions) component. |
| */ |
| #ifndef __APPOS_SUBSYSTEMS_H__ |
| #define __APPOS_SUBSYSTEMS_H__ |
| |
| #ifdef __KERNEL__ |
| #include <linux/kernel.h> |
| #include <linux/string.h> |
| #else |
| #include <stdio.h> |
| #include <string.h> |
| #endif |
| |
| static inline char * |
| subsys_unknown_to_s(int subsys, char *s, int n) |
| { |
| snprintf(s, n, "SUBSYS-%-2.2d", subsys); |
| s[n - 1] = '\0'; |
| return s; |
| } |
| |
| #define SUBSYS_TO_MASK(subsys) (1ULL << (subsys)) |
| |
| /* The first SUBSYS_APPOS_MAX subsystems are the same for each AppOS type |
| * (IOVM, SMS, etc.) The rest have unique values for each AppOS type. |
| */ |
| #define SUBSYS_APPOS_MAX 16 |
| |
| #define SUBSYS_APPOS_DEFAULT 1 /* or "other" */ |
| #define SUBSYS_APPOS_CHIPSET 2 /* controlvm and other */ |
| /* low-level sPAR activity */ |
| #define SUBSYS_APPOS_BUS 3 /* sPAR bus */ |
| /* DAK #define SUBSYS_APPOS_DIAG 4 // diagnostics and dump */ |
| #define SUBSYS_APPOS_CHANNELACCESS 5 /* generic channel access */ |
| #define SUBSYS_APPOS_NICCLIENT 6 /* virtual NIC client */ |
| #define SUBSYS_APPOS_HBACLIENT 7 /* virtual HBA client */ |
| #define SUBSYS_APPOS_CONSOLESERIAL 8 /* sPAR virtual serial console */ |
| #define SUBSYS_APPOS_UISLIB 9 /* */ |
| #define SUBSYS_APPOS_VRTCUPDD 10 /* */ |
| #define SUBSYS_APPOS_WATCHDOG 11 /* watchdog timer and healthcheck */ |
| #define SUBSYS_APPOS_13 13 /* available */ |
| #define SUBSYS_APPOS_14 14 /* available */ |
| #define SUBSYS_APPOS_15 15 /* available */ |
| #define SUBSYS_APPOS_16 16 /* available */ |
| static inline char * |
| subsys_generic_to_s(int subsys, char *s, int n) |
| { |
| switch (subsys) { |
| case SUBSYS_APPOS_DEFAULT: |
| strncpy(s, "APPOS_DEFAULT", n); |
| break; |
| case SUBSYS_APPOS_CHIPSET: |
| strncpy(s, "APPOS_CHIPSET", n); |
| break; |
| case SUBSYS_APPOS_BUS: |
| strncpy(s, "APPOS_BUS", n); |
| break; |
| case SUBSYS_APPOS_CHANNELACCESS: |
| strncpy(s, "APPOS_CHANNELACCESS", n); |
| break; |
| case SUBSYS_APPOS_NICCLIENT: |
| strncpy(s, "APPOS_NICCLIENT", n); |
| break; |
| case SUBSYS_APPOS_HBACLIENT: |
| strncpy(s, "APPOS_HBACLIENT", n); |
| break; |
| case SUBSYS_APPOS_CONSOLESERIAL: |
| strncpy(s, "APPOS_CONSOLESERIAL", n); |
| break; |
| case SUBSYS_APPOS_UISLIB: |
| strncpy(s, "APPOS_UISLIB", n); |
| break; |
| case SUBSYS_APPOS_VRTCUPDD: |
| strncpy(s, "APPOS_VRTCUPDD", n); |
| break; |
| case SUBSYS_APPOS_WATCHDOG: |
| strncpy(s, "APPOS_WATCHDOG", n); |
| break; |
| case SUBSYS_APPOS_13: |
| strncpy(s, "APPOS_13", n); |
| break; |
| case SUBSYS_APPOS_14: |
| strncpy(s, "APPOS_14", n); |
| break; |
| case SUBSYS_APPOS_15: |
| strncpy(s, "APPOS_15", n); |
| break; |
| case SUBSYS_APPOS_16: |
| strncpy(s, "APPOS_16", n); |
| break; |
| default: |
| subsys_unknown_to_s(subsys, s, n); |
| break; |
| } |
| s[n - 1] = '\0'; |
| return s; |
| } |
| |
| /* CONSOLE */ |
| |
| #define SUBSYS_CONSOLE_VIDEO (SUBSYS_APPOS_MAX + 1) /* 17 */ |
| #define SUBSYS_CONSOLE_KBDMOU (SUBSYS_APPOS_MAX + 2) /* 18 */ |
| #define SUBSYS_CONSOLE_04 (SUBSYS_APPOS_MAX + 4) |
| #define SUBSYS_CONSOLE_05 (SUBSYS_APPOS_MAX + 5) |
| #define SUBSYS_CONSOLE_06 (SUBSYS_APPOS_MAX + 6) |
| #define SUBSYS_CONSOLE_07 (SUBSYS_APPOS_MAX + 7) |
| #define SUBSYS_CONSOLE_08 (SUBSYS_APPOS_MAX + 8) |
| #define SUBSYS_CONSOLE_09 (SUBSYS_APPOS_MAX + 9) |
| #define SUBSYS_CONSOLE_10 (SUBSYS_APPOS_MAX + 10) |
| #define SUBSYS_CONSOLE_11 (SUBSYS_APPOS_MAX + 11) |
| #define SUBSYS_CONSOLE_12 (SUBSYS_APPOS_MAX + 12) |
| #define SUBSYS_CONSOLE_13 (SUBSYS_APPOS_MAX + 13) |
| #define SUBSYS_CONSOLE_14 (SUBSYS_APPOS_MAX + 14) |
| #define SUBSYS_CONSOLE_15 (SUBSYS_APPOS_MAX + 15) |
| #define SUBSYS_CONSOLE_16 (SUBSYS_APPOS_MAX + 16) |
| #define SUBSYS_CONSOLE_17 (SUBSYS_APPOS_MAX + 17) |
| #define SUBSYS_CONSOLE_18 (SUBSYS_APPOS_MAX + 18) |
| #define SUBSYS_CONSOLE_19 (SUBSYS_APPOS_MAX + 19) |
| #define SUBSYS_CONSOLE_20 (SUBSYS_APPOS_MAX + 20) |
| #define SUBSYS_CONSOLE_21 (SUBSYS_APPOS_MAX + 21) |
| #define SUBSYS_CONSOLE_22 (SUBSYS_APPOS_MAX + 22) |
| #define SUBSYS_CONSOLE_23 (SUBSYS_APPOS_MAX + 23) |
| #define SUBSYS_CONSOLE_24 (SUBSYS_APPOS_MAX + 24) |
| #define SUBSYS_CONSOLE_25 (SUBSYS_APPOS_MAX + 25) |
| #define SUBSYS_CONSOLE_26 (SUBSYS_APPOS_MAX + 26) |
| #define SUBSYS_CONSOLE_27 (SUBSYS_APPOS_MAX + 27) |
| #define SUBSYS_CONSOLE_28 (SUBSYS_APPOS_MAX + 28) |
| #define SUBSYS_CONSOLE_29 (SUBSYS_APPOS_MAX + 29) |
| #define SUBSYS_CONSOLE_30 (SUBSYS_APPOS_MAX + 30) |
| #define SUBSYS_CONSOLE_31 (SUBSYS_APPOS_MAX + 31) |
| #define SUBSYS_CONSOLE_32 (SUBSYS_APPOS_MAX + 32) |
| #define SUBSYS_CONSOLE_33 (SUBSYS_APPOS_MAX + 33) |
| #define SUBSYS_CONSOLE_34 (SUBSYS_APPOS_MAX + 34) |
| #define SUBSYS_CONSOLE_35 (SUBSYS_APPOS_MAX + 35) |
| #define SUBSYS_CONSOLE_36 (SUBSYS_APPOS_MAX + 36) |
| #define SUBSYS_CONSOLE_37 (SUBSYS_APPOS_MAX + 37) |
| #define SUBSYS_CONSOLE_38 (SUBSYS_APPOS_MAX + 38) |
| #define SUBSYS_CONSOLE_39 (SUBSYS_APPOS_MAX + 39) |
| #define SUBSYS_CONSOLE_40 (SUBSYS_APPOS_MAX + 40) |
| #define SUBSYS_CONSOLE_41 (SUBSYS_APPOS_MAX + 41) |
| #define SUBSYS_CONSOLE_42 (SUBSYS_APPOS_MAX + 42) |
| #define SUBSYS_CONSOLE_43 (SUBSYS_APPOS_MAX + 43) |
| #define SUBSYS_CONSOLE_44 (SUBSYS_APPOS_MAX + 44) |
| #define SUBSYS_CONSOLE_45 (SUBSYS_APPOS_MAX + 45) |
| #define SUBSYS_CONSOLE_46 (SUBSYS_APPOS_MAX + 46) |
| |
| static inline char * |
| subsys_console_to_s(int subsys, char *s, int n) |
| { |
| switch (subsys) { |
| case SUBSYS_CONSOLE_VIDEO: |
| strncpy(s, "CONSOLE_VIDEO", n); |
| break; |
| case SUBSYS_CONSOLE_KBDMOU: |
| strncpy(s, "CONSOLE_KBDMOU", n); |
| break; |
| case SUBSYS_CONSOLE_04: |
| strncpy(s, "CONSOLE_04", n); |
| break; |
| case SUBSYS_CONSOLE_05: |
| strncpy(s, "CONSOLE_05", n); |
| break; |
| case SUBSYS_CONSOLE_06: |
| strncpy(s, "CONSOLE_06", n); |
| break; |
| case SUBSYS_CONSOLE_07: |
| strncpy(s, "CONSOLE_07", n); |
| break; |
| case SUBSYS_CONSOLE_08: |
| strncpy(s, "CONSOLE_08", n); |
| break; |
| case SUBSYS_CONSOLE_09: |
| strncpy(s, "CONSOLE_09", n); |
| break; |
| case SUBSYS_CONSOLE_10: |
| strncpy(s, "CONSOLE_10", n); |
| break; |
| case SUBSYS_CONSOLE_11: |
| strncpy(s, "CONSOLE_11", n); |
| break; |
| case SUBSYS_CONSOLE_12: |
| strncpy(s, "CONSOLE_12", n); |
| break; |
| case SUBSYS_CONSOLE_13: |
| strncpy(s, "CONSOLE_13", n); |
| break; |
| case SUBSYS_CONSOLE_14: |
| strncpy(s, "CONSOLE_14", n); |
| break; |
| case SUBSYS_CONSOLE_15: |
| strncpy(s, "CONSOLE_15", n); |
| break; |
| case SUBSYS_CONSOLE_16: |
| strncpy(s, "CONSOLE_16", n); |
| break; |
| case SUBSYS_CONSOLE_17: |
| strncpy(s, "CONSOLE_17", n); |
| break; |
| case SUBSYS_CONSOLE_18: |
| strncpy(s, "CONSOLE_18", n); |
| break; |
| case SUBSYS_CONSOLE_19: |
| strncpy(s, "CONSOLE_19", n); |
| break; |
| case SUBSYS_CONSOLE_20: |
| strncpy(s, "CONSOLE_20", n); |
| break; |
| case SUBSYS_CONSOLE_21: |
| strncpy(s, "CONSOLE_21", n); |
| break; |
| case SUBSYS_CONSOLE_22: |
| strncpy(s, "CONSOLE_22", n); |
| break; |
| case SUBSYS_CONSOLE_23: |
| strncpy(s, "CONSOLE_23", n); |
| break; |
| case SUBSYS_CONSOLE_24: |
| strncpy(s, "CONSOLE_24", n); |
| break; |
| case SUBSYS_CONSOLE_25: |
| strncpy(s, "CONSOLE_25", n); |
| break; |
| case SUBSYS_CONSOLE_26: |
| strncpy(s, "CONSOLE_26", n); |
| break; |
| case SUBSYS_CONSOLE_27: |
| strncpy(s, "CONSOLE_27", n); |
| break; |
| case SUBSYS_CONSOLE_28: |
| strncpy(s, "CONSOLE_28", n); |
| break; |
| case SUBSYS_CONSOLE_29: |
| strncpy(s, "CONSOLE_29", n); |
| break; |
| case SUBSYS_CONSOLE_30: |
| strncpy(s, "CONSOLE_30", n); |
| break; |
| case SUBSYS_CONSOLE_31: |
| strncpy(s, "CONSOLE_31", n); |
| break; |
| case SUBSYS_CONSOLE_32: |
| strncpy(s, "CONSOLE_32", n); |
| break; |
| case SUBSYS_CONSOLE_33: |
| strncpy(s, "CONSOLE_33", n); |
| break; |
| case SUBSYS_CONSOLE_34: |
| strncpy(s, "CONSOLE_34", n); |
| break; |
| case SUBSYS_CONSOLE_35: |
| strncpy(s, "CONSOLE_35", n); |
| break; |
| case SUBSYS_CONSOLE_36: |
| strncpy(s, "CONSOLE_36", n); |
| break; |
| case SUBSYS_CONSOLE_37: |
| strncpy(s, "CONSOLE_37", n); |
| break; |
| case SUBSYS_CONSOLE_38: |
| strncpy(s, "CONSOLE_38", n); |
| break; |
| case SUBSYS_CONSOLE_39: |
| strncpy(s, "CONSOLE_39", n); |
| break; |
| case SUBSYS_CONSOLE_40: |
| strncpy(s, "CONSOLE_40", n); |
| break; |
| case SUBSYS_CONSOLE_41: |
| strncpy(s, "CONSOLE_41", n); |
| break; |
| case SUBSYS_CONSOLE_42: |
| strncpy(s, "CONSOLE_42", n); |
| break; |
| case SUBSYS_CONSOLE_43: |
| strncpy(s, "CONSOLE_43", n); |
| break; |
| case SUBSYS_CONSOLE_44: |
| strncpy(s, "CONSOLE_44", n); |
| break; |
| case SUBSYS_CONSOLE_45: |
| strncpy(s, "CONSOLE_45", n); |
| break; |
| case SUBSYS_CONSOLE_46: |
| strncpy(s, "CONSOLE_46", n); |
| break; |
| default: |
| subsys_unknown_to_s(subsys, s, n); |
| break; |
| } |
| s[n - 1] = '\0'; |
| return s; |
| } |
| |
| #endif |