Lines Matching +full:sense +full:- +full:bitfield +full:- +full:width
86 /* Architecture-specific hypercall definitions. */
100 * In the side comments, 'V.' denotes a per-VCPU VIRQ while 'G.' denotes a
101 * global VIRQ. The former can be bound once per VCPU and cannot be re-bound.
103 * allocated to VCPU0 but can subsequently be re-bound.
119 /* Architecture-specific VIRQ definitions. */
144 * x != 0 => PFD == x - 1
146 * Sub-commands: ptr[1:0] specifies the appropriate MMU_* command.
147 * -------------
155 * ptr[:2] -- Machine address of the page-table entry to modify.
156 * val -- Value to write.
159 * pages that make up a pagetable must be mapped read-only in the guest.
165 * 1). Start with top-level page (PGD or in Xen language: L4). Fill out
182 * For 32-bit guests, the L4 is not used (as there is less pagetables), so
193 * Updates an entry in the machine->pseudo-physical mapping table.
194 * ptr[:2] -- Machine address within the frame whose mapping to modify.
196 * val -- Value to write into the mapping entry.
206 * - 63 if set means No execute (NX)
207 * - 46-13 the machine frame number
208 * - 12 available for guest
209 * - 11 available for guest
210 * - 10 available for guest
211 * - 9 available for guest
212 * - 8 global
213 * - 7 PAT (PSE is disabled, must use hypercall to make 4MB or 2MB pages)
214 * - 6 dirty
215 * - 5 accessed
216 * - 4 page cached disabled
217 * - 3 page write through
218 * - 2 userspace accessible
219 * - 1 writeable
220 * - 0 present
228 * using it as the Page Attribute Table (PAT) bit - for details on it please
232 * The PAT MSR is as follows (it is a 64-bit value, each entry is 8 bits):
234 * +-----+-----+----+----+----+-----+----+----+
235 * | UC | UC- | WC | WB | UC | UC- | WC | WB | <= Linux
236 * +-----+-----+----+----+----+-----+----+----+
237 * | UC | UC- | WT | WB | UC | UC- | WT | WB | <= BIOS (default when machine boots)
238 * +-----+-----+----+----+----+-----+----+----+
239 * | rsv | rsv | WP | WC | UC | UC- | WT | WB | <= Xen
240 * +-----+-----+----+----+----+-----+----+----+
262 * PWT (so bit 3 on) --> PAT (so bit 7 is on) and clear bit 3
266 * PAT (bit 7 on) --> PWT (bit 3 on) and clear bit 7.
290 * mfn: Machine frame number of new page-table base to install in MMU.
293 * mfn: Machine frame number of new page-table base to install in MMU
323 * linear_addr: Linear address of LDT base (NB. must be page-aligned).
409 * x86 guests: support writes to bottom-level PTEs.
410 * NB1. Page-directory entries cannot be written.
420 * - virtual iopl updated from do_iret() hypercalls.
421 * - virtual iopl reported in bounce frames.
422 * - guest kernels assumed to be level 0 for the purpose of iopl checks.
446 * DOMID_IO is used to restrict page-table updates to mapping I/O memory.
450 * aren't adjusted on the I/O-mapping code path).
451 * This only makes sense in MMUEXT_SET_FOREIGNDOM, but in that context can
459 * This only makes sense in MMUEXT_SET_FOREIGNDOM, and is only permitted if
501 * least-significant bit of the version number is set then an
513 * system_time + ((tsc - tsc_timestamp) << tsc_shift) * tsc_to_system_mul
524 * 'evtchn_upcall_pending' is written non-zero by Xen to indicate
527 * a set-and-check race. Note that the mask is only accessed by Xen
534 * 1. The task of 'interrupt holdoff' is covered by the per-event-
538 * 2. The main purpose of the per-VCPU mask is therefore to restrict
544 * non-zero mask therefore guarantees that the VCPU will not receive
546 * to block: this avoids wakeup-waiting races.
556 * Xen/kernel shared data -- pointer provided in start_info.
566 * 1. Bi-directional inter- and intra-domain connections. Domains must
567 * arrange out-of-band to set up a connection (usually by allocating
570 * 2. Physical interrupts. A domain with suitable hardware-access
571 * privileges can bind an event-channel port to a physical interrupt
573 * 3. Virtual interrupts ('events'). A domain can bind an event-channel
574 * port to a virtual interrupt source, such as the virtual-timer
579 * 1. PENDING -- notifies the domain that there is a pending notification
581 * 2. MASK -- if this bit is clear then a 0->1 transition of PENDING
583 * updated by the guest. It is read-only within Xen. If a channel
588 * To expedite scanning of pending notifications, any 0->1 pending
590 * per-vcpu selector word to be set. Each bit in the selector covers a
591 * 'C long' in the PENDING bitfield array.
598 * their gettimeofday() syscall on this wallclock-base value.
607 * Start-of-day memory layout
609 * 1. The domain is started within contiguous virtual-memory region.
623 * 4. Bootstrap elements are packed together, but each is 4kB-aligned.
624 * 5. The list of page frames forms a contiguous 'pseudo-physical' memory
625 * layout for the domain. In particular, the bootstrap virtual-memory
626 * region is a 1:1 mapping to the first section of the pseudo-physical map.
627 * 6. All bootstrap elements are mapped read-writable for the guest OS. The
628 * only exception is the bootstrap page table, which is mapped read-only.
637 char magic[32]; /* "xen-<version>-<platform>". */
656 unsigned long mfn_list; /* VIRTUAL address of page-frame list. */
657 unsigned long mod_start; /* VIRTUAL address of pre-loaded module. */
658 unsigned long mod_len; /* Size (bytes) of pre-loaded module. */
660 /* The pfn range here covers both page table and p->m table frames. */
661 unsigned long first_p2m_pfn;/* 1st pfn forming initial P->M table. */
662 unsigned long nr_p2m_frames;/* # of pfns forming initial P->M table. */
671 /* P->M making the 3 level tree obsolete? */
672 #define SIF_PM_MASK (0xFF<<8) /* reserve 1 byte for xen-pm options */
677 * - the array of module descriptors is by convention simply at the beginning
679 * - addresses in the module descriptors are based on the beginning of the
681 * - the number of modules is determined by a termination descriptor that has
693 /* Address of zero-terminated command line */
721 /* Width and height, in pixels. */
722 uint16_t width, height; member