vxworks相关论文

源代码在线查看: mb87030lib.html

软件大小: 6789 K
上传用户: sun67512945
关键词: vxworks 论文
下载地址: 免注册下载 普通下载 VIP

相关代码

																  mb87030Lib 								 																VxWorks Reference Manual :  Libraries								mb87030Lib NAME  				mb87030Lib - Fujitsu MB87030 SCSI Protocol Controller (SPC) library 												ROUTINES								mb87030CtrlCreate( )  -  create a control structure for an MB87030 SPC				mb87030CtrlInit( )  -  initialize a control structure for an MB87030 SPC				mb87030Show( )  -  display the values of all readable MB87030 SPC registers								DESCRIPTION				This is the I/O driver for the Fujitsu MB87030 SCSI Protocol Controller				(SPC) chip.  It is designed to work in conjunction with scsiLib.								USER-CALLABLE ROUTINES				Most of the routines in this driver are accessible only through the I/O				system.  Two routines, however, must be called directly:  mb87030CtrlCreate( )				to create a controller structure, and mb87030CtrlInit( ) to initialize				the controller structure.								INCLUDE FILES				mb87030.h								SEE ALSO				mb87030Lib, scsiLib,  				Fujitsu Small Computer Systems Interface MB87030 Synchronous/Asynchronous Protocol Controller Users Manual, 				VxWorks Programmer's Guide: I/O System																				Libraries :  Routines								mb87030CtrlCreate( ) NAME  				mb87030CtrlCreate( ) - create a control structure for an MB87030 SPC								SYNOPSIS				MB_87030_SCSI_CTRL *mb87030CtrlCreate				    (				    UINT8 * spcBaseAdrs,   /* base address of SPC */				    int     regOffset,     /* addr offset between consecutive regs. */				    UINT    clkPeriod,     /* period of controller clock (nsec) */				    int     spcDataParity, /* type of input to SPC DP (data parity) */				    FUNCPTR spcDMABytesIn, /* SCSI DMA input function */				    FUNCPTR spcDMABytesOut /* SCSI DMA output function */				    )								DESCRIPTION				This routine creates a data structure that must exist before the SPC chip can				be used.  This routine should be called once and only once for a specified 				SPC.  It should be the first routine called, since it allocates memory for				a structure needed by all other routines in the library.								After calling this routine, at least one call to mb87030CtrlInit( ) should				be made before any SCSI transaction is initiated using the SPC chip.								A detailed description of the input parameters follows:												spcBaseAdrs												the address at which the CPU would access the lowest 				register of the SPC.												regOffset												the address offset (bytes) to access consecutive registers.				(This must be a power of 2, for example, 1, 2, 4, etc.)												clkPeriod												the period in nanoseconds of the signal to the SPC clock input (only				used for select command timeouts).												spcDataParity												the parity bit must be defined by one of the following constants,				according to whether the input to SPC DP is GND, +5V, or a valid				parity signal, respectively:				    SPC_DATA_PARITY_LOW				    SPC_DATA_PARITY_HIGH				    SPC_DATA_PARITY_VALID												spcDmaBytesIn and spcDmaBytesOut								 pointers to board-specific routines to handle DMA input and output.  				If these are NULL (0), SPC program transfer mode is used.				DMA is possible only during SCSI data in/out phases.				The interface to these DMA routines must be of the form:				    STATUS xxDmaBytes{In, Out}				        (				        SCSI_PHYS_DEV  *pScsiPhysDev,  /* ptr to phys dev info    */				        UINT8          *pBuffer,       /* ptr to the data buffer  */				        int            bufLength       /* number of bytes to xfer */				        )																				RETURNS								 A pointer to the SPC control structure, or NULL if memory 				is insufficient or parameters are invalid.				SEE ALSO				mb87030Lib																				Libraries :  Routines								mb87030CtrlInit( ) NAME  				mb87030CtrlInit( ) - initialize a control structure for an MB87030 SPC								SYNOPSIS				STATUS mb87030CtrlInit				    (				    MB_87030_SCSI_CTRL * pSpc,              /* ptr to SPC struct */				    int                  scsiCtrlBusId,     /* SCSI bus ID of this SPC */				    UINT                 defaultSelTimeOut, /* default dev sel timeout */				    int                  scsiPriority       /* priority of task doing SCSI */				    )								DESCRIPTION				This routine initializes an SPC control structure created by				mb87030CtrlCreate( ).  It must be called before the SPC is used.  This				routine can be called more than once; however, it should be				called only while there is no activity on the SCSI interface.								Before returning, this routine pulses RST (reset) on the SCSI bus, thus				resetting all attached devices.								The input parameters are as follows:												pSpc												a pointer to the MB_87030_SCSI_CTRL structure created with				mb87030CtrlCreate( ).												scsiCtrlBusId												the SCSI bus ID of the SIOP, in the range 0 - 7.  The ID is somewhat 				arbitrary; the value 7, or highest priority, is conventional.												defaultSelTimeOut												the timeout, in microseconds, for selecting a SCSI device				attached to this controller.  The recommended value 0				specifies SCSI_DEF_SELECT_TIMEOUT (250 milliseconds).				The maximum timeout possible is approximately 3 seconds.				Values exceeding this revert to the maximum.												scsiPriority								 the priority to which a task is set when performing a SCSI				transaction.  Valid priorities range from 0 to 255.  Alternatively, 				the value -1 specifies that the priority should not be				altered during SCSI transactions.																RETURNS								 OK, or ERROR if parameters are out of range.				SEE ALSO				mb87030Lib																				Libraries :  Routines								mb87030Show( ) NAME  				mb87030Show( ) - display the values of all readable MB87030 SPC registers								SYNOPSIS				STATUS mb87030Show				    (				    SCSI_CTRL * pScsiCtrl /* ptr to SCSI controller info */				    )								DESCRIPTION				This routine displays the state of the SPC registers in a user-friendly 				manner.  It is useful primarily for debugging.								EXAMPLE								    -> mb87030Show				    SCSI Bus ID: 7    				    SCTL (0x01): intsEnbl  				    SCMD (0x00): busRlease 				    TMOD (0x00): asyncMode 				    INTS (0x00):            				    PSNS (0x00): req0 ack0 atn0 sel0 bsy0 msg0 c_d0 i_o0 				    SSTS (0x05): noConIdle xferCnt=0 dregEmpty 				    SERR (0x00): noParErr  				    PCTL (0x00): bfIntDsbl phDataOut 				    MBC  (0x00): 0         				    XFER COUNT : 0x000000 =         0												RETURNS				OK, or ERROR if pScsiCtrl and pSysScsiCtrl are both NULL.				SEE ALSO				mb87030Lib																																							

相关资源