File cputype of Package s390-tools.27266

#!/bin/sh
#
# cputype
#
# Copyright (c) 2014-2017, 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# Based on the IBM machine model, returns a (hopefully) human understandable
# string that identifies the processor.
#
# Usage:
#	cputype
#
# Return values:
# 	1	The script was executed on a system that is a non-IBM mainframe
#		architecture
#	2	The search for the machine type in /proc/cpuinfo returned a null string
#	3	The parsing of the machine type returned a null string
#	4	The machine type found is (probably) a new one, and the script needs to
#		be updated to handle it.
#

architecture=$(/bin/uname -m)
if [ "${architecture}" != "s390x" -a "${architecture}" != "s390" ]; then
  echo "This command is only useful on IBM mainframes." >&2
  exit 1
fi

args=$(/usr/bin/grep machine /proc/cpuinfo | /usr/bin/cut -f2- -d: | /usr/bin/tr -d ' ' | /usr/bin/tr ',' ';' )

if [ -z "${args}" ]; then
  echo "I couldn't find the machine type. Please report a bug with this output:" >&2
  /bin/cat /proc/cpuinfo  >&2
  echo "******************" >&2
  /usr/bin/grep machine /proc/cpuinfo  >&2
  exit 2
fi

eval ${args}

if [ -z "${machine}" ] ; then
  echo "The machine type came out null. Please report a bug with this output:" >&2
  /bin/cat /proc/cpuinfo >&2
  exit 3
fi

case "${machine}" in
  2064) echo "${machine} = z900    IBM eServer zSeries 900" ;;
  2066) echo "${machine} = z800    IBM eServer zSeries 800" ;;
  2084) echo "${machine} = z990    IBM eServer zSeries 990" ;;
  2086) echo "${machine} = z890    IBM eServer zSeries 890" ;;
  2094) echo "${machine} = z9-EC   IBM System z9 Enterprise Class" ;;
  2096) echo "${machine} = z9-BC   IBM System z9 Business Class" ;;
  2097) echo "${machine} = z10-EC  IBM System z10 Enterprise Class" ;;
  2098) echo "${machine} = z10-BC  IBM System z10 Business Class" ;;
  2817) echo "${machine} = z196    IBM zEnterprise 196" ;;
  2818) echo "${machine} = z114    IBM zEnterprise 114" ;;
  2827) echo "${machine} = z12-EC  IBM zEnterprise EC12" ;;
  2828) echo "${machine} = z12-BC  IBM zEnterprise BC12" ;;
  2964) echo "${machine} = z13     IBM z13" ;;
  2965) echo "${machine} = z13s    IBM z13s (single frame)" ;;
  3906) echo "${machine} = z14     IBM z14" ;;
  3907) echo "${machine} = z14 ZR1 IBM z14 ZR1" ;;
  8561) echo "${machine} = z15 T01 IBM z15 T01" ;;
  8562) echo "${machine} = z15 T02 IBM z15 T02" ;;
  *) echo "An unknown machine type was reported: ${machine}" >&2
     echo "Please file a bug report with this output:" >&2
     /bin/cat /proc/cpuinfo >&2
     exit 4
     ;;
esac

openSUSE Build Service is sponsored by