/qemu/docs/ |
H A D | igd-assign.txt | 4 Using vfio-pci, we can passthrough Intel Graphics Device (IGD) to guest, either 8 memory regions other than BARs. Special handling is required to make them work 15 Certain guest software also depends on following conditions to work: 22 | #3 IGD is assigned to BDF 00:02.0 | | | * | * | 24 | #5 Host's VGA ranges are mapped to IGD | | | * | | 27 ^1 Though i915 driver is able to mock a OpRegion, it is still recommended to 28 use the VBT copied from host OpRegion to prevent incorrect configuration. 30 For #1, the "x-igd-opregion=on" option exposes a copy of host IGD OpRegion to 34 to guest. Currently this is only supported on i440fx machines as there is 36 lead to unexpected behavior. [all …]
|
H A D | nvdimm.txt | 15 way to create a vNVDIMM device at startup time is done via the 27 - "slots=$N" should be equal to or larger than the total amount of 30 - "maxmem=$MAX_SIZE" should be equal to or larger than the total size 36 $NVDIMM_SIZE on a file $PATH. All accesses to the virtual NVDIMM device go 37 to the file $PATH. 40 "share=on", then guest writes will be applied to the backend 42 "share=on", then above writes will be visible to it as well. If 43 "share=off", then guest writes won't be applied to the backend 44 file and thus will be invisible to other guests. 55 persistent writes. Linux guest drivers set the device to read-only when this [all …]
|
H A D | glossary.rst | 13 A specific API used to accelerate execution of guest instructions. It can be 28 options page)<sec_005finvocation>` are using them to implement disks for a 34 Control Flow Integrity is a hardening technique used to prevent exploits 41 In QEMU, a device is a piece of hardware visible to the guest. Examples include 44 QEMU is able to emulate a CPU, and all the hardware interacting with it, 59 QEMU implements a `gdb server <GDB usage>`, allowing gdb to attach to it and 69 to build QEMU. 74 The `QEMU Guest Agent <qemu-ga>` is a daemon intended to be run within virtual 75 machines. It provides various services to help QEMU to interact with it. 99 The formal definition of an hypervisor is a program or API than can be used to [all …]
|
/qemu/docs/system/riscv/ |
H A D | sifive_u.rst | 13 * Up to 4 U54 / U34 cores 31 With QEMU, one can create a machine with 1 E51 core and up to 4 U54 cores. It 32 is also possible to create a 32-bit variant with the same peripherals except 33 that the RISC-V cores are replaced by the 32-bit ones (E31 and U34), to help 40 which it passes to the guest, if there is no ``-dtb`` option. This provides 44 hardware, as some of the devices are not modeled by QEMU and trying to access 47 If users want to provide their own DTB, they can use the ``-dtb`` option. 75 The current usage is only used to store the serial number of the board at 77 it to generate a unique MAC address to be programmed to the on-chip GEM 79 and connected to the same subnet, they all have the same MAC address hence [all …]
|
/qemu/docs/system/s390x/ |
H A D | bootdevices.rst | 8 have to explicitly specify the disk where you want to boot from (or "IPL" from, 12 device where you want to boot from with the ``bootindex`` property, for 18 Multiple devices may have a bootindex. The lowest bootindex is assigned to the 19 device to IPL first. If the IPL fails for the first, the device with the second 21 remaining boot devices to try. 23 For booting from a CD-ROM ISO image (which needs to include El-Torito boot 24 information in order to be bootable), it is recommended to specify a ``scsi-cd`` 31 Note that you really have to use the ``bootindex`` property to select the 44 be incomplete, so that it might fail to detect a bootable device in many cases. 45 It is really recommended to always specify the boot device with the [all …]
|
/qemu/contrib/ivshmem-client/ |
H A D | ivshmem-client.h | 13 * This file provides helper to implement an ivshmem client. It is used 14 * on the host to ask QEMU to send an interrupt to an ivshmem PCI device in a 15 * guest. QEMU also implements an ivshmem client similar to this one, they both 16 * connect to an ivshmem server. 35 * Each time a client connects to an ivshmem server, it is advertised to 38 * structure to store the infos of this peer. 40 * This structure is also used to store the information of our own 64 * This structure stores all information related to our client: the name 70 char unix_sock_path[PATH_MAX]; /**< path to unix sock */ 80 bool verbose; /**< true to enable debug */ [all …]
|
/qemu/docs/system/ |
H A D | generic-loader.rst | 10 The 'loader' device allows the user to load multiple images or values into 15 The loader device allows memory values to be set from the command line. This 22 The address to store the data in. 25 The value to be written to the address. The maximum size of the data 33 Set to true if the data to be stored on the guest should be written 34 as big endian data. The default is to write little endian data. 41 to specify any values in any format supported. By default the values 42 will be parsed as decimal. To use hex values the user should prefix the number 45 An example of loading value 0x8000000e to address 0xfd1a0104 is:: 52 The loader device allows the CPU's PC to be set from the command line. This [all …]
|
H A D | cpu-models-x86.rst.inc | 5 CPU models on x86 hosts. The goals are to maximise performance, while 10 Two ways to configure CPU models with QEMU / KVM 15 This passes the host CPU model features, model, stepping, exactly to 19 stable CPU is exposed to the guest across hosts. This is the 20 recommended CPU to use, provided live migration is not required. 25 typically refer to specific generations of hardware released by 26 Intel and AMD. These allow the guest VMs to have a degree of 30 In both cases, it is possible to optionally add or remove individual CPU 31 features, to alter what is presented to the guest by default. 33 Libvirt supports a third way to configure CPU models known as "Host [all …]
|
/qemu/docs/devel/ |
H A D | style.rst | 9 Please use the script checkpatch.pl in the scripts directory to check 30 Spaces of course are superior to tabs because: 32 * You have just one way to specify whitespace, not two. Ambiguity breeds 34 * The confusion surrounding 'use tabs to indent, spaces to justify' is gone. 35 * Tab indents push your code to the right, making your screen seriously 38 to use tab stops of eight positions. 54 When breaking up a long line to fit within line width, we need a proper indent 91 Lines should be 80 characters; try not to make them longer. 93 Sometimes it is hard to do, especially when dealing with QEMU subsystems 95 is obviously less readable and more awkward, prefer not to wrap it; better [all …]
|
H A D | s390-dasd-ipl.rst | 18 IPL ccw it read the 24-bytes of IPL1 to be read into memory starting at 22 and the TIC (Transfer In Channel) will transfer control to the channel 26 NOTE: The ccws in IPL1 are defined by the architecture to be format 0. 32 IPL2 is to find and load either the operating system or a small program that 34 the real operating system is loaded into memory and we are ready to hand 35 control over to the guest operating system. At this point the guest 37 need to function. 42 address points to the guest operating system code to execute at the end of 45 NOTE: The ccws in IPL2 are defined by the architecture to be format 0. 50 psw's instruction address will point to the location in memory where we want [all …]
|
H A D | kconfig.rst | 10 a POWER and an x86 board can run the same code to emulate a PCI network 12 can run the same code to emulate a SCSI disk while using different 14 disk to their guests, but with three different virtio guest interfaces. 19 anything that is not needed to support a particular target is culled. 21 QEMU uses a simple domain-specific language to describe the dependencies 26 to list the components they need, and the compiled executable will 28 user can add to that board; 33 configurable and it is easy to drop unnecessary (or otherwise unwanted) 34 code to make a leaner binary. 40 Unlike Linux, there is no user interface to edit the configuration, which [all …]
|
H A D | maintainers.rst | 8 working in their spare time to employees who work on the project as 13 - tending to the long term health of their area 16 They are also human and subject to the same pressures as everyone else 18 to project's :ref:`code_of_conduct` and should also be exemplars of 31 The file also describes the status of the area of code to give an idea 41 - Someone is actually paid to look after this. 45 - It has a maintainer but they don't have time to do 52 Please bear in mind that even if someone is paid to support something 53 it does not mean they are paid to support you. This is open source and 63 is welcome to review code on the mailing list getting added to the [all …]
|
H A D | submitting-a-pull-request.rst | 6 QEMU welcomes contributions of code, but we generally expect these to be 7 sent as simple patch emails to the mailing list (see our page on 10 will need to submit pull requests, although occasionally for a large 11 patch series we might ask a submitter to send a pull request. This page 14 A good rule of thumb is not to send a pull request unless somebody asks 15 you to. 18 threaded as follow-ups to the pull request itself. The simplest way to 19 do this is to use ``git format-patch --cover-letter`` to create the 20 emails, and then edit the cover letter to include the pull request 26 helps people to filter in or out the resulting emails (especially useful [all …]
|
/qemu/include/qemu/ |
H A D | timer.h | 35 * real time sources. It will continue to run when the virtual machine 37 * undergo (e.g. due to NTP). 43 * machine is running. It is used to increase @QEMU_CLOCK_VIRTUAL 59 * Each attribute corresponds to one bit. Attributes modify the processing 171 * to interrupt any poll using qemu_notify/aio_notify 186 * with a clock (as opposed to just the default one) 187 * in nanoseconds, or -1 if no timer is set to expire. 198 * list linked to the clock, or qemu_notify() if none. 205 * @enabled: true to enable, false to disable 208 * Disabling the clock will wait for related timerlists to stop [all …]
|
H A D | cutils.h | 9 * to the given exponent of 10. 18 * to the given exponent of 2. 24 * @buf: buffer to copy string into 26 * @str: string to copy 33 * This function is similar to strncpy(), but avoids two of that 43 * @buf: buffer to copy string into 45 * @str: string to copy 46 * @pad: character to pad the remainder of @buf with 58 * @s: string to concatenate to @buf 60 * Append a copy of @s to the string already in @buf, but do not [all …]
|
/qemu/include/block/ |
H A D | aio.h | 84 * @timeout: maximum duration to wait, in nanoseconds 86 * Wait for file descriptors to become ready and place them on ready_list. 98 * Tell aio_poll() when to stop userspace polling early because ->wait() 133 /* Used by AioContext users to protect from multi-threaded access. */ 138 * This is essential to avoid performing additions and removal 147 /* The list of AIO handlers to be deleted. Protected by ctx->list_lock. */ 150 /* Used to avoid unnecessary event_notifier_set calls in aio_notify; 158 * skipped. If it is non-zero, you may need to wake up a concurrent 163 * between a call to aio_ctx_prepare and the next call to aio_ctx_check. 164 * Bits 1-31 simply count the number of active calls to aio_poll [all …]
|
/qemu/docs/specs/ |
H A D | ivshmem-spec.rst | 5 The Inter-VM shared memory device (ivshmem) is designed to share a 7 and the host. In order for all guests to be able to pick up the 9 said memory to the guest as a PCI BAR. 35 There are two ways to use this device: 38 you have access to the shared memory in the guest and can use it as 41 - If you additionally need the capability for peers to interrupt each 42 other, you need BAR0 and BAR1. You will most likely want to write a 43 kernel driver to handle interrupts. Requires the device to be 50 IVPosition register (described below) to become non-negative before 53 Revision 0 of the device is not capable to tell guest software whether [all …]
|
/qemu/crypto/ |
H A D | der.h | 30 /* Simple decoder used to parse DER encoded rsa keys. */ 43 * @data: pointer to address of input data 44 * @dlen: pointer to length of input data 47 * @opaque: parameter passed to cb 51 * Returns: On success, *data points to rest data, and *dlen 52 * will be set to the rest length of data, if cb is not NULL, must 53 * return 0 to make decode success, at last, the length of the data 67 * @data: pointer to address of input data 68 * @dlen: pointer to length of input data 71 * @opaque: parameter passed to cb [all …]
|
/qemu/migration/ |
H A D | postcopy-ram.h | 18 /* Return true if the host supports everything we need to do postcopy-ram */ 23 * Make all of RAM sensitive to accesses to areas that haven't yet been written 24 * and wire up anything necessary to deal with it. 29 * Initialise postcopy-ram, setting the RAM to a state where we can go into 30 * postcopy later; must be called prior to any precopy. 41 * Userfault requires us to mark RAM as NOHUGEPAGE prior to discard 53 * Called by the bitmap code for each chunk to discard. 54 * May send a discard message, may just leave it queued to 57 * RAM block passed to postcopy_discard_send_init() (length=1 is one page) 71 * to use other postcopy_ routines to allocate. [all …]
|
/qemu/include/hw/hyperv/ |
H A D | dynmem-proto.h | 24 * Changed to 0.1 on 2009/03/25 25 * Changes to 0.2 on 2009/05/14 26 * Changes to 0.3 on 2009/12/03 27 * Changed to 1.0 on 2011/04/05 28 * Changed to 2.0 on 2019/12/10 103 * To support guests that may have alignment 163 * Version negotiation message. Sent from the guest to the host. 164 * The guest is free to try different versions until the host 169 * reservedz: Reserved field, set to zero. 180 * Version response message; Host to Guest and indicates [all …]
|
/qemu/docs/system/i386/ |
H A D | sgx.rst | 8 for memory accesses in order to provide security accesses for sensitive 9 applications and data. SGX allows an application to use its particular 11 and integrity even in the presence of privileged malware. Accesses to the 18 SGX feature is exposed to guest via SGX CPUID. Looking at SGX CPUID, we can 19 report the same CPUID info to guest as on host for most of SGX CPUID. With 20 reporting the same CPUID guest is able to use full capacity of SGX, and KVM 21 doesn't need to emulate those info. 23 The guest's EPC base and size are determined by QEMU, and KVM needs QEMU to 24 notify such info to it before it can initialize SGX for guest. 29 By default, QEMU does not assign EPC to a VM, i.e. fully enabling SGX in a VM [all …]
|
/qemu/include/crypto/ |
H A D | akcipher.h | 44 * @key: buffer to store the key 62 * @in: plaintext pending to be encrypted 63 * @in_len: length of plaintext, less or equal to the size reported 64 * by a call to qcrypto_akcipher_max_plaintext_len() 65 * @out: buffer to store the ciphertext 66 * @out_len: length of ciphertext, less or equal to the size reported 67 * by a call to qcrypto_akcipher_max_ciphertext_len() 82 * @in: ciphertext to be decrypted 83 * @in_len: the length of ciphertext, less or equal to the size reported 84 * by a call to qcrypto_akcipher_max_ciphertext_len() [all …]
|
/qemu/include/hw/ |
H A D | clock.h | 26 * Argument to ClockCallback functions indicating why the callback 28 * is used to specify which events are interesting when the callback 33 ClockPreUpdate = 2, /* Clock period is about to update */ 41 * + periods from 2^-32ns up to 4seconds 51 * macro helpers to convert to hertz / nanosecond 66 * @children: list of clocks connected to this one (it is their source) 67 * @sibling: structure used to form a clock list 84 /* Ratio of the parent clock to run the child clocks at */ 95 * vmstate description entry to be added in device vmsd. 121 * Helper function to create a new clock and parent it to @parent. There is no [all …]
|
/qemu/docs/interop/ |
H A D | live-block-operations.rst | 15 be used to manipulate disk image chains to accomplish certain tasks, 19 to another target image; and point-in-time (and incremental) backups of 21 primitives, and some (non-exhaustive list of) examples to illustrate 50 [B]. And live QEMU is currently writing to image [B], consequently, it 51 is also referred to as the "active layer". 53 There are two kinds of terminology that are common when referring to 57 above, image [A] can be referred to as 'base', and image [B] as 63 to as the backing file, and image [B] as overlay. 82 .. note:: Once the 'stream' operation has finished, three things to 85 (a) QEMU rewrites the backing chain to remove [all …]
|
/qemu/include/qapi/ |
H A D | visitor.h | 23 * format. QAPI objects can contain references to other QAPI objects, 25 * functions to walk these graphs. This file represents the interface 51 * call visit_complete() (useful only for output visits, but safe to 53 * user should call visit_free() to clean up resources. It is okay to 89 * visitor, then *@obj will be set to NULL for pointer types, and left 122 * in order to perform a deep clone of @src. 125 * generated for going from the derived type to the base type: 178 * It is also possible to use the visitors to do a virtual walk, where 180 * about what needs to be walked are made by the calling code, and 184 * Thus, a virtual walk corresponding to '{ "list": [1, 2] }' looks [all …]
|