|
Mac OS 9
|
#include <Disks.h>
Data Fields | |
| short | track |
| char | writeProt |
| char | diskInPlace |
| char | installed |
| char | sides |
| QElemPtr | qLink |
| short | qType |
| short | dQDrive |
| short | dQRefNum |
| short | dQFSID |
| char | twoSideFmt |
| char | needsFlush |
| short | diskErrs |
Note:
qLink is usually the first field in queues, but back in the MacPlus days, the DrvSts record needed to be expanded. In order to do this without breaking disk drivers that already added stuff to the end, the fields where added to the beginning. This was originally done in assembly language and the record was defined to start at a negative offset, so that the qLink field would end up at offset zero. When the C and pascal interfaces where made, they could not support negative record offsets, so qLink was no longer the first field. Universal Interfaces are auto generated and don't support negative offsets for any language, so DrvSts in Disks.a has qLinks at a none zero offset. Assembly code which switches to Universal Interfaces will need to compensate for that.