1b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds /* 3*7fb0ad19SChristophe JAILLET * EBCDIC -> ASCII, ASCII -> EBCDIC, 41da177e4SLinus Torvalds * upper to lower case (EBCDIC) conversion tables. 51da177e4SLinus Torvalds * 61da177e4SLinus Torvalds * S390 version 7a53c8fabSHeiko Carstens * Copyright IBM Corp. 1999 81da177e4SLinus Torvalds * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> 91da177e4SLinus Torvalds * Martin Peschke <peschke@fh-brandenburg.de> 101da177e4SLinus Torvalds */ 111da177e4SLinus Torvalds 123994a52bSPaul Gortmaker #include <linux/types.h> 133994a52bSPaul Gortmaker #include <linux/export.h> 142b67fc46SHeiko Carstens #include <asm/ebcdic.h> 151da177e4SLinus Torvalds 161da177e4SLinus Torvalds /* 171da177e4SLinus Torvalds * ASCII (IBM PC 437) -> EBCDIC 037 181da177e4SLinus Torvalds */ 191da177e4SLinus Torvalds __u8 _ascebc[256] = 201da177e4SLinus Torvalds { 211da177e4SLinus Torvalds /*00 NUL SOH STX ETX EOT ENQ ACK BEL */ 221da177e4SLinus Torvalds 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 231da177e4SLinus Torvalds /*08 BS HT LF VT FF CR SO SI */ 241da177e4SLinus Torvalds /* ->NL */ 251da177e4SLinus Torvalds 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 261da177e4SLinus Torvalds /*10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB */ 271da177e4SLinus Torvalds 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 281da177e4SLinus Torvalds /*18 CAN EM SUB ESC FS GS RS US */ 291da177e4SLinus Torvalds /* ->IGS ->IRS ->IUS */ 301da177e4SLinus Torvalds 0x18, 0x19, 0x3F, 0x27, 0x22, 0x1D, 0x1E, 0x1F, 311da177e4SLinus Torvalds /*20 SP ! " # $ % & ' */ 321da177e4SLinus Torvalds 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 331da177e4SLinus Torvalds /*28 ( ) * + , - . / */ 341da177e4SLinus Torvalds 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61, 351da177e4SLinus Torvalds /*30 0 1 2 3 4 5 6 7 */ 361da177e4SLinus Torvalds 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 371da177e4SLinus Torvalds /*38 8 9 : ; < = > ? */ 381da177e4SLinus Torvalds 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F, 391da177e4SLinus Torvalds /*40 @ A B C D E F G */ 401da177e4SLinus Torvalds 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 411da177e4SLinus Torvalds /*48 H I J K L M N O */ 421da177e4SLinus Torvalds 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 431da177e4SLinus Torvalds /*50 P Q R S T U V W */ 441da177e4SLinus Torvalds 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 451da177e4SLinus Torvalds /*58 X Y Z [ \ ] ^ _ */ 461da177e4SLinus Torvalds 0xE7, 0xE8, 0xE9, 0xBA, 0xE0, 0xBB, 0xB0, 0x6D, 471da177e4SLinus Torvalds /*60 ` a b c d e f g */ 481da177e4SLinus Torvalds 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 491da177e4SLinus Torvalds /*68 h i j k l m n o */ 501da177e4SLinus Torvalds 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 511da177e4SLinus Torvalds /*70 p q r s t u v w */ 521da177e4SLinus Torvalds 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 531da177e4SLinus Torvalds /*78 x y z { | } ~ DL */ 541da177e4SLinus Torvalds 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07, 551da177e4SLinus Torvalds /*80*/ 561da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 571da177e4SLinus Torvalds /*88*/ 581da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 591da177e4SLinus Torvalds /*90*/ 601da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 611da177e4SLinus Torvalds /*98*/ 621da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 631da177e4SLinus Torvalds /*A0*/ 641da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 651da177e4SLinus Torvalds /*A8*/ 661da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 671da177e4SLinus Torvalds /*B0*/ 681da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 691da177e4SLinus Torvalds /*B8*/ 701da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 711da177e4SLinus Torvalds /*C0*/ 721da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 731da177e4SLinus Torvalds /*C8*/ 741da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 751da177e4SLinus Torvalds /*D0*/ 761da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 771da177e4SLinus Torvalds /*D8*/ 781da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 791da177e4SLinus Torvalds /*E0 sz */ 801da177e4SLinus Torvalds 0x3F, 0x59, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 811da177e4SLinus Torvalds /*E8*/ 821da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 831da177e4SLinus Torvalds /*F0*/ 841da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 851da177e4SLinus Torvalds /*F8*/ 861da177e4SLinus Torvalds 0x90, 0x3F, 0x3F, 0x3F, 0x3F, 0xEA, 0x3F, 0xFF 871da177e4SLinus Torvalds }; 881da177e4SLinus Torvalds 891da177e4SLinus Torvalds /* 901da177e4SLinus Torvalds * EBCDIC 037 -> ASCII (IBM PC 437) 911da177e4SLinus Torvalds */ 921da177e4SLinus Torvalds __u8 _ebcasc[256] = 931da177e4SLinus Torvalds { 941da177e4SLinus Torvalds /* 0x00 NUL SOH STX ETX *SEL HT *RNL DEL */ 951da177e4SLinus Torvalds 0x00, 0x01, 0x02, 0x03, 0x07, 0x09, 0x07, 0x7F, 961da177e4SLinus Torvalds /* 0x08 -GE -SPS -RPT VT FF CR SO SI */ 971da177e4SLinus Torvalds 0x07, 0x07, 0x07, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 981da177e4SLinus Torvalds /* 0x10 DLE DC1 DC2 DC3 -RES -NL BS -POC 991da177e4SLinus Torvalds -ENP ->LF */ 1001da177e4SLinus Torvalds 0x10, 0x11, 0x12, 0x13, 0x07, 0x0A, 0x08, 0x07, 1011da177e4SLinus Torvalds /* 0x18 CAN EM -UBS -CU1 -IFS -IGS -IRS -ITB 1021da177e4SLinus Torvalds -IUS */ 1031da177e4SLinus Torvalds 0x18, 0x19, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 1041da177e4SLinus Torvalds /* 0x20 -DS -SOS FS -WUS -BYP LF ETB ESC 1051da177e4SLinus Torvalds -INP */ 1061da177e4SLinus Torvalds 0x07, 0x07, 0x1C, 0x07, 0x07, 0x0A, 0x17, 0x1B, 1071da177e4SLinus Torvalds /* 0x28 -SA -SFE -SM -CSP -MFA ENQ ACK BEL 1081da177e4SLinus Torvalds -SW */ 1091da177e4SLinus Torvalds 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07, 1101da177e4SLinus Torvalds /* 0x30 ---- ---- SYN -IR -PP -TRN -NBS EOT */ 1111da177e4SLinus Torvalds 0x07, 0x07, 0x16, 0x07, 0x07, 0x07, 0x07, 0x04, 1121da177e4SLinus Torvalds /* 0x38 -SBS -IT -RFF -CU3 DC4 NAK ---- SUB */ 1131da177e4SLinus Torvalds 0x07, 0x07, 0x07, 0x07, 0x14, 0x15, 0x07, 0x1A, 1148f2bc80cSArnd Bergmann /* 0x40 SP RSP ä ---- */ 1151da177e4SLinus Torvalds 0x20, 0xFF, 0x83, 0x84, 0x85, 0xA0, 0x07, 0x86, 1161da177e4SLinus Torvalds /* 0x48 . < ( + | */ 1171da177e4SLinus Torvalds 0x87, 0xA4, 0x9B, 0x2E, 0x3C, 0x28, 0x2B, 0x7C, 1181da177e4SLinus Torvalds /* 0x50 & ---- */ 1191da177e4SLinus Torvalds 0x26, 0x82, 0x88, 0x89, 0x8A, 0xA1, 0x8C, 0x07, 1208f2bc80cSArnd Bergmann /* 0x58 ß ! $ * ) ; */ 1211da177e4SLinus Torvalds 0x8D, 0xE1, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xAA, 1228f2bc80cSArnd Bergmann /* 0x60 - / ---- Ä ---- ---- ---- */ 1231da177e4SLinus Torvalds 0x2D, 0x2F, 0x07, 0x8E, 0x07, 0x07, 0x07, 0x8F, 1241da177e4SLinus Torvalds /* 0x68 ---- , % _ > ? */ 1251da177e4SLinus Torvalds 0x80, 0xA5, 0x07, 0x2C, 0x25, 0x5F, 0x3E, 0x3F, 1261da177e4SLinus Torvalds /* 0x70 ---- ---- ---- ---- ---- ---- ---- */ 1271da177e4SLinus Torvalds 0x07, 0x90, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 1281da177e4SLinus Torvalds /* 0x78 * ` : # @ ' = " */ 1291da177e4SLinus Torvalds 0x70, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22, 1301da177e4SLinus Torvalds /* 0x80 * a b c d e f g */ 1311da177e4SLinus Torvalds 0x07, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 1321da177e4SLinus Torvalds /* 0x88 h i ---- ---- ---- */ 1331da177e4SLinus Torvalds 0x68, 0x69, 0xAE, 0xAF, 0x07, 0x07, 0x07, 0xF1, 1348f2bc80cSArnd Bergmann /* 0x90 ° j k l m n o p */ 1351da177e4SLinus Torvalds 0xF8, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 1361da177e4SLinus Torvalds /* 0x98 q r ---- ---- */ 1371da177e4SLinus Torvalds 0x71, 0x72, 0xA6, 0xA7, 0x91, 0x07, 0x92, 0x07, 1381da177e4SLinus Torvalds /* 0xA0 ~ s t u v w x */ 1391da177e4SLinus Torvalds 0xE6, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 1401da177e4SLinus Torvalds /* 0xA8 y z ---- ---- ---- ---- */ 1411da177e4SLinus Torvalds 0x79, 0x7A, 0xAD, 0xAB, 0x07, 0x07, 0x07, 0x07, 1428f2bc80cSArnd Bergmann /* 0xB0 ^ ---- § ---- */ 1431da177e4SLinus Torvalds 0x5E, 0x9C, 0x9D, 0xFA, 0x07, 0x07, 0x07, 0xAC, 1441da177e4SLinus Torvalds /* 0xB8 ---- [ ] ---- ---- ---- ---- */ 1451da177e4SLinus Torvalds 0xAB, 0x07, 0x5B, 0x5D, 0x07, 0x07, 0x07, 0x07, 1461da177e4SLinus Torvalds /* 0xC0 { A B C D E F G */ 1471da177e4SLinus Torvalds 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 1488f2bc80cSArnd Bergmann /* 0xC8 H I ---- ö ---- */ 1491da177e4SLinus Torvalds 0x48, 0x49, 0x07, 0x93, 0x94, 0x95, 0xA2, 0x07, 1501da177e4SLinus Torvalds /* 0xD0 } J K L M N O P */ 1511da177e4SLinus Torvalds 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 1528f2bc80cSArnd Bergmann /* 0xD8 Q R ---- ü */ 1531da177e4SLinus Torvalds 0x51, 0x52, 0x07, 0x96, 0x81, 0x97, 0xA3, 0x98, 1541da177e4SLinus Torvalds /* 0xE0 \ S T U V W X */ 1551da177e4SLinus Torvalds 0x5C, 0xF6, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 1568f2bc80cSArnd Bergmann /* 0xE8 Y Z ---- Ö ---- ---- ---- */ 1571da177e4SLinus Torvalds 0x59, 0x5A, 0xFD, 0x07, 0x99, 0x07, 0x07, 0x07, 1581da177e4SLinus Torvalds /* 0xF0 0 1 2 3 4 5 6 7 */ 1591da177e4SLinus Torvalds 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 1608f2bc80cSArnd Bergmann /* 0xF8 8 9 ---- ---- Ü ---- ---- ---- */ 1611da177e4SLinus Torvalds 0x38, 0x39, 0x07, 0x07, 0x9A, 0x07, 0x07, 0x07 1621da177e4SLinus Torvalds }; 1631da177e4SLinus Torvalds 1641da177e4SLinus Torvalds 1651da177e4SLinus Torvalds /* 1661da177e4SLinus Torvalds * ASCII (IBM PC 437) -> EBCDIC 500 1671da177e4SLinus Torvalds */ 1681da177e4SLinus Torvalds __u8 _ascebc_500[256] = 1691da177e4SLinus Torvalds { 1701da177e4SLinus Torvalds /*00 NUL SOH STX ETX EOT ENQ ACK BEL */ 1711da177e4SLinus Torvalds 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 1721da177e4SLinus Torvalds /*08 BS HT LF VT FF CR SO SI */ 1731da177e4SLinus Torvalds /* ->NL */ 1741da177e4SLinus Torvalds 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 1751da177e4SLinus Torvalds /*10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB */ 1761da177e4SLinus Torvalds 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 1771da177e4SLinus Torvalds /*18 CAN EM SUB ESC FS GS RS US */ 1781da177e4SLinus Torvalds /* ->IGS ->IRS ->IUS */ 1791da177e4SLinus Torvalds 0x18, 0x19, 0x3F, 0x27, 0x22, 0x1D, 0x1E, 0x1F, 1801da177e4SLinus Torvalds /*20 SP ! " # $ % & ' */ 1811da177e4SLinus Torvalds 0x40, 0x4F, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 1821da177e4SLinus Torvalds /*28 ( ) * + , - . / */ 1831da177e4SLinus Torvalds 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61, 1841da177e4SLinus Torvalds /*30 0 1 2 3 4 5 6 7 */ 1851da177e4SLinus Torvalds 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 1861da177e4SLinus Torvalds /*38 8 9 : ; < = > ? */ 1871da177e4SLinus Torvalds 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F, 1881da177e4SLinus Torvalds /*40 @ A B C D E F G */ 1891da177e4SLinus Torvalds 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 1901da177e4SLinus Torvalds /*48 H I J K L M N O */ 1911da177e4SLinus Torvalds 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 1921da177e4SLinus Torvalds /*50 P Q R S T U V W */ 1931da177e4SLinus Torvalds 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 1941da177e4SLinus Torvalds /*58 X Y Z [ \ ] ^ _ */ 1951da177e4SLinus Torvalds 0xE7, 0xE8, 0xE9, 0x4A, 0xE0, 0x5A, 0x5F, 0x6D, 1961da177e4SLinus Torvalds /*60 ` a b c d e f g */ 1971da177e4SLinus Torvalds 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 1981da177e4SLinus Torvalds /*68 h i j k l m n o */ 1991da177e4SLinus Torvalds 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 2001da177e4SLinus Torvalds /*70 p q r s t u v w */ 2011da177e4SLinus Torvalds 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 2021da177e4SLinus Torvalds /*78 x y z { | } ~ DL */ 2031da177e4SLinus Torvalds 0xA7, 0xA8, 0xA9, 0xC0, 0xBB, 0xD0, 0xA1, 0x07, 2041da177e4SLinus Torvalds /*80*/ 2051da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2061da177e4SLinus Torvalds /*88*/ 2071da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2081da177e4SLinus Torvalds /*90*/ 2091da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2101da177e4SLinus Torvalds /*98*/ 2111da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2121da177e4SLinus Torvalds /*A0*/ 2131da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2141da177e4SLinus Torvalds /*A8*/ 2151da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2161da177e4SLinus Torvalds /*B0*/ 2171da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2181da177e4SLinus Torvalds /*B8*/ 2191da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2201da177e4SLinus Torvalds /*C0*/ 2211da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2221da177e4SLinus Torvalds /*C8*/ 2231da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2241da177e4SLinus Torvalds /*D0*/ 2251da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2261da177e4SLinus Torvalds /*D8*/ 2271da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2281da177e4SLinus Torvalds /*E0 sz */ 2291da177e4SLinus Torvalds 0x3F, 0x59, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2301da177e4SLinus Torvalds /*E8*/ 2311da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2321da177e4SLinus Torvalds /*F0*/ 2331da177e4SLinus Torvalds 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 2341da177e4SLinus Torvalds /*F8*/ 2351da177e4SLinus Torvalds 0x90, 0x3F, 0x3F, 0x3F, 0x3F, 0xEA, 0x3F, 0xFF 2361da177e4SLinus Torvalds }; 2371da177e4SLinus Torvalds 2381da177e4SLinus Torvalds /* 2391da177e4SLinus Torvalds * EBCDIC 500 -> ASCII (IBM PC 437) 2401da177e4SLinus Torvalds */ 2411da177e4SLinus Torvalds __u8 _ebcasc_500[256] = 2421da177e4SLinus Torvalds { 2431da177e4SLinus Torvalds /* 0x00 NUL SOH STX ETX *SEL HT *RNL DEL */ 2441da177e4SLinus Torvalds 0x00, 0x01, 0x02, 0x03, 0x07, 0x09, 0x07, 0x7F, 2451da177e4SLinus Torvalds /* 0x08 -GE -SPS -RPT VT FF CR SO SI */ 2461da177e4SLinus Torvalds 0x07, 0x07, 0x07, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 2471da177e4SLinus Torvalds /* 0x10 DLE DC1 DC2 DC3 -RES -NL BS -POC 2481da177e4SLinus Torvalds -ENP ->LF */ 2491da177e4SLinus Torvalds 0x10, 0x11, 0x12, 0x13, 0x07, 0x0A, 0x08, 0x07, 2501da177e4SLinus Torvalds /* 0x18 CAN EM -UBS -CU1 -IFS -IGS -IRS -ITB 2511da177e4SLinus Torvalds -IUS */ 2521da177e4SLinus Torvalds 0x18, 0x19, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 2531da177e4SLinus Torvalds /* 0x20 -DS -SOS FS -WUS -BYP LF ETB ESC 2541da177e4SLinus Torvalds -INP */ 2551da177e4SLinus Torvalds 0x07, 0x07, 0x1C, 0x07, 0x07, 0x0A, 0x17, 0x1B, 2561da177e4SLinus Torvalds /* 0x28 -SA -SFE -SM -CSP -MFA ENQ ACK BEL 2571da177e4SLinus Torvalds -SW */ 2581da177e4SLinus Torvalds 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07, 2591da177e4SLinus Torvalds /* 0x30 ---- ---- SYN -IR -PP -TRN -NBS EOT */ 2601da177e4SLinus Torvalds 0x07, 0x07, 0x16, 0x07, 0x07, 0x07, 0x07, 0x04, 2611da177e4SLinus Torvalds /* 0x38 -SBS -IT -RFF -CU3 DC4 NAK ---- SUB */ 2621da177e4SLinus Torvalds 0x07, 0x07, 0x07, 0x07, 0x14, 0x15, 0x07, 0x1A, 2638f2bc80cSArnd Bergmann /* 0x40 SP RSP ä ---- */ 2641da177e4SLinus Torvalds 0x20, 0xFF, 0x83, 0x84, 0x85, 0xA0, 0x07, 0x86, 2651da177e4SLinus Torvalds /* 0x48 [ . < ( + ! */ 2661da177e4SLinus Torvalds 0x87, 0xA4, 0x5B, 0x2E, 0x3C, 0x28, 0x2B, 0x21, 2671da177e4SLinus Torvalds /* 0x50 & ---- */ 2681da177e4SLinus Torvalds 0x26, 0x82, 0x88, 0x89, 0x8A, 0xA1, 0x8C, 0x07, 2698f2bc80cSArnd Bergmann /* 0x58 ß ] $ * ) ; ^ */ 2701da177e4SLinus Torvalds 0x8D, 0xE1, 0x5D, 0x24, 0x2A, 0x29, 0x3B, 0x5E, 2718f2bc80cSArnd Bergmann /* 0x60 - / ---- Ä ---- ---- ---- */ 2721da177e4SLinus Torvalds 0x2D, 0x2F, 0x07, 0x8E, 0x07, 0x07, 0x07, 0x8F, 2731da177e4SLinus Torvalds /* 0x68 ---- , % _ > ? */ 2741da177e4SLinus Torvalds 0x80, 0xA5, 0x07, 0x2C, 0x25, 0x5F, 0x3E, 0x3F, 2751da177e4SLinus Torvalds /* 0x70 ---- ---- ---- ---- ---- ---- ---- */ 2761da177e4SLinus Torvalds 0x07, 0x90, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 2771da177e4SLinus Torvalds /* 0x78 * ` : # @ ' = " */ 2781da177e4SLinus Torvalds 0x70, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22, 2791da177e4SLinus Torvalds /* 0x80 * a b c d e f g */ 2801da177e4SLinus Torvalds 0x07, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 2811da177e4SLinus Torvalds /* 0x88 h i ---- ---- ---- */ 2821da177e4SLinus Torvalds 0x68, 0x69, 0xAE, 0xAF, 0x07, 0x07, 0x07, 0xF1, 2838f2bc80cSArnd Bergmann /* 0x90 ° j k l m n o p */ 2841da177e4SLinus Torvalds 0xF8, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 2851da177e4SLinus Torvalds /* 0x98 q r ---- ---- */ 2861da177e4SLinus Torvalds 0x71, 0x72, 0xA6, 0xA7, 0x91, 0x07, 0x92, 0x07, 2871da177e4SLinus Torvalds /* 0xA0 ~ s t u v w x */ 2881da177e4SLinus Torvalds 0xE6, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 2891da177e4SLinus Torvalds /* 0xA8 y z ---- ---- ---- ---- */ 2901da177e4SLinus Torvalds 0x79, 0x7A, 0xAD, 0xAB, 0x07, 0x07, 0x07, 0x07, 2918f2bc80cSArnd Bergmann /* 0xB0 ---- § ---- */ 2921da177e4SLinus Torvalds 0x9B, 0x9C, 0x9D, 0xFA, 0x07, 0x07, 0x07, 0xAC, 2931da177e4SLinus Torvalds /* 0xB8 ---- | ---- ---- ---- ---- */ 2941da177e4SLinus Torvalds 0xAB, 0x07, 0xAA, 0x7C, 0x07, 0x07, 0x07, 0x07, 2951da177e4SLinus Torvalds /* 0xC0 { A B C D E F G */ 2961da177e4SLinus Torvalds 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 2978f2bc80cSArnd Bergmann /* 0xC8 H I ---- ö ---- */ 2981da177e4SLinus Torvalds 0x48, 0x49, 0x07, 0x93, 0x94, 0x95, 0xA2, 0x07, 2991da177e4SLinus Torvalds /* 0xD0 } J K L M N O P */ 3001da177e4SLinus Torvalds 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 3018f2bc80cSArnd Bergmann /* 0xD8 Q R ---- ü */ 3021da177e4SLinus Torvalds 0x51, 0x52, 0x07, 0x96, 0x81, 0x97, 0xA3, 0x98, 3031da177e4SLinus Torvalds /* 0xE0 \ S T U V W X */ 3041da177e4SLinus Torvalds 0x5C, 0xF6, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 3058f2bc80cSArnd Bergmann /* 0xE8 Y Z ---- Ö ---- ---- ---- */ 3061da177e4SLinus Torvalds 0x59, 0x5A, 0xFD, 0x07, 0x99, 0x07, 0x07, 0x07, 3071da177e4SLinus Torvalds /* 0xF0 0 1 2 3 4 5 6 7 */ 3081da177e4SLinus Torvalds 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 3098f2bc80cSArnd Bergmann /* 0xF8 8 9 ---- ---- Ü ---- ---- ---- */ 3101da177e4SLinus Torvalds 0x38, 0x39, 0x07, 0x07, 0x9A, 0x07, 0x07, 0x07 3111da177e4SLinus Torvalds }; 3121da177e4SLinus Torvalds 3131da177e4SLinus Torvalds 3141da177e4SLinus Torvalds /* 3151da177e4SLinus Torvalds * EBCDIC 037/500 conversion table: 3161da177e4SLinus Torvalds * from upper to lower case 3171da177e4SLinus Torvalds */ 3181da177e4SLinus Torvalds __u8 _ebc_tolower[256] = 3191da177e4SLinus Torvalds { 3201da177e4SLinus Torvalds 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3211da177e4SLinus Torvalds 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 3221da177e4SLinus Torvalds 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3231da177e4SLinus Torvalds 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 3241da177e4SLinus Torvalds 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 3251da177e4SLinus Torvalds 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 3261da177e4SLinus Torvalds 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 3271da177e4SLinus Torvalds 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 3281da177e4SLinus Torvalds 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 3291da177e4SLinus Torvalds 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 3301da177e4SLinus Torvalds 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 3311da177e4SLinus Torvalds 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 3321da177e4SLinus Torvalds 0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 3331da177e4SLinus Torvalds 0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 3341da177e4SLinus Torvalds 0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 3351da177e4SLinus Torvalds 0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 3361da177e4SLinus Torvalds 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 3371da177e4SLinus Torvalds 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 3381da177e4SLinus Torvalds 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 3391da177e4SLinus Torvalds 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F, 3401da177e4SLinus Torvalds 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 3411da177e4SLinus Torvalds 0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0x8D, 0x8E, 0xAF, 3421da177e4SLinus Torvalds 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 3431da177e4SLinus Torvalds 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 3441da177e4SLinus Torvalds 0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 3451da177e4SLinus Torvalds 0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 3461da177e4SLinus Torvalds 0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 3471da177e4SLinus Torvalds 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 3481da177e4SLinus Torvalds 0xE0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 3491da177e4SLinus Torvalds 0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 3501da177e4SLinus Torvalds 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 3511da177e4SLinus Torvalds 0xF8, 0xF9, 0xFA, 0xDB, 0xDC, 0xDD, 0xDE, 0xFF 3521da177e4SLinus Torvalds }; 3531da177e4SLinus Torvalds 3541da177e4SLinus Torvalds 3551da177e4SLinus Torvalds /* 3561da177e4SLinus Torvalds * EBCDIC 037/500 conversion table: 3571da177e4SLinus Torvalds * from lower to upper case 3581da177e4SLinus Torvalds */ 3591da177e4SLinus Torvalds __u8 _ebc_toupper[256] = 3601da177e4SLinus Torvalds { 3611da177e4SLinus Torvalds 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3621da177e4SLinus Torvalds 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 3631da177e4SLinus Torvalds 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3641da177e4SLinus Torvalds 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 3651da177e4SLinus Torvalds 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 3661da177e4SLinus Torvalds 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 3671da177e4SLinus Torvalds 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 3681da177e4SLinus Torvalds 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 3691da177e4SLinus Torvalds 0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 3701da177e4SLinus Torvalds 0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 3711da177e4SLinus Torvalds 0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 3721da177e4SLinus Torvalds 0x78, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 3731da177e4SLinus Torvalds 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 3741da177e4SLinus Torvalds 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 3751da177e4SLinus Torvalds 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 3761da177e4SLinus Torvalds 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 3771da177e4SLinus Torvalds 0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 3781da177e4SLinus Torvalds 0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xAD, 0xAE, 0x8F, 3791da177e4SLinus Torvalds 0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 3801da177e4SLinus Torvalds 0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F, 3811da177e4SLinus Torvalds 0xA0, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 3821da177e4SLinus Torvalds 0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 3831da177e4SLinus Torvalds 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 3841da177e4SLinus Torvalds 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 3851da177e4SLinus Torvalds 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 3861da177e4SLinus Torvalds 0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 3871da177e4SLinus Torvalds 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 3881da177e4SLinus Torvalds 0xD8, 0xD9, 0xDA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, 3891da177e4SLinus Torvalds 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 3901da177e4SLinus Torvalds 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 3911da177e4SLinus Torvalds 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 3921da177e4SLinus Torvalds 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF 3931da177e4SLinus Torvalds }; 3941da177e4SLinus Torvalds 3951da177e4SLinus Torvalds EXPORT_SYMBOL(_ascebc_500); 3961da177e4SLinus Torvalds EXPORT_SYMBOL(_ebcasc_500); 3971da177e4SLinus Torvalds EXPORT_SYMBOL(_ascebc); 3981da177e4SLinus Torvalds EXPORT_SYMBOL(_ebcasc); 3991da177e4SLinus Torvalds EXPORT_SYMBOL(_ebc_tolower); 4001da177e4SLinus Torvalds EXPORT_SYMBOL(_ebc_toupper); 4011da177e4SLinus Torvalds 402