summaryrefslogtreecommitdiff
path: root/include/asm-s390/cpcmd.h
diff options
context:
space:
mode:
authorChristian Borntraeger <cborntra@de.ibm.com>2005-06-26 01:55:32 +0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-26 03:24:37 +0400
commit6b979de395c7e1b7e59f74a870e1d1911853eccb (patch)
tree82502e9e93c977b0f812d017f5d8d4e12436c6c8 /include/asm-s390/cpcmd.h
parent77fa22450de00d535de2cc8be653983560828000 (diff)
downloadlinux-6b979de395c7e1b7e59f74a870e1d1911853eccb.tar.xz
[PATCH] s390: add vmcp interface
Add interface to issue VM control program commands. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-s390/cpcmd.h')
-rw-r--r--include/asm-s390/cpcmd.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/include/asm-s390/cpcmd.h b/include/asm-s390/cpcmd.h
index 1d33c5da083e..1fcf65be7a23 100644
--- a/include/asm-s390/cpcmd.h
+++ b/include/asm-s390/cpcmd.h
@@ -11,14 +11,28 @@
#define __CPCMD__
/*
+ * the lowlevel function for cpcmd
* the caller of __cpcmd has to ensure that the response buffer is below 2 GB
*/
-extern void __cpcmd(char *cmd, char *response, int rlen);
+extern int __cpcmd(const char *cmd, char *response, int rlen, int *response_code);
#ifndef __s390x__
#define cpcmd __cpcmd
#else
-extern void cpcmd(char *cmd, char *response, int rlen);
+/*
+ * cpcmd is the in-kernel interface for issuing CP commands
+ *
+ * cmd: null-terminated command string, max 240 characters
+ * response: response buffer for VM's textual response
+ * rlen: size of the response buffer, cpcmd will not exceed this size
+ * but will cap the output, if its too large. Everything that
+ * did not fit into the buffer will be silently dropped
+ * response_code: return pointer for VM's error code
+ * return value: the size of the response. The caller can check if the buffer
+ * was large enough by comparing the return value and rlen
+ * NOTE: If the response buffer is not below 2 GB, cpcmd can sleep
+ */
+extern int cpcmd(const char *cmd, char *response, int rlen, int *response_code);
#endif /*__s390x__*/
#endif