debuggers.hg
changeset 2863:9a63b52734c4
bitkeeper revision 1.1159.1.336 (4187c113TlZOg5xcrESN247lpbjqlw)
bit more iface
bit more iface
author | smh22@tempest.cl.cam.ac.uk |
---|---|
date | Tue Nov 02 17:17:07 2004 +0000 (2004-11-02) |
parents | 702b7ec55776 |
children | eb0280fe0abf |
files | docs/src/interface.tex |
line diff
1.1 --- a/docs/src/interface.tex Tue Nov 02 17:05:53 2004 +0000 1.2 +++ b/docs/src/interface.tex Tue Nov 02 17:17:07 2004 +0000 1.3 @@ -701,30 +701,43 @@ found in {\tt xen/include/public/xen.h}. 1.4 \end{quote} 1.5 1.6 Explicitly updating batches of page table entries is extremely 1.7 -efficient, but can require a number of alterations to the guest 1.8 -OS. Using the writable page table mode is recommended 1.9 -for new OS ports. 1.10 +efficient, but can require a number of alterations to the guest 1.11 +OS. Using the writable page table mode (Chapter~\ref{c:memory}) is 1.12 +recommended for new OS ports. 1.13 1.14 -However in either mode, there are some occasions (in particular 1.15 -handling a demand page fault) where a guest OS will wish to 1.16 -modify exactly one PTE rather than a batch. This is catered 1.17 -for by the following hypercall: 1.18 +Regardlesss of which page table update mode is being used, however, 1.19 +there are some occasions (notably handling a demand page fault) where 1.20 +a guest OS will wish to modify exactly one PTE rather than a 1.21 +batch. This is catered for by the following: 1.22 1.23 \begin{quote} 1.24 \hypercall{update\_va\_mapping(unsigned long page\_nr, unsigned long 1.25 -val, unsigned long flags)} 1.26 +val, \\ unsigned long flags)} 1.27 + 1.28 +Update the currently installed PTE for the page {\tt page\_nr} to 1.29 +{\tt val}. As with {\tt mmu\_update()}, Xen checks the modification 1.30 +is safe before applying it. The {\tt flags} determine which kind 1.31 +of TLB flush, if any, should follow the update. 1.32 1.33 \end{quote} 1.34 1.35 -Finally, privileged domains may be able to xxx. 1.36 - 1.37 +Finally, sufficiently privileged domains may occasionally wish to manipulate 1.38 +the page tables of others: 1.39 \begin{quote} 1.40 1.41 \hypercall{update\_va\_mapping\_otherdomain(unsigned long page\_nr, 1.42 unsigned long val, unsigned long flags, uint16\_t domid)} 1.43 1.44 +Identical to {\tt update\_va\_mapping()} save that it operates 1.45 +on the page tables of the domain with id {\tt domid}. 1.46 + 1.47 \end{quote} 1.48 1.49 +This privileged operation is currently used by backend virtual device 1.50 +drivers to efficiently implement `page flipping'. 1.51 + 1.52 + 1.53 + 1.54 \section{Segmentation Support} 1.55 1.56