Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
ShowAllDriveQueueElements.c
/* |
File: ShowAllDriveQueueElements.c |
Contains: This subroutine scans the linked list of drive queue elements and displays |
information about each active drive. |
Written by: Martin Minow |
Copyright: Copyright © 1992-1999 by Apple Computer, Inc., All Rights Reserved. |
You may incorporate this Apple sample source code into your program(s) without |
restriction. This Apple sample source code has been provided "AS IS" and the |
responsibility for its operation is yours. You are not permitted to redistribute |
this Apple sample source code as "Apple sample source code" after having made |
changes. If you're going to re-distribute the source, we require that you make |
it clear in the source that the code was descended from Apple sample source |
code, but that you've made changes. |
Change History (most recent first): |
7/14/1999 Karl Groethe Updated for Metrowerks Codewarror Pro 2.1 |
*/ |
#include <stdio.h> |
#include <Files.h> |
#include <Devices.h> |
void ShowAllDriveQueueElements(void); |
void ShowOneDriveQueueElement( |
register DrvQEl *drvQElPtr |
); |
void ShowSCSIDeviceIdent( |
short driverRefNum |
); |
void |
ShowAllDriveQueueElements(void) |
{ |
register DrvQEl *drvQElPtr; |
#define DQEL (*drvQElPtr) |
drvQElPtr = (DrvQEl *) GetDrvQHdr()->qHead; |
while (drvQElPtr != NULL) { |
ShowOneDriveQueueElement(drvQElPtr); |
drvQElPtr = (DrvQEl *) drvQElPtr->qLink; |
} |
#undef DQEL |
} |
void |
ShowOneDriveQueueElement( |
register DrvQEl *drvQElPtr |
) |
{ |
#define DQEL (*drvQElPtr) |
printf("Drive %2d, driver %3d,", (int) DQEL.dQDrive, (int) DQEL.dQRefNum); |
switch (DQEL.qType) { |
case 0: |
printf( |
"%8lu blocks (small drive)", |
(unsigned long) DQEL.dQDrvSz |
); |
break; |
case 1: |
printf( |
"%8lu blocks (large drive)", |
((unsigned long) DQEL.dQDrvSz) |
+ (((unsigned long) DQEL.dQDrvSz2) * 0x10000L) |
); |
break; |
case 3: |
printf( |
"%8lu blocks (MFS present)", |
((unsigned long) DQEL.dQDrvSz) |
); |
break; |
default: |
printf( |
"%lu %lu blocks (unknown queue type)", |
((unsigned long) DQEL.dQDrvSz), |
((unsigned long) DQEL.dQDrvSz2) |
); |
break; |
} |
ShowSCSIDeviceIdent(DQEL.dQRefNum); |
printf("\n"); |
#undef DQEL |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14