At 07:02 AM 3/21/00 -0500, you wrote:
>If you're into implementation details...
>
>My plan is to keep a bitmap of attributes relating to the
>usage of each physical page of guest memory, so we can
>keep track of what structures are in it, and other
>details.  This way the monitor can quickly determine
>info about the page.  Below is the current set of
>defined attributes.  If you can think of other useful
>info, let me know.  It helps to think ahead, when
>making architectural decisions.
>
>-Kevin
>
>
>// These bits define the possible usage and attributes assigned
>// to a particular guest physical page.  These are useful for keeping
>// track of what kinds of system structures are contained in a page
>// at a given time, and if the page has associated cached code
>// information in the prescan logic.  We can also tag particular
>// pages with other more static attributes.
>
>// Attributes which are more or less static.  They are likely
>// to be assigned at boot time, and not change often.
>#define GuestPageHostSwapCapable  0x0001 // If can _ever_ swap this page
>#define GuestPageMemMapIO         0x0002 // Memory Mapped IO space, eg VGA
>#define GuestPageRO               0x0004 // Read Only mem, eg BIOS ROM
>
>// Attributes which change dynamically, depending on the
>// code that is running at the time.
>#define GuestPageData             0x0010 // Has been accessed with R/W
>#define GuestPageCode             0x0020 // Has associated prescanned code
>#define GuestPageHostSwapEligible 0x0040 // Page marked so host can swap
>#define GuestPagePDir             0x0080 // Contains Page Directory
>#define GuestPagePTbl             0x0100 // Contains a Page Table
>#define GuestPageIDT              0x0200 // Contains current IDT
>#define GuestPageGDT              0x0400 // Contains current GDT
>#define GuestPageLDT              0x0800 // Contains current LDT
>#define GuestPageTSS              0x1000 // Contains current TSS
>

Are all of these really non-exclusive?  Or are there mutually exclusive
alternatives here that could be capitalised upon to reduce bit usage,
because you're already running close to the limits of 16 bits, and you
don't want to double the memory usage up to 32 bits.



Reply via email to