The purpose of the XHDI (`eXtended HardDisk Interface') specification is to enhance the communication with drivers for block-oriented mass storage media. We started with the thought of creating a uniform interface for some additional driver features. One goal was to create a standard method for virtual memory systems to lock the eject button of Syquest hard disk drives (you don't want the user to remove the cartridge with the swap partition).
After further discussion, it was clear that the information available via the PUN_INFO structure just wasn't enough and that the missing information should be available with the help of this XHDI specification. Reasons:
The PUN_INFO structure only has room for 16 devices, but BIOS
(and some GEMDOS replacements) allow 32 devices
It is impossible to install more than one AHDI-compatible hard
disk driver in the system (there is only one PUN_INFO structure)
Atari's definition of device numbers only works for drives with
Logical Unit Number 0
For these reasons, the purpose of the XHDI specification is:
To provide more information about the installed devices
To support new driver features like Stop/Start or Lock/Unlock
The XHDI specification doesn't define new driver features - it should be easy to retrofit it into existing drivers.
See also:
XHDI cookie XHDI terminology Partition types Arbitration XHDI
functions SCSI specification