qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] Enhanced Documentation


From: Stefan Weil
Subject: [Qemu-devel] [PATCH] Enhanced Documentation
Date: Sun, 30 Apr 2006 22:57:02 +0200
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050716)

Here are three patches which enhance and fix the existing QEMU documentation.

1. Makefile: added rules to build qemu-doc and qemu-tech in info and dvi format.
  I did not add a dependency which calls these rules automatically, so run
     make qemu-doc.info qemu-tech.info qemu-doc.dvi qemu-tech.dvi
  to build the new targets.

2. qemu-doc.texi, qemu-tech.texi:
  * fixed for generation of info files
  * fixed long lines for generation of dvi / ps / pdf files
  * fixed html title
  * added menus for html and info
  * added table of contents for html and dvi
  * added index (still empty) for html, info and dvi
  * fixed minor spelling bug (reasonnable)

All documentation formats should build now without error messages
(my test on Debian Linux passed).

Regards
Stefan Weil


Index: qemu-doc.texi
===================================================================
RCS file: /sources/qemu/qemu/qemu-doc.texi,v
retrieving revision 1.85
diff -u -b -B -u -r1.85 qemu-doc.texi
--- qemu-doc.texi       23 Apr 2006 21:57:03 -0000      1.85
+++ qemu-doc.texi       30 Apr 2006 20:38:33 -0000
@@ -1,16 +1,46 @@
 \input texinfo @c -*- texinfo -*-
address@hidden %**start of header
address@hidden qemu-doc.info
address@hidden QEMU CPU Emulator User Documentation
address@hidden 0
address@hidden 0
address@hidden %**end of header
 
 @iftex
address@hidden QEMU CPU Emulator User Documentation
 @titlepage
 @sp 7
address@hidden @titlefont{QEMU CPU Emulator User Documentation}
address@hidden @titlefont{QEMU CPU Emulator}
address@hidden 1
address@hidden @titlefont{User Documentation}
 @sp 3
 @end titlepage
 @end iftex
 
address@hidden
address@hidden Top
address@hidden
+
address@hidden
+* Introduction::
+* Installation::
+* QEMU PC System emulator::
+* QEMU System emulator for non PC targets::
+* QEMU Linux User space emulator::
+* compilation:: Compilation from the sources
+* Index::
address@hidden menu
address@hidden ifnottex
+
address@hidden
+
address@hidden Introduction
 @chapter Introduction
 
address@hidden
+* intro_features:: Features
address@hidden menu
+
address@hidden intro_features
 @section Features
 
 QEMU is a FAST! processor emulator using dynamic translation to
@@ -52,27 +82,53 @@
 
 For user emulation, x86, PowerPC, ARM, MIPS, and Sparc32/64 CPUs are supported.
 
address@hidden Installation
 @chapter Installation
 
 If you want to compile QEMU yourself, see @ref{compilation}.
 
address@hidden
+* install_linux::   Linux
+* install_windows:: Windows
+* install_mac::     Macintosh
address@hidden menu
+
address@hidden install_linux
 @section Linux
 
 If a precompiled package is available for your distribution - you just
 have to install it. Otherwise, see @ref{compilation}.
 
address@hidden install_windows
 @section Windows
 
 Download the experimental binary installer at
address@hidden://www.free.oszoo.org/download.html}.
address@hidden://www.free.oszoo.org/@/download.html}.
 
address@hidden install_mac
 @section Mac OS X
 
 Download the experimental binary installer at
address@hidden://www.free.oszoo.org/download.html}.
address@hidden://www.free.oszoo.org/@/download.html}.
 
address@hidden QEMU PC System emulator
 @chapter QEMU PC System emulator
 
address@hidden
+* pcsys_introduction:: Introduction
+* pcsys_quickstart::   Quick Start
+* sec_invocation::     Invocation
+* pcsys_keys::         Keys
+* pcsys_monitor::      QEMU Monitor
+* disk_images::        Disk Images
+* pcsys_network::      Network emulation
+* direct_linux_boot::  Direct Linux Boot
+* pcsys_usb::          USB emulation
+* gdb_usage::          GDB usage
+* pcsys_os_specific::  Target OS specific information
address@hidden menu
+
address@hidden pcsys_introduction
 @section Introduction
 
 @c man begin DESCRIPTION
