30 #ifndef __APPLEDISKPARTITIONS__
47 #if PRAGMA_STRUCT_ALIGN
48 #pragma options align = mac68k
49 #elif PRAGMA_STRUCT_PACKPUSH
51 #elif PRAGMA_STRUCT_PACK
89 unsigned short scOpcode;
103 kMessageOutPhase = 6,
108 kMessageInPhaseNACK = 11
111 #if CALL_NOT_IN_CARBON
528 typedef CALLBACK_API_C(
void, SIMActionProcPtr)(
void *scsiPB, Ptr SIMGlobals);
530 typedef CALLBACK_API_C(
void, SCSIMakeCallbackProcPtr)(
void *scsiPB);
533 typedef CALLBACK_API_C(
long, SCSIInterruptPollProcPtr)(Ptr SIMGlobals);
534 typedef CALLBACK_API_C(
long, SCSIInterruptProcPtr)(Ptr SIMGlobals);
539 typedef STACK_UPP_TYPE(SCSIMakeCallbackProcPtr) SCSIMakeCallbackUPP;
540 typedef STACK_UPP_TYPE(SCSIInterruptPollProcPtr) SCSIInterruptPollUPP;
542 #if CALL_NOT_IN_CARBON
553 #if !OPAQUE_UPP_TYPES
556 uppAENCallbackProcInfo = 0x00000001
562 (ProcPtr)(userRoutine), uppAENCallbackProcInfo, GetCurrentArchitecture());
565 #define NewAENCallbackUPP(userRoutine) \
567 NewRoutineDescriptor((ProcPtr)(userRoutine), uppAENCallbackProcInfo, \
568 GetCurrentArchitecture())
582 #if !OPAQUE_UPP_TYPES
585 uppSIMInitProcInfo = 0x000000E1
591 (ProcPtr)(userRoutine), uppSIMInitProcInfo, GetCurrentArchitecture());
594 #define NewSIMInitUPP(userRoutine) \
595 (SIMInitUPP) NewRoutineDescriptor( \
596 (ProcPtr)(userRoutine), uppSIMInitProcInfo, GetCurrentArchitecture())
610 #if !OPAQUE_UPP_TYPES
613 uppSIMActionProcInfo = 0x000003C1
619 (ProcPtr)(userRoutine), uppSIMActionProcInfo, GetCurrentArchitecture());
622 #define NewSIMActionUPP(userRoutine) \
623 (SIMActionUPP) NewRoutineDescriptor( \
624 (ProcPtr)(userRoutine), uppSIMActionProcInfo, GetCurrentArchitecture())
638 #if !OPAQUE_UPP_TYPES
641 uppSCSIProcInfo = 0x00000001
644 inline SCSIUPP
NewSCSIUPP(SCSIProcPtr userRoutine)
647 GetCurrentArchitecture());
650 #define NewSCSIUPP(userRoutine) \
651 (SCSIUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCSIProcInfo, \
652 GetCurrentArchitecture())
666 #if !OPAQUE_UPP_TYPES
669 uppSCSIMakeCallbackProcInfo = 0x000000C1
672 inline SCSIMakeCallbackUPP
676 uppSCSIMakeCallbackProcInfo,
677 GetCurrentArchitecture());
680 #define NewSCSIMakeCallbackUPP(userRoutine) \
681 (SCSIMakeCallbackUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
682 uppSCSIMakeCallbackProcInfo, \
683 GetCurrentArchitecture())
697 #if !OPAQUE_UPP_TYPES
700 uppSCSIInterruptPollProcInfo = 0x000000F1
703 inline SCSIInterruptPollUPP
707 (ProcPtr)(userRoutine), uppSCSIInterruptPollProcInfo,
708 GetCurrentArchitecture());
711 #define NewSCSIInterruptPollUPP(userRoutine) \
712 (SCSIInterruptPollUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
713 uppSCSIInterruptPollProcInfo, \
714 GetCurrentArchitecture())
728 #if !OPAQUE_UPP_TYPES
731 uppSCSIInterruptProcInfo = 0x000000F1
737 uppSCSIInterruptProcInfo,
738 GetCurrentArchitecture());
741 #define NewSCSIInterruptUPP(userRoutine) \
743 NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCSIInterruptProcInfo, \
744 GetCurrentArchitecture())
758 #if !OPAQUE_UPP_TYPES
765 #define DisposeAENCallbackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
779 #if !OPAQUE_UPP_TYPES
786 #define DisposeSIMInitUPP(userUPP) DisposeRoutineDescriptor(userUPP)
800 #if !OPAQUE_UPP_TYPES
807 #define DisposeSIMActionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
821 #if !OPAQUE_UPP_TYPES
828 #define DisposeSCSIUPP(userUPP) DisposeRoutineDescriptor(userUPP)
842 #if !OPAQUE_UPP_TYPES
849 #define DisposeSCSIMakeCallbackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
863 #if !OPAQUE_UPP_TYPES
870 #define DisposeSCSIInterruptPollUPP(userUPP) DisposeRoutineDescriptor(userUPP)
884 #if !OPAQUE_UPP_TYPES
891 #define DisposeSCSIInterruptUPP(userUPP) DisposeRoutineDescriptor(userUPP)
905 #if !OPAQUE_UPP_TYPES
912 #define InvokeAENCallbackUPP(userUPP) \
913 CALL_ZERO_PARAMETER_UPP((userUPP), uppAENCallbackProcInfo)
927 #if !OPAQUE_UPP_TYPES
931 return (OSErr)CALL_ONE_PARAMETER_UPP(userUPP, uppSIMInitProcInfo, SIMinfoPtr);
934 #define InvokeSIMInitUPP(SIMinfoPtr, userUPP) \
935 (OSErr) CALL_ONE_PARAMETER_UPP((userUPP), uppSIMInitProcInfo, (SIMinfoPtr))
949 #if !OPAQUE_UPP_TYPES
952 SIMActionUPP userUPP)
954 CALL_TWO_PARAMETER_UPP(userUPP, uppSIMActionProcInfo, scsiPB, SIMGlobals);
957 #define InvokeSIMActionUPP(scsiPB, SIMGlobals, userUPP) \
958 CALL_TWO_PARAMETER_UPP((userUPP), uppSIMActionProcInfo, (scsiPB), \
973 #if !OPAQUE_UPP_TYPES
980 #define InvokeSCSIUPP(userUPP) \
981 CALL_ZERO_PARAMETER_UPP((userUPP), uppSCSIProcInfo)
995 #if !OPAQUE_UPP_TYPES
998 SCSIMakeCallbackUPP userUPP)
1000 CALL_ONE_PARAMETER_UPP(userUPP, uppSCSIMakeCallbackProcInfo, scsiPB);
1003 #define InvokeSCSIMakeCallbackUPP(scsiPB, userUPP) \
1004 CALL_ONE_PARAMETER_UPP((userUPP), uppSCSIMakeCallbackProcInfo, (scsiPB))
1018 #if !OPAQUE_UPP_TYPES
1021 SCSIInterruptPollUPP userUPP)
1023 return (
long)CALL_ONE_PARAMETER_UPP(userUPP, uppSCSIInterruptPollProcInfo,
1027 #define InvokeSCSIInterruptPollUPP(SIMGlobals, userUPP) \
1028 (long)CALL_ONE_PARAMETER_UPP((userUPP), uppSCSIInterruptPollProcInfo, \
1043 #if !OPAQUE_UPP_TYPES
1047 return (
long)CALL_ONE_PARAMETER_UPP(userUPP, uppSCSIInterruptProcInfo,
1051 #define InvokeSCSIInterruptUPP(SIMGlobals, userUPP) \
1052 (long)CALL_ONE_PARAMETER_UPP((userUPP), uppSCSIInterruptProcInfo, \
1059 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
1061 #define NewAENCallbackProc(userRoutine) NewAENCallbackUPP(userRoutine)
1062 #define NewSIMInitProc(userRoutine) NewSIMInitUPP(userRoutine)
1063 #define NewSIMActionProc(userRoutine) NewSIMActionUPP(userRoutine)
1064 #define NewSCSIProc(userRoutine) NewSCSIUPP(userRoutine)
1065 #define NewSCSIMakeCallbackProc(userRoutine) NewSCSIMakeCallbackUPP(userRoutine)
1066 #define NewSCSIInterruptPollProc(userRoutine) \
1067 NewSCSIInterruptPollUPP(userRoutine)
1068 #define NewSCSIInterruptProc(userRoutine) NewSCSIInterruptUPP(userRoutine)
1069 #define CallAENCallbackProc(userRoutine) InvokeAENCallbackUPP(userRoutine)
1070 #define CallSIMInitProc(userRoutine, SIMinfoPtr) \
1071 InvokeSIMInitUPP(SIMinfoPtr, userRoutine)
1072 #define CallSIMActionProc(userRoutine, scsiPB, SIMGlobals) \
1073 InvokeSIMActionUPP(scsiPB, SIMGlobals, userRoutine)
1074 #define CallSCSIProc(userRoutine) InvokeSCSIUPP(userRoutine)
1075 #define CallSCSIMakeCallbackProc(userRoutine, scsiPB) \
1076 InvokeSCSIMakeCallbackUPP(scsiPB, userRoutine)
1077 #define CallSCSIInterruptPollProc(userRoutine, SIMGlobals) \
1078 InvokeSCSIInterruptPollUPP(SIMGlobals, userRoutine)
1079 #define CallSCSIInterruptProc(userRoutine, SIMGlobals) \
1080 InvokeSCSIInterruptUPP(SIMGlobals, userRoutine)
1098 #if !OPAQUE_UPP_TYPES
1101 uppSCSICallbackProcInfo = 0x000000C0
1107 uppSCSICallbackProcInfo,
1108 GetCurrentArchitecture());
1111 #define NewSCSICallbackUPP(userRoutine) \
1113 NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCSICallbackProcInfo, \
1114 GetCurrentArchitecture())
1128 #if !OPAQUE_UPP_TYPES
1135 #define DisposeSCSICallbackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
1149 #if !OPAQUE_UPP_TYPES
1153 CALL_ONE_PARAMETER_UPP(userUPP, uppSCSICallbackProcInfo, scsiPB);
1156 #define InvokeSCSICallbackUPP(scsiPB, userUPP) \
1157 CALL_ONE_PARAMETER_UPP((userUPP), uppSCSICallbackProcInfo, (scsiPB))
1161 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
1163 #define NewSCSICallbackProc(userRoutine) NewSCSICallbackUPP(userRoutine)
1164 #define CallSCSICallbackProc(userRoutine, scsiPB) \
1165 InvokeSCSICallbackUPP(scsiPB, userRoutine)
1175 SCSIBusInquiry = 0x03,
1176 SCSIReleaseQ = 0x04,
1177 SCSIAbortCommand = 0x10,
1178 SCSIResetBus = 0x11,
1179 SCSIResetDevice = 0x12,
1180 SCSITerminateIO = 0x13
1186 SCSIGetVirtualIDInfo = 0x80,
1187 SCSILoadDriver = 0x82,
1189 SCSICreateRefNumXref = 0x85,
1190 SCSILookupRefNumXref = 0x86,
1191 SCSIRemoveRefNumXref = 0x87,
1192 SCSIRegisterWithNewXPT =
1204 handshakeDataLength = 8,
1229 kBusTypeMediaBay = 3
1257 UInt32 patchDescriptorLen;
1261 UInt8 patchVendor[1];
1269 kRequiredPatch = 0x00000001
1274 UInt16 numPatchBlocks;
1302 struct SCSIHdr *qLink; \
1303 short scsiReserved1; \
1304 UInt16 scsiPBLength; \
1305 UInt8 scsiFunctionCode; \
1306 UInt8 scsiReserved2; \
1307 volatile OSErr scsiResult; \
1308 DeviceIdent scsiDevice; \
1309 SCSICallbackUPP scsiCompletion; \
1311 UInt8 *scsiDriverStorage; \
1312 Ptr scsiXPTprivate; \
1318 short scsiReserved1;
1319 UInt16 scsiPBLength;
1320 UInt8 scsiFunctionCode;
1321 UInt8 scsiReserved2;
1322 volatile OSErr scsiResult;
1324 SCSICallbackUPP scsiCompletion;
1326 BytePtr scsiDriverStorage;
1334 short scsiReserved1;
1335 UInt16 scsiPBLength;
1336 UInt8 scsiFunctionCode;
1337 UInt8 scsiReserved2;
1338 volatile OSErr scsiResult;
1340 SCSICallbackUPP scsiCompletion;
1342 BytePtr scsiDriverStorage;
1350 short scsiReserved1;
1351 UInt16 scsiPBLength;
1352 UInt8 scsiFunctionCode;
1353 UInt8 scsiReserved2;
1354 volatile OSErr scsiResult;
1356 SCSICallbackUPP scsiCompletion;
1358 BytePtr scsiDriverStorage;
1362 UInt16 scsiResultFlags;
1363 UInt16 scsiReserved3pt5;
1364 BytePtr scsiDataPtr;
1365 UInt32 scsiDataLength;
1366 BytePtr scsiSensePtr;
1367 UInt8 scsiSenseLength;
1368 UInt8 scsiCDBLength;
1369 UInt16 scsiSGListCount;
1370 UInt32 scsiReserved4;
1371 UInt8 scsiSCSIstatus;
1372 SInt8 scsiSenseResidual;
1373 UInt16 scsiReserved5;
1374 long scsiDataResidual;
1377 BytePtr scsiReserved5pt5;
1378 UInt16 scsiReserved5pt6;
1380 UInt8 scsiTagAction;
1381 UInt8 scsiReserved6;
1382 UInt16 scsiReserved7;
1383 UInt16 scsiSelectTimeout;
1385 UInt8 scsiTransferType;
1386 UInt32 scsiReserved8;
1387 UInt32 scsiReserved9;
1388 UInt16 scsiHandshake[8];
1389 UInt32 scsiReserved10;
1390 UInt32 scsiReserved11;
1394 UInt8 scsiSIMpublics[8];
1395 UInt8 scsiAppleReserved6[8];
1399 UInt16 scsiCurrentPhase;
1401 OSErr scsiOldCallResult;
1402 UInt8 scsiSCSImessage;
1403 UInt8 XPTprivateFlags;
1404 UInt8 XPTextras[12];
1412 short scsiReserved1;
1413 UInt16 scsiPBLength;
1414 UInt8 scsiFunctionCode;
1415 UInt8 scsiReserved2;
1416 volatile OSErr scsiResult;
1418 SCSICallbackUPP scsiCompletion;
1420 BytePtr scsiDriverStorage;
1424 UInt16 scsiEngineCount;
1425 UInt16 scsiMaxTransferType;
1427 UInt32 scsiDataTypes;
1429 UInt16 scsiIOpbSize;
1430 UInt16 scsiMaxIOpbSize;
1432 UInt32 scsiFeatureFlags;
1434 UInt8 scsiVersionNumber;
1435 UInt8 scsiHBAInquiry;
1436 UInt8 scsiTargetModeFlags;
1437 UInt8 scsiScanFlags;
1439 UInt32 scsiSIMPrivatesPtr;
1440 UInt32 scsiSIMPrivatesSize;
1441 UInt32 scsiAsyncFlags;
1444 UInt8 scsiInitiatorID;
1445 UInt16 scsiBIReserved0;
1447 UInt32 scsiBIReserved1;
1448 UInt32 scsiFlagsSupported;
1450 UInt16 scsiIOFlagsSupported;
1451 UInt16 scsiWeirdStuff;
1452 UInt16 scsiMaxTarget;
1455 char scsiSIMVendor[16];
1456 char scsiHBAVendor[16];
1457 char scsiControllerFamily[16];
1458 char scsiControllerType[16];
1460 char scsiXPTversion[4];
1461 char scsiSIMversion[4];
1462 char scsiHBAversion[4];
1464 UInt8 scsiHBAslotType;
1465 UInt8 scsiHBAslotNumber;
1466 UInt16 scsiSIMsRsrcID;
1468 UInt16 scsiBIReserved3;
1469 UInt16 scsiAdditionalLength;
1476 short scsiReserved1;
1477 UInt16 scsiPBLength;
1478 UInt8 scsiFunctionCode;
1479 UInt8 scsiReserved2;
1480 volatile OSErr scsiResult;
1482 SCSICallbackUPP scsiCompletion;
1484 BytePtr scsiDriverStorage;
1494 short scsiReserved1;
1495 UInt16 scsiPBLength;
1496 UInt8 scsiFunctionCode;
1497 UInt8 scsiReserved2;
1498 volatile OSErr scsiResult;
1500 SCSICallbackUPP scsiCompletion;
1502 BytePtr scsiDriverStorage;
1512 short scsiReserved1;
1513 UInt16 scsiPBLength;
1514 UInt8 scsiFunctionCode;
1515 UInt8 scsiReserved2;
1516 volatile OSErr scsiResult;
1518 SCSICallbackUPP scsiCompletion;
1520 BytePtr scsiDriverStorage;
1529 short scsiReserved1;
1530 UInt16 scsiPBLength;
1531 UInt8 scsiFunctionCode;
1532 UInt8 scsiReserved2;
1533 volatile OSErr scsiResult;
1535 SCSICallbackUPP scsiCompletion;
1537 BytePtr scsiDriverStorage;
1546 short scsiReserved1;
1547 UInt16 scsiPBLength;
1548 UInt8 scsiFunctionCode;
1549 UInt8 scsiReserved2;
1550 volatile OSErr scsiResult;
1552 SCSICallbackUPP scsiCompletion;
1554 BytePtr scsiDriverStorage;
1563 short scsiReserved1;
1564 UInt16 scsiPBLength;
1565 UInt8 scsiFunctionCode;
1566 UInt8 scsiReserved2;
1567 volatile OSErr scsiResult;
1569 SCSICallbackUPP scsiCompletion;
1571 Ptr scsiDriverStorage;
1574 UInt16 scsiOldCallID;
1583 short scsiReserved1;
1584 UInt16 scsiPBLength;
1585 UInt8 scsiFunctionCode;
1586 UInt8 scsiReserved2;
1587 volatile OSErr scsiResult;
1589 SCSICallbackUPP scsiCompletion;
1591 Ptr scsiDriverStorage;
1595 UInt16 scsiDriverFlags;
1603 short scsiReserved1;
1604 UInt16 scsiPBLength;
1605 UInt8 scsiFunctionCode;
1606 UInt8 scsiReserved2;
1607 volatile OSErr scsiResult;
1609 SCSICallbackUPP scsiCompletion;
1611 Ptr scsiDriverStorage;
1614 short scsiLoadedRefNum;
1624 scsiTransferBlind = 0,
1625 scsiTransferPolled = 1
1630 scsiErrorBase = -7936
1635 scsiRequestInProgress = 1,
1637 scsiRequestAborted =
1643 scsiUnused05 = scsiErrorBase + 5,
1644 scsiUnused06 = scsiErrorBase + 6,
1645 scsiUnused07 = scsiErrorBase + 7,
1646 scsiUnused08 = scsiErrorBase + 8,
1647 scsiUnableToTerminate =
1649 scsiSelectTimeout = scsiErrorBase + 10,
1650 scsiCommandTimeout = scsiErrorBase + 11,
1651 scsiIdentifyMessageRejected = scsiErrorBase + 12,
1652 scsiMessageRejectReceived =
1658 scsiAutosenseFailed =
1660 scsiUnused11 = scsiErrorBase + 17,
1663 scsiUnexpectedBusFree = scsiErrorBase + 19,
1664 scsiSequenceFailed =
1666 scsiWrongDirection =
1668 scsiUnused16 = scsiErrorBase + 22,
1673 scsiNoNexus = scsiErrorBase + 25,
1679 scsiBusy = scsiErrorBase + 49,
1682 scsiDeviceNotThere =
1684 scsiNoHBA = scsiErrorBase + 52,
1685 scsiDeviceConflict =
1687 scsiNoSuchXref = scsiErrorBase + 54,
1694 scsiFunctionNotAvailable =
1696 scsiRequestInvalid = scsiErrorBase + 66,
1697 scsiBusInvalid = scsiErrorBase + 67,
1700 scsiLUNInvalid = scsiErrorBase + 69,
1701 scsiIDInvalid = scsiErrorBase + 70,
1702 scsiDataTypeInvalid =
1704 scsiTransferTypeInvalid =
1706 scsiCDBLengthInvalid =
1713 scsiUnused74 = scsiErrorBase + 74,
1714 scsiUnused75 = scsiErrorBase + 75,
1715 scsiBadDataLength = scsiErrorBase + 76,
1716 scsiPartialPrepared =
1718 scsiInvalidMsgType =
1720 scsiUnused79 = scsiErrorBase + 79,
1721 scsiBadConnID = scsiErrorBase + 80,
1722 scsiUnused81 = scsiErrorBase + 81,
1725 scsiTargetReserved = scsiErrorBase + 83,
1726 scsiUnused84 = scsiErrorBase + 84,
1727 scsiUnused85 = scsiErrorBase + 85,
1728 scsiBadConnType = scsiErrorBase + 86,
1729 scsiCannotLoadPlugin =
1755 scsiFamilyInternalError =
1757 scsiPluginInternalError =
1759 scsiVendorSpecificErrorBase =
1760 scsiErrorBase + 128,
1761 scsiVendorSpecificErrorCount = 16
1767 scsiExecutionErrors = scsiErrorBase,
1768 scsiNotExecutedErrors = scsiTooManyBuses,
1769 scsiParameterErrors = scsiPBLengthError
1775 scsiSIMQFrozen = 0x0001,
1776 scsiAutosenseValid = 0x0002,
1777 scsiBusNotFree = 0x0004
1784 kbSCSIDisableAutosense = 29,
1785 kbSCSIFlagReservedA = 28,
1786 kbSCSIFlagReserved0 = 27,
1787 kbSCSICDBLinked = 26,
1789 kbSCSICDBIsPointer = 24,
1790 kbSCSIFlagReserved1 = 23,
1791 kbSCSIInitiateSyncData = 22,
1792 kbSCSIDisableSyncData = 21,
1793 kbSCSISIMQHead = 20,
1794 kbSCSISIMQFreeze = 19,
1795 kbSCSISIMQNoFreeze = 18,
1796 kbSCSIDoDisconnect = 17,
1797 kbSCSIDontDisconnect = 16,
1798 kbSCSIDataReadyForDMA = 15,
1799 kbSCSIFlagReserved3 = 14,
1800 kbSCSIDataPhysical = 13,
1801 kbSCSISensePhysical = 12,
1802 kbSCSIFlagReserved5 = 11,
1803 kbSCSIFlagReserved6 = 10,
1804 kbSCSIFlagReserved7 = 9,
1805 kbSCSIFlagReserved8 = 8,
1806 kbSCSIDataBufferValid = 7,
1807 kbSCSIStatusBufferValid = 6,
1808 kbSCSIMessageBufferValid = 5,
1809 kbSCSIFlagReserved9 = 4
1815 scsiDirectionMask = (long)0xC0000000,
1816 scsiDirectionNone = (
long)0xC0000000,
1817 scsiDirectionReserved = 0x00000000,
1818 scsiDirectionOut = (long)0x80000000,
1819 scsiDirectionIn = 0x40000000,
1820 scsiDisableAutosense = 0x20000000,
1821 scsiFlagReservedA = 0x10000000,
1822 scsiFlagReserved0 = 0x08000000,
1823 scsiCDBLinked = 0x04000000,
1824 scsiQEnable = 0x02000000,
1825 scsiCDBIsPointer = 0x01000000,
1826 scsiFlagReserved1 = 0x00800000,
1827 scsiInitiateSyncData = 0x00400000,
1828 scsiDisableSyncData = 0x00200000,
1829 scsiSIMQHead = 0x00100000,
1830 scsiSIMQFreeze = 0x00080000,
1831 scsiSIMQNoFreeze = 0x00040000,
1832 scsiDoDisconnect = 0x00020000,
1833 scsiDontDisconnect = 0x00010000,
1834 scsiDataReadyForDMA = 0x00008000,
1835 scsiFlagReserved3 = 0x00004000,
1836 scsiDataPhysical = 0x00002000,
1837 scsiSensePhysical = 0x00001000,
1838 scsiFlagReserved5 = 0x00000800,
1839 scsiFlagReserved6 = 0x00000400,
1840 scsiFlagReserved7 = 0x00000200,
1841 scsiFlagReserved8 = 0x00000100
1847 scsiNoParityCheck = 0x0002,
1848 scsiDisableSelectWAtn = 0x0004,
1849 scsiSavePtrOnDisconnect = 0x0008,
1850 scsiNoBucketIn = 0x0010,
1851 scsiNoBucketOut = 0x0020,
1852 scsiDisableWide = 0x0040,
1853 scsiInitiateWide = 0x0080,
1854 scsiRenegotiateSense =
1856 scsiDisableDiscipline =
1858 scsiIOFlagReserved0080 = 0x0080,
1859 scsiIOFlagReserved8000 = 0x8000
1867 scsiBusWide32 = 0x40,
1868 scsiBusWide16 = 0x20,
1870 scsiBusLinkedCDB = 0x08,
1872 scsiBusSoftReset = 0x01
1888 scsiBusDataTIB = (1 << scsiDataTIB),
1890 (1 << scsiDataBuffer),
1891 scsiBusDataSG = (1 << scsiDataSG),
1892 scsiBusDataIOTable =
1893 (1 << scsiDataIOTable),
1894 scsiBusDataReserved = (long)0x80000000
1900 scsiBusScansDevices = 0x80,
1901 scsiBusScansOnInit = 0x40,
1902 scsiBusLoadsROMDrivers = 0x20
1908 scsiBusUltra4SCSI = 0x00000800,
1909 scsiBusLVD = 0x00000400,
1910 scsiBusUltra3SCSI = 0x00000200,
1911 scsiBusUltra2SCSI = 0x00000100,
1912 scsiBusInternalExternalMask = 0x000000C0,
1913 scsiBusInternalExternalUnknown =
1915 scsiBusInternalExternal =
1917 scsiBusInternal = 0x00000080,
1918 scsiBusExternal = 0x00000040,
1919 scsiBusCacheCoherentDMA = 0x00000020,
1920 scsiBusOldCallCapable = 0x00000010,
1921 scsiBusUltraSCSI = 0x00000008,
1922 scsiBusDifferential = 0x00000004,
1923 scsiBusFastSCSI = 0x00000002,
1924 scsiBusDMAavailable = 0x00000001
1930 scsiOddDisconnectUnsafeRead1 =
1933 scsiOddDisconnectUnsafeWrite1 =
1936 scsiBusErrorsUnsafe = 0x0004,
1938 scsiRequiresHandshake =
1941 scsiTargetDrivenSDTRSafe = 0x0010,
1943 scsiOddCountForPhysicalUnsafe =
1948 scsiMeshACKTimingFixed =
1955 scsiMotherboardBus = 0x00,
1959 scsiPCMCIABus = 0x05,
1960 scsiFireWireBridgeBus = 0x06,
1967 scsiDeviceSensitive = 0x0001,
1968 scsiDeviceNoOldCallAccess = 0x0002
1978 SIMActionUPP SIMAction;
1979 SCSIInterruptUPP SIM_ISR;
1982 SIMActionUPP NewOldCall;
1985 UInt8 simInfoUnused1;
1986 long simInternalUse;
1988 SCSIUPP EnteringSIM;
1993 UInt8 simSlotNumber;
2001 xptSCSIAction = 0x0001,
2002 xptSCSIRegisterBus = 0x0002,
2003 xptSCSIDeregisterBus = 0x0003,
2004 xptSCSIReregisterBus = 0x0004,
2005 xptSCSIKillXPT = 0x0005,
2006 xptSCSIInitialize = 0x000A
2017 scsiStatGood = 0x00,
2018 scsiStatCheckCondition = 0x02,
2019 scsiStatConditionMet = 0x04,
2020 scsiStatBusy = 0x08,
2021 scsiStatIntermediate = 0x10,
2022 scsiStatIntermedMet = 0x14,
2023 scsiStatResvConflict = 0x18,
2024 scsiStatTerminated = 0x22,
2025 scsiStatQFull = 0x28
2031 kCmdCompleteMsg = 0,
2033 kSaveDataPointerMsg = 2,
2034 kRestorePointersMsg = 3,
2036 kInitiatorDetectedErrorMsg = 5,
2039 kNoOperationMsg = 8,
2040 kMsgParityErrorMsg = 9,
2041 kLinkedCmdCompleteMsg = 10,
2042 kLinkedCmdCompleteWithFlagMsg = 11,
2043 kBusDeviceResetMsg = 12,
2045 kClearQueueMsg = 14,
2046 kInitiateRecoveryMsg = 15,
2047 kReleaseRecoveryMsg = 16,
2048 kTerminateIOProcessMsg = 17,
2049 kSimpleQueueTag = 0x20,
2050 kHeadOfQueueTagMsg = 0x21,
2051 kOrderedQueueTagMsg = 0x22,
2052 kIgnoreWideResidueMsg = 0x23
2064 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
2065 #pragma parameter __D0 SCSIAction(__A0)
2070 #if CALL_NOT_IN_CARBON
2079 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
2080 #pragma parameter __D0 SCSIRegisterBus(__A0)
2093 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
2094 #pragma parameter __D0 SCSIDeregisterBus(__A0)
2107 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
2108 #pragma parameter __D0 SCSIReregisterBus(__A0)
2121 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
2122 #pragma parameter __D0 SCSIKillXPT(__A0)
2129 #if PRAGMA_STRUCT_ALIGN
2130 #pragma options align = reset
2131 #elif PRAGMA_STRUCT_PACKPUSH
2133 #elif PRAGMA_STRUCT_PACK
2137 #ifdef PRAGMA_IMPORT_OFF
2140 #pragma import reset
The Apple disk partition scheme as defined in Inside Macintosh: Volume V.
Basic Macintosh data types.
unsigned char Boolean
Definition: MacTypes.h:318
Mixed Mode Manager Interfaces.
#define CALL_ZERO_PARAMETER_UPP(upp, procInfo)
Definition: MixedMode.h:790
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
short SCSIStat(void)
Get bit map of SCSI control and status bits.
OSErr SCSISelAtn(short targetID)
Select SCSI device and signal intention to send a message.
OSErr SCSIReregisterBus(SIMInitInfo *parameterBlock)
OSErr SCSIKillXPT(SIMInitInfo *parameterBlock)
long InvokeSCSIInterruptUPP(Ptr SIMGlobals, SCSIInterruptUPP userUPP)
SCSIUPP NewSCSIUPP(SCSIProcPtr userRoutine)
void DisposeSIMActionUPP(SIMActionUPP userUPP)
void DisposeSCSIUPP(SCSIUPP userUPP)
OSErr SCSIMsgOut(short message)
Send a message to the SCSI device.
OSErr SCSIAction(SCSI_PB *parameterBlock)
void InvokeSIMActionUPP(void *scsiPB, Ptr SIMGlobals, SIMActionUPP userUPP)
OSErr InvokeSIMInitUPP(Ptr SIMinfoPtr, SIMInitUPP userUPP)
typedef CALLBACK_API(void, SCSICallbackProcPtr)(void *scsiPB)
void DisposeSIMInitUPP(SIMInitUPP userUPP)
void DisposeSCSIMakeCallbackUPP(SCSIMakeCallbackUPP userUPP)
AENCallbackUPP NewAENCallbackUPP(AENCallbackProcPtr userRoutine)
OSErr SCSIComplete(short *stat, short *message, unsigned long wait)
Give current command specific number of ticks to complete.
OSErr SCSIWBlind(Ptr tibPtr)
Transfer data without polling and waiting for /REQ line.
OSErr SCSIDeregisterBus(SCSI_PB *parameterBlock)
SCSIInterruptPollUPP NewSCSIInterruptPollUPP(SCSIInterruptPollProcPtr userRoutine)
OSErr SCSIRegisterBus(SIMInitInfo *parameterBlock)
SIMInitUPP NewSIMInitUPP(SIMInitProcPtr userRoutine)
OSErr SCSIWrite(Ptr tibPtr)
Transfer data from the initiator to the target.
SIMActionUPP NewSIMActionUPP(SIMActionProcPtr userRoutine)
typedef CALLBACK_API_C(void, AENCallbackProcPtr)(void)
OSErr SCSISelect(short targetID)
Select a SCSI device with a specific ID.
OSErr SCSIMsgIn(short *message)
Get a message from the SCSI device.
void InvokeAENCallbackUPP(AENCallbackUPP userUPP)
OSErr SCSIRBlind(Ptr tibPtr)
Transfer data without polling and waiting for /REQ line.
OSErr SCSIReset(void)
Reset the SCSI bus.
OSErr SCSIGet(void)
Arbitrate for use of the SCSI bus.
void InvokeSCSICallbackUPP(void *scsiPB, SCSICallbackUPP userUPP)
SCSIInterruptUPP NewSCSIInterruptUPP(SCSIInterruptProcPtr userRoutine)
SCSICallbackUPP NewSCSICallbackUPP(SCSICallbackProcPtr userRoutine)
void InvokeSCSIUPP(SCSIUPP userUPP)
void DisposeSCSIInterruptPollUPP(SCSIInterruptPollUPP userUPP)
long InvokeSCSIInterruptPollUPP(Ptr SIMGlobals, SCSIInterruptPollUPP userUPP)
void DisposeAENCallbackUPP(AENCallbackUPP userUPP)
void DisposeSCSICallbackUPP(SCSICallbackUPP userUPP)
OSErr SCSIRead(Ptr tibPtr)
Transfer data from the target to the initiator.
void DisposeSCSIInterruptUPP(SCSIInterruptUPP userUPP)
OSErr SCSICmd(Ptr buffer, short count)
Send a command to the selected target device.
void InvokeSCSIMakeCallbackUPP(void *scsiPB, SCSIMakeCallbackUPP userUPP)
SCSIMakeCallbackUPP NewSCSIMakeCallbackUPP(SCSIMakeCallbackProcPtr userRoutine)