OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-s390x/] [ebcdic.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *  include/asm-s390/ebcdic.h
3
 *    EBCDIC -> ASCII, ASCII -> EBCDIC conversion routines.
4
 *
5
 *  S390 version
6
 *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
7
 *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
8
 */
9
 
10
#ifndef _EBCDIC_H
11
#define _EBCDIC_H
12
 
13
#ifndef _S390_TYPES_H
14
#include <types.h>
15
#endif
16
 
17
extern __u8 _ascebc_500[];   /* ASCII -> EBCDIC 500 conversion table */
18
extern __u8 _ebcasc_500[];   /* EBCDIC 500 -> ASCII conversion table */
19
extern __u8 _ascebc[];   /* ASCII -> EBCDIC conversion table */
20
extern __u8 _ebcasc[];   /* EBCDIC -> ASCII conversion table */
21
extern __u8 _ebc_tolower[]; /* EBCDIC -> lowercase */
22
extern __u8 _ebc_toupper[]; /* EBCDIC -> uppercase */
23
 
24
extern __inline__ void
25
codepage_convert(const __u8 *codepage, volatile __u8 * addr, unsigned long nr)
26
{
27
        if (nr-- <= 0)
28
                return;
29
        __asm__ __volatile__(
30
                "   bras  1,1f\n"
31
                "   tr    0(1,%0),0(%2)\n"
32
                "0: tr    0(256,%0),0(%2)\n"
33
                "   la    %0,256(%0)\n"
34
                "1: ahi   %1,-256\n"
35
                "   jnm   0b\n"
36
                "   ex    %1,0(1)"
37
                : "+&a" (addr), "+&a" (nr)
38
                : "a" (codepage) : "cc", "memory", "1" );
39
}
40
 
41
#define ASCEBC(addr,nr) codepage_convert(_ascebc, addr, nr)
42
#define EBCASC(addr,nr) codepage_convert(_ebcasc, addr, nr)
43
#define ASCEBC_500(addr,nr) codepage_convert(_ascebc_500, addr, nr)
44
#define EBCASC_500(addr,nr) codepage_convert(_ebcasc_500, addr, nr)
45
#define EBC_TOLOWER(addr,nr) codepage_convert(_ebc_tolower, addr, nr)
46
#define EBC_TOUPPER(addr,nr) codepage_convert(_ebc_toupper, addr, nr)
47
 
48
#endif
49
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.