All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Liran Alon <liran.alon@oracle.com>
Cc: ehabkost@redhat.com, qemu-devel@nongnu.org,
	Nikita Leshenko <nikita.leshchenko@oracle.com>,
	pbonzini@redhat.com, rth@twiddle.net
Subject: Re: [PATCH 06/14] hw/i386/vmport: Define enum for all commands
Date: Tue, 10 Mar 2020 05:28:26 -0400	[thread overview]
Message-ID: <20200310052327-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20200309235411.76587-7-liran.alon@oracle.com>

On Tue, Mar 10, 2020 at 01:54:03AM +0200, Liran Alon wrote:
> No functional change.
> 
> Defining an enum for all VMPort commands have the following advantages:
> * It gets rid of the error-prone requirement to update VMPORT_ENTRIES
> when new VMPort commands are added to QEMU.
> * It makes it clear to know by looking at one place at the source, what
> are all the VMPort commands supported by QEMU.
> 
> Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
> Signed-off-by: Liran Alon <liran.alon@oracle.com>
> ---
>  hw/i386/vmmouse.c    | 18 ++++++------------
>  hw/i386/vmport.c     | 11 ++---------
>  include/hw/i386/pc.h | 11 ++++++++++-
>  3 files changed, 18 insertions(+), 22 deletions(-)
> 
> diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c
> index e8e62bd96b8c..a61042fc0c5e 100644
> --- a/hw/i386/vmmouse.c
> +++ b/hw/i386/vmmouse.c
> @@ -33,12 +33,6 @@
>  /* debug only vmmouse */
>  //#define DEBUG_VMMOUSE
>  
> -/* VMMouse Commands */
> -#define VMMOUSE_GETVERSION	10
> -#define VMMOUSE_DATA		39
> -#define VMMOUSE_STATUS		40
> -#define VMMOUSE_COMMAND		41
> -
>  #define VMMOUSE_READ_ID			0x45414552
>  #define VMMOUSE_DISABLE			0x000000f5
>  #define VMMOUSE_REQUEST_RELATIVE	0x4c455252
> @@ -196,10 +190,10 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr)
>      command = data[2] & 0xFFFF;
>  
>      switch (command) {
> -    case VMMOUSE_STATUS:
> +    case VMPORT_CMD_VMMOUSE_STATUS:
>          data[0] = vmmouse_get_status(s);
>          break;
> -    case VMMOUSE_COMMAND:
> +    case VMPORT_CMD_VMMOUSE_COMMAND:
>          switch (data[1]) {
>          case VMMOUSE_DISABLE:
>              vmmouse_disable(s);
> @@ -218,7 +212,7 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr)
>              break;
>          }
>          break;
> -    case VMMOUSE_DATA:
> +    case VMPORT_CMD_VMMOUSE_DATA:
>          vmmouse_data(s, data, data[1]);
>          break;
>      default:
> @@ -275,9 +269,9 @@ static void vmmouse_realizefn(DeviceState *dev, Error **errp)
>          return;
>      }
>  
> -    vmport_register(VMMOUSE_STATUS, vmmouse_ioport_read, s);
> -    vmport_register(VMMOUSE_COMMAND, vmmouse_ioport_read, s);
> -    vmport_register(VMMOUSE_DATA, vmmouse_ioport_read, s);
> +    vmport_register(VMPORT_CMD_VMMOUSE_STATUS, vmmouse_ioport_read, s);
> +    vmport_register(VMPORT_CMD_VMMOUSE_COMMAND, vmmouse_ioport_read, s);
> +    vmport_register(VMPORT_CMD_VMMOUSE_DATA, vmmouse_ioport_read, s);
>  }
>  
>  static Property vmmouse_properties[] = {
> diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c
> index c03f57f2f636..2ae5afc42b50 100644
> --- a/hw/i386/vmport.c
> +++ b/hw/i386/vmport.c
> @@ -30,10 +30,6 @@
>  #include "qemu/log.h"
>  #include "trace.h"
>  
> -#define VMPORT_CMD_GETVERSION 0x0a
> -#define VMPORT_CMD_GETRAMSIZE 0x14
> -
> -#define VMPORT_ENTRIES 0x2c
>  #define VMPORT_MAGIC   0x564D5868
>  
>  typedef enum {
> @@ -60,12 +56,9 @@ typedef struct VMPortState {
>  
>  static VMPortState *port_state;
>  
> -void vmport_register(unsigned char command, VMPortReadFunc *func, void *opaque)
> +void vmport_register(VMPortCommand command, VMPortReadFunc *func, void *opaque)
>  {
> -    if (command >= VMPORT_ENTRIES) {
> -        return;
> -    }
> -
> +    assert(command < VMPORT_ENTRIES);
>      trace_vmport_register(command, func, opaque);
>      port_state->func[command] = func;
>      port_state->opaque[command] = opaque;
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index d5ac76d54e1f..7f15a01137b1 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -138,12 +138,21 @@ GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled);
>  #define TYPE_VMPORT "vmport"
>  typedef uint32_t (VMPortReadFunc)(void *opaque, uint32_t address);
>  
> +typedef enum {
> +    VMPORT_CMD_GETVERSION       = 10,
> +    VMPORT_CMD_GETRAMSIZE       = 20,
> +    VMPORT_CMD_VMMOUSE_DATA     = 39,
> +    VMPORT_CMD_VMMOUSE_STATUS   = 40,
> +    VMPORT_CMD_VMMOUSE_COMMAND  = 41,
> +    VMPORT_ENTRIES
> +} VMPortCommand;
> +

Please don't, let's leave pc.h alone. If you must add a new header for
vmport/vmmouse and put this stuff there.

>  static inline void vmport_init(ISABus *bus)
>  {
>      isa_create_simple(bus, TYPE_VMPORT);
>  }
>  
> -void vmport_register(unsigned char command, VMPortReadFunc *func, void *opaque);
> +void vmport_register(VMPortCommand command, VMPortReadFunc *func, void *opaque);
>  void vmmouse_get_data(uint32_t *data);
>  void vmmouse_set_data(const uint32_t *data);
>  
> -- 
> 2.20.1



  reply	other threads:[~2020-03-10  9:33 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-09 23:53 [PATCH 00/14]: hw/i386/vmport: Bug fixes and improvements Liran Alon
2020-03-09 23:53 ` [PATCH 01/14] hw/i386/vmport: Propagate IOPort read to vCPU EAX register Liran Alon
2020-03-09 23:53 ` [PATCH 02/14] hw/i386/vmport: Set EAX to -1 on failed and unsupported commands Liran Alon
2020-03-09 23:54 ` [PATCH 03/14] hw/i386/vmport: Add device properties Liran Alon
2020-03-09 23:54 ` [PATCH 04/14] hw/i386/vmport: Introduce vmx-version property Liran Alon
2020-03-10  9:32   ` Michael S. Tsirkin
2020-03-10 11:05     ` Liran Alon
2020-03-10 11:18       ` Michael S. Tsirkin
2020-03-10 11:28         ` Liran Alon
2020-03-10 11:44           ` Michael S. Tsirkin
2020-03-10 11:53             ` Liran Alon
2020-03-09 23:54 ` [PATCH 05/14] hw/i386/vmport: Report VMX type in CMD_GETVERSION Liran Alon
2020-03-10  9:20   ` Michael S. Tsirkin
2020-03-10 11:18     ` Liran Alon
2020-03-10 11:23       ` Michael S. Tsirkin
2020-03-10 11:40         ` Liran Alon
2020-03-10 11:47           ` Michael S. Tsirkin
2020-03-10 12:14   ` Michael S. Tsirkin
2020-03-10 12:25     ` Liran Alon
2020-03-10 12:35       ` Michael S. Tsirkin
2020-03-10 12:43         ` Liran Alon
2020-03-10 12:53           ` Michael S. Tsirkin
2020-03-10 13:35             ` Liran Alon
2020-03-10 14:08               ` Michael S. Tsirkin
2020-03-10 14:46                 ` Liran Alon
2020-03-10 15:10                   ` Michael S. Tsirkin
2020-03-10 16:39                     ` Liran Alon
2020-03-10 17:36                       ` Michael S. Tsirkin
2020-03-10 17:58                         ` Liran Alon
2020-03-10 21:16                   ` Michael S. Tsirkin
2020-03-10 21:34                     ` Liran Alon
2020-03-10 21:49                       ` Michael S. Tsirkin
2020-03-10 21:59                         ` Liran Alon
2020-03-10 22:04                           ` Michael S. Tsirkin
2020-03-09 23:54 ` [PATCH 06/14] hw/i386/vmport: Define enum for all commands Liran Alon
2020-03-10  9:28   ` Michael S. Tsirkin [this message]
2020-03-10 11:16     ` Liran Alon
2020-03-10 11:23       ` Michael S. Tsirkin
2020-03-10 11:37         ` Liran Alon
2020-03-10 11:46           ` Michael S. Tsirkin
2020-03-10 11:54             ` Liran Alon
2020-03-09 23:54 ` [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID Liran Alon
2020-03-10  9:22   ` Michael S. Tsirkin
2020-03-10 11:44     ` Liran Alon
2020-03-10 12:01       ` Michael S. Tsirkin
2020-03-10 12:37         ` Liran Alon
2020-03-10 13:01           ` Michael S. Tsirkin
2020-03-10  9:34   ` Michael S. Tsirkin
2020-03-10 11:13     ` Liran Alon
2020-03-10 11:22       ` Michael S. Tsirkin
2020-03-10 11:35         ` Liran Alon
2020-03-10 14:24         ` Liran Alon
2020-03-10 14:39           ` Michael S. Tsirkin
2020-03-10 14:56             ` Liran Alon
2020-03-09 23:54 ` [PATCH 08/14] hw/i386/vmport: Add support for CMD_GETTIME Liran Alon
2020-03-09 23:54 ` [PATCH 09/14] hw/i386/vmport: Add support for CMD_GETTIMEFULL Liran Alon
2020-03-09 23:54 ` [PATCH 10/14] hw/i386/vmport: Add support for CMD_GET_VCPU_INFO Liran Alon
2020-03-09 23:54 ` [PATCH 11/14] hw/i386/vmport: Allow x2apic without IR Liran Alon
2020-03-09 23:54 ` [PATCH 12/14] i386/cpu: Store LAPIC bus frequency in CPU structure Liran Alon
2020-03-10  9:29   ` Michael S. Tsirkin
2020-03-10 10:53     ` Liran Alon
2020-03-10 12:27       ` Michael S. Tsirkin
2020-03-10 12:29         ` Liran Alon
2020-03-09 23:54 ` [PATCH 13/14] hw/i386/vmport: Add support for CMD_GETHZ Liran Alon
2020-03-09 23:54 ` [PATCH 14/14] hw/i386/vmport: Assert vmport initialized before registering commands Liran Alon
2020-03-10  9:30   ` Michael S. Tsirkin
2020-03-10 10:57     ` Liran Alon
2020-03-10  0:13 ` [PATCH 00/14]: hw/i386/vmport: Bug fixes and improvements no-reply
2020-03-10  0:16   ` Liran Alon
2020-03-10  0:53 ` no-reply
2020-03-10  0:54 ` no-reply
2020-03-10  0:57   ` Liran Alon
2020-03-10  1:10 ` no-reply
2020-03-10  1:49 ` no-reply
2020-03-10  1:50 ` no-reply
2020-03-10  2:04 ` no-reply
2020-03-10  2:22 ` no-reply
2020-03-10  2:56 ` no-reply
2020-03-10  2:56 ` no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200310052327-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=liran.alon@oracle.com \
    --cc=nikita.leshchenko@oracle.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.