blob: 1e29b04183820cda1c576764478a5b42ff4dd1d6 [file] [log] [blame]
Christian Borntraeger6b979de2005-06-25 14:55:32 -07001/*
Heiko Carstensa53c8fa2012-07-20 11:15:04 +02002 * Copyright IBM Corp. 2004, 2005
Christian Borntraeger45af3af2006-09-20 15:59:24 +02003 * Interface implementation for communication with the z/VM control program
Christian Borntraeger6b979de2005-06-25 14:55:32 -07004 * 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
Christian Borntraeger6b979de2005-06-25 14:55:32 -070015#include <linux/ioctl.h>
Christian Borntraegerd9d119f2007-07-17 13:36:05 +020016#include <linux/mutex.h>
Christian Borntraeger6b979de2005-06-25 14:55:32 -070017
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 */
Christian Borntraegerd9d119f2007-07-17 13:36:05 +020029 struct mutex mutex;
Christian Borntraeger6b979de2005-06-25 14:55:32 -070030};