^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * ECBDIC -> ASCII, ASCII -> ECBDIC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * upper to lower case (EBCDIC) conversion tables.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * S390 version
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * Copyright IBM Corp. 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) * Martin Peschke <peschke@fh-brandenburg.de>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <linux/export.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <asm/ebcdic.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * ASCII (IBM PC 437) -> EBCDIC 037
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) __u8 _ascebc[256] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /*00 NUL SOH STX ETX EOT ENQ ACK BEL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) /*08 BS HT LF VT FF CR SO SI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) /* ->NL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) /*10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) /*18 CAN EM SUB ESC FS GS RS US */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) /* ->IGS ->IRS ->IUS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 0x18, 0x19, 0x3F, 0x27, 0x22, 0x1D, 0x1E, 0x1F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) /*20 SP ! " # $ % & ' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) /*28 ( ) * + , - . / */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) /*30 0 1 2 3 4 5 6 7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) /*38 8 9 : ; < = > ? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) /*40 @ A B C D E F G */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) /*48 H I J K L M N O */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) /*50 P Q R S T U V W */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) /*58 X Y Z [ \ ] ^ _ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 0xE7, 0xE8, 0xE9, 0xBA, 0xE0, 0xBB, 0xB0, 0x6D,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) /*60 ` a b c d e f g */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) /*68 h i j k l m n o */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) /*70 p q r s t u v w */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) /*78 x y z { | } ~ DL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) /*80*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) /*88*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) /*90*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) /*98*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) /*A0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) /*A8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) /*B0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) /*B8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) /*C0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) /*C8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) /*D0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) /*D8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) /*E0 sz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) 0x3F, 0x59, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) /*E8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) /*F0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) /*F8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) 0x90, 0x3F, 0x3F, 0x3F, 0x3F, 0xEA, 0x3F, 0xFF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) * EBCDIC 037 -> ASCII (IBM PC 437)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) __u8 _ebcasc[256] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) /* 0x00 NUL SOH STX ETX *SEL HT *RNL DEL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) 0x00, 0x01, 0x02, 0x03, 0x07, 0x09, 0x07, 0x7F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) /* 0x08 -GE -SPS -RPT VT FF CR SO SI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) 0x07, 0x07, 0x07, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) /* 0x10 DLE DC1 DC2 DC3 -RES -NL BS -POC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) -ENP ->LF */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 0x10, 0x11, 0x12, 0x13, 0x07, 0x0A, 0x08, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) /* 0x18 CAN EM -UBS -CU1 -IFS -IGS -IRS -ITB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) -IUS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 0x18, 0x19, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) /* 0x20 -DS -SOS FS -WUS -BYP LF ETB ESC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) -INP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 0x07, 0x07, 0x1C, 0x07, 0x07, 0x0A, 0x17, 0x1B,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) /* 0x28 -SA -SFE -SM -CSP -MFA ENQ ACK BEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) -SW */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) /* 0x30 ---- ---- SYN -IR -PP -TRN -NBS EOT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 0x07, 0x07, 0x16, 0x07, 0x07, 0x07, 0x07, 0x04,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) /* 0x38 -SBS -IT -RFF -CU3 DC4 NAK ---- SUB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 0x07, 0x07, 0x07, 0x07, 0x14, 0x15, 0x07, 0x1A,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) /* 0x40 SP RSP ä ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 0x20, 0xFF, 0x83, 0x84, 0x85, 0xA0, 0x07, 0x86,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) /* 0x48 . < ( + | */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 0x87, 0xA4, 0x9B, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) /* 0x50 & ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 0x26, 0x82, 0x88, 0x89, 0x8A, 0xA1, 0x8C, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) /* 0x58 ß ! $ * ) ; */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 0x8D, 0xE1, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xAA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) /* 0x60 - / ---- Ä ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 0x2D, 0x2F, 0x07, 0x8E, 0x07, 0x07, 0x07, 0x8F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) /* 0x68 ---- , % _ > ? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 0x80, 0xA5, 0x07, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) /* 0x70 ---- ---- ---- ---- ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 0x07, 0x90, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) /* 0x78 * ` : # @ ' = " */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 0x70, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) /* 0x80 * a b c d e f g */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 0x07, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) /* 0x88 h i ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 0x68, 0x69, 0xAE, 0xAF, 0x07, 0x07, 0x07, 0xF1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) /* 0x90 ° j k l m n o p */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 0xF8, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) /* 0x98 q r ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 0x71, 0x72, 0xA6, 0xA7, 0x91, 0x07, 0x92, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) /* 0xA0 ~ s t u v w x */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 0xE6, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) /* 0xA8 y z ---- ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 0x79, 0x7A, 0xAD, 0xAB, 0x07, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) /* 0xB0 ^ ---- § ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 0x5E, 0x9C, 0x9D, 0xFA, 0x07, 0x07, 0x07, 0xAC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) /* 0xB8 ---- [ ] ---- ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 0xAB, 0x07, 0x5B, 0x5D, 0x07, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) /* 0xC0 { A B C D E F G */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) /* 0xC8 H I ---- ö ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 0x48, 0x49, 0x07, 0x93, 0x94, 0x95, 0xA2, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) /* 0xD0 } J K L M N O P */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) /* 0xD8 Q R ---- ü */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 0x51, 0x52, 0x07, 0x96, 0x81, 0x97, 0xA3, 0x98,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) /* 0xE0 \ S T U V W X */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 0x5C, 0xF6, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) /* 0xE8 Y Z ---- Ö ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 0x59, 0x5A, 0xFD, 0x07, 0x99, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) /* 0xF0 0 1 2 3 4 5 6 7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) /* 0xF8 8 9 ---- ---- Ü ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 0x38, 0x39, 0x07, 0x07, 0x9A, 0x07, 0x07, 0x07
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) * ASCII (IBM PC 437) -> EBCDIC 500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) __u8 _ascebc_500[256] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) /*00 NUL SOH STX ETX EOT ENQ ACK BEL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) /*08 BS HT LF VT FF CR SO SI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) /* ->NL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) /*10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) /*18 CAN EM SUB ESC FS GS RS US */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) /* ->IGS ->IRS ->IUS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 0x18, 0x19, 0x3F, 0x27, 0x22, 0x1D, 0x1E, 0x1F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) /*20 SP ! " # $ % & ' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 0x40, 0x4F, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) /*28 ( ) * + , - . / */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) /*30 0 1 2 3 4 5 6 7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) /*38 8 9 : ; < = > ? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) /*40 @ A B C D E F G */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) /*48 H I J K L M N O */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) /*50 P Q R S T U V W */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) /*58 X Y Z [ \ ] ^ _ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 0xE7, 0xE8, 0xE9, 0x4A, 0xE0, 0x5A, 0x5F, 0x6D,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) /*60 ` a b c d e f g */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) /*68 h i j k l m n o */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) /*70 p q r s t u v w */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) /*78 x y z { | } ~ DL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 0xA7, 0xA8, 0xA9, 0xC0, 0xBB, 0xD0, 0xA1, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) /*80*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) /*88*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) /*90*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) /*98*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) /*A0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) /*A8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) /*B0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) /*B8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) /*C0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) /*C8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) /*D0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) /*D8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) /*E0 sz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 0x3F, 0x59, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) /*E8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) /*F0*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) /*F8*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 0x90, 0x3F, 0x3F, 0x3F, 0x3F, 0xEA, 0x3F, 0xFF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) * EBCDIC 500 -> ASCII (IBM PC 437)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) __u8 _ebcasc_500[256] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) /* 0x00 NUL SOH STX ETX *SEL HT *RNL DEL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 0x00, 0x01, 0x02, 0x03, 0x07, 0x09, 0x07, 0x7F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) /* 0x08 -GE -SPS -RPT VT FF CR SO SI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 0x07, 0x07, 0x07, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) /* 0x10 DLE DC1 DC2 DC3 -RES -NL BS -POC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) -ENP ->LF */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 0x10, 0x11, 0x12, 0x13, 0x07, 0x0A, 0x08, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) /* 0x18 CAN EM -UBS -CU1 -IFS -IGS -IRS -ITB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) -IUS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 0x18, 0x19, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) /* 0x20 -DS -SOS FS -WUS -BYP LF ETB ESC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) -INP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 0x07, 0x07, 0x1C, 0x07, 0x07, 0x0A, 0x17, 0x1B,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) /* 0x28 -SA -SFE -SM -CSP -MFA ENQ ACK BEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) -SW */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) /* 0x30 ---- ---- SYN -IR -PP -TRN -NBS EOT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 0x07, 0x07, 0x16, 0x07, 0x07, 0x07, 0x07, 0x04,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) /* 0x38 -SBS -IT -RFF -CU3 DC4 NAK ---- SUB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 0x07, 0x07, 0x07, 0x07, 0x14, 0x15, 0x07, 0x1A,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) /* 0x40 SP RSP ä ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 0x20, 0xFF, 0x83, 0x84, 0x85, 0xA0, 0x07, 0x86,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) /* 0x48 [ . < ( + ! */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 0x87, 0xA4, 0x5B, 0x2E, 0x3C, 0x28, 0x2B, 0x21,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) /* 0x50 & ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 0x26, 0x82, 0x88, 0x89, 0x8A, 0xA1, 0x8C, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) /* 0x58 ß ] $ * ) ; ^ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 0x8D, 0xE1, 0x5D, 0x24, 0x2A, 0x29, 0x3B, 0x5E,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) /* 0x60 - / ---- Ä ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 0x2D, 0x2F, 0x07, 0x8E, 0x07, 0x07, 0x07, 0x8F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) /* 0x68 ---- , % _ > ? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 0x80, 0xA5, 0x07, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) /* 0x70 ---- ---- ---- ---- ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 0x07, 0x90, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) /* 0x78 * ` : # @ ' = " */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 0x70, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) /* 0x80 * a b c d e f g */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 0x07, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) /* 0x88 h i ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 0x68, 0x69, 0xAE, 0xAF, 0x07, 0x07, 0x07, 0xF1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) /* 0x90 ° j k l m n o p */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 0xF8, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) /* 0x98 q r ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 0x71, 0x72, 0xA6, 0xA7, 0x91, 0x07, 0x92, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) /* 0xA0 ~ s t u v w x */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 0xE6, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) /* 0xA8 y z ---- ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 0x79, 0x7A, 0xAD, 0xAB, 0x07, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) /* 0xB0 ---- § ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 0x9B, 0x9C, 0x9D, 0xFA, 0x07, 0x07, 0x07, 0xAC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) /* 0xB8 ---- | ---- ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 0xAB, 0x07, 0xAA, 0x7C, 0x07, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) /* 0xC0 { A B C D E F G */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) /* 0xC8 H I ---- ö ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 0x48, 0x49, 0x07, 0x93, 0x94, 0x95, 0xA2, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) /* 0xD0 } J K L M N O P */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) /* 0xD8 Q R ---- ü */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 0x51, 0x52, 0x07, 0x96, 0x81, 0x97, 0xA3, 0x98,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) /* 0xE0 \ S T U V W X */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 0x5C, 0xF6, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) /* 0xE8 Y Z ---- Ö ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) 0x59, 0x5A, 0xFD, 0x07, 0x99, 0x07, 0x07, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) /* 0xF0 0 1 2 3 4 5 6 7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) /* 0xF8 8 9 ---- ---- Ü ---- ---- ---- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) 0x38, 0x39, 0x07, 0x07, 0x9A, 0x07, 0x07, 0x07
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) * EBCDIC 037/500 conversion table:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) * from upper to lower case
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) __u8 _ebc_tolower[256] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0x8D, 0x8E, 0xAF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) 0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 0xE0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 0xF8, 0xF9, 0xFA, 0xDB, 0xDC, 0xDD, 0xDE, 0xFF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) * EBCDIC 037/500 conversion table:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) * from lower to upper case
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) __u8 _ebc_toupper[256] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) 0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 0x78, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xAD, 0xAE, 0x8F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) 0xA0, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 0xD8, 0xD9, 0xDA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) EXPORT_SYMBOL(_ascebc_500);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) EXPORT_SYMBOL(_ebcasc_500);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) EXPORT_SYMBOL(_ascebc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) EXPORT_SYMBOL(_ebcasc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) EXPORT_SYMBOL(_ebc_tolower);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) EXPORT_SYMBOL(_ebc_toupper);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401)