@@ -118,6 +174,7 @@
 
 @c man end
 
address@hidden pcsys_quickstart
 @section Quick Start
 
 Download and uncompress the linux image (@file{linux.img}) and type:
@@ -147,14 +204,14 @@
 
 @item -fda file
 @item -fdb file
-Use @var{file} as floppy disk 0/1 image (@xref{disk_images}). You can
+Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
 use the host floppy by using @file{/dev/fd0} as filename.
 
 @item -hda file
 @item -hdb file
 @item -hdc file
 @item -hdd file
-Use @var{file} as hard disk 0, 1, 2 or 3 image (@xref{disk_images}).
+Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
 
 @item -cdrom file
 Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and and
@@ -168,7 +225,7 @@
 @item -snapshot
 Write to temporary files instead of disk image files. In this case,
 the raw disk image you use is not written back. You can however force
-the write back by pressing @key{C-a s} (@xref{disk_images}). 
+the write back by pressing @key{C-a s} (@pxref{disk_images}). 
 
 @item -m megs
 Set virtual RAM size to @var{megs} megabytes. Default is 128 MB.
@@ -297,9 +354,12 @@
 Example:
 @example
 # launch a first QEMU instance
-qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,listen=:1234
-# connect the VLAN 0 of this instance to the VLAN 0 of the first instance
-qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net 
socket,connect=127.0.0.1:1234
+qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
+               -net socket,listen=:1234
+# connect the VLAN 0 of this instance to the VLAN 0
+# of the first instance
+qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
+               -net socket,connect=127.0.0.1:1234
 @end example
 
 @item -net socket[,vlan=n][,fd=h][,mcast=maddr:port]
@@ -321,17 +381,22 @@
 Example:
 @example
 # launch one QEMU instance
-qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net 
socket,mcast=230.0.0.1:1234
+qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
+               -net socket,mcast=230.0.0.1:1234
 # launch another QEMU instance on same "bus"
-qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net 
socket,mcast=230.0.0.1:1234
+qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
+               -net socket,mcast=230.0.0.1:1234
 # launch yet another QEMU instance on same "bus"
-qemu linux.img -net nic,macaddr=52:54:00:12:34:58 -net 
socket,mcast=230.0.0.1:1234
+qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
+               -net socket,mcast=230.0.0.1:1234
 @end example
 
 Example (User Mode Linux compat.):
 @example
-# launch QEMU instance (note mcast address selected is UML's default)
-qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net 
socket,mcast=239.192.168.1:1102
+# launch QEMU instance (note mcast address selected
+# is UML's default)
+qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
+               -net socket,mcast=239.192.168.1:1102
 # launch UML
 /path/to/linux ubd0=/path/to/root_fs eth0=mcast
 @end example
@@ -464,7 +529,7 @@
 non graphical mode.
 
 @item -s
-Wait gdb connection to port 1234 (@xref{gdb_usage}). 
+Wait gdb connection to port 1234 (@pxref{gdb_usage}). 
 @item -p port
 Change gdb connection port.
 @item -S
@@ -487,6 +552,7 @@
 
 @c man end
 
address@hidden pcsys_keys
 @section Keys
 
 @c man begin OPTIONS
@@ -535,9 +601,6 @@
 
 @ignore
 
address@hidden qemu 
address@hidden QEMU System Emulator
-
 @c man begin SEEALSO
 The HTML documentation of QEMU for more precise information and Linux
 user mode emulator invocation.
@@ -549,8 +612,7 @@
 
 @end ignore
 
address@hidden ignore
-
address@hidden pcsys_monitor
 @section QEMU Monitor
 
 The QEMU monitor is used to give complex commands to the QEMU
@@ -676,7 +738,7 @@
 
 @item
 Dump 80 16 bit values at the start of the video memory.
address@hidden 
address@hidden 
 (qemu) xp/80hx 0xb8000
 0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
 0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
