^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * S390 version
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Copyright IBM Corp. 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Christian Borntraeger (cborntra@de.ibm.com),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #ifndef _ASM_S390_CPCMD_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define _ASM_S390_CPCMD_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) * the lowlevel function for cpcmd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) int __cpcmd(const char *cmd, char *response, int rlen, int *response_code);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) * cpcmd is the in-kernel interface for issuing CP commands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) * cmd: null-terminated command string, max 240 characters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) * response: response buffer for VM's textual response
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) * rlen: size of the response buffer, cpcmd will not exceed this size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) * but will cap the output, if its too large. Everything that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) * did not fit into the buffer will be silently dropped
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) * response_code: return pointer for VM's error code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) * return value: the size of the response. The caller can check if the buffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) * was large enough by comparing the return value and rlen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) * NOTE: If the response buffer is not in real storage, cpcmd can sleep
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) int cpcmd(const char *cmd, char *response, int rlen, int *response_code);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #endif /* _ASM_S390_CPCMD_H */