unsigned long prpn, int secondary, unsigned long hpteflags, int bolted, int large)
unsigned long prpn, unsigned long vflags, unsigned long rflags)
long native_hpte_insert(unsigned long hpte_group, unsigned long va,			unsigned long prpn, int secondary,			unsigned long hpteflags, int bolted, int large){	unsigned long arpn = physRpn_to_absRpn(prpn);	HPTE *hptep = htab_address + hpte_group;	Hpte_dword0 dw0;	HPTE lhpte;	int i;	for (i = 0; i < HPTES_PER_GROUP; i++) {		dw0 = hptep->dw0.dw0;		if (!dw0.v) {			/* retry with lock held */			native_lock_hpte(hptep);			dw0 = hptep->dw0.dw0;			if (!dw0.v)				break;			native_unlock_hpte(hptep);		}		hptep++;	}	if (i == HPTES_PER_GROUP)		return -1;	lhpte.dw1.dword1      = 0;	lhpte.dw1.dw1.rpn     = arpn;	lhpte.dw1.flags.flags = hpteflags;	lhpte.dw0.dword0      = 0;	lhpte.dw0.dw0.avpn    = va >> 23;	lhpte.dw0.dw0.h       = secondary;	lhpte.dw0.dw0.bolted  = bolted;	lhpte.dw0.dw0.v       = 1;	if (large) {		lhpte.dw0.dw0.l = 1;		lhpte.dw0.dw0.avpn &= ~0x1UL;	}	hptep->dw1.dword1 = lhpte.dw1.dword1;	/* Guarantee the second dword is visible before the valid bit */	__asm__ __volatile__ ("eieio" : : : "memory");	/*	 * Now set the first dword including the valid bit	 * NOTE: this also unlocks the hpte	 */	hptep->dw0.dword0 = lhpte.dw0.dword0;	__asm__ __volatile__ ("ptesync" : : : "memory");	return i | (secondary << 3);}