@@ -688,7 +750,7 @@
 0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
 0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
 0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
address@hidden example
address@hidden smallexample
 @end itemize
 
 @item p or print/fmt expr
@@ -739,6 +801,14 @@
 growable disk images (their size increase as non empty sectors are
 written), compressed and encrypted disk images.
 
address@hidden
+* disk_images_quickstart::    Quick start for disk image creation
+* disk_images_snapshot_mode:: Snapshot mode
+* qemu_img_invocation::       qemu-img Invocation
+* disk_images_fat_images::    Virtual FAT disk images
address@hidden menu
+
address@hidden disk_images_quickstart
 @subsection Quick start for disk image creation
 
 You can create a disk image with the command:
@@ -749,8 +819,9 @@
 size in kilobytes. You can add an @code{M} suffix to give the size in
 megabytes and a @code{G} suffix for gigabytes.
 
address@hidden for more information.
+See @ref{qemu_img_invocation} for more information.
 
address@hidden disk_images_snapshot_mode
 @subsection Snapshot mode
 
 If you use the option @option{-snapshot}, all disk images are
@@ -764,6 +835,7 @@
 
 @include qemu-img.texi
 
address@hidden disk_images_fat_images
 @subsection Virtual FAT disk images
 
 QEMU can automatically create a virtual FAT disk image from a
@@ -798,6 +870,7 @@
 @item write to the FAT directory on the host system while accessing it with 
the guest system.
 @end itemize
 
