using the APIC bit instead, according to the AMD Processor Recognition
App. Note. Add a fixup routine to patch up cpu_feature in this case.
XXX Need a way to kick the pmap to enable pmap_pg_g -- look at how the
MP branch deals with this.
- Start with 2 initial color bins, and recolor once we've determined
the number of color bins based on the formula:
(largest_cache_size / associativity) / PAGE_SIZE
- Add "associativity" to the cache_info structure.
- Add a (*cpu_cacheinfo)() function pointer, like we have a
(*cpu_setup)() function pointer. Cache info in the `cpuid'
is vendor-specific.
each vm_page structure. Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM. These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.
This deprecates struct pmap_physseg. As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.
Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now). Changes to other pmap
modules will follow.
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.
Both models tested and seem to be quite stable and fast.
Thanks to:
- Hans Hubner <hans@Huebner.org> for giving me the cards for testing
- Georg Klug of Syskonnect, who provided me with hw docs for these cards,
very promptly and willingly - I wish all vendors would be like this
- Alfred Arnold, Linux SKNET driver author, for giving me valuable Syskonnect
contact :)
there are some pathological cases that cause pmap_page_protect()
to be called on a wired page to revoke all mappings. We
need to skip mappings that are actually wired to prevent Bad
things from happening later.
THIS IS JUST A WORK-AROUND. We need to prevent the pathological
behavior from happening in UVM to begin with. But it's unclear
what the right solution is there, right now.
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).
These calls are relatively conservative. It may be possible to
optimize these a little more.
interrupts are properly reset on PS/2 now.
Handle the slighly different PS/2 CMOS layout and get/set century
byte as appropriate. The check for valid CMOS CRC checksum is not implemented
yet; I don't currently know algorithm they use.
The info about PS/2 CMOS was taken from the Padgett Peterson's
x86/MSDOS Interrupt List, release 60.