/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 …]
|
H A D | host-utils.c | 27 #include "qemu/host-utils.h" 38 uint32_t high, low; in mul64() member 40 uint32_t low, high; in mul64() 50 rl.ll = (uint64_t)a0.l.low * b0.l.low; in mul64() 51 rm.ll = (uint64_t)a0.l.low * b0.l.high; in mul64() 52 rn.ll = (uint64_t)a0.l.high * b0.l.low; in mul64() 55 c = (uint64_t)rl.l.high + rm.l.low + rn.l.low; in mul64() 58 c = c + rm.l.high + rn.l.high + rh.l.low; in mul64() 59 rh.l.low = c; in mul64() 66 /* Unsigned 64x64 -> 128 multiplication */ [all …]
|
H A D | range.c | 2 * QEMU 64-bit address ranges 4 * Copyright (c) 2015-2016 Red Hat, Inc. 28 if (b->lob && b->lob - 1 > a->upb) { in range_compare() 29 return -1; in range_compare() 31 if (a->lob && a->lob - 1 > b->upb) { in range_compare() 45 for (l = list; l && range_compare(l->data, data) < 0; l = l->next) { in range_list_insert() 48 if (!l || range_compare(l->data, data) > 0) { in range_list_insert() 54 range_extend(l->data, data); in range_list_insert() 58 while (l->next && range_compare(l->data, l->next->data) == 0) { in range_list_insert() 61 range_extend(l->data, l->next->data); in range_list_insert() [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/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 …]
|
/qemu/target/i386/tcg/ |
H A D | mem_helper.c | 22 #include "exec/helper-proto.h" 23 #include "accel/tcg/cpu-ldst.h" 27 #include "helper-tcg.h" 31 int low, high; in helper_boundw() local 33 low = cpu_ldsw_data_ra(env, a0, GETPC()); in helper_boundw() 36 if (v < low || v > high) { in helper_boundw() 37 if (env->hflags & HF_MPX_EN_MASK) { in helper_boundw() 38 env->bndcs_regs.sts = 0; in helper_boundw() 46 int low, high; in helper_boundl() local 48 low = cpu_ldl_data_ra(env, a0, GETPC()); in helper_boundl() [all …]
|
/qemu/tests/functional/ |
H A D | test_mem_addr_space.py | 11 # SPDX-License-Identifier: GPL-2.0-or-later 23 # This helper can go away when the 32-bit host deprecation 31 # Non-ELF file implies macOS or Windows which 32 # we already assume to be 64-bit only 35 # bits == 1 -> 32-bit; bits == 2 -> 64-bit 38 # 32-bit ELF builds won't be able to address sufficient 40 self.skipTest("64-bit build host is required") 42 # first, lets test some 32-bit processors. 43 # for all 32-bit cases, pci64_hole_size is 0. 55 Note that 64-bit pci hole size is 0 in this case. If maxmem is set to [all …]
|
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 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', 63 res = self.vm.qmp('query-cpus-fast') [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 …]
|
/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 | 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/target/arm/tcg/ |
H A D | neon_helper.c | 12 #include "tcg/tcg-gvec-desc.h" 17 #include "exec/helper-proto.h.inc" 22 #define SET_QC() env->vfp.qc[0] = 1 158 /* For 32-bit elements each segment only contains a single element, so 284 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 8, false, env->vfp.qc)) 291 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 16, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV() 298 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 32, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV() 304 (dest = do_uqrshl_d(src1, (int8_t)src2, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV() 311 return do_uqrshl_bhs(val, (int8_t)shift, 32, false, env->vfp.qc); in NEON_GVEC_VOP2_ENV() 316 return do_uqrshl_d(val, (int8_t)shift, false, env->vfp.qc); in HELPER() [all …]
|
/qemu/tests/unit/ |
H A D | test-div128.c | 2 * Test 128-bit division functions 21 #include "qemu/host-utils.h" 25 uint64_t low; member 34 uint64_t low; member 168 rem = divu128(&tmp.low, &tmp.high, tmp.divisor); in test_divu128() 169 g_assert_cmpuint(tmp.low, ==, tmp.rlow); in test_divu128() 184 rem = divs128(&tmp.low, &tmp.high, tmp.divisor); in test_divs128() 185 g_assert_cmpuint(tmp.low, ==, tmp.rlow); in test_divs128() 194 g_test_add_func("/host-utils/test_divu128", test_divu128); in main() 195 g_test_add_func("/host-utils/test_divs128", test_divs128); in main()
|
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/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 …]
|
/qemu/docs/devel/ |
H A D | s390-cpu-topology.rst | 7 command, defining 4 CPUs, where CPU[0] is defined by the -smp argument and will 10 .. code-block:: bash 12 qemu-system-s390x \ 13 -enable-kvm \ 14 -cpu z14,ctop=on \ 15 -smp 1,drawers=3,books=3,sockets=2,cores=2,maxcpus=36 \ 16 -device z14-s390x-cpu,core-id=19,entitlement=high \ 17 -device z14-s390x-cpu,core-id=11,entitlement=low \ 18 -device z14-s390x-cpu,core-id=12,entitlement=high \ 21 Additions to query-cpus-fast [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/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 … start, uint64_t end) "walk (base=0x%"PRIx64", level=%"PRIu32") iova range 0x%"PRIx64" - 0x%"PRIx64 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/tests/qemu-iotests/ |
H A D | 243 | 55 _make_test_img -o "preallocation=$mode,extent_size_hint=0" 64M 58 du -b $TEST_IMG | cut -f1 62 [ $(du -B1 $TEST_IMG | cut -f1) -lt 1048576 ] && echo "low" || echo "high" 73 -o "data_file=$TEST_IMG.data,preallocation=$mode,extent_size_hint=0" 64M 75 echo -n "qcow2 file size: " 76 du -b $TEST_IMG | cut -f1 77 echo -n "data file size: " 78 du -b $TEST_IMG.data | cut -f1 81 echo -n "qcow2 disk usage: " 82 [ $(du -B1 $TEST_IMG | cut -f1) -lt 1048576 ] && echo "low" || echo "high" [all …]
|
/qemu/fpu/ |
H A D | softfloat-specialize.c.inc | 5 * IEC/IEEE Floating-point Arithmetic Package. Those parts of the code (and 9 * the SoftFloat-2a license 11 * GPL-v2-or-later 14 * taken to be licensed under the Softfloat-2a license unless specifically 20 This C source fragment is part of the SoftFloat IEC/IEEE Floating-point 26 National Science Foundation under grant MIP-9311980. The original version 27 of this code was written as part of a project to build a fixed-point vector 79 * version 2 or later. See the COPYING file in the top-level directory. 88 return status->no_signaling_nans; 93 * In IEEE 754-1985 this was implementation defined, but in IEEE 754-2008 [all …]
|
/qemu/libdecnumber/dpd/ |
H A D | decimal128.c | 1 /* Decimal 128-bit format module for the decNumber C Library. 29 02110-1301, USA. */ 31 /* ------------------------------------------------------------------ */ 32 /* Decimal 128-bit format module */ 33 /* ------------------------------------------------------------------ */ 41 /* ------------------------------------------------------------------ */ 66 /* ------------------------------------------------------------------ */ 67 /* decimal128FromNumber -- convert decNumber to decimal128 */ 82 /* ------------------------------------------------------------------ */ 91 uInt targar[4]={0,0,0,0}; /* target 128-bit */ in decimal128FromNumber() [all …]
|
/qemu/hw/cxl/ |
H A D | cxl-host.c | 11 #include "qemu/error-report.h" 16 #include "qapi/qapi-visit-machine.h" 23 #include "hw/pci-bridge/pci_expander_bridge.h" 34 for (target = object->targets; target; target = target->next) { in cxl_fixed_memory_window_config() 35 fw->num_targets++; in cxl_fixed_memory_window_config() 38 fw->enc_int_ways = cxl_interleave_ways_enc(fw->num_targets, errp); in cxl_fixed_memory_window_config() 43 if (object->size % (256 * MiB)) { in cxl_fixed_memory_window_config() 48 fw->size = object->size; in cxl_fixed_memory_window_config() 50 if (object->has_interleave_granularity) { in cxl_fixed_memory_window_config() 51 fw->enc_int_gran = in cxl_fixed_memory_window_config() [all …]
|
/qemu/accel/tcg/ |
H A D | tcg-accel-ops-icount.c | 4 * Copyright (c) 2003-2008 Fabrice Bellard 29 #include "qemu/main-loop.h" 30 #include "qemu/guest-random.h" 33 #include "tcg-accel-ops.h" 34 #include "tcg-accel-ops-icount.h" 35 #include "tcg-accel-ops-rr.h" 83 * Instructions, interrupts, and exceptions are processed in cpu-exec. in icount_handle_deadline() 114 g_assert(cpu->neg.icount_decr.u16.low == 0); in icount_prepare_for_run() 115 g_assert(cpu->icount_extra == 0); in icount_prepare_for_run() 119 cpu->icount_budget = MIN(icount_get_limit(), cpu_budget); in icount_prepare_for_run() [all …]
|
/qemu/include/fpu/ |
H A D | softfloat-types.h | 5 * IEC/IEEE Floating-point Arithmetic Package. Those parts of the code (and 9 * the SoftFloat-2a license 11 * GPL-v2-or-later 18 This C header file is part of the SoftFloat IEC/IEEE Floating-point 24 National Science Foundation under grant MIP-9311980. The original version 25 of this code was written as part of a project to build a fixed-point vector 77 * version 2 or later. See the COPYING file in the top-level directory. 86 * Software IEC/IEEE floating-point types. 102 uint64_t low; member 106 #define make_floatx80_init(exp, mant) { .low = mant, .high = exp } [all …]
|