-Wshadow=local patches patches for 2023-10-06
-----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmUf72kSHGFybWJydUBy ZWRoYXQuY29tAAoJEDhwtADrkYZTDU4P/3R9y5D5d3cj4uI+eaM22+Da0MFUL2gq bFL192gYj1cmnNqxp+d6ur7FbSlP2AuERHb50Off7jJzdNee+tEeRUPekY+HhKfT 5Aj6r9M2jV3/sNXqzns7x9Yj2B8xaJlclKPUAaVAxIuhVradWqJiPSkc26sKPB7l eyqjVvr9+GTQYPSh+YVbYDAUYU9rEL6FiWLPkKm7Kt3/xqp5pTVbUSQbgKQczGWL /JFILJc5pjISzYPyVxDPSNJY9q4k37JtcJmsO94G9O0GEe5vE72I85OQwI3Fl824 1fc2bfkGB6cg1QcJAluOgjuMUe8Wqaw6tnnHgipr1mwFOizrQ9wQW2xRI9RRJfYa bZmVWIw22P691pgTnFIHWKV6/A2xyq+j00VojQhLyMX9CPPCbIm9hKCZXz6lPGDt xPX2//q866anFCCyQmimMSeJ4E1GgBTnWgLZMYJ+S3DL/VkW2FGZjiQMyOsRplDm O6+m6GOiF3wW51uqphaRHwF+PxxNE4Dv+61pYEeKdQELSCAmYrN574BDPehVTcfa luvSLZEl+qvUbkbw4ysrtiCX2YzVI4COxSscjxCXbku3wRbGSkHBeDadb3p17kuQ 7FZILaFJo1wXHAine4/f6aNeV/GZihMqJ1cok6SDJh2E1PycF9NTdiKMb/6Zvvf+ KOVyBhY4NXlj =uE1Y -----END PGP SIGNATURE----- Merge tag 'pull-shadow-2023-10-06' of https://repo.or.cz/qemu/armbru into staging -Wshadow=local patches patches for 2023-10-06 # -----BEGIN PGP SIGNATURE----- # # iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmUf72kSHGFybWJydUBy # ZWRoYXQuY29tAAoJEDhwtADrkYZTDU4P/3R9y5D5d3cj4uI+eaM22+Da0MFUL2gq # bFL192gYj1cmnNqxp+d6ur7FbSlP2AuERHb50Off7jJzdNee+tEeRUPekY+HhKfT # 5Aj6r9M2jV3/sNXqzns7x9Yj2B8xaJlclKPUAaVAxIuhVradWqJiPSkc26sKPB7l # eyqjVvr9+GTQYPSh+YVbYDAUYU9rEL6FiWLPkKm7Kt3/xqp5pTVbUSQbgKQczGWL # /JFILJc5pjISzYPyVxDPSNJY9q4k37JtcJmsO94G9O0GEe5vE72I85OQwI3Fl824 # 1fc2bfkGB6cg1QcJAluOgjuMUe8Wqaw6tnnHgipr1mwFOizrQ9wQW2xRI9RRJfYa # bZmVWIw22P691pgTnFIHWKV6/A2xyq+j00VojQhLyMX9CPPCbIm9hKCZXz6lPGDt # xPX2//q866anFCCyQmimMSeJ4E1GgBTnWgLZMYJ+S3DL/VkW2FGZjiQMyOsRplDm # O6+m6GOiF3wW51uqphaRHwF+PxxNE4Dv+61pYEeKdQELSCAmYrN574BDPehVTcfa # luvSLZEl+qvUbkbw4ysrtiCX2YzVI4COxSscjxCXbku3wRbGSkHBeDadb3p17kuQ # 7FZILaFJo1wXHAine4/f6aNeV/GZihMqJ1cok6SDJh2E1PycF9NTdiKMb/6Zvvf+ # KOVyBhY4NXlj # =uE1Y # -----END PGP SIGNATURE----- # gpg: Signature made Fri 06 Oct 2023 07:28:41 EDT # gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653 # gpg: issuer "armbru@redhat.com" # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * tag 'pull-shadow-2023-10-06' of https://repo.or.cz/qemu/armbru: (32 commits) linux-user/syscall.c: clean up local variable shadowing in xattr syscalls linux-user/syscall.c: clean up local variable shadowing in TARGET_NR_getcpu linux-user/syscall.c: clean up local variable shadowing in do_ioctl_dm() linux-user/mmap.c: clean up local variable shadowing linux-user/flatload: clean up local variable shadowing hw/usb: Silence compiler warnings in USB code when compiling with -Wshadow target/ppc: Clean up local variable shadowing in kvm_arch_*_registers() trace/control: Clean up global variable shadowing sysemu/tpm: Clean up global variable shadowing softmmu/vl: Clean up global variable shadowing semihosting/arm-compat: Clean up local variable shadowing util/guest-random: Clean up global variable shadowing util/cutils: Clean up global variable shadowing in get_relocated_path() ui/cocoa: Clean up global variable shadowing semihosting: Clean up global variable shadowing qom/object_interfaces: Clean up global variable shadowing qemu-io: Clean up global variable shadowing qemu-img: Clean up global variable shadowing plugins/loader: Clean up global variable shadowing os-posix: Clean up global variable shadowing ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
17a319b175
@ -549,7 +549,6 @@ static int oss_init_out(HWVoiceOut *hw, struct audsettings *as,
|
||||
hw->size_emul);
|
||||
hw->buf_emul = NULL;
|
||||
} else {
|
||||
int err;
|
||||
int trig = 0;
|
||||
if (ioctl (fd, SNDCTL_DSP_SETTRIGGER, &trig) < 0) {
|
||||
oss_logerr (errno, "SNDCTL_DSP_SETTRIGGER 0 failed\n");
|
||||
|
@ -1872,20 +1872,20 @@ static void dump_init(DumpState *s, int fd, bool has_format,
|
||||
if (vmci) {
|
||||
uint64_t addr, note_head_size, name_size, desc_size;
|
||||
uint32_t size;
|
||||
uint16_t format;
|
||||
uint16_t guest_format;
|
||||
|
||||
note_head_size = dump_is_64bit(s) ?
|
||||
sizeof(Elf64_Nhdr) : sizeof(Elf32_Nhdr);
|
||||
|
||||
format = le16_to_cpu(vmci->vmcoreinfo.guest_format);
|
||||
guest_format = le16_to_cpu(vmci->vmcoreinfo.guest_format);
|
||||
size = le32_to_cpu(vmci->vmcoreinfo.size);
|
||||
addr = le64_to_cpu(vmci->vmcoreinfo.paddr);
|
||||
if (!vmci->has_vmcoreinfo) {
|
||||
warn_report("guest note is not present");
|
||||
} else if (size < note_head_size || size > MAX_GUEST_NOTE_SIZE) {
|
||||
warn_report("guest note size is invalid: %" PRIu32, size);
|
||||
} else if (format != FW_CFG_VMCOREINFO_FORMAT_ELF) {
|
||||
warn_report("guest note format is unsupported: %" PRIu16, format);
|
||||
} else if (guest_format != FW_CFG_VMCOREINFO_FORMAT_ELF) {
|
||||
warn_report("guest note format is unsupported: %" PRIu16, guest_format);
|
||||
} else {
|
||||
s->guest_note = g_malloc(size + 1); /* +1 for adding \0 */
|
||||
cpu_physical_memory_read(addr, s->guest_note, size);
|
||||
|
@ -83,7 +83,7 @@ void show_valid_soundhw(void)
|
||||
static struct soundhw *selected = NULL;
|
||||
static const char *audiodev_id;
|
||||
|
||||
void select_soundhw(const char *optarg, const char *audiodev)
|
||||
void select_soundhw(const char *name, const char *audiodev)
|
||||
{
|
||||
struct soundhw *c;
|
||||
|
||||
@ -92,7 +92,7 @@ void select_soundhw(const char *optarg, const char *audiodev)
|
||||
}
|
||||
|
||||
for (c = soundhw; c->name; ++c) {
|
||||
if (g_str_equal(c->name, optarg)) {
|
||||
if (g_str_equal(c->name, name)) {
|
||||
selected = c;
|
||||
audiodev_id = audiodev;
|
||||
break;
|
||||
@ -100,7 +100,7 @@ void select_soundhw(const char *optarg, const char *audiodev)
|
||||
}
|
||||
|
||||
if (!c->name) {
|
||||
error_report("Unknown sound card name `%s'", optarg);
|
||||
error_report("Unknown sound card name `%s'", name);
|
||||
show_valid_soundhw();
|
||||
exit(1);
|
||||
}
|
||||
|
@ -283,13 +283,13 @@ static void memdev_reg_init_common(CXLDeviceState *cxl_dstate) { }
|
||||
|
||||
void cxl_device_register_init_common(CXLDeviceState *cxl_dstate)
|
||||
{
|
||||
uint64_t *cap_hdrs = cxl_dstate->caps_reg_state64;
|
||||
uint64_t *cap_h = cxl_dstate->caps_reg_state64;
|
||||
const int cap_count = 3;
|
||||
|
||||
/* CXL Device Capabilities Array Register */
|
||||
ARRAY_FIELD_DP64(cap_hdrs, CXL_DEV_CAP_ARRAY, CAP_ID, 0);
|
||||
ARRAY_FIELD_DP64(cap_hdrs, CXL_DEV_CAP_ARRAY, CAP_VERSION, 1);
|
||||
ARRAY_FIELD_DP64(cap_hdrs, CXL_DEV_CAP_ARRAY, CAP_COUNT, cap_count);
|
||||
ARRAY_FIELD_DP64(cap_h, CXL_DEV_CAP_ARRAY, CAP_ID, 0);
|
||||
ARRAY_FIELD_DP64(cap_h, CXL_DEV_CAP_ARRAY, CAP_VERSION, 1);
|
||||
ARRAY_FIELD_DP64(cap_h, CXL_DEV_CAP_ARRAY, CAP_COUNT, cap_count);
|
||||
|
||||
cxl_device_cap_init(cxl_dstate, DEVICE_STATUS, 1, 2);
|
||||
device_reg_init_common(cxl_dstate);
|
||||
|
@ -55,8 +55,8 @@ static void acpi_dsdt_add_virtio(Aml *scope,
|
||||
|
||||
bus = sysbus_get_default();
|
||||
QTAILQ_FOREACH(kid, &bus->children, sibling) {
|
||||
DeviceState *dev = kid->child;
|
||||
Object *obj = object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_MMIO);
|
||||
Object *obj = object_dynamic_cast(OBJECT(kid->child),
|
||||
TYPE_VIRTIO_MMIO);
|
||||
|
||||
if (obj) {
|
||||
VirtIOMMIOProxy *mmio = VIRTIO_MMIO(obj);
|
||||
|
@ -1049,7 +1049,6 @@ void pc_memory_init(PCMachineState *pcms,
|
||||
|
||||
if (machine->device_memory) {
|
||||
uint64_t *val = g_malloc(sizeof(*val));
|
||||
PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
|
||||
uint64_t res_mem_end = machine->device_memory->base;
|
||||
|
||||
if (!pcmc->broken_reserved_end) {
|
||||
|
@ -365,8 +365,6 @@ void x86_cpu_pre_plug(HotplugHandler *hotplug_dev,
|
||||
|
||||
cpu_slot = x86_find_cpu_slot(MACHINE(x86ms), cpu->apic_id, &idx);
|
||||
if (!cpu_slot) {
|
||||
MachineState *ms = MACHINE(x86ms);
|
||||
|
||||
x86_topo_ids_from_apicid(cpu->apic_id, &topo_info, &topo_ids);
|
||||
error_setg(errp,
|
||||
"Invalid CPU [socket: %u, die: %u, core: %u, thread: %u] with"
|
||||
|
@ -1622,9 +1622,7 @@ void ahci_uninit(AHCIState *s)
|
||||
AHCIDevice *ad = &s->dev[i];
|
||||
|
||||
for (j = 0; j < 2; j++) {
|
||||
IDEState *s = &ad->port.ifs[j];
|
||||
|
||||
ide_exit(s);
|
||||
ide_exit(&ad->port.ifs[j]);
|
||||
}
|
||||
object_unparent(OBJECT(&ad->port));
|
||||
}
|
||||
|
@ -662,7 +662,7 @@ static void loongarch_irq_init(LoongArchMachineState *lams)
|
||||
sysbus_mmio_get_region(d, 2));
|
||||
|
||||
/* Connect pch_pic irqs to extioi */
|
||||
for (int i = 0; i < num; i++) {
|
||||
for (i = 0; i < num; i++) {
|
||||
qdev_connect_gpio_out(DEVICE(d), i, qdev_get_gpio_in(extioi, i));
|
||||
}
|
||||
|
||||
|
@ -313,8 +313,8 @@ fail:
|
||||
/* Queue might not be ready for start */
|
||||
continue;
|
||||
}
|
||||
int r = vhost_net_set_backend(&net->dev, &file);
|
||||
assert(r >= 0);
|
||||
int ret = vhost_net_set_backend(&net->dev, &file);
|
||||
assert(ret >= 0);
|
||||
}
|
||||
}
|
||||
if (net->nc->info->poll) {
|
||||
@ -629,8 +629,8 @@ err_start:
|
||||
if (net->nc->info->type == NET_CLIENT_DRIVER_TAP) {
|
||||
file.fd = VHOST_FILE_UNBIND;
|
||||
file.index = idx;
|
||||
int r = vhost_net_set_backend(&net->dev, &file);
|
||||
assert(r >= 0);
|
||||
int ret = vhost_net_set_backend(&net->dev, &file);
|
||||
assert(ret >= 0);
|
||||
}
|
||||
|
||||
vhost_dev_stop(&net->dev, vdev, false);
|
||||
|
@ -227,7 +227,7 @@ int usb_desc_endpoint(const USBDescEndpoint *ep, int flags,
|
||||
}
|
||||
|
||||
if (superlen) {
|
||||
USBDescriptor *d = (void *)(dest + bLength);
|
||||
d = (void *)(dest + bLength);
|
||||
|
||||
d->bLength = 0x06;
|
||||
d->bDescriptorType = USB_DT_ENDPOINT_COMPANION;
|
||||
|
@ -402,7 +402,7 @@ static void usb_hub_handle_control(USBDevice *dev, USBPacket *p,
|
||||
{
|
||||
unsigned int n = index - 1;
|
||||
USBHubPort *port;
|
||||
USBDevice *dev;
|
||||
USBDevice *pdev;
|
||||
|
||||
trace_usb_hub_set_port_feature(s->dev.addr, index,
|
||||
feature_name(value));
|
||||
@ -411,7 +411,7 @@ static void usb_hub_handle_control(USBDevice *dev, USBPacket *p,
|
||||
goto fail;
|
||||
}
|
||||
port = &s->ports[n];
|
||||
dev = port->port.dev;
|
||||
pdev = port->port.dev;
|
||||
switch(value) {
|
||||
case PORT_SUSPEND:
|
||||
port->wPortStatus |= PORT_STAT_SUSPEND;
|
||||
@ -419,8 +419,8 @@ static void usb_hub_handle_control(USBDevice *dev, USBPacket *p,
|
||||
case PORT_RESET:
|
||||
usb_hub_port_set(port, PORT_STAT_RESET);
|
||||
usb_hub_port_clear(port, PORT_STAT_RESET);
|
||||
if (dev && dev->attached) {
|
||||
usb_device_reset(dev);
|
||||
if (pdev && pdev->attached) {
|
||||
usb_device_reset(pdev);
|
||||
usb_hub_port_set(port, PORT_STAT_ENABLE);
|
||||
}
|
||||
usb_wakeup(s->intr, 0);
|
||||
|
@ -403,7 +403,7 @@ static void usb_msd_handle_data(USBDevice *dev, USBPacket *p)
|
||||
struct usb_msd_cbw cbw;
|
||||
uint8_t devep = p->ep->nr;
|
||||
SCSIDevice *scsi_dev;
|
||||
uint32_t len;
|
||||
int len;
|
||||
|
||||
if (s->needs_reset) {
|
||||
p->status = USB_RET_STALL;
|
||||
@ -465,7 +465,7 @@ static void usb_msd_handle_data(USBDevice *dev, USBPacket *p)
|
||||
usb_msd_copy_data(s, p);
|
||||
}
|
||||
if (le32_to_cpu(s->csw.residue)) {
|
||||
int len = p->iov.size - p->actual_length;
|
||||
len = p->iov.size - p->actual_length;
|
||||
if (len) {
|
||||
usb_packet_skip(p, len);
|
||||
if (len > s->data_len) {
|
||||
@ -526,7 +526,7 @@ static void usb_msd_handle_data(USBDevice *dev, USBPacket *p)
|
||||
usb_msd_copy_data(s, p);
|
||||
}
|
||||
if (le32_to_cpu(s->csw.residue)) {
|
||||
int len = p->iov.size - p->actual_length;
|
||||
len = p->iov.size - p->actual_length;
|
||||
if (len) {
|
||||
usb_packet_skip(p, len);
|
||||
if (len > s->data_len) {
|
||||
|
@ -217,10 +217,10 @@ enum {
|
||||
(((data) >> field##_SHIFT) & field##_MASK)
|
||||
|
||||
#define set_field(data, newval, field) do { \
|
||||
uint32_t val = *data; \
|
||||
val &= ~(field##_MASK << field##_SHIFT); \
|
||||
val |= ((newval) & field##_MASK) << field##_SHIFT; \
|
||||
*data = val; \
|
||||
uint32_t val_ = *data; \
|
||||
val_ &= ~(field##_MASK << field##_SHIFT); \
|
||||
val_ |= ((newval) & field##_MASK) << field##_SHIFT; \
|
||||
*data = val_; \
|
||||
} while (0)
|
||||
|
||||
typedef enum EPType {
|
||||
@ -1894,7 +1894,7 @@ static void xhci_kick_epctx(XHCIEPContext *epctx, unsigned int streamid)
|
||||
}
|
||||
|
||||
if (epctx->retry) {
|
||||
XHCITransfer *xfer = epctx->retry;
|
||||
xfer = epctx->retry;
|
||||
|
||||
trace_usb_xhci_xfer_retry(xfer);
|
||||
assert(xfer->running_retry);
|
||||
|
@ -1010,7 +1010,7 @@ static int usb_host_open(USBHostDevice *s, libusb_device *dev, int hostfd)
|
||||
* Speeds are defined in linux/usb/ch9.h, file not included
|
||||
* due to name conflicts.
|
||||
*/
|
||||
int rc = ioctl(hostfd, USBDEVFS_GET_SPEED, NULL);
|
||||
rc = ioctl(hostfd, USBDEVFS_GET_SPEED, NULL);
|
||||
switch (rc) {
|
||||
case 1: /* low */
|
||||
libusb_speed = LIBUSB_SPEED_LOW;
|
||||
|
@ -66,12 +66,12 @@ static void vhost_dev_sync_region(struct vhost_dev *dev,
|
||||
uint64_t mfirst, uint64_t mlast,
|
||||
uint64_t rfirst, uint64_t rlast)
|
||||
{
|
||||
vhost_log_chunk_t *log = dev->log->log;
|
||||
vhost_log_chunk_t *dev_log = dev->log->log;
|
||||
|
||||
uint64_t start = MAX(mfirst, rfirst);
|
||||
uint64_t end = MIN(mlast, rlast);
|
||||
vhost_log_chunk_t *from = log + start / VHOST_LOG_CHUNK;
|
||||
vhost_log_chunk_t *to = log + end / VHOST_LOG_CHUNK + 1;
|
||||
vhost_log_chunk_t *from = dev_log + start / VHOST_LOG_CHUNK;
|
||||
vhost_log_chunk_t *to = dev_log + end / VHOST_LOG_CHUNK + 1;
|
||||
uint64_t addr = QEMU_ALIGN_DOWN(start, VHOST_LOG_CHUNK);
|
||||
|
||||
if (end < start) {
|
||||
@ -549,7 +549,7 @@ static void vhost_commit(MemoryListener *listener)
|
||||
changed = true;
|
||||
} else {
|
||||
/* Same size, lets check the contents */
|
||||
for (int i = 0; i < n_old_sections; i++) {
|
||||
for (i = 0; i < n_old_sections; i++) {
|
||||
if (!MemoryRegionSection_eq(&old_sections[i],
|
||||
&dev->mem_sections[i])) {
|
||||
changed = true;
|
||||
|
@ -780,15 +780,15 @@ static void virtio_write_config(PCIDevice *pci_dev, uint32_t address,
|
||||
pci_cfg_data),
|
||||
sizeof cfg->pci_cfg_data)) {
|
||||
uint32_t off;
|
||||
uint32_t len;
|
||||
uint32_t caplen;
|
||||
|
||||
cfg = (void *)(proxy->pci_dev.config + proxy->config_cap);
|
||||
off = le32_to_cpu(cfg->cap.offset);
|
||||
len = le32_to_cpu(cfg->cap.length);
|
||||
caplen = le32_to_cpu(cfg->cap.length);
|
||||
|
||||
if (len == 1 || len == 2 || len == 4) {
|
||||
assert(len <= sizeof cfg->pci_cfg_data);
|
||||
virtio_address_space_write(proxy, off, cfg->pci_cfg_data, len);
|
||||
if (caplen == 1 || caplen == 2 || caplen == 4) {
|
||||
assert(caplen <= sizeof cfg->pci_cfg_data);
|
||||
virtio_address_space_write(proxy, off, cfg->pci_cfg_data, caplen);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -804,15 +804,15 @@ static uint32_t virtio_read_config(PCIDevice *pci_dev,
|
||||
pci_cfg_data),
|
||||
sizeof cfg->pci_cfg_data)) {
|
||||
uint32_t off;
|
||||
uint32_t len;
|
||||
uint32_t caplen;
|
||||
|
||||
cfg = (void *)(proxy->pci_dev.config + proxy->config_cap);
|
||||
off = le32_to_cpu(cfg->cap.offset);
|
||||
len = le32_to_cpu(cfg->cap.length);
|
||||
caplen = le32_to_cpu(cfg->cap.length);
|
||||
|
||||
if (len == 1 || len == 2 || len == 4) {
|
||||
assert(len <= sizeof cfg->pci_cfg_data);
|
||||
virtio_address_space_read(proxy, off, cfg->pci_cfg_data, len);
|
||||
if (caplen == 1 || caplen == 2 || caplen == 4) {
|
||||
assert(caplen <= sizeof cfg->pci_cfg_data);
|
||||
virtio_address_space_read(proxy, off, cfg->pci_cfg_data, caplen);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,6 @@ void deprecated_register_soundhw(const char *name, const char *descr,
|
||||
|
||||
void soundhw_init(void);
|
||||
void show_valid_soundhw(void);
|
||||
void select_soundhw(const char *optarg, const char *audiodev);
|
||||
void select_soundhw(const char *name, const char *audiodev);
|
||||
|
||||
#endif
|
||||
|
@ -247,9 +247,9 @@ extern const char *host_net_devices[];
|
||||
|
||||
/* from net.c */
|
||||
extern NetClientStateList net_clients;
|
||||
bool netdev_is_modern(const char *optarg);
|
||||
void netdev_parse_modern(const char *optarg);
|
||||
void net_client_parse(QemuOptsList *opts_list, const char *str);
|
||||
bool netdev_is_modern(const char *optstr);
|
||||
void netdev_parse_modern(const char *optstr);
|
||||
void net_client_parse(QemuOptsList *opts_list, const char *optstr);
|
||||
void show_netdevs(void);
|
||||
void net_init_clients(void);
|
||||
void net_check_clients(void);
|
||||
|
@ -13,16 +13,16 @@
|
||||
#define QEMU_GUEST_RANDOM_H
|
||||
|
||||
/**
|
||||
* qemu_guest_random_seed_main(const char *optarg, Error **errp)
|
||||
* @optarg: a non-NULL pointer to a C string
|
||||
* qemu_guest_random_seed_main(const char *seedstr, Error **errp)
|
||||
* @seedstr: a non-NULL pointer to a C string
|
||||
* @errp: an error indicator
|
||||
*
|
||||
* The @optarg value is that which accompanies the -seed argument.
|
||||
* The @seedstr value is that which accompanies the -seed argument.
|
||||
* This forces qemu_guest_getrandom into deterministic mode.
|
||||
*
|
||||
* Returns 0 on success, < 0 on failure while setting *errp.
|
||||
*/
|
||||
int qemu_guest_random_seed_main(const char *optarg, Error **errp);
|
||||
int qemu_guest_random_seed_main(const char *seedstr, Error **errp);
|
||||
|
||||
/**
|
||||
* qemu_guest_random_seed_thread_part1(void)
|
||||
|
@ -50,7 +50,7 @@ static inline void qemu_plugin_add_opts(void)
|
||||
qemu_add_opts(&qemu_plugin_opts);
|
||||
}
|
||||
|
||||
void qemu_plugin_opt_parse(const char *optarg, QemuPluginList *head);
|
||||
void qemu_plugin_opt_parse(const char *optstr, QemuPluginList *head);
|
||||
int qemu_plugin_load_list(QemuPluginList *head, Error **errp);
|
||||
|
||||
union qemu_plugin_cb_sig {
|
||||
@ -242,7 +242,7 @@ void qemu_plugin_user_postfork(bool is_child);
|
||||
static inline void qemu_plugin_add_opts(void)
|
||||
{ }
|
||||
|
||||
static inline void qemu_plugin_opt_parse(const char *optarg,
|
||||
static inline void qemu_plugin_opt_parse(const char *optstr,
|
||||
QemuPluginList *head)
|
||||
{
|
||||
error_report("plugin interface not enabled in this build");
|
||||
|
@ -99,7 +99,7 @@ void user_creatable_add_qapi(ObjectOptions *options, Error **errp);
|
||||
|
||||
/**
|
||||
* user_creatable_parse_str:
|
||||
* @optarg: the object definition string as passed on the command line
|
||||
* @str: the object definition string as passed on the command line
|
||||
* @errp: if an error occurs, a pointer to an area to store the error
|
||||
*
|
||||
* Parses the option for the user creatable object with a keyval parser and
|
||||
@ -110,14 +110,14 @@ void user_creatable_add_qapi(ObjectOptions *options, Error **errp);
|
||||
* Returns: ObjectOptions on success, NULL when an error occurred (*errp is set
|
||||
* then) or help was printed (*errp is not set).
|
||||
*/
|
||||
ObjectOptions *user_creatable_parse_str(const char *optarg, Error **errp);
|
||||
ObjectOptions *user_creatable_parse_str(const char *str, Error **errp);
|
||||
|
||||
/**
|
||||
* user_creatable_add_from_str:
|
||||
* @optarg: the object definition string as passed on the command line
|
||||
* @str: the object definition string as passed on the command line
|
||||
* @errp: if an error occurs, a pointer to an area to store the error
|
||||
*
|
||||
* Create an instance of the user creatable object by parsing optarg
|
||||
* Create an instance of the user creatable object by parsing @str
|
||||
* with a keyval parser and implicit key 'qom-type', converting the
|
||||
* result to ObjectOptions and calling into qmp_object_add().
|
||||
*
|
||||
@ -126,13 +126,13 @@ ObjectOptions *user_creatable_parse_str(const char *optarg, Error **errp);
|
||||
* Returns: true when an object was successfully created, false when an error
|
||||
* occurred (*errp is set then) or help was printed (*errp is not set).
|
||||
*/
|
||||
bool user_creatable_add_from_str(const char *optarg, Error **errp);
|
||||
bool user_creatable_add_from_str(const char *str, Error **errp);
|
||||
|
||||
/**
|
||||
* user_creatable_process_cmdline:
|
||||
* @optarg: the object definition string as passed on the command line
|
||||
* @cmdline: the object definition string as passed on the command line
|
||||
*
|
||||
* Create an instance of the user creatable object by parsing optarg
|
||||
* Create an instance of the user creatable object by parsing @cmdline
|
||||
* with a keyval parser and implicit key 'qom-type', converting the
|
||||
* result to ObjectOptions and calling into qmp_object_add().
|
||||
*
|
||||
@ -141,7 +141,7 @@ bool user_creatable_add_from_str(const char *optarg, Error **errp);
|
||||
* This function is only meant to be called during command line parsing.
|
||||
* It exits the process on failure or after printing help.
|
||||
*/
|
||||
void user_creatable_process_cmdline(const char *optarg);
|
||||
void user_creatable_process_cmdline(const char *cmdline);
|
||||
|
||||
/**
|
||||
* user_creatable_print_help:
|
||||
|
@ -66,7 +66,7 @@ const char *semihosting_get_cmdline(void);
|
||||
void semihosting_arg_fallback(const char *file, const char *cmd);
|
||||
/* for vl.c hooks */
|
||||
void qemu_semihosting_enable(void);
|
||||
int qemu_semihosting_config_options(const char *opt);
|
||||
int qemu_semihosting_config_options(const char *optstr);
|
||||
void qemu_semihosting_chardev_init(void);
|
||||
void qemu_semihosting_console_init(Chardev *);
|
||||
#endif /* CONFIG_USER_ONLY */
|
||||
|
@ -49,8 +49,8 @@ void os_setup_signal_handling(void);
|
||||
int os_set_daemonize(bool d);
|
||||
bool is_daemonized(void);
|
||||
void os_daemonize(void);
|
||||
bool os_set_runas(const char *optarg);
|
||||
void os_set_chroot(const char *optarg);
|
||||
bool os_set_runas(const char *user_id);
|
||||
void os_set_chroot(const char *path);
|
||||
void os_setup_post(void);
|
||||
int os_mlock(void);
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
#ifdef CONFIG_TPM
|
||||
|
||||
int tpm_config_parse(QemuOptsList *opts_list, const char *optarg);
|
||||
int tpm_config_parse(QemuOptsList *opts_list, const char *optstr);
|
||||
int tpm_init(void);
|
||||
void tpm_cleanup(void);
|
||||
|
||||
|
@ -755,15 +755,15 @@ int load_flt_binary(struct linux_binprm *bprm, struct image_info *info)
|
||||
/* Update data segment pointers for all libraries */
|
||||
for (i=0; i<MAX_SHARED_LIBS; i++) {
|
||||
if (libinfo[i].loaded) {
|
||||
abi_ulong p;
|
||||
p = libinfo[i].start_data;
|
||||
abi_ulong seg;
|
||||
seg = libinfo[i].start_data;
|
||||
for (j=0; j<MAX_SHARED_LIBS; j++) {
|
||||
p -= 4;
|
||||
seg -= 4;
|
||||
/* FIXME - handle put_user() failures */
|
||||
if (put_user_ual(libinfo[j].loaded
|
||||
? libinfo[j].start_data
|
||||
: UNLOADED_LIB,
|
||||
p))
|
||||
seg))
|
||||
return -EFAULT;
|
||||
}
|
||||
}
|
||||
|
@ -910,16 +910,16 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
int prot = 0;
|
||||
int page_flags = 0;
|
||||
if (reserved_va && old_size < new_size) {
|
||||
abi_ulong addr;
|
||||
for (addr = old_addr + old_size;
|
||||
addr < old_addr + new_size;
|
||||
addr++) {
|
||||
prot |= page_get_flags(addr);
|
||||
page_flags |= page_get_flags(addr);
|
||||
}
|
||||
}
|
||||
if (prot == 0) {
|
||||
if (page_flags == 0) {
|
||||
host_addr = mremap(g2h_untagged(old_addr),
|
||||
old_size, new_size, flags);
|
||||
|
||||
|
@ -5050,8 +5050,8 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd,
|
||||
{
|
||||
void *gspec = argptr;
|
||||
void *cur_data = host_data;
|
||||
const argtype arg_type[] = { MK_STRUCT(STRUCT_dm_target_spec) };
|
||||
int spec_size = thunk_type_size(arg_type, 0);
|
||||
const argtype dm_arg_type[] = { MK_STRUCT(STRUCT_dm_target_spec) };
|
||||
int spec_size = thunk_type_size(dm_arg_type, 0);
|
||||
int i;
|
||||
|
||||
for (i = 0; i < host_dm->target_count; i++) {
|
||||
@ -5059,7 +5059,7 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd,
|
||||
uint32_t next;
|
||||
int slen;
|
||||
|
||||
thunk_convert(spec, gspec, arg_type, THUNK_HOST);
|
||||
thunk_convert(spec, gspec, dm_arg_type, THUNK_HOST);
|
||||
slen = strlen((char*)gspec + spec_size) + 1;
|
||||
next = spec->next;
|
||||
spec->next = sizeof(*spec) + slen;
|
||||
@ -5099,7 +5099,7 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd,
|
||||
struct dm_name_list *nl = (void*)host_dm + host_dm->data_start;
|
||||
uint32_t remaining_data = guest_data_size;
|
||||
void *cur_data = argptr;
|
||||
const argtype arg_type[] = { MK_STRUCT(STRUCT_dm_name_list) };
|
||||
const argtype dm_arg_type[] = { MK_STRUCT(STRUCT_dm_name_list) };
|
||||
int nl_size = 12; /* can't use thunk_size due to alignment */
|
||||
|
||||
while (1) {
|
||||
@ -5111,7 +5111,7 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd,
|
||||
host_dm->flags |= DM_BUFFER_FULL_FLAG;
|
||||
break;
|
||||
}
|
||||
thunk_convert(cur_data, nl, arg_type, THUNK_TARGET);
|
||||
thunk_convert(cur_data, nl, dm_arg_type, THUNK_TARGET);
|
||||
strcpy(cur_data + nl_size, nl->name);
|
||||
cur_data += nl->next;
|
||||
remaining_data -= nl->next;
|
||||
@ -5127,8 +5127,8 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd,
|
||||
{
|
||||
struct dm_target_spec *spec = (void*)host_dm + host_dm->data_start;
|
||||
void *cur_data = argptr;
|
||||
const argtype arg_type[] = { MK_STRUCT(STRUCT_dm_target_spec) };
|
||||
int spec_size = thunk_type_size(arg_type, 0);
|
||||
const argtype dm_arg_type[] = { MK_STRUCT(STRUCT_dm_target_spec) };
|
||||
int spec_size = thunk_type_size(dm_arg_type, 0);
|
||||
int i;
|
||||
|
||||
for (i = 0; i < host_dm->target_count; i++) {
|
||||
@ -5139,7 +5139,7 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd,
|
||||
host_dm->flags |= DM_BUFFER_FULL_FLAG;
|
||||
break;
|
||||
}
|
||||
thunk_convert(cur_data, spec, arg_type, THUNK_TARGET);
|
||||
thunk_convert(cur_data, spec, dm_arg_type, THUNK_TARGET);
|
||||
strcpy(cur_data + spec_size, (char*)&spec[1]);
|
||||
cur_data = argptr + spec->next;
|
||||
spec = (void*)host_dm + host_dm->data_start + next;
|
||||
@ -5167,8 +5167,8 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd,
|
||||
struct dm_target_versions *vers = (void*)host_dm + host_dm->data_start;
|
||||
uint32_t remaining_data = guest_data_size;
|
||||
void *cur_data = argptr;
|
||||
const argtype arg_type[] = { MK_STRUCT(STRUCT_dm_target_versions) };
|
||||
int vers_size = thunk_type_size(arg_type, 0);
|
||||
const argtype dm_arg_type[] = { MK_STRUCT(STRUCT_dm_target_versions) };
|
||||
int vers_size = thunk_type_size(dm_arg_type, 0);
|
||||
|
||||
while (1) {
|
||||
uint32_t next = vers->next;
|
||||
@ -5179,7 +5179,7 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd,
|
||||
host_dm->flags |= DM_BUFFER_FULL_FLAG;
|
||||
break;
|
||||
}
|
||||
thunk_convert(cur_data, vers, arg_type, THUNK_TARGET);
|
||||
thunk_convert(cur_data, vers, dm_arg_type, THUNK_TARGET);
|
||||
strcpy(cur_data + vers_size, vers->name);
|
||||
cur_data += vers->next;
|
||||
remaining_data -= vers->next;
|
||||
@ -11177,14 +11177,14 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
}
|
||||
case TARGET_NR_getcpu:
|
||||
{
|
||||
unsigned cpu, node;
|
||||
ret = get_errno(sys_getcpu(arg1 ? &cpu : NULL,
|
||||
unsigned cpuid, node;
|
||||
ret = get_errno(sys_getcpu(arg1 ? &cpuid : NULL,
|
||||
arg2 ? &node : NULL,
|
||||
NULL));
|
||||
if (is_error(ret)) {
|
||||
return ret;
|
||||
}
|
||||
if (arg1 && put_user_u32(cpu, arg1)) {
|
||||
if (arg1 && put_user_u32(cpuid, arg1)) {
|
||||
return -TARGET_EFAULT;
|
||||
}
|
||||
if (arg2 && put_user_u32(node, arg2)) {
|
||||
@ -12339,7 +12339,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
case TARGET_NR_listxattr:
|
||||
case TARGET_NR_llistxattr:
|
||||
{
|
||||
void *p, *b = 0;
|
||||
void *b = 0;
|
||||
if (arg2) {
|
||||
b = lock_user(VERIFY_WRITE, arg2, arg3, 0);
|
||||
if (!b) {
|
||||
@ -12376,7 +12376,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
case TARGET_NR_setxattr:
|
||||
case TARGET_NR_lsetxattr:
|
||||
{
|
||||
void *p, *n, *v = 0;
|
||||
void *n, *v = 0;
|
||||
if (arg3) {
|
||||
v = lock_user(VERIFY_READ, arg3, arg4, 1);
|
||||
if (!v) {
|
||||
@ -12421,7 +12421,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
case TARGET_NR_getxattr:
|
||||
case TARGET_NR_lgetxattr:
|
||||
{
|
||||
void *p, *n, *v = 0;
|
||||
void *n, *v = 0;
|
||||
if (arg3) {
|
||||
v = lock_user(VERIFY_WRITE, arg3, arg4, 0);
|
||||
if (!v) {
|
||||
@ -12466,7 +12466,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
case TARGET_NR_removexattr:
|
||||
case TARGET_NR_lremovexattr:
|
||||
{
|
||||
void *p, *n;
|
||||
void *n;
|
||||
p = lock_user_string(arg1);
|
||||
n = lock_user_string(arg2);
|
||||
if (p && n) {
|
||||
|
14
net/net.c
14
net/net.c
@ -1677,7 +1677,7 @@ void net_init_clients(void)
|
||||
* Modern syntax is to be parsed with netdev_parse_modern().
|
||||
* Traditional syntax is to be parsed with net_client_parse().
|
||||
*/
|
||||
bool netdev_is_modern(const char *optarg)
|
||||
bool netdev_is_modern(const char *optstr)
|
||||
{
|
||||
QemuOpts *opts;
|
||||
bool is_modern;
|
||||
@ -1689,13 +1689,13 @@ bool netdev_is_modern(const char *optarg)
|
||||
.desc = { { } },
|
||||
};
|
||||
|
||||
if (optarg[0] == '{') {
|
||||
if (optstr[0] == '{') {
|
||||
/* This is JSON, which means it's modern syntax */
|
||||
return true;
|
||||
}
|
||||
|
||||
opts = qemu_opts_create(&dummy_opts, NULL, false, &error_abort);
|
||||
qemu_opts_do_parse(opts, optarg, dummy_opts.implied_opt_name,
|
||||
qemu_opts_do_parse(opts, optstr, dummy_opts.implied_opt_name,
|
||||
&error_abort);
|
||||
type = qemu_opt_get(opts, "type");
|
||||
is_modern = !g_strcmp0(type, "stream") || !g_strcmp0(type, "dgram");
|
||||
@ -1711,12 +1711,12 @@ bool netdev_is_modern(const char *optarg)
|
||||
* netdev_parse_modern() appends to @nd_queue, whereas net_client_parse()
|
||||
* appends to @qemu_netdev_opts.
|
||||
*/
|
||||
void netdev_parse_modern(const char *optarg)
|
||||
void netdev_parse_modern(const char *optstr)
|
||||
{
|
||||
Visitor *v;
|
||||
NetdevQueueEntry *nd;
|
||||
|
||||
v = qobject_input_visitor_new_str(optarg, "type", &error_fatal);
|
||||
v = qobject_input_visitor_new_str(optstr, "type", &error_fatal);
|
||||
nd = g_new(NetdevQueueEntry, 1);
|
||||
visit_type_Netdev(v, NULL, &nd->nd, &error_fatal);
|
||||
visit_free(v);
|
||||
@ -1725,9 +1725,9 @@ void netdev_parse_modern(const char *optarg)
|
||||
QSIMPLEQ_INSERT_TAIL(&nd_queue, nd, entry);
|
||||
}
|
||||
|
||||
void net_client_parse(QemuOptsList *opts_list, const char *optarg)
|
||||
void net_client_parse(QemuOptsList *opts_list, const char *optstr)
|
||||
{
|
||||
if (!qemu_opts_parse_noisily(opts_list, optarg, true)) {
|
||||
if (!qemu_opts_parse_noisily(opts_list, optstr, true)) {
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
12
os-posix.c
12
os-posix.c
@ -94,13 +94,13 @@ static uid_t user_uid = (uid_t)-1; /* -1 -1 >=0 */
|
||||
static gid_t user_gid = (gid_t)-1; /* -1 -1 >=0 */
|
||||
|
||||
/*
|
||||
* Prepare to change user ID. optarg can be one of 3 forms:
|
||||
* Prepare to change user ID. user_id can be one of 3 forms:
|
||||
* - a username, in which case user ID will be changed to its uid,
|
||||
* with primary and supplementary groups set up too;
|
||||
* - a numeric uid, in which case only the uid will be set;
|
||||
* - a pair of numeric uid:gid.
|
||||
*/
|
||||
bool os_set_runas(const char *optarg)
|
||||
bool os_set_runas(const char *user_id)
|
||||
{
|
||||
unsigned long lv;
|
||||
const char *ep;
|
||||
@ -108,14 +108,14 @@ bool os_set_runas(const char *optarg)
|
||||
gid_t got_gid;
|
||||
int rc;
|
||||
|
||||
user_pwd = getpwnam(optarg);
|
||||
user_pwd = getpwnam(user_id);
|
||||
if (user_pwd) {
|
||||
user_uid = -1;
|
||||
user_gid = -1;
|
||||
return true;
|
||||
}
|
||||
|
||||
rc = qemu_strtoul(optarg, &ep, 0, &lv);
|
||||
rc = qemu_strtoul(user_id, &ep, 0, &lv);
|
||||
got_uid = lv; /* overflow here is ID in C99 */
|
||||
if (rc || *ep != ':' || got_uid != lv || got_uid == (uid_t)-1) {
|
||||
return false;
|
||||
@ -173,9 +173,9 @@ static void change_process_uid(void)
|
||||
|
||||
static const char *chroot_dir;
|
||||
|
||||
void os_set_chroot(const char *optarg)
|
||||
void os_set_chroot(const char *path)
|
||||
{
|
||||
chroot_dir = optarg;
|
||||
chroot_dir = path;
|
||||
}
|
||||
|
||||
static void change_root(void)
|
||||
|
@ -140,12 +140,12 @@ static int plugin_add(void *opaque, const char *name, const char *value,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void qemu_plugin_opt_parse(const char *optarg, QemuPluginList *head)
|
||||
void qemu_plugin_opt_parse(const char *optstr, QemuPluginList *head)
|
||||
{
|
||||
struct qemu_plugin_parse_arg arg;
|
||||
QemuOpts *opts;
|
||||
|
||||
opts = qemu_opts_parse_noisily(qemu_find_opts("plugin"), optarg, true);
|
||||
opts = qemu_opts_parse_noisily(qemu_find_opts("plugin"), optstr, true);
|
||||
if (opts == NULL) {
|
||||
exit(1);
|
||||
}
|
||||
|
22
qemu-img.c
22
qemu-img.c
@ -235,25 +235,25 @@ void help(void)
|
||||
}
|
||||
|
||||
/*
|
||||
* Is @optarg safe for accumulate_options()?
|
||||
* Is @list safe for accumulate_options()?
|
||||
* It is when multiple of them can be joined together separated by ','.
|
||||
* To make that work, @optarg must not start with ',' (or else a
|
||||
* To make that work, @list must not start with ',' (or else a
|
||||
* separating ',' preceding it gets escaped), and it must not end with
|
||||
* an odd number of ',' (or else a separating ',' following it gets
|
||||
* escaped), or be empty (or else a separating ',' preceding it can
|
||||
* escape a separating ',' following it).
|
||||
*
|
||||
*/
|
||||
static bool is_valid_option_list(const char *optarg)
|
||||
static bool is_valid_option_list(const char *list)
|
||||
{
|
||||
size_t len = strlen(optarg);
|
||||
size_t len = strlen(list);
|
||||
size_t i;
|
||||
|
||||
if (!optarg[0] || optarg[0] == ',') {
|
||||
if (!list[0] || list[0] == ',') {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (i = len; i > 0 && optarg[i - 1] == ','; i--) {
|
||||
for (i = len; i > 0 && list[i - 1] == ','; i--) {
|
||||
}
|
||||
if ((len - i) % 2) {
|
||||
return false;
|
||||
@ -262,19 +262,19 @@ static bool is_valid_option_list(const char *optarg)
|
||||
return true;
|
||||
}
|
||||
|
||||
static int accumulate_options(char **options, char *optarg)
|
||||
static int accumulate_options(char **options, char *list)
|
||||
{
|
||||
char *new_options;
|
||||
|
||||
if (!is_valid_option_list(optarg)) {
|
||||
error_report("Invalid option list: %s", optarg);
|
||||
if (!is_valid_option_list(list)) {
|
||||
error_report("Invalid option list: %s", list);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!*options) {
|
||||
*options = g_strdup(optarg);
|
||||
*options = g_strdup(list);
|
||||
} else {
|
||||
new_options = g_strdup_printf("%s,%s", *options, optarg);
|
||||
new_options = g_strdup_printf("%s,%s", *options, list);
|
||||
g_free(*options);
|
||||
*options = new_options;
|
||||
}
|
||||
|
@ -475,10 +475,10 @@ static int command_loop(void)
|
||||
return last_error;
|
||||
}
|
||||
|
||||
static void add_user_command(char *optarg)
|
||||
static void add_user_command(char *user_cmd)
|
||||
{
|
||||
cmdline = g_renew(char *, cmdline, ++ncmdline);
|
||||
cmdline[ncmdline-1] = optarg;
|
||||
cmdline[ncmdline - 1] = user_cmd;
|
||||
}
|
||||
|
||||
static void reenable_tty_echo(void)
|
||||
|
@ -259,7 +259,7 @@ static void user_creatable_print_help_from_qdict(QDict *args)
|
||||
}
|
||||
}
|
||||
|
||||
ObjectOptions *user_creatable_parse_str(const char *optarg, Error **errp)
|
||||
ObjectOptions *user_creatable_parse_str(const char *str, Error **errp)
|
||||
{
|
||||
ERRP_GUARD();
|
||||
QObject *obj;
|
||||
@ -267,14 +267,14 @@ ObjectOptions *user_creatable_parse_str(const char *optarg, Error **errp)
|
||||
Visitor *v;
|
||||
ObjectOptions *options;
|
||||
|
||||
if (optarg[0] == '{') {
|
||||
obj = qobject_from_json(optarg, errp);
|
||||
if (str[0] == '{') {
|
||||
obj = qobject_from_json(str, errp);
|
||||
if (!obj) {
|
||||
return NULL;
|
||||
}
|
||||
v = qobject_input_visitor_new(obj);
|
||||
} else {
|
||||
QDict *args = keyval_parse(optarg, "qom-type", &help, errp);
|
||||
QDict *args = keyval_parse(str, "qom-type", &help, errp);
|
||||
if (*errp) {
|
||||
return NULL;
|
||||
}
|
||||
@ -295,12 +295,12 @@ ObjectOptions *user_creatable_parse_str(const char *optarg, Error **errp)
|
||||
return options;
|
||||
}
|
||||
|
||||
bool user_creatable_add_from_str(const char *optarg, Error **errp)
|
||||
bool user_creatable_add_from_str(const char *str, Error **errp)
|
||||
{
|
||||
ERRP_GUARD();
|
||||
ObjectOptions *options;
|
||||
|
||||
options = user_creatable_parse_str(optarg, errp);
|
||||
options = user_creatable_parse_str(str, errp);
|
||||
if (!options) {
|
||||
return false;
|
||||
}
|
||||
@ -310,9 +310,9 @@ bool user_creatable_add_from_str(const char *optarg, Error **errp)
|
||||
return !*errp;
|
||||
}
|
||||
|
||||
void user_creatable_process_cmdline(const char *optarg)
|
||||
void user_creatable_process_cmdline(const char *cmdline)
|
||||
{
|
||||
if (!user_creatable_add_from_str(optarg, &error_fatal)) {
|
||||
if (!user_creatable_add_from_str(cmdline, &error_fatal)) {
|
||||
/* Help was printed */
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
@ -367,7 +367,6 @@ void do_common_semihosting(CPUState *cs)
|
||||
target_ulong ul_ret;
|
||||
char * s;
|
||||
int nr;
|
||||
uint32_t ret;
|
||||
int64_t elapsed;
|
||||
|
||||
nr = common_semi_arg(cs, 0) & 0xffffffffU;
|
||||
@ -725,6 +724,9 @@ void do_common_semihosting(CPUState *cs)
|
||||
|
||||
case TARGET_SYS_EXIT:
|
||||
case TARGET_SYS_EXIT_EXTENDED:
|
||||
{
|
||||
uint32_t ret;
|
||||
|
||||
if (common_semi_sys_exit_extended(cs, nr)) {
|
||||
/*
|
||||
* The A64 version of SYS_EXIT takes a parameter block,
|
||||
@ -752,6 +754,7 @@ void do_common_semihosting(CPUState *cs)
|
||||
}
|
||||
gdb_exit(ret);
|
||||
exit(ret);
|
||||
}
|
||||
|
||||
case TARGET_SYS_ELAPSED:
|
||||
elapsed = get_clock() - clock_start;
|
||||
|
@ -131,10 +131,10 @@ void qemu_semihosting_enable(void)
|
||||
semihosting.target = SEMIHOSTING_TARGET_AUTO;
|
||||
}
|
||||
|
||||
int qemu_semihosting_config_options(const char *optarg)
|
||||
int qemu_semihosting_config_options(const char *optstr)
|
||||
{
|
||||
QemuOptsList *opt_list = qemu_find_opts("semihosting-config");
|
||||
QemuOpts *opts = qemu_opts_parse_noisily(opt_list, optarg, false);
|
||||
QemuOpts *opts = qemu_opts_parse_noisily(opt_list, optstr, false);
|
||||
|
||||
semihosting.enabled = true;
|
||||
|
||||
@ -155,7 +155,7 @@ int qemu_semihosting_config_options(const char *optarg)
|
||||
semihosting.target = SEMIHOSTING_TARGET_AUTO;
|
||||
} else {
|
||||
error_report("unsupported semihosting-config %s",
|
||||
optarg);
|
||||
optstr);
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
@ -165,7 +165,7 @@ int qemu_semihosting_config_options(const char *optarg)
|
||||
qemu_opt_foreach(opts, add_semihosting_arg,
|
||||
&semihosting, NULL);
|
||||
} else {
|
||||
error_report("unsupported semihosting-config %s", optarg);
|
||||
error_report("unsupported semihosting-config %s", optstr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -175,15 +175,15 @@ int tpm_init(void)
|
||||
* Parse the TPM configuration options.
|
||||
* To display all available TPM backends the user may use '-tpmdev help'
|
||||
*/
|
||||
int tpm_config_parse(QemuOptsList *opts_list, const char *optarg)
|
||||
int tpm_config_parse(QemuOptsList *opts_list, const char *optstr)
|
||||
{
|
||||
QemuOpts *opts;
|
||||
|
||||
if (!strcmp(optarg, "help")) {
|
||||
if (!strcmp(optstr, "help")) {
|
||||
tpm_display_backend_drivers();
|
||||
return -1;
|
||||
}
|
||||
opts = qemu_opts_parse_noisily(opts_list, optarg, true);
|
||||
opts = qemu_opts_parse_noisily(opts_list, optstr, true);
|
||||
if (!opts) {
|
||||
return -1;
|
||||
}
|
||||
|
26
softmmu/vl.c
26
softmmu/vl.c
@ -1066,12 +1066,12 @@ static void select_vgahw(const MachineClass *machine_class, const char *p)
|
||||
}
|
||||
}
|
||||
|
||||
static void parse_display_qapi(const char *optarg)
|
||||
static void parse_display_qapi(const char *str)
|
||||
{
|
||||
DisplayOptions *opts;
|
||||
Visitor *v;
|
||||
|
||||
v = qobject_input_visitor_new_str(optarg, "type", &error_fatal);
|
||||
v = qobject_input_visitor_new_str(str, "type", &error_fatal);
|
||||
|
||||
visit_type_DisplayOptions(v, NULL, &opts, &error_fatal);
|
||||
QAPI_CLONE_MEMBERS(DisplayOptions, &dpy, opts);
|
||||
@ -1221,21 +1221,21 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp)
|
||||
return monitor_init_opts(opts, errp);
|
||||
}
|
||||
|
||||
static void monitor_parse(const char *optarg, const char *mode, bool pretty)
|
||||
static void monitor_parse(const char *str, const char *mode, bool pretty)
|
||||
{
|
||||
static int monitor_device_index = 0;
|
||||
QemuOpts *opts;
|
||||
const char *p;
|
||||
char label[32];
|
||||
|
||||
if (strstart(optarg, "chardev:", &p)) {
|
||||
if (strstart(str, "chardev:", &p)) {
|
||||
snprintf(label, sizeof(label), "%s", p);
|
||||
} else {
|
||||
snprintf(label, sizeof(label), "compat_monitor%d",
|
||||
monitor_device_index);
|
||||
opts = qemu_chr_parse_compat(label, optarg, true);
|
||||
opts = qemu_chr_parse_compat(label, str, true);
|
||||
if (!opts) {
|
||||
error_report("parse error: %s", optarg);
|
||||
error_report("parse error: %s", str);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -1631,13 +1631,13 @@ static const QEMUOption *lookup_opt(int argc, char **argv,
|
||||
|
||||
static MachineClass *select_machine(QDict *qdict, Error **errp)
|
||||
{
|
||||
const char *optarg = qdict_get_try_str(qdict, "type");
|
||||
const char *machine_type = qdict_get_try_str(qdict, "type");
|
||||
GSList *machines = object_class_get_list(TYPE_MACHINE, false);
|
||||
MachineClass *machine_class;
|
||||
Error *local_err = NULL;
|
||||
|
||||
if (optarg) {
|
||||
machine_class = find_machine(optarg, machines);
|
||||
if (machine_type) {
|
||||
machine_class = find_machine(machine_type, machines);
|
||||
qdict_del(qdict, "type");
|
||||
if (!machine_class) {
|
||||
error_setg(&local_err, "unsupported machine type");
|
||||
@ -1781,20 +1781,20 @@ static void object_option_add_visitor(Visitor *v)
|
||||
QTAILQ_INSERT_TAIL(&object_opts, opt, next);
|
||||
}
|
||||
|
||||
static void object_option_parse(const char *optarg)
|
||||
static void object_option_parse(const char *str)
|
||||
{
|
||||
QemuOpts *opts;
|
||||
const char *type;
|
||||
Visitor *v;
|
||||
|
||||
if (optarg[0] == '{') {
|
||||
QObject *obj = qobject_from_json(optarg, &error_fatal);
|
||||
if (str[0] == '{') {
|
||||
QObject *obj = qobject_from_json(str, &error_fatal);
|
||||
|
||||
v = qobject_input_visitor_new(obj);
|
||||
qobject_unref(obj);
|
||||
} else {
|
||||
opts = qemu_opts_parse_noisily(qemu_find_opts("object"),
|
||||
optarg, true);
|
||||
str, true);
|
||||
if (!opts) {
|
||||
exit(1);
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ void qemu_semihosting_enable(void)
|
||||
{
|
||||
}
|
||||
|
||||
int qemu_semihosting_config_options(const char *optarg)
|
||||
int qemu_semihosting_config_options(const char *optstr)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
@ -2020,13 +2020,13 @@ void helper_vsum4ubs(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
||||
ppc_avr_t result; \
|
||||
\
|
||||
for (i = 0; i < ARRAY_SIZE(r->u32); i++) { \
|
||||
uint16_t e = b->u16[hi ? i : i + 4]; \
|
||||
uint8_t a = (e >> 15) ? 0xff : 0; \
|
||||
uint8_t r = (e >> 10) & 0x1f; \
|
||||
uint8_t g = (e >> 5) & 0x1f; \
|
||||
uint8_t b = e & 0x1f; \
|
||||
uint16_t _e = b->u16[hi ? i : i + 4]; \
|
||||
uint8_t _a = (_e >> 15) ? 0xff : 0; \
|
||||
uint8_t _r = (_e >> 10) & 0x1f; \
|
||||
uint8_t _g = (_e >> 5) & 0x1f; \
|
||||
uint8_t _b = _e & 0x1f; \
|
||||
\
|
||||
result.u32[i] = (a << 24) | (r << 16) | (g << 8) | b; \
|
||||
result.u32[i] = (_a << 24) | (_r << 16) | (_g << 8) | _b; \
|
||||
} \
|
||||
*r = result; \
|
||||
}
|
||||
|
@ -960,8 +960,6 @@ int kvm_arch_put_registers(CPUState *cs, int level)
|
||||
}
|
||||
|
||||
if (cap_one_reg) {
|
||||
int i;
|
||||
|
||||
/*
|
||||
* We deliberately ignore errors here, for kernels which have
|
||||
* the ONE_REG calls, but don't support the specific
|
||||
@ -1262,8 +1260,6 @@ int kvm_arch_get_registers(CPUState *cs)
|
||||
}
|
||||
|
||||
if (cap_one_reg) {
|
||||
int i;
|
||||
|
||||
/*
|
||||
* We deliberately ignore errors here, for kernels which have
|
||||
* the ONE_REG calls, but don't support the specific
|
||||
|
@ -285,10 +285,10 @@ bool trace_init_backends(void)
|
||||
return true;
|
||||
}
|
||||
|
||||
void trace_opt_parse(const char *optarg)
|
||||
void trace_opt_parse(const char *optstr)
|
||||
{
|
||||
QemuOpts *opts = qemu_opts_parse_noisily(qemu_find_opts("trace"),
|
||||
optarg, true);
|
||||
optstr, true);
|
||||
if (!opts) {
|
||||
exit(1);
|
||||
}
|
||||
|
@ -197,11 +197,11 @@ extern QemuOptsList qemu_trace_opts;
|
||||
|
||||
/**
|
||||
* trace_opt_parse:
|
||||
* @optarg: A string argument of --trace command line argument
|
||||
* @optstr: A string argument of --trace command line argument
|
||||
*
|
||||
* Initialize tracing subsystem.
|
||||
*/
|
||||
void trace_opt_parse(const char *optarg);
|
||||
void trace_opt_parse(const char *optstr);
|
||||
|
||||
/**
|
||||
* trace_get_vcpu_event_count:
|
||||
|
@ -343,9 +343,9 @@ QemuCocoaView *cocoaView;
|
||||
|
||||
static CGEventRef handleTapEvent(CGEventTapProxy proxy, CGEventType type, CGEventRef cgEvent, void *userInfo)
|
||||
{
|
||||
QemuCocoaView *cocoaView = userInfo;
|
||||
QemuCocoaView *view = userInfo;
|
||||
NSEvent *event = [NSEvent eventWithCGEvent:cgEvent];
|
||||
if ([cocoaView isMouseGrabbed] && [cocoaView handleEvent:event]) {
|
||||
if ([view isMouseGrabbed] && [view handleEvent:event]) {
|
||||
COCOA_DEBUG("Global events tap: qemu handled the event, capturing!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1144,7 +1144,6 @@ char *get_relocated_path(const char *dir)
|
||||
{
|
||||
size_t prefix_len = strlen(CONFIG_PREFIX);
|
||||
const char *bindir = CONFIG_BINDIR;
|
||||
const char *exec_dir = qemu_get_exec_dir();
|
||||
GString *result;
|
||||
int len_dir, len_bindir;
|
||||
|
||||
|
@ -87,11 +87,11 @@ void qemu_guest_random_seed_thread_part2(uint64_t seed)
|
||||
}
|
||||
}
|
||||
|
||||
int qemu_guest_random_seed_main(const char *optarg, Error **errp)
|
||||
int qemu_guest_random_seed_main(const char *seedstr, Error **errp)
|
||||
{
|
||||
uint64_t seed;
|
||||
if (parse_uint_full(optarg, 0, &seed)) {
|
||||
error_setg(errp, "Invalid seed number: %s", optarg);
|
||||
if (parse_uint_full(seedstr, 0, &seed)) {
|
||||
error_setg(errp, "Invalid seed number: %s", seedstr);
|
||||
return -1;
|
||||
} else {
|
||||
deterministic = true;
|
||||
|
Loading…
Reference in New Issue
Block a user