/qemu/util/ |
H A D | stats64.c | 2 * Atomic operations on 64-bit quantities. 9 * See the COPYING file in the top-level directory. 21 qatomic_add(&s->lock, 2); in stat64_rdlock() 24 while (qatomic_read(&s->lock) & 1) { in stat64_rdlock() 31 qatomic_sub(&s->lock, 2); in stat64_rdunlock() 36 return qatomic_cmpxchg(&s->lock, 0, 1) == 0; in stat64_wrtrylock() 41 qatomic_dec(&s->lock); in stat64_wrunlock() 46 uint32_t high, low; in stat64_get() local 50 /* 64-bit writes always take the lock, so we can read in in stat64_get() 53 high = qatomic_read(&s->high); in stat64_get() [all …]
|
/qemu/hw/i386/ |
H A D | trace-events | 3 # x86-iommu.c 7 …onst char *type, uint64_t hi, uint64_t lo) "invalidate desc type %s high 0x%"PRIx64" low 0x%"PRIx64 31 …devfn, uint64_t high, uint64_t low, uint32_t gen) "IOTLB context hit bus 0x%"PRIx8" devfn 0x%"PRIx… 32 …int64_t low, uint32_t gen1, uint32_t gen2) "IOTLB context update bus 0x%"PRIx8" devfn 0x%"PRIx8" h… 37 …(uint64_t addr, uint32_t level, uint64_t start, uint64_t end) "walk (base=0x%"PRIx64", level=%"PRI… 38 …uint64_t gpa, uint64_t mask, int perm) "domain 0x%"PRIx16" iova 0x%"PRIx64" -> gpa 0x%"PRIx64" mas… 41 vtd_page_walk_skip_read(uint64_t iova, uint64_t next) "Page walk skip iova 0x%"PRIx64" - 0x%"PRIx64… 42 vtd_page_walk_skip_reserve(uint64_t iova, uint64_t next) "Page walk skip iova 0x%"PRIx64" - 0x%"PRI… 56 …4_t iova, uint64_t gpa, uint64_t mask) "dev %02x:%02x.%02x iova 0x%"PRIx64" -> gpa 0x%"PRIx64" mas… 60 vtd_ir_irte_get(int index, uint64_t lo, uint64_t hi) "index %d low 0x%"PRIx64" high 0x%"PRIx64 [all …]
|
/qemu/include/hw/gpio/ |
H A D | nrf51_gpio.h | 2 * nRF51 System-on-Chip general purpose input/output register definition 6 * + Unnamed GPIO inputs 0-31: Set tri-state input level for GPIO pin. 7 * Level -1: Externally Disconnected/Floating; Pull-up/down will be regarded 8 * Level 0: Input externally driven LOW 9 * Level 1: Input externally driven HIGH 10 * + Unnamed GPIO outputs 0-31: 11 * Level -1: Disconnected/Floating 12 * Level 0: Driven LOW 13 * Level 1: Driven HIGH 16 * + The nRF51 GPIO output driver supports two modes, standard and high-current [all …]
|
/qemu/hw/s390x/ |
H A D | tod-tcg.c | 2 * TOD (Time Of Day) clock - TCG implementation 8 * See the COPYING file in the top-level directory. 24 *tod = td->base; in qemu_s390_tod_get() 26 tod->low += time2tod(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)); in qemu_s390_tod_get() 27 if (tod->low < td->base.low) { in qemu_s390_tod_get() 28 tod->high++; in qemu_s390_tod_get() 37 td->base = *tod; in qemu_s390_tod_set() 39 td->base.low -= time2tod(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)); in qemu_s390_tod_set() 40 if (td->base.low > tod->low) { in qemu_s390_tod_set() 41 td->base.high--; in qemu_s390_tod_set() [all …]
|
H A D | tod-kvm.c | 2 * TOD (Time Of Day) clock - KVM implementation 8 * See the COPYING file in the top-level directory. 23 r = kvm_s390_get_clock_ext(&tod->high, &tod->low); in kvm_s390_get_tod_raw() 24 if (r == -ENXIO) { in kvm_s390_get_tod_raw() 25 r = kvm_s390_get_clock(&tod->high, &tod->low); in kvm_s390_get_tod_raw() 29 strerror(-r)); in kvm_s390_get_tod_raw() 35 if (td->stopped) { in kvm_s390_tod_get() 36 *tod = td->base; in kvm_s390_tod_get() 47 r = kvm_s390_set_clock_ext(tod->high, tod->low); in kvm_s390_set_tod_raw() 48 if (r == -ENXIO) { in kvm_s390_set_tod_raw() [all …]
|
H A D | tod.c | 8 * See the COPYING file in the top-level directory. 14 #include "qemu/error-report.h" 19 #include "migration/qemu-file-types.h" 63 tdc->get(td, &tod, &err); in s390_tod_save() 74 qemu_put_be64(f, tod.low); in s390_tod_save() 91 tod.low = qemu_get_be64(f); in s390_tod_load() 93 tdc->set(td, &tod, &err); in s390_tod_load() 96 return -1; in s390_tod_load() 118 dc->desc = "TOD (Time Of Day) Clock"; in s390_tod_class_init() 119 dc->realize = s390_tod_realize; in s390_tod_class_init() [all …]
|
/qemu/hw/intc/ |
H A D | imx_avic.c | 10 * Updated by Jean-Christophe Dubois <jcd@tribudubois.net> 13 * the COPYING file in the top-level directory. 56 return 0xf & (s->prio[word] >> part); in imx_avic_prio() 63 uint64_t new = s->pending & s->enabled; in imx_avic_update() 66 flags = new & s->is_fiq; in imx_avic_update() 67 qemu_set_irq(s->fiq, !!flags); in imx_avic_update() 69 flags = new & ~s->is_fiq; in imx_avic_update() 70 if (!flags || (s->intmask == 0x1f)) { in imx_avic_update() 71 qemu_set_irq(s->irq, !!flags); in imx_avic_update() 81 if (imx_avic_prio(s, i) > s->intmask) { in imx_avic_update() [all …]
|
H A D | aspeed_vic.c | 9 * the COPYING file in the top-level directory. 16 * The hardware uses 32bit registers to manage 51 IRQs, with low and high 18 * uses 64bit data types to store both low and high register values (in the one 27 * read-modify-write sequence). 47 uint64_t new = (s->raw & s->enable); in aspeed_vic_update() 50 flags = new & s->select; in aspeed_vic_update() 52 qemu_set_irq(s->fiq, !!flags); in aspeed_vic_update() 54 flags = new & ~s->select; in aspeed_vic_update() 56 qemu_set_irq(s->irq, !!flags); in aspeed_vic_update() 59 static void aspeed_vic_set_irq(void *opaque, int irq, int level) in aspeed_vic_set_irq() argument [all …]
|
/qemu/include/qemu/ |
H A D | stats64.h | 2 * Atomic operations on 64-bit quantities. 9 * See the COPYING file in the top-level directory. 17 /* This provides atomic operations on 64-bit type, using a reader-writer 18 * spinlock on architectures that do not have 64-bit accesses. Even on 26 uint32_t low, high; 40 return qatomic_read__nocheck(&s->value); in stat64_get() 45 qatomic_set__nocheck(&s->value, value); in stat64_set() 50 qatomic_add(&s->value, value); in stat64_add() 55 uint64_t orig = qatomic_read__nocheck(&s->value); in stat64_min() 57 orig = qatomic_cmpxchg__nocheck(&s->value, orig, value); in stat64_min() [all …]
|
/qemu/tests/qtest/libqos/ |
H A D | virtio-9p-client.h | 7 * See the COPYING file in the top-level directory. 19 #include "hw/9pfs/9p-synth.h" 20 #include "virtio-9p.h" 22 #include "tests/qtest/libqtest-single.h" 24 #define P9_MAX_SIZE 4096 /* Max size of a T-message or R-message */ 96 /* low level variant of path to walk to (optional) */ 99 /* high level variant of path to walk to (optional) */ 328 /* low level variant of directory where new one shall be created */ 330 /* high-level variant of directory where new one shall be created */ 361 /* low-level variant of directory where new file shall be created */ [all …]
|
H A D | virtio-9p-client.c | 7 * See the COPYING file in the top-level directory. 16 #include "virtio-9p-client.h" 87 qtest_memwrite(req->qts, req->t_msg + req->t_off, addr, len); in v9fs_memwrite() 88 req->t_off += len; in v9fs_memwrite() 93 req->r_off += len; in v9fs_memskip() 98 qtest_memread(req->qts, req->r_msg + req->r_off, addr, len); in v9fs_memread() 99 req->r_off += len; in v9fs_memread() 151 g_assert_cmpint(len, <=, UINT16_MAX - 2); in v9fs_string_size() 193 uint32_t total_size = 7; /* 9P header has well-known size of 7 bytes */ in v9fs_req_init() 199 g_assert_cmpint(total_size, <=, UINT32_MAX - size); in v9fs_req_init() [all …]
|
/qemu/hw/gpio/ |
H A D | pcf8574.c | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 4 * NXP PCF8574 8-port I2C GPIO expansion chip. 19 * PCF8574 and compatible chips incorporate quasi-bidirectional 20 * IO. Electrically it means that device sustain pull-up to line 21 * unless IO port is configured as output _and_ driven low. 23 * IO access is implemented as simple I2C single-byte read 25 * to corresponding bit. To configure line to output and drive it low 28 * In essence, user can think of quasi-bidirectional IO as 29 * open-drain line, except presence of builtin rising edge acceleration 43 uint8_t lastrq; /* Last requested state. If changed - assert irq */ [all …]
|
/qemu/linux-user/mips/ |
H A D | sockbits.h | 5 * later version. See the COPYING file in the top-level directory. 29 #define TARGET_SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band. 38 #define TARGET_SO_SNDLOWAT 0x1003 /* send low-water mark */ 39 #define TARGET_SO_RCVLOWAT 0x1004 /* receive low-water mark */ 46 /* linux-specific, might as well be the same as on i386 */ 54 /* Security levels - as per NRL IPv6 - don't actually do anything */ 74 /** sock_type - Socket types 80 * @SOCK_DGRAM - datagram (conn.less) socket 81 * @SOCK_STREAM - stream (connection) socket 82 * @SOCK_RAW - raw socket [all …]
|
/qemu/tests/qtest/ |
H A D | boot-sector.c | 11 * See the COPYING file in the top-level directory. 14 #include "boot-sector.h" 17 #define LOW(x) ((x) & 0xff) macro 47 [0x06] = LOW(SIGNATURE), 51 [0x09] = LOW(SIGNATURE_ADDR), 58 /* 7c0e: jmp 0x7c07=0x7c0f-3 */ 60 [0x0e] = LOW(-3), 62 [SIGNATURE_OFFSET] = LOW(0xface), 74 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 /* in the s390-ccw bios */ 81 0xa7, 0x39, HIGH(SIGNATURE_ADDR), LOW(SIGNATURE_ADDR), /* lghi r3,0x7c10 */ [all …]
|
H A D | stm32l4x5_gpio-test.c | 4 * Copyright (c) 2024 Arnaud Minier <arnaud.minier@telecom-paris.fr> 5 * Copyright (c) 2024 Inès Varhol <ines.varhol@telecom-paris.fr> 8 * See the COPYING file in the top-level directory. 12 #include "libqtest-single.h" 84 #define GPIO_ADDR_MASK (~(GPIO_SIZE - 1)) 121 return (gpio_addr - GPIO_BASE_ADDR) / GPIO_SIZE; in get_gpio_id() 124 static void gpio_set_irq(unsigned int gpio, int num, int level) in gpio_set_irq() argument 128 qtest_set_irq_in(global_qtest, name, NULL, num, level); in gpio_set_irq() 137 r = qtest_qmp(global_qtest, "{ 'execute': 'qom-set', 'arguments': " in disconnect_all_pins() 138 "{ 'path': %s, 'property': 'disconnected-pins', 'value': %d } }", in disconnect_all_pins() [all …]
|
H A D | pnv-host-i2c-test.c | 7 * later. See the COPYING file in the top-level directory. 13 #include "pnv-xscom.h" 18 #define PPC_BITMASK(bs, be) ((PPC_BIT(bs) - PPC_BIT(be)) | PPC_BIT(bs)) 19 #define PPC_BITMASK32(bs, be) ((PPC_BIT32(bs) - PPC_BIT32(be)) | \ 22 #define MASK_TO_LSH(m) (__builtin_ffsll(m) - 1) 47 return pnv_xscom_addr(ctlr->chip, PNV10_XSCOM_I2CM_BASE + in pnv_i2c_xscom_addr() 48 (PNV10_XSCOM_I2CM_SIZE * ctlr->engine) + reg); in pnv_i2c_xscom_addr() 53 return qtest_readq(ctlr->qts, pnv_i2c_xscom_addr(ctlr, reg)); in pnv_i2c_xscom_read() 58 qtest_writeq(ctlr->qts, pnv_i2c_xscom_addr(ctlr, reg), val); in pnv_i2c_xscom_write() 69 reg64 = SETFIELD(I2C_MODE_PORT_NUM, reg64, dev->port); in pnv_i2c_send() [all …]
|
/qemu/tests/unit/ |
H A D | test-shift128.c | 5 * See the COPYING.LIB file in the top-level directory. 10 #include "qemu/host-utils.h" 13 uint64_t low; member 63 0x8000000000000000ULL, -1, false }, 67 0x4000000000000000ULL, -2, false }, 69 0x4000000000000000ULL, INT32_MAX - 1, false }, 92 0x0000000000000000ULL, 0x0000000000000080ULL, -200, false }, 102 0x0000000000000001ULL, 0x0000000000000000ULL, -1, false }, 104 0x0000000000000002ULL, 0x0000000000000000ULL, -2, false }, 114 ulshift(&tmp.low, &tmp.high, tmp.shift, &overflow); in test_lshift() [all …]
|
/qemu/docs/devel/testing/ |
H A D | acpi-bits.rst | 13 operating system getting involved in between. Bios-bits has python integration 15 python instead of bash-ish (grub's native scripting language). 23 SMBIOS without being in the highest hardware privilege level, ring 0 for 28 written using a high level scripting language such as python. OSes and 29 OS modules are generally written using low level languages such as C and 30 low level assembly machine language. Writing test routines in a low level 32 bios-bits very attractive for testing bioses. More details on the inspiration 41 author's FOSDEM presentation <FOSDEM_>`__ on this bios-bits based test framework. 45 .. _gitlab: https://gitlab.com/qemu-project/biosbits-bits 46 …rg/2024/schedule/event/fosdem-2024-2262-exercising-qemu-generated-acpi-smbios-tables-using-biosbit… [all …]
|
/qemu/tests/functional/ |
H A D | test_s390x_topology.py | 11 # later. See the COPYING file in the top-level directory. 24 See: docs/system/s390x/cpu-topology.rst. 27 - implicitly from the '-smp' argument by completing each topology 28 level one after the other beginning with drawer 0, book 0 and 30 - explicitly from the '-device' argument on the QEMU command line 31 - explicitly by hotplug of a new CPU using QMP or HMP 32 - it is modified by using QMP 'set-cpu-topology' 47 '/fedora-secondary/releases/35/Server/s390x/os' 53 '/fedora-secondary/releases/35/Server/s390x/os' 59 failure_message='Kernel panic - not syncing', [all …]
|
/qemu/rust/qemu-api/src/ |
H A D | irq.rs | 3 // SPDX-License-Identifier: GPL-2.0-or-later 29 /// As far as devices are concerned, interrupt sources are always active-high: 60 /// Send a low (`false`) value to the interrupt sink. 65 /// Send a high-low pulse to the interrupt sink. 81 /// Send `level` to the interrupt sink. 82 pub fn set(&self, level: T) { in set() 87 qemu_set_irq(ptr, level.into()); in set() 91 pub(crate) const fn as_ptr(&self) -> *mut *mut bindings::IRQState { in as_ptr() 95 pub(crate) const fn slice_as_ptr(slice: &[Self]) -> *mut *mut bindings::IRQState { in slice_as_ptr() 102 fn default() -> Self { in default()
|
/qemu/include/hw/intc/ |
H A D | aspeed_vic.h | 9 * the COPYING file in the top-level directory. 33 uint64_t level; member 39 /* 0=edge, 1=level */ 42 /* 0=single-edge, 1=dual-edge */ 45 /* 0=low-sensitive/falling-edge, 1=high-sensitive/rising-edge */
|
/qemu/qapi/ |
H A D | machine-common.json | 1 # -*- Mode: Python -*- 5 # See the COPYING file in the top-level directory. 20 'data': [ 'auto', 'low', 'medium', 'high' ] } 27 # @thread: thread level, which would also be called SMT level or 28 # logical processor level. The @threads option in 30 # level. 32 # @core: core level. The @cores option in SMPConfiguration is used 33 # to configure the topology of this level. 35 # @module: module level. The @modules option in SMPConfiguration is 36 # used to configure the topology of this level. [all …]
|
/qemu/include/hw/xen/ |
H A D | xen-pvh-common.h | 2 * QEMU Xen PVH machine - common code. 6 * SPDX-License-Identifier: GPL-2.0-or-later 15 #include "hw/pci-host/gpex.h" 16 #include "hw/xen/xen-hvm-common.h" 18 #define TYPE_XEN_PVH_MACHINE MACHINE_TYPE_NAME("xen-pvh-base") 29 * set_pci_intx_irq - Deliver INTX irqs to the guest. 32 * @irq: IRQ after swizzling, between 0-3. 33 * @level: IRQ level. 35 void (*set_pci_intx_irq)(void *opaque, int irq, int level); 38 * set_pci_link_route: - optional implementation call to setup [all …]
|
/qemu/python/qemu/qmp/ |
H A D | __init__.py | 4 This package provides a fairly low-level class for communicating 10 additional detail. See `qmp.events` for an in-depth tutorial on 14 # Copyright (C) 2020-2022 John Snow for Red Hat, Inc. 22 # later. See the COPYING file in the top-level directory.
|
/qemu/plugins/ |
H A D | api.c | 15 * qemu-plugin.h. 17 * The general life-cycle of a plugin is: 19 * - plugin is loaded, public qemu_plugin_install called 20 * - the install func registers callbacks for events 21 * - usually an atexit_cb is registered to dump info at the end 22 * - when a registered event occurs the plugin is called 23 * - some events pass additional info 24 * - during translation the plugin can decide to instrument any 26 * - when QEMU exits all the registered atexit callbacks are called 32 * See the COPYING file in the top-level directory. [all …]
|