1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 #include <linux/types.h>
  13 #include <linux/export.h>
  14 #include <asm/ebcdic.h>
  15 
  16 
  17 
  18 
  19 __u8 _ascebc[256] =
  20 {
  21  
  22      0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F,
  23  
  24  
  25      0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
  26  
  27      0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26,
  28  
  29  
  30      0x18, 0x19, 0x3F, 0x27, 0x22, 0x1D, 0x1E, 0x1F,
  31  
  32      0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D,
  33  
  34      0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
  35  
  36      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
  37  
  38      0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
  39  
  40      0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
  41  
  42      0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
  43  
  44      0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
  45  
  46      0xE7, 0xE8, 0xE9, 0xBA, 0xE0, 0xBB, 0xB0, 0x6D,
  47  
  48      0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
  49  
  50      0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
  51  
  52      0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
  53  
  54      0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
  55  
  56      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  57  
  58      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  59  
  60      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  61  
  62      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  63  
  64      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  65  
  66      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  67  
  68      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  69  
  70      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  71  
  72      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  73  
  74      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  75  
  76      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  77  
  78      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  79  
  80      0x3F, 0x59, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  81  
  82      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  83  
  84      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
  85  
  86      0x90, 0x3F, 0x3F, 0x3F, 0x3F, 0xEA, 0x3F, 0xFF
  87 };
  88 
  89 
  90 
  91 
  92 __u8 _ebcasc[256] =
  93 {
  94  
  95           0x00, 0x01, 0x02, 0x03, 0x07, 0x09, 0x07, 0x7F,
  96  
  97           0x07, 0x07, 0x07, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
  98  
  99 
 100           0x10, 0x11, 0x12, 0x13, 0x07, 0x0A, 0x08, 0x07,
 101  
 102 
 103           0x18, 0x19, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
 104  
 105 
 106           0x07, 0x07, 0x1C, 0x07, 0x07, 0x0A, 0x17, 0x1B,
 107  
 108  
 109           0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07,
 110  
 111           0x07, 0x07, 0x16, 0x07, 0x07, 0x07, 0x07, 0x04,
 112  
 113           0x07, 0x07, 0x07, 0x07, 0x14, 0x15, 0x07, 0x1A,
 114  
 115           0x20, 0xFF, 0x83, 0x84, 0x85, 0xA0, 0x07, 0x86,
 116  
 117           0x87, 0xA4, 0x9B, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
 118  
 119           0x26, 0x82, 0x88, 0x89, 0x8A, 0xA1, 0x8C, 0x07,
 120  
 121           0x8D, 0xE1, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xAA,
 122  
 123           0x2D, 0x2F, 0x07, 0x8E, 0x07, 0x07, 0x07, 0x8F,
 124   
 125           0x80, 0xA5, 0x07, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
 126  
 127           0x07, 0x90, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
 128  
 129           0x70, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
 130  
 131           0x07, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
 132  
 133           0x68, 0x69, 0xAE, 0xAF, 0x07, 0x07, 0x07, 0xF1,
 134  
 135           0xF8, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
 136  
 137           0x71, 0x72, 0xA6, 0xA7, 0x91, 0x07, 0x92, 0x07,
 138  
 139           0xE6, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
 140  
 141           0x79, 0x7A, 0xAD, 0xAB, 0x07, 0x07, 0x07, 0x07,
 142  
 143           0x5E, 0x9C, 0x9D, 0xFA, 0x07, 0x07, 0x07, 0xAC,
 144  
 145           0xAB, 0x07, 0x5B, 0x5D, 0x07, 0x07, 0x07, 0x07,
 146  
 147           0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
 148  
 149           0x48, 0x49, 0x07, 0x93, 0x94, 0x95, 0xA2, 0x07,
 150  
 151           0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
 152  
 153           0x51, 0x52, 0x07, 0x96, 0x81, 0x97, 0xA3, 0x98,
 154  
 155           0x5C, 0xF6, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
 156  
 157           0x59, 0x5A, 0xFD, 0x07, 0x99, 0x07, 0x07, 0x07,
 158  
 159           0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
 160  
 161           0x38, 0x39, 0x07, 0x07, 0x9A, 0x07, 0x07, 0x07
 162 };
 163 
 164 
 165 
 166 
 167 
 168 __u8 _ascebc_500[256] =
 169 {
 170  
 171      0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F,
 172  
 173  
 174      0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
 175  
 176      0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26,
 177  
 178  
 179      0x18, 0x19, 0x3F, 0x27, 0x22, 0x1D, 0x1E, 0x1F,
 180  
 181      0x40, 0x4F, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D,
 182  
 183      0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
 184  
 185      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
 186  
 187      0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
 188  
 189      0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
 190  
 191      0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
 192  
 193      0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
 194  
 195      0xE7, 0xE8, 0xE9, 0x4A, 0xE0, 0x5A, 0x5F, 0x6D,
 196  
 197      0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
 198  
 199      0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
 200  
 201      0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
 202  
 203      0xA7, 0xA8, 0xA9, 0xC0, 0xBB, 0xD0, 0xA1, 0x07,
 204  
 205      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 206  
 207      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 208  
 209      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 210  
 211      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 212  
 213      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 214  
 215      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 216  
 217      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 218  
 219      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 220  
 221      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 222  
 223      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 224  
 225      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 226  
 227      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 228  
 229      0x3F, 0x59, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 230  
 231      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 232  
 233      0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 234  
 235      0x90, 0x3F, 0x3F, 0x3F, 0x3F, 0xEA, 0x3F, 0xFF
 236 };
 237 
 238 
 239 
 240 
 241 __u8 _ebcasc_500[256] =
 242 {
 243  
 244           0x00, 0x01, 0x02, 0x03, 0x07, 0x09, 0x07, 0x7F,
 245  
 246           0x07, 0x07, 0x07, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
 247  
 248 
 249           0x10, 0x11, 0x12, 0x13, 0x07, 0x0A, 0x08, 0x07,
 250  
 251 
 252           0x18, 0x19, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
 253  
 254 
 255           0x07, 0x07, 0x1C, 0x07, 0x07, 0x0A, 0x17, 0x1B,
 256  
 257  
 258           0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07,
 259  
 260           0x07, 0x07, 0x16, 0x07, 0x07, 0x07, 0x07, 0x04,
 261  
 262           0x07, 0x07, 0x07, 0x07, 0x14, 0x15, 0x07, 0x1A,
 263  
 264           0x20, 0xFF, 0x83, 0x84, 0x85, 0xA0, 0x07, 0x86,
 265  
 266           0x87, 0xA4, 0x5B, 0x2E, 0x3C, 0x28, 0x2B, 0x21,
 267  
 268           0x26, 0x82, 0x88, 0x89, 0x8A, 0xA1, 0x8C, 0x07,
 269  
 270           0x8D, 0xE1, 0x5D, 0x24, 0x2A, 0x29, 0x3B, 0x5E,
 271  
 272           0x2D, 0x2F, 0x07, 0x8E, 0x07, 0x07, 0x07, 0x8F,
 273   
 274           0x80, 0xA5, 0x07, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
 275  
 276           0x07, 0x90, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
 277  
 278           0x70, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
 279  
 280           0x07, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
 281  
 282           0x68, 0x69, 0xAE, 0xAF, 0x07, 0x07, 0x07, 0xF1,
 283  
 284           0xF8, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
 285  
 286           0x71, 0x72, 0xA6, 0xA7, 0x91, 0x07, 0x92, 0x07,
 287  
 288           0xE6, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
 289  
 290           0x79, 0x7A, 0xAD, 0xAB, 0x07, 0x07, 0x07, 0x07,
 291  
 292           0x9B, 0x9C, 0x9D, 0xFA, 0x07, 0x07, 0x07, 0xAC,
 293  
 294           0xAB, 0x07, 0xAA, 0x7C, 0x07, 0x07, 0x07, 0x07,
 295  
 296           0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
 297  
 298           0x48, 0x49, 0x07, 0x93, 0x94, 0x95, 0xA2, 0x07,
 299  
 300           0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
 301  
 302           0x51, 0x52, 0x07, 0x96, 0x81, 0x97, 0xA3, 0x98,
 303  
 304           0x5C, 0xF6, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
 305  
 306           0x59, 0x5A, 0xFD, 0x07, 0x99, 0x07, 0x07, 0x07,
 307  
 308           0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
 309  
 310           0x38, 0x39, 0x07, 0x07, 0x9A, 0x07, 0x07, 0x07
 311 };
 312 
 313 
 314 
 315 
 316 
 317 
 318 __u8 _ebc_tolower[256] =
 319 {
 320         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
 321         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
 322         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 323         0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
 324         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
 325         0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
 326         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
 327         0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
 328         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
 329         0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
 330         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
 331         0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
 332         0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
 333         0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
 334         0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
 335         0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
 336         0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
 337         0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
 338         0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
 339         0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F,
 340         0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
 341         0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0x8D, 0x8E, 0xAF,
 342         0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
 343         0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
 344         0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
 345         0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
 346         0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
 347         0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
 348         0xE0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
 349         0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
 350         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
 351         0xF8, 0xF9, 0xFA, 0xDB, 0xDC, 0xDD, 0xDE, 0xFF
 352 };
 353 
 354 
 355 
 356 
 357 
 358 
 359 __u8 _ebc_toupper[256] =
 360 {
 361         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
 362         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
 363         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 364         0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
 365         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
 366         0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
 367         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
 368         0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
 369         0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
 370         0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
 371         0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
 372         0x78, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
 373         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
 374         0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
 375         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
 376         0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
 377         0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
 378         0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xAD, 0xAE, 0x8F,
 379         0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
 380         0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F,
 381         0xA0, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
 382         0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
 383         0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
 384         0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
 385         0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
 386         0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
 387         0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
 388         0xD8, 0xD9, 0xDA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
 389         0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
 390         0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
 391         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
 392         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
 393 };
 394 
 395 EXPORT_SYMBOL(_ascebc_500);
 396 EXPORT_SYMBOL(_ebcasc_500);
 397 EXPORT_SYMBOL(_ascebc);
 398 EXPORT_SYMBOL(_ebcasc);
 399 EXPORT_SYMBOL(_ebc_tolower);
 400 EXPORT_SYMBOL(_ebc_toupper);
 401