From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51534) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZK8oT-0005Hn-5s for qemu-devel@nongnu.org; Tue, 28 Jul 2015 13:37:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZK8oS-00010L-AI for qemu-devel@nongnu.org; Tue, 28 Jul 2015 13:37:13 -0400 Received: from mail-qk0-x231.google.com ([2607:f8b0:400d:c09::231]:36244) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZK8oS-00010E-7I for qemu-devel@nongnu.org; Tue, 28 Jul 2015 13:37:12 -0400 Received: by qkdv3 with SMTP id v3so53889563qkd.3 for ; Tue, 28 Jul 2015 10:37:11 -0700 (PDT) Sender: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Tue, 28 Jul 2015 19:36:40 +0200 Message-Id: <1438105003-29501-7-git-send-email-marcandre.lureau@redhat.com> In-Reply-To: <1438105003-29501-1-git-send-email-marcandre.lureau@redhat.com> References: <1438105003-29501-1-git-send-email-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH v2 6/9] vhost: use variable arguments for vhost_call() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: haifeng.lin@huawei.com, mst@redhat.com, thibaut.collet@6wind.com, jasowang@redhat.com, pbonzini@redhat.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= It is useful to pass extra arguments to the funtions, for various backend needs. Signed-off-by: Marc-André Lureau --- hw/virtio/vhost-backend.c | 4 ++-- hw/virtio/vhost-user.c | 4 ++-- include/hw/virtio/vhost-backend.h | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/hw/virtio/vhost-backend.c b/hw/virtio/vhost-backend.c index 4d68a27..7255089 100644 --- a/hw/virtio/vhost-backend.c +++ b/hw/virtio/vhost-backend.c @@ -14,8 +14,8 @@ #include -static int vhost_kernel_call(struct vhost_dev *dev, unsigned long int request, - void *arg) +static int vhost_kernel_call(struct vhost_dev *dev, + unsigned long int request, void *arg, ...) { int fd = (uintptr_t) dev->opaque; diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index 4993b63..8b6d7e7 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -190,8 +190,8 @@ static int vhost_user_write(struct vhost_dev *dev, VhostUserMsg *msg, 0 : -1; } -static int vhost_user_call(struct vhost_dev *dev, unsigned long int request, - void *arg) +static int vhost_user_call(struct vhost_dev *dev, + unsigned long int request, void *arg, ...) { VhostUserMsg msg; VhostUserRequest msg_request; diff --git a/include/hw/virtio/vhost-backend.h b/include/hw/virtio/vhost-backend.h index e472f29..36fa0f7 100644 --- a/include/hw/virtio/vhost-backend.h +++ b/include/hw/virtio/vhost-backend.h @@ -11,6 +11,8 @@ #ifndef VHOST_BACKEND_H_ #define VHOST_BACKEND_H_ +#include + typedef enum VhostBackendType { VHOST_BACKEND_TYPE_NONE = 0, VHOST_BACKEND_TYPE_KERNEL = 1, @@ -20,8 +22,8 @@ typedef enum VhostBackendType { struct vhost_dev; -typedef int (*vhost_call)(struct vhost_dev *dev, unsigned long int request, - void *arg); +typedef int (*vhost_call)(struct vhost_dev *dev, + unsigned long int request, void *arg, ...); typedef int (*vhost_backend_init)(struct vhost_dev *dev, void *opaque); typedef int (*vhost_backend_cleanup)(struct vhost_dev *dev); -- 2.4.3