address@hidden pcsys_network
 @section Network emulation
 
 QEMU can simulate several networks cards (NE2000 boards on the PC
@@ -901,10 +974,10 @@
 
 @item Launch @code{qemu.sh}. You should have the following output:
 
address@hidden
address@hidden
 > ./qemu.sh 
 Connected to host network interface: tun0
-Linux version 2.4.21 (bellard@@voyager.localdomain) (gcc version 3.2.2 
20030222 (Red Hat Linux 3.2.2-5)) #5 Tue Nov 11 18:18:53 CET 2003
+Linux version 2.4.21 (bellard@@voyager.localdomain) (gcc version 3.2.2 
20030222 @/(Red Hat @/Linux 3.2.2-5)) #5 Tue Nov 11 18:18:53 CET 2003
 BIOS-provided physical RAM map:
  BIOS-e801: 0000000000000000 - 000000000009f000 (usable)
  BIOS-e801: 0000000000100000 - 0000000002000000 (usable)
@@ -913,7 +986,7 @@
 zone(0): 4096 pages.
 zone(1): 4096 pages.
 zone(2): 0 pages.
-Kernel command line: root=/dev/hda sb=0x220,5,1,5 ide2=noprobe ide3=noprobe 
ide4=noprobe ide5=noprobe console=ttyS0
+Kernel command line: root=/dev/hda sb=0x220,5,1,5 ide2=noprobe ide3=noprobe 
ide4=noprobe @/ide5=noprobe console=ttyS0
 ide_setup: ide2=noprobe
 ide_setup: ide3=noprobe
 ide_setup: ide4=noprobe
@@ -922,7 +995,7 @@
 Detected 2399.621 MHz processor.
 Console: colour EGA 80x25
 Calibrating delay loop... 4744.80 BogoMIPS
-Memory: 28872k/32768k available (1210k kernel code, 3508k reserved, 266k data, 
64k init, 0k highmem)
+Memory: 28872k/32768k available (1210k kernel code, 3508k reserved, 266k data, 
64k init, @/0k highmem)
 Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
 Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
 Mount cache hash table entries: 512 (order: 0, 4096 bytes)
@@ -964,14 +1037,14 @@
 VFS: Mounted root (ext2 filesystem).
 Freeing unused kernel memory: 64k freed
  
-Linux version 2.4.21 (bellard@@voyager.localdomain) (gcc version 3.2.2 
20030222 (Red Hat Linux 3.2.2-5)) #5 Tue Nov 11 18:18:53 CET 2003
+Linux version 2.4.21 (bellard@@voyager.localdomain) (gcc version 3.2.2 
20030222 @/(Red Hat @/Linux 3.2.2-5)) #5 Tue Nov 11 18:18:53 CET 2003
  
 QEMU Linux test distribution (based on Redhat 9)
  
 Type 'exit' to halt the system
  
 sh-2.05b# 
address@hidden example
address@hidden smallexample
 
 @item
 Then you can play with the kernel inside the virtual serial console. You
@@ -1021,6 +1094,7 @@
 
 @end enumerate
 
address@hidden pcsys_usb
 @section USB emulation
 
 QEMU emulates a PCI UHCI USB controller and a 8 port USB hub connected
@@ -1104,7 +1178,8 @@
 In order to use gdb, launch qemu with the '-s' option. It will wait for a
 gdb connection:
 @example
-> qemu -s -kernel arch/i386/boot/bzImage -hda root-2.4.20.img -append 
"root=/dev/hda"
+> qemu -s -kernel arch/i386/boot/bzImage -hda root-2.4.20.img \
+       -append "root=/dev/hda"
 Connected to host network interface: tun0
 Waiting gdb connection on port 1234
 @end example
@@ -1136,6 +1211,7 @@
 @code{x/10i $cs*16+*eip} to dump the code at the PC position.
 @end enumerate
 
address@hidden pcsys_os_specific
 @section Target OS specific information
 
 @subsection Linux
@@ -1222,12 +1298,22 @@
 from @url{http://www.vmware.com/software/dosidle210.zip} to solve this
 problem.
 
address@hidden QEMU System emulator for non PC targets
 @chapter QEMU System emulator for non PC targets
 
 QEMU is a generic emulator and it emulates many non PC
 machines. Most of the options are similar to the PC emulator. The
 differences are mentionned in the following sections.
 
address@hidden
+* QEMU PowerPC System emulator::
+* Sparc32 System emulator invocation::
+* Sparc64 System emulator invocation::
+* MIPS System emulator invocation::
+* ARM System emulator invocation::
address@hidden menu
+
address@hidden QEMU PowerPC System emulator
 @section QEMU PowerPC System emulator
 
 Use the executable @file{qemu-system-ppc} to simulate a complete PREP
@@ -1292,6 +1378,7 @@
 More information is available at
 @url{http://perso.magic.fr/l_indien/qemu-ppc/}.
 
address@hidden Sparc32 System emulator invocation
 @section Sparc32 System emulator invocation
 
 Use the executable @file{qemu-system-sparc} to simulate a JavaStation
@@ -1320,7 +1407,7 @@
 The number of peripherals is fixed in the architecture.
 
 QEMU uses the Proll, a PROM replacement available at
address@hidden://people.redhat.com/zaitcev/linux/}. The required
address@hidden://people.redhat.com/@/zaitcev/linux/}. The required
 QEMU-specific patches are included with the sources.
 
 A sample Linux 2.6 series kernel and ram disk image are available on
@@ -1341,6 +1428,7 @@
 
 @c man end 
 
address@hidden Sparc64 System emulator invocation
 @section Sparc64 System emulator invocation
 
 Use the executable @file{qemu-system-sparc64} to simulate a Sun4u machine.
@@ -1359,6 +1447,7 @@
 PC-compatible serial ports
 @end itemize
 
address@hidden MIPS System emulator invocation
 @section MIPS System emulator invocation
 
 Use the executable @file{qemu-system-mips} to simulate a MIPS machine.
@@ -1376,6 +1465,7 @@
 
 More information is available in the QEMU mailing-list archive.
 
address@hidden ARM System emulator invocation
 @section ARM System emulator invocation
 
 Use the executable @file{qemu-system-arm} to simulate a ARM
@@ -1394,8 +1484,16 @@
 A Linux 2.6 test image is available on the QEMU web site. More
 information is available in the QEMU mailing-list archive.
 
address@hidden QEMU Linux User space emulator 
 @chapter QEMU Linux User space emulator 
 
address@hidden
+* Quick Start::
+* Wine launch::
+* Command line options::
address@hidden menu
+
address@hidden Quick Start
 @section Quick Start
 
 In order to launch a Linux process, QEMU needs the process executable
@@ -1439,11 +1537,13 @@
 
 @item The x86 version of QEMU is also included. You can try weird things such 
as:
 @example
-qemu-i386 /usr/local/qemu-i386/bin/qemu-i386 /usr/local/qemu-i386/bin/ls-i386
+qemu-i386 /usr/local/qemu-i386/bin/qemu-i386 \
+          /usr/local/qemu-i386/bin/ls-i386
 @end example
 
 @end itemize
 
address@hidden Wine launch
 @section Wine launch
 
 @itemize
@@ -1460,17 +1560,19 @@
 (@file{qemu-XXX-i386-wine.tar.gz} on the QEMU web page). 
 
 @item Configure Wine on your account. Look at the provided script
address@hidden/usr/local/qemu-i386/bin/wine-conf.sh}. Your previous
address@hidden/usr/local/qemu-i386/@/bin/wine-conf.sh}. Your previous
 @address@hidden@}/.wine} directory is saved to @address@hidden@}/.wine.org}.
 
 @item Then you can try the example @file{putty.exe}:
 
 @example
