ADC Home > Reference Library > Technical Notes > Legacy Documents > Mac OS 9 & Earlier >

Legacy Documentclose button

Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.

Current information on this Reference Library topic can be found here:

SCSI Manager Q&As


This Technical Note contains a collection of archived Q&As relating to a specific topic--questions sent the Developer Support Center (DSC) along with answers from the DSC engineers. Current Q&As can be found on the Macintosh Technical Q&As web site.

[Oct 01 1990]

Documentation describing VM/SCSI driver requirements

Date Written: 9/10/91

Last reviewed: 8/1/92

Are there any new rules regarding SCSI driving with virtual memory? My System 6 driver doesn't work with System 7.


It's important to remember that VM usually uses a SCSI device for its backing store. As such, if VM needs to use your driver it can't tolerate a driver's page swap in the middle of a page swap. This means if your driver's code is not in the system heap, it needs to be held when called, and your buffers also need to be held if your driver is entered by a Control or Status call. Buffers are automatically held by the system if your driver is entered by a Read or Write call. The following documents provide a good overview of what you need to do to revise a SCSI driver for VM compatibility.

  • Inside Macintosh Volume VI, which contains new information specific to virtual memory as it relates to drivers and especially SCSI
  • Macintosh Technical Note "Coping with VM and Memory Mappings"
  • "VM Paper" from the System 7 CD in the VM Goodies folder

Back to top

SCSI drivers and virtual memory

Date Written: 8/30/91

Last reviewed: 8/1/92

How can we disable virtual memory (VM) from a SCSI driver, for dequeuing partitions? How can our driver determine which volume the virtual swap file resides upon?


The use of virtual memory requires that at boot time the PMMU be programmed with the appropriate memory mapping tables and enabled. The virtual memory is then laid out in the VM Storage file and available "real" RAM begins to be used to implement those portions of the virtual memory that need to be resident. It is not possible to turn this on and off while the machine is running. Specifically, it cannot be disabled / re-enabled from within your SCSI driver. With VM running, you can dismount and remount any disk or partition EXCEPT the unit that contains the VM Storage file. Whenever the system boots with VM on, the Finder makes sure there is only one file of that name mounted anywhere and deletes any "extra" files it encounters.

Currently there is no interface for locating the VM Storage file. Since the file name is guaranteed to be unique, it should be sufficient to search each volume for that file name.

Back to top

Macintosh SCSI reselection

Date Written: 5/24/91

Last reviewed: 8/1/92

How should we handle target reselection with the Macintosh SCSI Manager?


The Macintosh SCSI Manager does not yet support disconnection and reselection. After arbitration and selection, the target device should perform a SCSIMsgOut to identify the logical unit number and especially to see if disconnection and reselection is allowed (bit 6 of the Identify message). The Macintosh currently always sets bit 6 of the Identify message to 0, meaning disconnection is not allowed.

A target device should always assume that disconnection is not allowed unless it is specifically told otherwise by the Identify message. In this way, the target will do the right thing even if it does not follow protocol and issue a Message Out before requesting the Command.

Back to top

Where to get Macintosh SCSI Manager sample code

Date Written: 11/30/90

Last reviewed: 8/1/92

Can you provide some sample code on using the Macintosh SCSI Manager to access a SCSI device?


SCSI sample code can be found on Apple's sample code web site.

Back to top


Acrobat gif

Acrobat version of this Note (48K)


Back to top

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.