"Physical" memory bounds



Hi,

What manifest constants do folks use to define the limits
on physical memory (of a particular flavor -- e.g., RAM)?
For example, I do:

do_something(void *location, size_t size) {
ASSERT( (location >= FIRST_RAM) && (location <= LAST_RAM) );
ASSERT( size <= ((LAST_RAM - FIRST_RAM) + 1) )
ASSERT( location <= ((LAST_RAM + 1) - size) );

....
}

This gets tedious with discontiguous memory but I don't see
any way around it.
.