blob: 18cc9ed2748bff25b310bad275fefa8018e09e04 [file] [log] [blame]
/* 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