diff mbox

[1/8,RFC,v3] s390-qemu: cpu hotplug - Define New SCLP Codes

Message ID 1375366359-11553-2-git-send-email-jjherne@us.ibm.com
State New
Headers show

Commit Message

Jason J. Herne Aug. 1, 2013, 2:12 p.m. UTC
From: "Jason J. Herne" <jjherne@us.ibm.com>

Define new SCLP codes to improve code readability.

Signed-off-by: Jason J. Herne <jjherne@us.ibm.com>
---
 hw/s390x/sclp.c         |    2 +-
 include/hw/s390x/sclp.h |    8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

Comments

Alexander Graf Sept. 5, 2013, 11:25 a.m. UTC | #1
On 01.08.2013, at 16:12, Jason J. Herne wrote:

> From: "Jason J. Herne" <jjherne@us.ibm.com>
> 
> Define new SCLP codes to improve code readability.
> 
> Signed-off-by: Jason J. Herne <jjherne@us.ibm.com>
> ---
> hw/s390x/sclp.c         |    2 +-
> include/hw/s390x/sclp.h |    8 ++++++++
> 2 files changed, 9 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) {

switch (code & ~SCLP_CMD_PARM)

Or are the upper bits parm as well? In fact, what about the upper 32 bits?


Alex

>     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..174097d 100644
> --- a/include/hw/s390x/sclp.h
> +++ b/include/hw/s390x/sclp.h
> @@ -26,6 +26,14 @@
> #define SCLP_CMD_WRITE_EVENT_DATA               0x00760005
> #define SCLP_CMD_WRITE_EVENT_MASK               0x00780005
> 
> +/* CPU hotplug SCLP codes */
> +#define SCLP_NO_CMD_PARM                        0xffff00ff
> +#define SCLP_HAS_CPU_INFO                       0x0C00000000000000ULL
> +#define SCLP_CMDW_READ_CPU_INFO                 0x00010001
> +#define SCLP_CMDW_CONFIGURE_CPU                 0x00110001
> +#define SCLP_CMDW_DECONFIGURE_CPU               0x00100001
> +#define SCLP_CMDW_CPU_CMD_PARM                  0xff00
> +
> /* SCLP response codes */
> #define SCLP_RC_NORMAL_READ_COMPLETION          0x0010
> #define SCLP_RC_NORMAL_COMPLETION               0x0020
> -- 
> 1.7.10.4
>
Andreas Färber Sept. 5, 2013, 11:29 a.m. UTC | #2
Am 01.08.2013 16:12, schrieb Jason J. Herne:
> From: "Jason J. Herne" <jjherne@us.ibm.com>
> 
> Define new SCLP codes to improve code readability.
> 
> Signed-off-by: Jason J. Herne <jjherne@us.ibm.com>

"s390-qemu:" is really bad. For one, all QEMU patches are somehow about
QEMU, so that's redundant. For another, "sclp:" would be much more
telling to me which patches to look at than text disappearing at the end
of the subject line in the mail client. :)

