[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v3 PATCH 18/45] multi-process: support dev id in confi
From: |
Jagannathan Raman |
Subject: |
[Qemu-devel] [RFC v3 PATCH 18/45] multi-process: support dev id in config read/write |
Date: |
Tue, 3 Sep 2019 16:37:44 -0400 |
From: Elena Ufimtseva <address@hidden>
Signed-off-by: Elena Ufimtseva <address@hidden>
Signed-off-by: Jagannathan Raman <address@hidden>
Signed-off-by: John G Johnson <address@hidden>
---
New patch in v3
hw/proxy/qemu-proxy.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/hw/proxy/qemu-proxy.c b/hw/proxy/qemu-proxy.c
index 1021045..789f39a 100644
--- a/hw/proxy/qemu-proxy.c
+++ b/hw/proxy/qemu-proxy.c
@@ -151,12 +151,16 @@ static void set_proxy_sock(PCIDevice *dev, int socket)
}
static int config_op_send(PCIProxyDev *dev, uint32_t addr, uint32_t *val, int
l,
- unsigned int op)
+ char *id, unsigned int op)
{
ProcMsg msg;
struct conf_data_msg conf_data;
int wait;
+ if (!id) {
+ return -EINVAL;
+ }
+
memset(&msg, 0, sizeof(ProcMsg));
conf_data.addr = addr;
conf_data.val = (op == CONF_WRITE) ? *val : 0;
@@ -171,6 +175,8 @@ static int config_op_send(PCIProxyDev *dev, uint32_t addr,
uint32_t *val, int l,
msg.size = sizeof(conf_data);
msg.cmd = op;
msg.bytestream = 1;
+ msg.id = (uint8_t *)g_strdup(dev->dev_id);
+ msg.size_id = strlen(dev->dev_id) + 1;
if (op == CONF_WRITE) {
msg.num_fds = 0;
@@ -188,6 +194,7 @@ static int config_op_send(PCIProxyDev *dev, uint32_t addr,
uint32_t *val, int l,
}
free(msg.data2);
+ free(msg.id);
return 0;
}
@@ -198,7 +205,8 @@ static uint32_t pci_proxy_read_config(PCIDevice *d,
uint32_t addr, int len)
(void)pci_default_read_config(d, addr, len);
- config_op_send(PCI_PROXY_DEV(d), addr, &val, len, CONF_READ);
+ config_op_send(PCI_PROXY_DEV(d), addr, &val, len,
+ PCI_PROXY_DEV(d)->dev_id, CONF_READ);
return val;
}
@@ -208,7 +216,8 @@ static void pci_proxy_write_config(PCIDevice *d, uint32_t
addr, uint32_t val,
{
pci_default_write_config(d, addr, val, l);
- config_op_send(PCI_PROXY_DEV(d), addr, &val, l, CONF_WRITE);
+ config_op_send(PCI_PROXY_DEV(d), addr, &val, l,
+ PCI_PROXY_DEV(d)->dev_id, CONF_WRITE);
}
static void pci_proxy_dev_class_init(ObjectClass *klass, void *data)
--
1.8.3.1
- Re: [Qemu-devel] [RFC v3 PATCH 07/45] multi-process: define proxy-link object, (continued)
- [Qemu-devel] [RFC v3 PATCH 06/45] multi-process: build system for remote device process, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 11/45] multi-process: setup memory manager for remote device, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 12/45] multi-process: remote process initialization, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 13/45] multi-process: introduce proxy object, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 14/45] mutli-process: build remote command line args, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 15/45] multi-process: add support of device id to communication channel, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 16/45] multi-process: PCI BAR read/write handling for proxy & remote endpoints, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 09/45] multi-process: setup PCI host bridge for remote device, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 18/45] multi-process: support dev id in config read/write,
Jagannathan Raman <=
- [Qemu-devel] [RFC v3 PATCH 17/45] multi-process: modify BARs read/write to support dev_id, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 19/45] multi-process: Add LSI device proxy object, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 22/45] multi-process: configure remote side devices, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 20/45] multi-process: Synchronize remote memory, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 21/45] multi-process: create IOHUB object to handle irq, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 25/45] multi-process: remote: use fd for socket from parent process, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 24/45] multi-process: remote: add setup_devices and setup_drive msg processing, Jagannathan Raman, 2019/09/03
- [Qemu-devel] [RFC v3 PATCH 27/45] multi-process: add processing of remote drive and device command line, Jagannathan Raman, 2019/09/03