- ...system.
- Rationale:
The Linux device drivers work this way,
and we can't provide more than what we have to work with.
This also makes the OS interface simpler,
and may allow the basic operations to be faster
due to this simplicity.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...chipset.
-
The port used is 0x80, which was the
page register for DMA channel 0
on the PC and PC/XT (A16-A19).
The PC/AT and newer computers use port
0x87 for A16-A23 instead.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...(IDTSZ).
- Rationale:
Although simple x86 PC kernels often only use
the 32 processor trap vectors plus 16 interrupt vectors,
which set of vectors are used for hardware interrupts
tends to differ greatly between kernels.
Some kernels also want to use well-known vectors
for efficient system call emulation,
such as 0x21 for DOS or 0x80 for Linux.
Some bootstrap mechanisms, such as VCPI on DOS,
must determine at run-time the set of vectors
used for hardware interrupts,
and therefore potentially need all 256 vectors to be available.
Finally, making use of the enhanced interrupt facilities
on Intel SMP Standard-compliant multiprocessors
generally requires use of higher vector numbers,
since vector numbers are tied to interrupt priorities.
For all these reasons,
we felt the default IDT should be of the maximum size,
even though much of it is usually wasted.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...safely.
-
This file also turns all floppy drive motors off,
since if we were booted from floppy the motor is
most likely still on and can cause unnecessary wear on the
floppy disk.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...mechanisms.
-
The LMM is designed quite closely along the lines
of the Amiga operating system's low-level memory management system.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...methods
- An OSKIT_E_NOTIMPL error code will be
returned.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...device
- according to
osenv_device_lookup using an oskit_etherdev_iid
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.