/**
* Search memory for a 32-bit pattern match on a 32-bit boundary
*
* @v start Start address of region to search
* @v len Length of region, in bytes
* @v pattern Pattern to search for
* @v mask Mask of which bits in the pattern we care about
* @ret found First address at which pattern is found
*
*
* The mask is used to indicate that we care about only part of the
* pattern matching. For example, suppose we wanted to search the
* region for words of the form
*
* 0xabcdXXXX
*
* where X indicates that we don't care about that digit (i.e. that we
* would want to match on 0xabcd0000, or 0xabcd1234, or 0xabcdffff,
* etc.). We would then call memsearch() as
*
* memsearch ( start, len, 0xabcd0000, 0xffff0000 );
*/
uint32_t * memsearch ( uint32_t *start, size_t len,
uint32_t pattern, uint32_t mask ) {
}