the iot, memt, and pc in the call so that pci_1000a_pickintr() (and the
other routines in that module) do not need to be aware of the core logic
type just to pass down memory and I/O space tags or to call the decompose
function.
New macros:
LOCATE_PCS(struct rpb *hwrpb, int cpu_number)
PCS_PROC_MAJORTYPE(struct pcs *)
PCS_PROC_MINORTYPE(struct pcs *)
Define LOCATE_PCS() to map (hwrpb, cpu_number) -> Per-Cpu-Slot structure.
Replace the PCS_PROC_{MAJOR,MINOR}{,SHIFT} stuff with macros that simply
return the major and minor cpu type codes.
Before, the probe routine (mcd_find() would succeed even if the probe
code thought it had a response, but didn't recognize the ID-code byte.
Now, only do the promiscuous match if MCD_PROMISC is configured.
- Don't enable interrupts on attach time; we don't have to
- Don't assume that because a card has a cfe entry that matches one
of the standard com ports, is a modem; my floppy was recognized as
a modem! Require a match of the cis strings against *[Mm][Oo][Dd][Ee][Mm]*
- Print things in order so that we don't mess up the output with un-needed
newlines
- Using an array of cis identifiers to find e modem should not use the
function number; it is not reliable. For example 3c562[A-D] are different
Maybe this can go away altogether and print parts of the cis strings
to take a single character at a time, where the character is an "int" now.
The old interface (took a string) was never called with more than 1
char to print, and the "int" allows us to handle charsets cleanly.
It should be able to parse escape sequences up to VT300, but not everything
is implemented. Most notably, there is no font handling - all displayable
characters are handed to the graphics driver. To solve this, a serious
interface change to the graphics driver is needed (Unicode?).