-qemu-i386 /usr/local/qemu-i386/wine/bin/wine 
/usr/local/qemu-i386/wine/c/Program\ Files/putty.exe
+qemu-i386 /usr/local/qemu-i386/wine/bin/wine \
+          /usr/local/qemu-i386/wine/c/Program\ Files/putty.exe
 @end example
 
 @end itemize
 
address@hidden Command line options
 @section Command line options
 
 @example
@@ -1498,6 +1600,14 @@
 @node compilation
 @chapter Compilation from the sources
 
address@hidden
+* Linux/Unix::
+* Windows::
+* Cross compilation for Windows with Linux::
+* Mac OS X::
address@hidden menu
+
address@hidden Linux/Unix
 @section Linux/Unix
 
 @subsection Compilation
@@ -1555,6 +1665,7 @@
 variables. You must use gcc 3.x on PowerPC.
 @end example
 
address@hidden Windows
 @section Windows
 
 @itemize
@@ -1564,7 +1675,7 @@
 
 @item Download 
 the MinGW development library of SDL 1.2.x
-(@file{SDL-devel-1.2.x-mingw32.tar.gz}) from
+(@file{SDL-devel-1.2.x-@/mingw32.tar.gz}) from
 @url{http://www.libsdl.org}. Unpack it in a temporary place, and
 unpack the archive @file{i386-mingw32msvc.tar.gz} in the MinGW tool
 directory. Edit the @file{sdl-config} script so that it gives the
@@ -1584,6 +1695,7 @@
 
 @end itemize
 
address@hidden Cross compilation for Windows with Linux
 @section Cross compilation for Windows with Linux
 
 @itemize
@@ -1615,9 +1727,15 @@
 Note: Currently, Wine does not seem able to launch
 QEMU for Win32.
 
address@hidden Mac OS X
 @section Mac OS X
 
 The Mac OS X patches are not fully merged in QEMU, so you should look
 at the QEMU mailing list archive to have all the necessary
 information.
 
address@hidden Index
address@hidden Index
address@hidden cp
+
address@hidden
Index: qemu-tech.texi
===================================================================
RCS file: /sources/qemu/qemu/qemu-tech.texi,v
retrieving revision 1.8
diff -u -b -B -u -r1.8 qemu-tech.texi
--- qemu-tech.texi      23 Jul 2005 14:27:54 -0000      1.8
+++ qemu-tech.texi      30 Apr 2006 20:38:23 -0000
@@ -1,7 +1,12 @@
 \input texinfo @c -*- texinfo -*-
address@hidden %**start of header
address@hidden qemu-tech.info
address@hidden QEMU Internals
address@hidden 0
address@hidden 0
address@hidden %**end of header
 
 @iftex
address@hidden QEMU Internals
 @titlepage
 @sp 7
 @center @titlefont{QEMU Internals}
@@ -9,8 +14,32 @@
 @end titlepage
 @end iftex
 
address@hidden
address@hidden Top
address@hidden
+
address@hidden
+* Introduction::
+* QEMU Internals::
+* Regression Tests::
+* Index::
address@hidden menu
address@hidden ifnottex
+
address@hidden
+
address@hidden Introduction
 @chapter Introduction
 
address@hidden
+* intro_features::        Features
+* intro_x86_emulation::   x86 emulation
+* intro_arm_emulation::   ARM emulation
+* intro_ppc_emulation::   PowerPC emulation
+* intro_sparc_emulation:: SPARC emulation
address@hidden menu
+
address@hidden intro_features
 @section Features
 
 QEMU is a FAST! processor emulator using a portable dynamic
@@ -43,7 +72,7 @@
 
 @item User space only or full system emulation.
 
address@hidden Using dynamic translation to native code for reasonnable speed.
address@hidden Using dynamic translation to native code for reasonable speed.
 
 @item Working on x86 and PowerPC hosts. Being tested on ARM, Sparc32, Alpha 
and S390.
 
@@ -65,13 +94,13 @@
 
 @item Accurate signal handling by remapping host signals to target signals. 
 @end itemize
address@hidden itemize
 
 QEMU full system emulation features:
 @itemize 
 @item QEMU can either use a full software MMU for maximum portability or use 
the host system call mmap() to simulate the target MMU.
 @end itemize
 
address@hidden intro_x86_emulation
 @section x86 emulation
 
 QEMU x86 target features:
@@ -110,6 +139,7 @@
 
 @end itemize
 
address@hidden intro_arm_emulation
 @section ARM emulation
 
 @itemize
@@ -122,6 +152,7 @@
 
 @end itemize
 
address@hidden intro_ppc_emulation
 @section PowerPC emulation
 
 @itemize
@@ -133,6 +164,7 @@
 
 @end itemize
 
address@hidden intro_sparc_emulation
 @section SPARC emulation
 
 @itemize
@@ -166,8 +198,26 @@
 
 @end itemize
 
address@hidden QEMU Internals
 @chapter QEMU Internals
 
address@hidden
+* QEMU compared to other emulators::
+* Portable dynamic translation::
+* Register allocation::
+* Condition code optimisations::
+* CPU state optimisations::
+* Translation cache::
+* Direct block chaining::
+* Self-modifying code and translated code invalidation::
+* Exception support::
+* MMU emulation::
+* Hardware interrupts::
+* User emulation specific details::
+* Bibliography::
address@hidden menu
+
address@hidden QEMU compared to other emulators
 @section QEMU compared to other emulators
 
 Like bochs [3], QEMU emulates an x86 CPU. But QEMU is much faster than
@@ -214,6 +264,7 @@
 and potentially unsafe host drivers. Moreover, they are unable to
 provide cycle exact simulation as an emulator can.
 
address@hidden Portable dynamic translation
 @section Portable dynamic translation
 
 QEMU is a dynamic translator. When it first encounters a piece of code,
@@ -243,6 +294,7 @@
 To go even faster, GCC static register variables are used to keep the
 state of the virtual CPU.
 
address@hidden Register allocation
 @section Register allocation
 
 Since QEMU uses fixed simple instructions, no efficient register
@@ -250,6 +302,7 @@
 register, most of the virtual CPU state can be put in registers without
 doing complicated register allocation.
 
address@hidden Condition code optimisations
 @section Condition code optimisations
 
 Good CPU condition codes emulation (@code{EFLAGS} register on x86) is a
@@ -268,6 +321,7 @@
 the condition codes are not needed by the next instructions, no
 condition codes are computed at all.
 
address@hidden CPU state optimisations
 @section CPU state optimisations
 
 The x86 CPU has many internal states which change the way it evaluates
@@ -279,6 +333,7 @@
 
 [The FPU stack pointer register is not handled that way yet].
 
address@hidden Translation cache
 @section Translation cache
 
 A 16 MByte cache holds the most recently used translations. For
@@ -287,6 +342,7 @@
 terminated by a jump or by a virtual CPU state change which the
 translator cannot deduce statically).
 
