| Christian Borntraeger | 6b979de | 2005-06-25 14:55:32 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | * Copyright (C) 2004, 2005 IBM Corporation | 
| Christian Borntraeger | 45af3af | 2006-09-20 15:59:24 +0200 | [diff] [blame] | 3 | * Interface implementation for communication with the z/VM control program | 
| Christian Borntraeger | 6b979de | 2005-06-25 14:55:32 -0700 | [diff] [blame] | 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 |  | 
|  | 22 | struct 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 | }; |