1 // SPDX-License-Identifier: GPL-2.0
2 #include <asm/ebcdic.h>
5 /* VM IPL PARM routines */
6 size_t ipl_block_get_ascii_vmparm(char *dest
, size_t size
,
7 const struct ipl_parameter_block
*ipb
)
11 char has_lowercase
= 0;
14 if ((ipb
->ccw
.vm_flags
& IPL_PB0_CCW_VM_FLAG_VP
) &&
15 (ipb
->ccw
.vm_parm_len
> 0)) {
17 len
= min_t(size_t, size
- 1, ipb
->ccw
.vm_parm_len
);
18 memcpy(dest
, ipb
->ccw
.vm_parm
, len
);
19 /* If at least one character is lowercase, we assume mixed
20 * case; otherwise we convert everything to lowercase.
22 for (i
= 0; i
< len
; i
++)
23 if ((dest
[i
] > 0x80 && dest
[i
] < 0x8a) || /* a-i */
24 (dest
[i
] > 0x90 && dest
[i
] < 0x9a) || /* j-r */
25 (dest
[i
] > 0xa1 && dest
[i
] < 0xaa)) { /* s-z */
30 EBC_TOLOWER(dest
, len
);