From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58859) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5ujI-0002D3-K9 for qemu-devel@nongnu.org; Wed, 22 Jan 2014 05:08:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W5ujA-0000Nb-W0 for qemu-devel@nongnu.org; Wed, 22 Jan 2014 05:08:16 -0500 Received: from e06smtp15.uk.ibm.com ([195.75.94.111]:42795) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5ujA-0000NO-N7 for qemu-devel@nongnu.org; Wed, 22 Jan 2014 05:08:08 -0500 Received: from /spool/local by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 22 Jan 2014 10:08:07 -0000 Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id C4D1E1B08076 for ; Wed, 22 Jan 2014 10:07:30 +0000 (GMT) Received: from d06av09.portsmouth.uk.ibm.com (d06av09.portsmouth.uk.ibm.com [9.149.37.250]) by b06cxnps4075.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s0MA7rcf459148 for ; Wed, 22 Jan 2014 10:07:53 GMT Received: from d06av09.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s0MA8431019706 for ; Wed, 22 Jan 2014 03:08:05 -0700 Message-ID: <52DF9884.8070100@de.ibm.com> Date: Wed, 22 Jan 2014 11:08:04 +0100 From: Christian Borntraeger MIME-Version: 1.0 References: <1387227072-21965-1-git-send-email-mjrosato@linux.vnet.ibm.com> <1387227072-21965-5-git-send-email-mjrosato@linux.vnet.ibm.com> In-Reply-To: <1387227072-21965-5-git-send-email-mjrosato@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 4/5] sclp-s390: Define new SCLP codes and structures List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Matthew Rosato , qemu-devel@nongnu.org Cc: gleb@redhat.com, agraf@suse.de, aliguori@amazon.com, cornelia.huck@de.ibm.com, pbonzini@redhat.com, rth@twiddle.net On 16/12/13 21:51, Matthew Rosato wrote: > Define new SCLP codes and structures that will be needed for s390 memory > hotplug. > > Signed-off-by: Matthew Rosato Can you rebase this patch against git://github.com/borntraeger/qemu.git s390-next and send it separately? This patch is pretty much non-controversial and I would apply it to s390-next. You could then base your v2 on that. Christian > --- > hw/s390x/sclp.c | 2 +- > include/hw/s390x/sclp.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 47 insertions(+), 1 deletion(-) > > diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c > index 86d6ae0..cb53d7e 100644 > --- a/hw/s390x/sclp.c > +++ b/hw/s390x/sclp.c > @@ -45,7 +45,7 @@ static void sclp_execute(SCCB *sccb, uint64_t code) > { > S390SCLPDevice *sdev = get_event_facility(); > > - switch (code) { > + switch (code & SCLP_NO_CMD_PARM) { > case SCLP_CMDW_READ_SCP_INFO: > case SCLP_CMDW_READ_SCP_INFO_FORCED: > read_SCP_info(sccb); > diff --git a/include/hw/s390x/sclp.h b/include/hw/s390x/sclp.h > index 231a38a..e80cb23 100644 > --- a/include/hw/s390x/sclp.h > +++ b/include/hw/s390x/sclp.h > @@ -20,18 +20,31 @@ > /* SCLP command codes */ > #define SCLP_CMDW_READ_SCP_INFO 0x00020001 > #define SCLP_CMDW_READ_SCP_INFO_FORCED 0x00120001 > +#define SCLP_READ_STORAGE_ELEMENT_INFO 0x00040001 > +#define SCLP_ATTACH_STORAGE_ELEMENT 0x00080001 > +#define SCLP_ASSIGN_STORAGE 0x000D0001 > +#define SCLP_UNASSIGN_STORAGE 0x000C0001 > #define SCLP_CMD_READ_EVENT_DATA 0x00770005 > #define SCLP_CMD_WRITE_EVENT_DATA 0x00760005 > #define SCLP_CMD_READ_EVENT_DATA 0x00770005 > #define SCLP_CMD_WRITE_EVENT_DATA 0x00760005 > #define SCLP_CMD_WRITE_EVENT_MASK 0x00780005 > > +/* SCLP Memory hotplug codes */ > +#define SCLP_NO_CMD_PARM 0xffff00ff > +#define SCLP_FC_ASSIGN_ATTACH_READ_STOR 0xE00000000000ULL > +#define SCLP_STARTING_SUBINCREMENT_ID 0x10001 > +#define SCLP_INCREMENT_UNIT 0x10000 > +#define MAX_AVAIL_SLOTS 32 > + > /* SCLP response codes */ > #define SCLP_RC_NORMAL_READ_COMPLETION 0x0010 > #define SCLP_RC_NORMAL_COMPLETION 0x0020 > +#define SCLP_RC_SCCB_BOUNDARY_VIOLATION 0x0100 > #define SCLP_RC_INVALID_SCLP_COMMAND 0x01f0 > #define SCLP_RC_CONTAINED_EQUIPMENT_CHECK 0x0340 > #define SCLP_RC_INSUFFICIENT_SCCB_LENGTH 0x0300 > +#define SCLP_RC_STANDBY_READ_COMPLETION 0x0410 > #define SCLP_RC_INVALID_FUNCTION 0x40f0 > #define SCLP_RC_NO_EVENT_BUFFERS_STORED 0x60f0 > #define SCLP_RC_INVALID_SELECTION_MASK 0x70f0 > @@ -75,8 +88,41 @@ typedef struct ReadInfo { > SCCBHeader h; > uint16_t rnmax; > uint8_t rnsize; > + uint8_t _reserved1[16 - 11]; /* 11-15 */ > + uint16_t entries_cpu; /* 16-17 */ > + uint16_t offset_cpu; /* 18-19 */ > + uint8_t _reserved2[24 - 20]; /* 20-23 */ > + uint8_t loadparm[8]; /* 24-31 */ > + uint8_t _reserved3[48 - 32]; /* 32-47 */ > + uint64_t facilities; /* 48-55 */ > + uint8_t _reserved0[100 - 56]; > + uint32_t rnsize2; > + uint64_t rnmax2; > } QEMU_PACKED ReadInfo; > > +typedef struct ReadStorageElementInfo { > + SCCBHeader h; > + uint16_t max_id; > + uint16_t assigned; > + uint16_t standby; > + uint8_t _reserved0[16 - 14]; /* 14-15 */ > + uint32_t entries[0]; > +} QEMU_PACKED ReadStorageElementInfo; > + > +typedef struct AttachStorageElement { > + SCCBHeader h; > + uint8_t _reserved0[10 - 8]; /* 8-9 */ > + uint16_t assigned; > + uint8_t _reserved1[16 - 12]; /* 12-15 */ > + uint32_t entries[0]; > +} QEMU_PACKED AttachStorageElement; > + > +typedef struct AssignStorage { > + SCCBHeader h; > + uint16_t rn; > +} QEMU_PACKED AssignStorage; > + > + > typedef struct SCCB { > SCCBHeader h; > char data[SCCB_DATA_LEN]; >