xf86DrvMsg(scrp->scrnIndex, X_CONFIG, "%s \"%s\"\n", prefix, p->name);
if (p->name) xf86DrvMsg(scrp->scrnIndex, X_CONFIG, "%s \"%s\"\n", prefix, p->name); else xf86DrvMsg(scrp->scrnIndex, X_PROBED, "%s %dx%d (unnamed)\n", prefix, p->HDisplay, p->VDisplay);
xf86PrintModes(ScrnInfoPtr scrp){    DisplayModePtr p;    float hsync, refresh = 0;    char *desc, *desc2, *prefix;    if (scrp == NULL)	return;    xf86DrvMsg(scrp->scrnIndex, scrp->virtualFrom, "Virtual size is %dx%d "	       "(pitch %d)\n", scrp->virtualX, scrp->virtualY,	       scrp->displayWidth);        p = scrp->modes;    if (p == NULL)	return;    do {	desc = desc2 = "";	if (p->HSync > 0.0)	    hsync = p->HSync;	else if (p->HTotal > 0)	    hsync = (float)p->Clock / (float)p->HTotal;	else	    hsync = 0.0;	if (p->VTotal > 0)	    refresh = hsync * 1000.0 / p->VTotal;	if (p->Flags & V_INTERLACE) {	    refresh *= 2.0;	    desc = " (I)";	}	if (p->Flags & V_DBLSCAN) {	    refresh /= 2.0;	    desc = " (D)";	}	if (p->VScan > 1) {	    refresh /= p->VScan;	    desc2 = " (VScan)";	}	if (p->VRefresh > 0.0)	    refresh = p->VRefresh;	if (p->type & M_T_BUILTIN)	    prefix = "Built-in mode";	else if (p->type & M_T_DEFAULT)	    prefix = "Default mode";	else	    prefix = "Mode";	if (hsync == 0 || refresh == 0) {	    xf86DrvMsg(scrp->scrnIndex, X_CONFIG,			"%s \"%s\"\n", prefix, p->name);	} else if (p->Clock == p->SynthClock) {	    xf86DrvMsg(scrp->scrnIndex, X_CONFIG,			"%s \"%s\": %.1f MHz, %.1f kHz, %.1f Hz%s%s\n",			prefix, p->name, p->Clock / 1000.0, hsync, refresh,			desc, desc2);	} else {	    xf86DrvMsg(scrp->scrnIndex, X_CONFIG,			"%s \"%s\": %.1f MHz (scaled from %.1f MHz), "			"%.1f kHz, %.1f Hz%s%s\n",			prefix, p->name, p->Clock / 1000.0,			p->SynthClock / 1000.0, hsync, refresh, desc, desc2);	}	if (hsync != 0 && refresh != 0)	    PrintModeline(scrp->scrnIndex,p);	p = p->next;    } while (p != NULL && p != scrp->modes);}