Annotation of Examples/DriverKit/AMDPCSCSIDriver/AMDPCSCSIDriver_reloc.tproj/AMD_Private.h, revision 1.1.1.1

1.1       root        1: /*     Copyright (c) 1994 NeXT Computer, Inc.  All rights reserved. 
                      2:  *
                      3:  * AMD_SCSI.h - hardware-independent methods for AMD PCI SCSI driver.
                      4:  *
                      5:  * These methods are implemented in AMD_SCSI.m.
                      6:  *
                      7:  * HISTORY
                      8:  * 21 Oct 94    Doug Mitchell at NeXT
                      9:  *      Created. 
                     10:  */
                     11:  
                     12: #import "AMD_SCSI.h"
                     13: #import "AMD_Types.h"
                     14: 
                     15: @interface AMD_SCSI(Private)
                     16: 
                     17: /*
                     18:  * Send a command to the controller thread, and wait for its completion.
                     19:  * Only invoked by publicly exported methods in SCSIController.m.
                     20:  */
                     21: - (IOReturn)executeCmdBuf      : (commandBuf *)cmdBuf;
                     22: 
                     23: /*
                     24:  * Abort all active and disconnected commands with specified status. No 
                     25:  * hardware action. Currently used by threadResetBus and during processing
                     26:  * of a CO_Abort command.
                     27:  */
                     28: - (void)swAbort : (sc_status_t)status;
                     29: 
                     30: /*
                     31:  * I/O thread version of resetSCSIBus and executeRequest.
                     32:  */
                     33: - (void)threadResetBus                 : (const char *)reason;
                     34: - (void)threadExecuteRequest   : (commandBuf *)cmdBuf;
                     35: 
                     36: /*
                     37:  * Methods called by other modules in this driver. 
                     38:  */
                     39:  
                     40: /*
                     41:  * Called when a transaction associated with cmdBuf is complete. Notify 
                     42:  * waiting thread. If cmdBuf->scsiReq exists (i.e., this is not a reset
                     43:  * or an abort), scsiReq->driverStatus must be valid. If cmdBuf is activeCmd,
                     44:  * caller must remove from activeCmd.
                     45:  */
                     46: - (void)ioComplete             : (commandBuf *)cmdBuf;
                     47: 
                     48: /*
                     49:  * Generate autosense request for specified cmdBuf, place it 
                     50:  * at head of pendingQ.
                     51:  */
                     52: - (void)generateAutoSense : (commandBuf *)cmdBuf;
                     53: 
                     54: /*
                     55:  * I/O associated with activeCmd has disconnected. Place it on disconnectQ
                     56:  * and enable another transaction.
                     57:  */ 
                     58: - (void)disconnect;
                     59: 
                     60: /*
                     61:  * Specified target, lun, and queueTag is trying to reselect. If we have 
                     62:  * a commandBuf for this TLQ nexus on disconnectQ, remove it, make it the
                     63:  * current activeCmd, and return YES. Else return NO.
                     64:  * A value of zero for queueTag indicates a nontagged command (zero is never
                     65:  * used as the queue tag value for a tagged command).
                     66:  */
                     67: - (BOOL)reselect               : (unsigned char)target_id
                     68:                            lun : (unsigned char)lun
                     69:                       queueTag : (unsigned char)queueTag;
                     70: 
                     71: /*
                     72:  * Determine if activeArray[][], maxQueue[][], cmdQueueEnable, and a 
                     73:  * command's target and lun show that it's OK to start processing cmdBuf.
                     74:  * Returns YES if copacetic.
                     75:  */
                     76: - (BOOL)cmdBufOK : (commandBuf *)cmdBuf;
                     77:            
                     78: /*
                     79:  * The bus has gone free. Start up commands in pendingQ, if any.
                     80:  */
                     81: - (void)busFree;
                     82: 
                     83: /*
                     84:  * Abort activeCmd (if any) and any disconnected I/Os (if any) and reset 
                     85:  * the bus due to gross hardware failure.
                     86:  * If activeCmd is valid, its scsiReq->driverStatus will be set to 'status'.
                     87:  */
                     88: - (void)hwAbort                : (sc_status_t)status
                     89:                         reason : (const char *)reason;
                     90: 
                     91: /*
                     92:  * Called by chip level to indicate that a command has gone out to the 
                     93:  * hardware.
                     94:  */
                     95: - (void)activateCommand : (commandBuf *)cmdBuf;
                     96: 
                     97: /*
                     98:  * Remove specified cmdBuf from "active" status. Update activeArray,
                     99:  * activeCount, and unschedule pending timer.
                    100:  */
                    101: - (void)deactivateCmd : (commandBuf *)cmdBuf;
                    102: 
                    103: @end
                    104: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.