2005-06-26 05:55:32 +08:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2004, 2005 IBM Corporation
|
2006-09-20 21:59:24 +08:00
|
|
|
* Interface implementation for communication with the z/VM control program
|
2005-06-26 05:55:32 +08:00
|
|
|
* Version 1.0
|
|
|
|
* Author(s): Christian Borntraeger <cborntra@de.ibm.com>
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* z/VMs CP offers the possibility to issue commands via the diagnose code 8
|
|
|
|
* this driver implements a character device that issues these commands and
|
|
|
|
* returns the answer of CP.
|
|
|
|
*
|
|
|
|
* The idea of this driver is based on cpint from Neale Ferguson
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <asm/semaphore.h>
|
|
|
|
#include <linux/ioctl.h>
|
|
|
|
|
|
|
|
#define VMCP_GETCODE _IOR(0x10, 1, int)
|
|
|
|
#define VMCP_SETBUF _IOW(0x10, 2, int)
|
|
|
|
#define VMCP_GETSIZE _IOR(0x10, 3, int)
|
|
|
|
|
|
|
|
struct vmcp_session {
|
|
|
|
unsigned int bufsize;
|
|
|
|
char *response;
|
|
|
|
int resp_size;
|
|
|
|
int resp_code;
|
|
|
|
/* As we use copy_from/to_user, which might *
|
|
|
|
* sleep and cannot use a spinlock */
|
|
|
|
struct semaphore mutex;
|
|
|
|
};
|