alpha_mb(); alpha_mb();
apecs_conf_write(cpv, tag, offset, data)	void *cpv;	pcitag_t tag;	int offset;	pcireg_t data;{	struct apecs_config *acp = cpv;	pcireg_t *datap;	int s, secondary;	int32_t old_haxr2;					/* XXX */#ifdef DIAGNOSTIC	s = 0;					/* XXX gcc -Wuninitialized */	old_haxr2 = 0;				/* XXX gcc -Wuninitialized */#endif	/* secondary if bus # != 0 */	pci_decompose_tag(&acp->ac_pc, tag, &secondary, 0, 0);	if (secondary) {		s = splhigh();		old_haxr2 = REGVAL(EPIC_HAXR2);		alpha_mb();		REGVAL(EPIC_HAXR2) = old_haxr2 | 0x1;		alpha_mb();	}	datap = (pcireg_t *)ALPHA_PHYS_TO_K0SEG(APECS_PCI_CONF |	    tag << 5UL |					/* XXX */	    (offset & ~0x03) << 5 |				/* XXX */	    0 << 5 |						/* XXX */	    0x3 << 3);						/* XXX */	*datap = data;	if (secondary) {		alpha_mb();		REGVAL(EPIC_HAXR2) = old_haxr2;			alpha_mb();		splx(s);	}#if 0	printf("apecs_conf_write: tag 0x%lx, reg 0x%lx -> 0x%x @ %p\n", tag,	    reg, data, datap);#endif}