address@hidden Direct block chaining
 @section Direct block chaining
 
 After each translated basic block is executed, QEMU uses the simulated
@@ -302,6 +358,7 @@
 architectures (such as x86 or PowerPC), the @code{JUMP} opcode is
 directly patched so that the block chaining has no overhead.
 
address@hidden Self-modifying code and translated code invalidation
 @section Self-modifying code and translated code invalidation
 
 Self-modifying code is a special challenge in x86 emulation because no
@@ -332,6 +389,7 @@
 really needs to be invalidated. It avoids invalidating the code when
 only data is modified in the page.
 
address@hidden Exception support
 @section Exception support
 
 longjmp() is used when an exception such as division by zero is
@@ -348,6 +406,7 @@
 optimisations. It is not a big concern because the emulated code can
 still be restarted in any cases.
 
address@hidden MMU emulation
 @section MMU emulation
 
 For system emulation, QEMU uses the mmap() system call to emulate the
@@ -367,6 +426,7 @@
 When MMU mappings change, only the chaining of the basic blocks is
 reset (i.e. a basic block can no longer jump directly to another one).
 
address@hidden Hardware interrupts
 @section Hardware interrupts
 
 In order to be faster, QEMU does not check at every basic block if an
@@ -377,6 +437,7 @@
 of the CPU emulator. Then the main loop can test if the interrupt is
 pending and handle it.
 