Andreas
Christian Borntraeger Sept. 16, 2013, 1:53 p.m. UTC | #3
On 05/09/13 13:25, Alexander Graf wrote:
> 
> On 01.08.2013, at 16:12, Jason J. Herne wrote:
> 
>> From: "Jason J. Herne" <jjherne@us.ibm.com>
>>
>> Define new SCLP codes to improve code readability.
>>
>> Signed-off-by: Jason J. Herne <jjherne@us.ibm.com>
>> ---
>> hw/s390x/sclp.c         |    2 +-
>> include/hw/s390x/sclp.h |    8 ++++++++
>> 2 files changed, 9 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) {
> 
> switch (code & ~SCLP_CMD_PARM)
> 
> Or are the upper bits parm as well? In fact, what about the upper 32 bits?

As of now those are ignored by the sclp. So (code & SCLP_NO_CMD_PARM) seems
better to me.
Jason J. Herne Sept. 16, 2013, 2:29 p.m. UTC | #4
On 09/16/2013 09:53 AM, Christian Borntraeger wrote:
> On 05/09/13 13:25, Alexander Graf wrote:
>>
>> On 01.08.2013, at 16:12, Jason J. Herne wrote:
>>
>>> From: "Jason J. Herne" <jjherne@us.ibm.com>
>>>
>>> Define new SCLP codes to improve code readability.
>>>
>>> Signed-off-by: Jason J. Herne <jjherne@us.ibm.com>
>>> ---
>>> hw/s390x/sclp.c         |    2 +-
>>> include/hw/s390x/sclp.h |    8 ++++++++
>>> 2 files changed, 9 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) {
>>
>> switch (code & ~SCLP_CMD_PARM)
>>
>> Or are the upper bits parm as well? In fact, what about the upper 32 bits?
>
> As of now those are ignored by the sclp. So (code & SCLP_NO_CMD_PARM) seems
> better to me.
>
>
>
>

What if I rename it to SCLP_CMD_CODE_MASK?  This removes the negative 
from the name and keeps the same semantics.
Alexander Graf Sept. 16, 2013, 2:43 p.m. UTC | #5
Am 16.09.2013 um 09:29 schrieb "Jason J. Herne" <jjherne@linux.vnet.ibm.com>:

> On 09/16/2013 09:53 AM, Christian Borntraeger wrote:
>> On 05/09/13 13:25, Alexander Graf wrote:
>>> 
>>> On 01.08.2013, at 16:12, Jason J. Herne wrote:
>>> 
>>>> From: "Jason J. Herne" <jjherne@us.ibm.com>
>>>> 
>>>> Define new SCLP codes to improve code readability.
>>>> 
>>>> Signed-off-by: Jason J. Herne <jjherne@us.ibm.com>
>>>> ---
>>>> hw/s390x/sclp.c         |    2 +-
>>>> include/hw/s390x/sclp.h |    8 ++++++++
>>>> 2 files changed, 9 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) {
>>> 
>>> switch (code & ~SCLP_CMD_PARM)
>>> 
>>> Or are the upper bits parm as well? In fact, what about the upper 32 bits?
>> 
>> As of now those are ignored by the sclp. So (code & SCLP_NO_CMD_PARM) seems
>> better to me.
> 
> What if I rename it to SCLP_CMD_CODE_MASK?  This removes the negative from the name and keeps the same semantics.

Does the mask include payload information as well or only the cmd code?

Alex

> 
> -- 
> -- Jason J. Herne (jjherne@linux.vnet.ibm.com)
>
Jason J. Herne Sept. 16, 2013, 2:59 p.m. UTC | #6
On 09/16/2013 10:43 AM, Alexander Graf wrote:
>
>
> Am 16.09.2013 um 09:29 schrieb "Jason J. Herne" <jjherne@linux.vnet.ibm.com>:
>
>> On 09/16/2013 09:53 AM, Christian Borntraeger wrote:
>>> On 05/09/13 13:25, Alexander Graf wrote:
>>>>
>>>> On 01.08.2013, at 16:12, Jason J. Herne wrote:
>>>>
>>>>> From: "Jason J. Herne" <jjherne@us.ibm.com>
>>>>>
>>>>> Define new SCLP codes to improve code readability.
>>>>>
>>>>> Signed-off-by: Jason J. Herne <jjherne@us.ibm.com>
>>>>> ---
>>>>> hw/s390x/sclp.c         |    2 +-
>>>>> include/hw/s390x/sclp.h |    8 ++++++++
>>>>> 2 files changed, 9 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) {
>>>>
>>>> switch (code & ~SCLP_CMD_PARM)
>>>>
>>>> Or are the upper bits parm as well? In fact, what about the upper 32 bits?
>>>
>>> As of now those are ignored by the sclp. So (code & SCLP_NO_CMD_PARM) seems
>>> better to me.
>>
>> What if I rename it to SCLP_CMD_CODE_MASK?  This removes the negative from the name and keeps the same semantics.
>
> Does the mask include payload information as well or only the cmd code?
>

It contains all elements of the command code and nothing more.

>
>>
>> --
>> -- Jason J. Herne (jjherne@linux.vnet.ibm.com)
>>
>
>
>
diff mbox

Patch

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..174097d 100644
--- a/include/hw/s390x/sclp.h
+++ b/include/hw/s390x/sclp.h
@@ -26,6 +26,14 @@ 
 #define SCLP_CMD_WRITE_EVENT_DATA               0x00760005
 #define SCLP_CMD_WRITE_EVENT_MASK               0x00780005
 
+/* CPU hotplug SCLP codes */
+#define SCLP_NO_CMD_PARM                        0xffff00ff
+#define SCLP_HAS_CPU_INFO                       0x0C00000000000000ULL
+#define SCLP_CMDW_READ_CPU_INFO                 0x00010001
+#define SCLP_CMDW_CONFIGURE_CPU                 0x00110001
+#define SCLP_CMDW_DECONFIGURE_CPU               0x00100001
+#define SCLP_CMDW_CPU_CMD_PARM                  0xff00
+
 /* SCLP response codes */
 #define SCLP_RC_NORMAL_READ_COMPLETION          0x0010
 #define SCLP_RC_NORMAL_COMPLETION               0x0020