/qemu/docs/system/ |
H A D | security.rst | 5 -------- 11 --------------------- 13 QEMU supports many different use cases, some of which have stricter security 18 Virtualization Use Case 21 The virtualization use case covers cloud and virtual private server (VPS) 23 use cases rely on hardware virtualization extensions to execute guest code 24 safely on the physical CPU at close-to-native speed. 29 - Guest 30 - User-facing interfaces (e.g. VNC, SPICE, WebSocket) 31 - Network protocols (e.g. NBD, live migration) [all …]
|
/qemu/ |
H A D | qemu-io.c | 5 * Copyright (c) 2003-2005 Silicon Graphics, Inc. 8 * See the COPYING file in the top-level directory. 18 #include "qemu/help-texts.h" 21 #include "qemu-io.h" 22 #include "qemu/error-report.h" 23 #include "qemu/main-loop.h" 26 #include "qemu/config-file.h" 33 #include "system/block-backend.h" 37 #include "qemu-version.h" 44 /* qemu-io commands passed using -c */ [all …]
|
/qemu/scsi/ |
H A D | utils.c | 33 case 0: in scsi_cdb_xfer() 35 case 1: in scsi_cdb_xfer() 36 case 2: in scsi_cdb_xfer() 38 case 4: in scsi_cdb_xfer() 40 case 5: in scsi_cdb_xfer() 43 return -1; in scsi_cdb_xfer() 49 uint8_t *buf = cmd->buf; in scsi_cmd_lba() 53 case 0: in scsi_cmd_lba() 56 case 1: in scsi_cmd_lba() 57 case 2: in scsi_cmd_lba() [all …]
|
/qemu/hw/ipmi/ |
H A D | ipmi.c | 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 #include "hw/qdev-properties.h" 44 case IPMI_RESET_CHASSIS: in ipmi_do_hw_op() 51 case IPMI_POWEROFF_CHASSIS: in ipmi_do_hw_op() 58 case IPMI_SEND_NMI: in ipmi_do_hw_op() 62 /* We don't care what CPU we use. */ in ipmi_do_hw_op() 66 case IPMI_SHUTDOWN_VIA_ACPI_OVERTEMP: in ipmi_do_hw_op() 73 case IPMI_POWERCYCLE_CHASSIS: in ipmi_do_hw_op() 74 case IPMI_PULSE_DIAG_IRQ: in ipmi_do_hw_op() [all …]
|
/qemu/target/xtensa/ |
H A D | op_helper.c | 5 * Redistribution and use in source and binary forms, with or without 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 #include "exec/helper-proto.h" 31 #include "exec/page-protection.h" 32 #include "qemu/host-utils.h" 44 env->ccount_time = now; in HELPER() 45 env->sregs[CCOUNT] = env->ccount_base + in HELPER() 46 (uint32_t)clock_ns_to_ticks(cpu->clock, now - env->time_base); in HELPER() 54 env->ccount_base += v - env->sregs[CCOUNT]; in HELPER() [all …]
|
H A D | xtensa-semi.c | 5 * Redistribution and use in source and binary forms, with or without 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 #include "chardev/char-fe.h" 31 #include "exec/helper-proto.h" 101 case 0: return 0; in errno_h2g() 102 case EPERM: return TARGET_EPERM; in errno_h2g() 103 case ENOENT: return TARGET_ENOENT; in errno_h2g() 104 case ESRCH: return TARGET_ESRCH; in errno_h2g() 105 case EINTR: return TARGET_EINTR; in errno_h2g() [all …]
|
/qemu/qobject/ |
H A D | qjson.c | 10 * See the COPYING.LIB file in the top-level directory. 16 #include "qobject/json-parser.h" 17 #include "qobject/json-writer.h" 36 assert(!s->result || !s->err); in consume_json() 38 if (s->result) { in consume_json() 39 qobject_unref(s->result); in consume_json() 40 s->result = NULL; in consume_json() 41 error_setg(&s->err, "Expecting at most one JSON value"); in consume_json() 43 if (s->err) { in consume_json() 48 s->result = json; in consume_json() [all …]
|
/qemu/target/arm/ |
H A D | internals.h | 2 * QEMU ARM CPU -- internal functions and types 18 * <http://www.gnu.org/licenses/gpl-2.0.html> 31 #include "accel/tcg/tb-cpu-state.h" 33 #include "tcg/tcg-gvec-desc.h" 36 #include "cpu-features.h" 50 return EX_TBFLAG_ANY(env->hflags, MMUIDX); in arm_env_mmu_index() 55 /* Return true if this exception number represents a QEMU-internal in excp_is_internal() 69 * ARMv8.6 and later CPUs architecturally must use a 1GHz timer; before 73 * We will use the back-compat value: 74 * - for QEMU CPU types added before we standardized on 1GHz [all …]
|
/qemu/hw/char/ |
H A D | stm32f2xx_usart.c | 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 28 #include "hw/qdev-properties.h" 29 #include "hw/qdev-properties-system.h" 39 if (!(s->usart_sr & USART_SR_RXNE)) { in stm32f2xx_usart_can_receive() 48 uint32_t mask = s->usart_sr & s->usart_cr1; in stm32f2xx_update_irq() 51 qemu_set_irq(s->irq, 1); in stm32f2xx_update_irq() 53 qemu_set_irq(s->irq, 0); in stm32f2xx_update_irq() 62 if (!(s->usart_cr1 & USART_CR1_UE && s->usart_cr1 & USART_CR1_RE)) { in stm32f2xx_usart_receive() 63 /* USART not enabled - drop the chars */ in stm32f2xx_usart_receive() [all …]
|
H A D | shakti_uart.c | 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 #include "hw/qdev-properties.h" 28 #include "hw/qdev-properties-system.h" 36 case SHAKTI_UART_BAUD: in shakti_uart_read() 37 return s->uart_baud; in shakti_uart_read() 38 case SHAKTI_UART_RX: in shakti_uart_read() 39 qemu_chr_fe_accept_input(&s->chr); in shakti_uart_read() 40 s->uart_status &= ~SHAKTI_UART_STATUS_RX_NOT_EMPTY; in shakti_uart_read() 41 return s->uart_rx; in shakti_uart_read() [all …]
|
H A D | grlib_apbuart.c | 4 * SPDX-License-Identifier: MIT 6 * Copyright (c) 2010-2024 AdaCore 11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 #include "hw/qdev-properties.h" 30 #include "hw/qdev-properties-system.h" 34 #include "chardev/char-fe.h" 101 return uart->current < uart->len; in uart_data_to_read() 108 if (uart->len == 0) { in uart_pop() 109 uart->status &= ~UART_DATA_READY; in uart_pop() [all …]
|
/qemu/system/ |
H A D | rtc.c | 4 * Copyright (c) 2003-2020 QEMU contributors 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 28 #include "qemu/error-report.h" 44 static int rtc_host_datetime_offset = -1; /* valid & used only with 53 case QEMU_CLOCK_REALTIME: in qemu_ref_timedate() 54 value -= rtc_realtime_clock_offset; in qemu_ref_timedate() 56 case QEMU_CLOCK_VIRTUAL: in qemu_ref_timedate() 59 case QEMU_CLOCK_HOST: in qemu_ref_timedate() 61 value -= rtc_host_datetime_offset; in qemu_ref_timedate() [all …]
|
/qemu/ui/ |
H A D | input-barrier.c | 2 * SPDX-License-Identifier: GPL-2.0-or-later 5 * See the COPYING file in the top-level directory. 9 * - Enable SSL 10 * - Manage SetOptions/ResetOptions commands 15 #include "qemu/main-loop.h" 19 #include "io/channel-socket.h" 22 #include "ui/vnc_keysym.h" /* use name2keysym from VNC as we use X11 values */ 25 #include "input-barrier.h" 27 #define TYPE_INPUT_BARRIER "input-barrier" 89 /* keycode is optional, if it is not provided use keyid */ in input_barrier_to_qcode() [all …]
|
H A D | sdl2-2d.c | 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 DisplaySurface *surf = scon->surface; in sdl2_2d_update() 38 assert(!scon->opengl); in sdl2_2d_update() 40 if (!scon->texture) { in sdl2_2d_update() 51 SDL_UpdateTexture(scon->texture, &rect, in sdl2_2d_update() 54 SDL_RenderClear(scon->real_renderer); in sdl2_2d_update() 55 SDL_RenderCopy(scon->real_renderer, scon->texture, NULL, NULL); in sdl2_2d_update() 56 SDL_RenderPresent(scon->real_renderer); in sdl2_2d_update() 63 DisplaySurface *old_surface = scon->surface; in sdl2_2d_switch() [all …]
|
/qemu/target/sh4/ |
H A D | gdbstub.c | 4 * Copyright (c) 2003-2005 Fabrice Bellard 24 /* Hint: Use "set architecture sh4" in GDB to see fpu registers */ 25 /* FIXME: We should use XML for this. */ 32 case 0 ... 7: in superh_cpu_gdb_read_register() 33 if ((env->sr & (1u << SR_MD)) && (env->sr & (1u << SR_RB))) { in superh_cpu_gdb_read_register() 34 return gdb_get_regl(mem_buf, env->gregs[n + 16]); in superh_cpu_gdb_read_register() 36 return gdb_get_regl(mem_buf, env->gregs[n]); in superh_cpu_gdb_read_register() 38 case 8 ... 15: in superh_cpu_gdb_read_register() 39 return gdb_get_regl(mem_buf, env->gregs[n]); in superh_cpu_gdb_read_register() 40 case 16: in superh_cpu_gdb_read_register() [all …]
|
/qemu/accel/tcg/ |
H A D | tcg-accel-ops.c | 6 * Copyright (c) 2003-2008 Fabrice Bellard 12 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 #include "system/accel-ops.h" 33 #include "qemu/main-loop.h" 34 #include "qemu/guest-random.h" 38 #include "exec/tb-flush.h" 39 #include "exec/translation-block.h" 45 #include "tcg-accel-ops.h" 46 #include "tcg-accel-ops-mttcg.h" [all …]
|
/qemu/hw/vfio/ |
H A D | device.c | 10 * the COPYING file in the top-level directory. 12 * Based on qemu-kvm device-assignment: 18 * Copyright (C) 2008, IBM, Muli Ben-Yehuda (muli@il.ibm.com) 24 #include "hw/vfio/vfio-device.h" 29 #include "qemu/error-report.h" 32 #include "vfio-helpers.h" 38 * We want to differentiate hot reset of multiple in-use devices vs 39 * hot reset of a single in-use device. VFIO_DEVICE_RESET will already 40 * handle the case of doing hot resets when there is only a single 41 * device per bus. The in-use here refers to how many VFIODevices are [all …]
|
/qemu/hw/misc/ |
H A D | stm32f2xx_syscfg.c | 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 46 s->syscfg_memrmp = 0x00000000; in stm32f2xx_syscfg_reset() 47 s->syscfg_pmc = 0x00000000; in stm32f2xx_syscfg_reset() 48 s->syscfg_exticr1 = 0x00000000; in stm32f2xx_syscfg_reset() 49 s->syscfg_exticr2 = 0x00000000; in stm32f2xx_syscfg_reset() 50 s->syscfg_exticr3 = 0x00000000; in stm32f2xx_syscfg_reset() 51 s->syscfg_exticr4 = 0x00000000; in stm32f2xx_syscfg_reset() 52 s->syscfg_cmpcr = 0x00000000; in stm32f2xx_syscfg_reset() 63 case SYSCFG_MEMRMP: in stm32f2xx_syscfg_read() [all …]
|
/qemu/hw/net/fsl_etsec/ |
H A D | miim.c | 4 * Copyright (c) 2011-2013 AdaCore 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 38 phy = (etsec->regs[MIIMADD].value >> 8) & 0x1F; in miim_read_cycle() 40 addr = etsec->regs[MIIMADD].value & 0x1F; in miim_read_cycle() 43 case MII_BMCR: in miim_read_cycle() 44 value = etsec->phy_control; in miim_read_cycle() 46 case MII_BMSR: in miim_read_cycle() 47 value = etsec->phy_status; in miim_read_cycle() 49 case MII_STAT1000: in miim_read_cycle() [all …]
|
/qemu/hw/i386/xen/ |
H A D | xen_platform.c | 4 * Copyright (c) 2003-2004 Intel Corp. 10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 34 #include "system/block-backend.h" 35 #include "qemu/error-report.h" 74 #define TYPE_XEN_PLATFORM "xen-platform" 82 if (val == '\n' || s->log_buffer_off == sizeof(s->log_buffer) - 1) { in OBJECT_DECLARE_SIMPLE_TYPE() 84 s->log_buffer[s->log_buffer_off] = 0; in OBJECT_DECLARE_SIMPLE_TYPE() 85 trace_xen_platform_log(s->log_buffer); in OBJECT_DECLARE_SIMPLE_TYPE() 86 s->log_buffer_off = 0; in OBJECT_DECLARE_SIMPLE_TYPE() [all …]
|
/qemu/tests/multiboot/ |
H A D | libc.c | 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 30 while (n--) { in memcpy() 53 int i = sizeof(buf) - 2; in print_num() 56 buf[i--] = digits[value % base]; in print_num() 101 case 'x': in printf() 102 case 'p': in printf() 105 case 'd': in printf() 106 case 'i': in printf() 107 case 'u': in printf() [all …]
|
/qemu/hw/intc/ |
H A D | ppc-uic.c | 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 #include "hw/intc/ppc-uic.h" 28 #include "hw/qdev-properties.h" 58 ir = uic->uicsr & uic->uicer & (~uic->uiccr); in ppcuic_trigger_irq() 59 cr = uic->uicsr & uic->uicer & uic->uiccr; in ppcuic_trigger_irq() 63 __func__, uic->uicsr, uic->uicer, uic->uiccr, in ppcuic_trigger_irq() 64 uic->uicsr & uic->uicer, ir, cr); in ppcuic_trigger_irq() 67 qemu_irq_raise(uic->output_int); in ppcuic_trigger_irq() 70 qemu_irq_lower(uic->output_int); in ppcuic_trigger_irq() [all …]
|
/qemu/hw/timer/ |
H A D | i8254_common.c | 2 * QEMU 8253/8254 - common bits of emulated and KVM kernel model 4 * Copyright (c) 2003-2004 Fabrice Bellard 10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 38 PITChannelState *s = &pit->channels[channel]; in pit_set_gate() 41 c->set_channel_gate(pit, s, val); in pit_set_gate() 50 d = muldiv64(current_time - s->count_load_time, PIT_FREQ, in pit_get_out() 52 switch (s->mode) { in pit_get_out() 54 case 0: in pit_get_out() 55 case 1: in pit_get_out() [all …]
|
/qemu/docs/devel/ |
H A D | control-flow-integrity.rst | 4 Control-Flow Integrity (CFI) 7 This document describes the current control-flow integrity (CFI) mechanism in 12 ------ 16 The type used in QEMU is a forward-edge control-flow integrity that ensures 21 This type of CFI is entirely compiler-based and relies on the compiler knowing 28 In case of a CFI violation (i.e. call to a non-compatible function) QEMU will 32 ----------------- 34 NOTE: CFI requires the use of link-time optimization. Therefore, when CFI is 41 Given the use of LTO, a version of AR that supports LLVM IR is required. 44 AR=llvm-ar-9 CC=clang-9 CXX=clang++-9 /path/to/configure --enable-cfi [all …]
|
/qemu/hw/ssi/ |
H A D | bcm2835_spi.c | 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 37 if (s->cs & BCM2835_SPI_CS_INTD && s->cs & BCM2835_SPI_CS_DONE) { in bcm2835_spi_update_int() 41 if (s->cs & BCM2835_SPI_CS_INTR && s->cs & BCM2835_SPI_CS_RXR) { in bcm2835_spi_update_int() 44 qemu_set_irq(s->irq, do_interrupt); in bcm2835_spi_update_int() 50 if (!fifo8_is_empty(&s->rx_fifo)) { in bcm2835_spi_update_rx_flags() 51 s->cs |= BCM2835_SPI_CS_RXD; in bcm2835_spi_update_rx_flags() 53 s->cs &= ~BCM2835_SPI_CS_RXD; in bcm2835_spi_update_rx_flags() 57 if (fifo8_is_full(&s->rx_fifo)) { in bcm2835_spi_update_rx_flags() 58 s->cs |= BCM2835_SPI_CS_RXF; in bcm2835_spi_update_rx_flags() [all …]
|