qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] hw/sd/sdcard: Use the available enums
@ 2019-05-05 23:01 Philippe Mathieu-Daudé
  2019-05-05 23:01 ` Philippe Mathieu-Daudé
  2019-05-06  8:55 ` Markus Armbruster
  0 siblings, 2 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-05-05 23:01 UTC (permalink / raw)
  To: qemu-trivial, qemu-devel
  Cc: Philippe Mathieu-Daudé, Philippe Mathieu-Daudé

We already define SDCardModes/SDCardStates as enums. Declare
the mode/state as enums too, this make gdb debugging sessions
friendlier: instead of numbers, the mode/state name is displayed.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/sd/sd.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index aaab15f3868..a66b3d5b45e 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -96,8 +96,8 @@ struct SDState {
     BlockBackend *blk;
     bool spi;
 
-    uint32_t mode;    /* current card mode, one of SDCardModes */
-    int32_t state;    /* current card state, one of SDCardStates */
+    enum SDCardModes mode;
+    enum SDCardStates state;
     uint32_t vhs;
     bool wp_switch;
     unsigned long *wp_groups;
@@ -1640,7 +1640,7 @@ static int cmd_valid_while_locked(SDState *sd, SDRequest *req)
 
 int sd_do_command(SDState *sd, SDRequest *req,
                   uint8_t *response) {
-    int last_state;
+    enum SDCardStates last_state;
     sd_rsp_type_t rtype;
     int rsplen;
 
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH] hw/sd/sdcard: Use the available enums
  2019-05-05 23:01 [Qemu-devel] [PATCH] hw/sd/sdcard: Use the available enums Philippe Mathieu-Daudé
@ 2019-05-05 23:01 ` Philippe Mathieu-Daudé
  2019-05-06  8:55 ` Markus Armbruster
  1 sibling, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-05-05 23:01 UTC (permalink / raw)
  To: qemu-trivial, qemu-devel
  Cc: Philippe Mathieu-Daudé, Philippe Mathieu-Daudé

We already define SDCardModes/SDCardStates as enums. Declare
the mode/state as enums too, this make gdb debugging sessions
friendlier: instead of numbers, the mode/state name is displayed.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/sd/sd.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index aaab15f3868..a66b3d5b45e 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -96,8 +96,8 @@ struct SDState {
     BlockBackend *blk;
     bool spi;
 
-    uint32_t mode;    /* current card mode, one of SDCardModes */
-    int32_t state;    /* current card state, one of SDCardStates */
+    enum SDCardModes mode;
+    enum SDCardStates state;
     uint32_t vhs;
     bool wp_switch;
     unsigned long *wp_groups;
@@ -1640,7 +1640,7 @@ static int cmd_valid_while_locked(SDState *sd, SDRequest *req)
 
 int sd_do_command(SDState *sd, SDRequest *req,
                   uint8_t *response) {
-    int last_state;
+    enum SDCardStates last_state;
     sd_rsp_type_t rtype;
     int rsplen;
 
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/sd/sdcard: Use the available enums
  2019-05-05 23:01 [Qemu-devel] [PATCH] hw/sd/sdcard: Use the available enums Philippe Mathieu-Daudé
  2019-05-05 23:01 ` Philippe Mathieu-Daudé
@ 2019-05-06  8:55 ` Markus Armbruster
  2019-05-06 11:49   ` Philippe Mathieu-Daudé
  2019-05-07 10:25   ` Dr. David Alan Gilbert
  1 sibling, 2 replies; 5+ messages in thread
From: Markus Armbruster @ 2019-05-06  8:55 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: qemu-trivial, Juan Quintela, qemu-devel, David Alan Gilbert,
	Philippe Mathieu-Daudé

Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> We already define SDCardModes/SDCardStates as enums. Declare
> the mode/state as enums too, this make gdb debugging sessions
> friendlier: instead of numbers, the mode/state name is displayed.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/sd/sd.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> index aaab15f3868..a66b3d5b45e 100644
> --- a/hw/sd/sd.c
> +++ b/hw/sd/sd.c
> @@ -96,8 +96,8 @@ struct SDState {
>      BlockBackend *blk;
>      bool spi;
>  
> -    uint32_t mode;    /* current card mode, one of SDCardModes */
> -    int32_t state;    /* current card state, one of SDCardStates */
> +    enum SDCardModes mode;
> +    enum SDCardStates state;
>      uint32_t vhs;
>      bool wp_switch;
>      unsigned long *wp_groups;
> @@ -1640,7 +1640,7 @@ static int cmd_valid_while_locked(SDState *sd, SDRequest *req)
>  
>  int sd_do_command(SDState *sd, SDRequest *req,
>                    uint8_t *response) {
> -    int last_state;
> +    enum SDCardStates last_state;
>      sd_rsp_type_t rtype;
>      int rsplen;

These guys are part of the migration state:

   static const VMStateDescription sd_vmstate = {
       .name = "sd-card",
       .version_id = 1,
       .minimum_version_id = 1,
       .pre_load = sd_vmstate_pre_load,
       .fields = (VMStateField[]) {
           VMSTATE_UINT32(mode, SDState),
           VMSTATE_INT32(state, SDState),
   [...]

Juan, David, are VMSTATE_UINT32() and VMSTATE_INT32() safe to use with
enums?


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/sd/sdcard: Use the available enums
  2019-05-06  8:55 ` Markus Armbruster
@ 2019-05-06 11:49   ` Philippe Mathieu-Daudé
  2019-05-07 10:25   ` Dr. David Alan Gilbert
  1 sibling, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-05-06 11:49 UTC (permalink / raw)
  To: Markus Armbruster
  Cc: qemu-trivial, Juan Quintela, qemu-devel, David Alan Gilbert,
	Philippe Mathieu-Daudé

On 5/6/19 10:55 AM, Markus Armbruster wrote:
> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> 
>> We already define SDCardModes/SDCardStates as enums. Declare
>> the mode/state as enums too, this make gdb debugging sessions
>> friendlier: instead of numbers, the mode/state name is displayed.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> ---
>>  hw/sd/sd.c | 6 +++---
>>  1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
>> index aaab15f3868..a66b3d5b45e 100644
>> --- a/hw/sd/sd.c
>> +++ b/hw/sd/sd.c
>> @@ -96,8 +96,8 @@ struct SDState {
>>      BlockBackend *blk;
>>      bool spi;
>>  
>> -    uint32_t mode;    /* current card mode, one of SDCardModes */
>> -    int32_t state;    /* current card state, one of SDCardStates */
>> +    enum SDCardModes mode;
>> +    enum SDCardStates state;
>>      uint32_t vhs;
>>      bool wp_switch;
>>      unsigned long *wp_groups;
>> @@ -1640,7 +1640,7 @@ static int cmd_valid_while_locked(SDState *sd, SDRequest *req)
>>  
>>  int sd_do_command(SDState *sd, SDRequest *req,
>>                    uint8_t *response) {
>> -    int last_state;
>> +    enum SDCardStates last_state;
>>      sd_rsp_type_t rtype;
>>      int rsplen;
> 
> These guys are part of the migration state:
> 
>    static const VMStateDescription sd_vmstate = {
>        .name = "sd-card",
>        .version_id = 1,
>        .minimum_version_id = 1,
>        .pre_load = sd_vmstate_pre_load,
>        .fields = (VMStateField[]) {
>            VMSTATE_UINT32(mode, SDState),
>            VMSTATE_INT32(state, SDState),
>    [...]

Oh good point, I missed that.

> Juan, David, are VMSTATE_UINT32() and VMSTATE_INT32() safe to use with
> enums?

I'll wait Juan/Dave to enlighten us, else I can use anonymous union to
ease my debugging sessions:

-- >8 --
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
@@ -96,7 +96,10 @@ struct SDState {
     BlockBackend *blk;
     bool spi;

-    uint32_t mode;    /* current card mode, one of SDCardModes */
+    union {
+        uint32_t migratable_mode;
+        enum SDCardModes mode;
+    };
     int32_t state;    /* current card state, one of SDCardStates */
     uint32_t vhs;
     bool wp_switch;
@@ -659,7 +662,7 @@ static const VMStateDescription sd_vmstate = {
     .minimum_version_id = 1,
     .pre_load = sd_vmstate_pre_load,
     .fields = (VMStateField[]) {
-        VMSTATE_UINT32(mode, SDState),
+        VMSTATE_UINT32(migratable_mode, SDState),
         VMSTATE_INT32(state, SDState),
         VMSTATE_UINT8_ARRAY(cid, SDState, 16),
         VMSTATE_UINT8_ARRAY(csd, SDState, 16),
---

Thanks for the review!

Phil.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/sd/sdcard: Use the available enums
  2019-05-06  8:55 ` Markus Armbruster
  2019-05-06 11:49   ` Philippe Mathieu-Daudé
@ 2019-05-07 10:25   ` Dr. David Alan Gilbert
  1 sibling, 0 replies; 5+ messages in thread
From: Dr. David Alan Gilbert @ 2019-05-07 10:25 UTC (permalink / raw)
  To: Markus Armbruster
  Cc: qemu-trivial, Juan Quintela, Philippe Mathieu-Daudé,
	qemu-devel, Philippe Mathieu-Daudé

* Markus Armbruster (armbru@redhat.com) wrote:
> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> 
> > We already define SDCardModes/SDCardStates as enums. Declare
> > the mode/state as enums too, this make gdb debugging sessions
> > friendlier: instead of numbers, the mode/state name is displayed.
> >
> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > ---
> >  hw/sd/sd.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> > index aaab15f3868..a66b3d5b45e 100644
> > --- a/hw/sd/sd.c
> > +++ b/hw/sd/sd.c
> > @@ -96,8 +96,8 @@ struct SDState {
> >      BlockBackend *blk;
> >      bool spi;
> >  
> > -    uint32_t mode;    /* current card mode, one of SDCardModes */
> > -    int32_t state;    /* current card state, one of SDCardStates */
> > +    enum SDCardModes mode;
> > +    enum SDCardStates state;
> >      uint32_t vhs;
> >      bool wp_switch;
> >      unsigned long *wp_groups;
> > @@ -1640,7 +1640,7 @@ static int cmd_valid_while_locked(SDState *sd, SDRequest *req)
> >  
> >  int sd_do_command(SDState *sd, SDRequest *req,
> >                    uint8_t *response) {
> > -    int last_state;
> > +    enum SDCardStates last_state;
> >      sd_rsp_type_t rtype;
> >      int rsplen;
> 
> These guys are part of the migration state:
> 
>    static const VMStateDescription sd_vmstate = {
>        .name = "sd-card",
>        .version_id = 1,
>        .minimum_version_id = 1,
>        .pre_load = sd_vmstate_pre_load,
>        .fields = (VMStateField[]) {
>            VMSTATE_UINT32(mode, SDState),
>            VMSTATE_INT32(state, SDState),
>    [...]
> 
> Juan, David, are VMSTATE_UINT32() and VMSTATE_INT32() safe to use with
> enums?

I think that is compiler dependent, so no.

Dave

--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-05-07 10:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-05 23:01 [Qemu-devel] [PATCH] hw/sd/sdcard: Use the available enums Philippe Mathieu-Daudé
2019-05-05 23:01 ` Philippe Mathieu-Daudé
2019-05-06  8:55 ` Markus Armbruster
2019-05-06 11:49   ` Philippe Mathieu-Daudé
2019-05-07 10:25   ` Dr. David Alan Gilbert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).