diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2006-03-21 20:46:08 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-03-22 15:04:25 +1100 |
commit | 584fc6d111c34a9a2512f6c7652dff29232bf70d (patch) | |
tree | 80d67b3c6902eff8309106be6291dd84a14d8ab7 | |
parent | 00611c5cfc8dea0914c65134f62948a484780a30 (diff) | |
download | op-kernel-dev-584fc6d111c34a9a2512f6c7652dff29232bf70d.zip op-kernel-dev-584fc6d111c34a9a2512f6c7652dff29232bf70d.tar.gz |
[PATCH] powerpc: Add strne2a() to convert a string from EBCDIC to ASCII
Add strne2a() which converts a string from EBCDIC to ASCII.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/lib/e2a.c | 10 | ||||
-rw-r--r-- | include/asm-powerpc/system.h | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/powerpc/lib/e2a.c b/arch/powerpc/lib/e2a.c index 4f88f4c..4b72ed8 100644 --- a/arch/powerpc/lib/e2a.c +++ b/arch/powerpc/lib/e2a.c @@ -103,4 +103,14 @@ unsigned char e2a(unsigned char x) } 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; +} diff --git a/include/asm-powerpc/system.h b/include/asm-powerpc/system.h index 41b7a5b..65f5a7b 100644 --- a/include/asm-powerpc/system.h +++ b/include/asm-powerpc/system.h @@ -171,6 +171,8 @@ extern u32 booke_wdt_period; /* EBCDIC -> ASCII conversion for [0-9A-Z] on iSeries */ extern unsigned char e2a(unsigned char); +extern unsigned char* strne2a(unsigned char *dest, + const unsigned char *src, size_t n); struct device_node; extern void note_scsi_host(struct device_node *, void *); |