mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
This patch prevents code duplication in vmcp related programs. Some applications such as vmur, vmcp, and lsqeth use z/VM CP commands to query information. Each program uses its own defines and code. Supply a library and common header file to use common code. Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com> Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Reviewed-by: Jan Höppner <hoeppner@linux.vnet.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
/*
|
|
* vmcp - z/VM CP command library
|
|
*
|
|
* Copyright IBM Corp. 2005, 2018
|
|
*
|
|
* s390-tools is free software; you can redistribute it and/or modify
|
|
* it under the terms of the MIT license. See LICENSE for details.
|
|
*/
|
|
|
|
#ifndef LIB_VMCP_H
|
|
#define LIB_VMCP_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define VMCP_DEVICE_NODE "/dev/vmcp" /* VMCP device name */
|
|
#define VMCP_DEFAULT_BUFSZ 0x4000 /* VMCP default buffer size */
|
|
|
|
/*
|
|
* Error codes returned by vmcp() function. This enables the caller
|
|
* to emit a detailed error message on the type of failure.
|
|
*/
|
|
#define VMCP_SUCCESS 0 /* VMCP operation completed successfully */
|
|
#define VMCP_ERR_OPEN (-1) /* Error Open of VMCP device */
|
|
#define VMCP_ERR_SETBUF (-2) /* Error VMCP_SETBUF ioctl */
|
|
#define VMCP_ERR_READ (-3) /* Error VMCP read system call */
|
|
#define VMCP_ERR_GETCODE (-4) /* Error VMCP_GETCODE ioctl */
|
|
#define VMCP_ERR_GETSIZE (-5) /* Error VMCP_GETSIZE ioctl */
|
|
#define VMCP_ERR_TOOSMALL (-6) /* Error VMCP buffer too small for
|
|
* response
|
|
*/
|
|
#define VMCP_ERR_WRITE (-7) /* Error VMCP write system call */
|
|
|
|
struct vmcp_parm {
|
|
const char *cpcmd;
|
|
unsigned int buffer_size;
|
|
bool do_upper;
|
|
int cprc;
|
|
char *response;
|
|
unsigned int response_size;
|
|
};
|
|
|
|
int vmcp(struct vmcp_parm *cp);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|