| /* |
| * EBCDIC to ASCII conversion |
| * |
| * This function moved here from arch/powerpc/platforms/iseries/viopath.c |
| * |
| * (C) Copyright 2000-2004 IBM Corporation |
| * |
| * 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) anyu 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. See the GNU |
| * General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software Foundation, |
| * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| * |
| */ |
| |
| #include <linux/module.h> |
| |
| unsigned char e2a(unsigned char x) |
| { |
| switch (x) { |
| case 0xF0: |
| return '0'; |
| case 0xF1: |
| return '1'; |
| case 0xF2: |
| return '2'; |
| case 0xF3: |
| return '3'; |
| case 0xF4: |
| return '4'; |
| case 0xF5: |
| return '5'; |
| case 0xF6: |
| return '6'; |
| case 0xF7: |
| return '7'; |
| case 0xF8: |
| return '8'; |
| case 0xF9: |
| return '9'; |
| case 0xC1: |
| return 'A'; |
| case 0xC2: |
| return 'B'; |
| case 0xC3: |
| return 'C'; |
| case 0xC4: |
| return 'D'; |
| case 0xC5: |
| return 'E'; |
| case 0xC6: |
| return 'F'; |
| case 0xC7: |
| return 'G'; |
| case 0xC8: |
| return 'H'; |
| case 0xC9: |
| return 'I'; |
| case 0xD1: |
| return 'J'; |
| case 0xD2: |
| return 'K'; |
| case 0xD3: |
| return 'L'; |
| case 0xD4: |
| return 'M'; |
| case 0xD5: |
| return 'N'; |
| case 0xD6: |
| return 'O'; |
| case 0xD7: |
| return 'P'; |
| case 0xD8: |
| return 'Q'; |
| case 0xD9: |
| return 'R'; |
| case 0xE2: |
| return 'S'; |
| case 0xE3: |
| return 'T'; |
| case 0xE4: |
| return 'U'; |
| case 0xE5: |
| return 'V'; |
| case 0xE6: |
| return 'W'; |
| case 0xE7: |
| return 'X'; |
| case 0xE8: |
| return 'Y'; |
| case 0xE9: |
| return 'Z'; |
| } |
| return ' '; |
| } |
| EXPORT_SYMBOL(e2a); |
| |
| unsigned char* strne2a(unsigned char *dest, const unsigned char *src, size_t n) |
| { |
| int i; |
| |
| n = strnlen(src, n); |
| |
| for (i = 0; i < n; i++) |
| dest[i] = e2a(src[i]); |
| |
| return dest; |
| } |