All pastes #975178 Raw Edit

Untitled

public c v1 · immutable
·published 2008-04-07 10:47 UTC
rendered paste body
/* old function */static int __init memsize(void){	u32 size = (64 << 20);	volatile u32 *addr = (u32 *)KSEG1ADDR(0x14000000 + size - 4);	u32 *kernel_end = (u32 *)KSEG1ADDR(CPHYSADDR((u32)&_end));	while (addr > kernel_end) {		*addr = (u32)addr;		size >>= 1;		addr -= size >> 2;	}	do {		addr += size >> 2;		if (*addr != (u32)addr)			break;		size <<= 1;	} while (size < (64 << 20));	return size;}/* new one without volatile */int __init memsize(void){	u32 size = (64 << 20);	u32 *addr = (u32 *)KSEG1ADDR(0x14000000 + size - 4);	u32 *kernel_end = (u32 *)KSEG1ADDR(CPHYSADDR((u32)&_end));	u32 *tmpaddr = addr;	while (tmpaddr > kernel_end) {		*tmpaddr = (u32)tmpaddr;		size >>= 1;		tmpaddr -= size >> 2;	}	do {		tmpaddr += size >> 2;		if (*tmpaddr != (u32)tmpaddr)			break;		size <<= 1;	} while (size < (64 << 20));	writel(tmpaddr, &addr);	return size;}