1/*
2 * Copyright (C) 2004, 2005 IBM Corporation
3 * Interface implementation for communication with the z/VM control program
4 * Version 1.0
5 * Author(s): Christian Borntraeger <cborntra@de.ibm.com>
6 *
7 *
8 * z/VMs CP offers the possibility to issue commands via the diagnose code 8
9 * this driver implements a character device that issues these commands and
10 * returns the answer of CP.
11 *
12 * The idea of this driver is based on cpint from Neale Ferguson
13 */
14
15#include <asm/semaphore.h>
16#include <linux/ioctl.h>
17
18#define VMCP_GETCODE _IOR(0x10, 1, int)
19#define VMCP_SETBUF _IOW(0x10, 2, int)
20#define VMCP_GETSIZE _IOR(0x10, 3, int)
21
22struct vmcp_session {
23	unsigned int bufsize;
24	char *response;
25	int resp_size;
26	int resp_code;
27	/* As we use copy_from/to_user, which might     *
28	 * sleep and cannot use a spinlock              */
29	struct semaphore mutex;
30};
31