case CAM_DIR_OUT: 
case DMA_TO_DEVICE: 
static inline void sym_setup_data_pointers(struct sym_hcb *np,		struct sym_ccb *cp, int dir){	u32 lastp, goalp;	/*	 *  No segments means no data.	 */	if (!cp->segments)		dir = CAM_DIR_NONE;	/*	 *  Set the data pointer.	 */	switch(dir) {#ifdef	SYM_OPT_HANDLE_DIR_UNKNOWN	case CAM_DIR_UNKNOWN:#endif	case CAM_DIR_OUT:		goalp = SCRIPTA_BA(np, data_out2) + 8;		lastp = goalp - 8 - (cp->segments * (2*4));#ifdef	SYM_OPT_HANDLE_DIR_UNKNOWN		cp->wgoalp = cpu_to_scr(goalp);		if (dir != CAM_DIR_UNKNOWN)			break;		cp->phys.head.wlastp = cpu_to_scr(lastp);		/* fall through */#else		break;#endif	case CAM_DIR_IN:		cp->host_flags |= HF_DATA_IN;		goalp = SCRIPTA_BA(np, data_in2) + 8;		lastp = goalp - 8 - (cp->segments * (2*4));		break;	case CAM_DIR_NONE:	default:#ifdef	SYM_OPT_HANDLE_DIR_UNKNOWN		cp->host_flags |= HF_DATA_IN;#endif		lastp = goalp = SCRIPTB_BA(np, no_data);		break;	}	/*	 *  Set all pointers values needed by SCRIPTS.	 */	cp->phys.head.lastp = cpu_to_scr(lastp);	cp->phys.head.savep = cpu_to_scr(lastp);	cp->startp	    = cp->phys.head.savep;	cp->goalp	    = cpu_to_scr(goalp);#ifdef	SYM_OPT_HANDLE_DIR_UNKNOWN	/*	 *  If direction is unknown, start at data_io.	 */	if (dir == CAM_DIR_UNKNOWN)		cp->phys.head.savep = cpu_to_scr(SCRIPTB_BA(np, data_io));#endif}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/53222b906903fd861dc24ebccfa07ee125941313/sym_hipd.h/clean/drivers/scsi/sym53c8xx_2/sym_hipd.h