address@hidden User emulation specific details
 @section User emulation specific details
 
 @subsection Linux system call translation
@@ -434,6 +495,7 @@
 shared object as the ld-linux.so ELF interpreter. That way, it can be
 relocated at load time.
 
address@hidden Bibliography
 @section Bibliography
 
 @table @asis
@@ -456,7 +518,7 @@
 x86 emulator on Alpha-Linux.
 
 @item [5]
address@hidden://www.usenix.org/publications/library/proceedings/usenix-nt97/full_papers/chernoff/chernoff.pdf},
address@hidden://www.usenix.org/publications/library/proceedings/usenix-nt97/@/full_papers/chernoff/chernoff.pdf},
 DIGITAL FX!32: Running 32-Bit x86 Applications on Alpha NT, by Anton
 Chernoff and Ray Hookway.
 
@@ -486,11 +548,19 @@
 
 @end table
 
address@hidden Regression Tests
 @chapter Regression Tests
 
 In the directory @file{tests/}, various interesting testing programs
 are available. There are used for regression testing.
 
address@hidden
+* test-i386::
+* linux-test::
+* qruncom.c::
address@hidden menu
+
address@hidden test-i386
 @section @file{test-i386}
 
 This program executes most of the 16 bit and 32 bit x86 instructions and
@@ -506,12 +576,20 @@
 Various exceptions are raised to test most of the x86 user space
 exception reporting.
 
address@hidden linux-test
 @section @file{linux-test}
 
 This program tests various Linux system calls. It is used to verify
 that the system call parameters are correctly converted between target
 and host CPUs.
 
address@hidden qruncom.c
 @section @file{qruncom.c}
 
 Example of usage of @code{libqemu} to emulate a user mode i386 CPU.
+
address@hidden Index
address@hidden Index
address@hidden cp
+
address@hidden
Index: Makefile
===================================================================
RCS file: /sources/qemu/qemu/Makefile,v
retrieving revision 1.97
diff -u -b -B -u -r1.97 Makefile
--- Makefile    23 Apr 2006 17:57:59 -0000      1.97
+++ Makefile    30 Apr 2006 20:39:40 -0000
@@ -85,6 +85,12 @@
 %.html: %.texi
        texi2html -monolithic -number $<
 
+%.info: %.texi
+       makeinfo $< -o $@
+
+%.dvi: %.texi
+       texi2dvi $<
+
 qemu.1: qemu-doc.texi
        $(SRC_PATH)/texi2pod.pl $< qemu.pod
        pod2man --section=1 --center=" " --release=" " qemu.pod > $@

reply via email to

[Prev in Thread] Current Thread [Next in Thread]