BCI_SEND(BCI_CLIP_LR(x, x+w-1)); x -= skipleft; w += skipleft; w = (w + 31) & ~31; if( s3SavedBciCmd & BCI_CMD_SEND_COLOR ) BCI_SEND(s3SavedFgColor); if( s3SavedBgColor != -1 )
S3SAVSubsequentCPUToScreenColorExpand(x, y, w, h, skipleft)int x, y, w, h, skipleft;{    BCI_GET_PTR;#if BCI_REPEAT    WaitQueue(4);    BCI_SEND(BCI_X_Y(x, y));    BCI_SEND(BCI_W_H(w, h));    BCI_SEND(((w + 31) / 32) * h);#else    WaitQueue(7);    if ( 0 ) {    BCI_SEND(s3SavedBciCmd);#if 0    if(skipleft != 0)          BCI_SEND(BCI_CLIP_LR(x + skipleft, s3vPriv.Width));     else        BCI_SEND(BCI_CLIP_LR(0, s3vPriv.Width));#endif    BCI_SEND(s3SavedFgColor);    if (s3SavedBgColor != -1)  	BCI_SEND(s3SavedBgColor);    else BCI_SEND(0);    BCI_SEND(BCI_X_Y(x, y));    BCI_SEND(BCI_W_H(w, h));    /*BCI_SEND(((w + 31) / 32) * h);*/    } else {        int i, j, count;	s3SavedBciCmd = 0;        BCI_SEND(0x4bcc8060);        BCI_SEND(s3SavedFgColor);        BCI_SEND(s3SavedBgColor);	count = (w + 31) / 32;	for (j = 0; j < 1; j ++) {	    BCI_SEND(BCI_X_Y(x, y+j));	    BCI_SEND(BCI_W_H(w, 1));	    for (i = count; i > 0; i--) {	        BCI_SEND(0xffffffff);	    }	}    }#endif    if(S3SAVROPHasSrc(s3SavedBciCmd<<1)) {       xf86AccelInfoRec.CPUToScreenColorExpandBase =              (void *) bci_ptr;       xf86AccelInfoRec.ColorExpandFlags &= (~CPU_TRANSFER_BASE_FIXED);        }    else {    /* Fix for XAA bug */       xf86AccelInfoRec.CPUToScreenColorExpandBase =              (void *) &s3DummyTransferArea;       xf86AccelInfoRec.ColorExpandFlags |= CPU_TRANSFER_BASE_FIXED;        }}