Адаптирую данный стресс-тест системных вызовов scrashme под нестандартную архитектру. Для более эффективного тестирования в данном тесте системным вызовам подаются аргументы, внешне выглядищие валидными(за это отвечают файлы sanitise*). В частности для системного вызова mremap производиться некое выравнивание нового значения(изначально случайного) размера виртуальной памяти при помощи некой архитектурозависимой константы TASK_SIZE.
#ifdef __x86_64__
#define TASK_SIZE       (0x800000000000UL - 4096)
#endif
#ifdef __i386__
#define PAGE_OFFSET 0xC0000000
#define TASK_SIZE (PAGE_OFFSET)
/*
 * Alternative possibilities for PAGE_OFFSET:
 * default 0xB0000000 if VMSPLIT_3G_OPT
 * default 0x78000000 if VMSPLIT_2G
 * default 0x40000000 if VMSPLIT_1G
 */
#endif
#ifdef __powerpc__
#define PAGE_OFFSET 0xC0000000
#define TASK_SIZE (PAGE_OFFSET)
#endif
#ifdef __ia64__
#define PAGE_OFFSET 0xe000000000000000
#define TASK_SIZE 0xa000000000000000
#endif
#ifdef __sparc__
#ifdef __arch64__
#define TASK_SIZE ~0UL
#else
#define TASK_SIZE 0xF0000000UL
#endif
#endif
....
....
void sanitise_mremap(
		unsigned long *addr,
		__unused unsigned long *old_len,
		unsigned long *new_len,
		unsigned long *flags,
		unsigned long *new_addr,
		__unused unsigned long *a6)
{
	unsigned long mask = ~(page_size-1);
	int i;
	*flags = rand()	& (MREMAP_FIXED | MREMAP_MAYMOVE);
	*addr &= mask;
	if (!*new_len)
		*new_len = rand();
	i=0;
	if (*flags & MREMAP_FIXED) {
		*flags &= ~MREMAP_MAYMOVE;
		*new_len &= TASK_SIZE-*new_len;
....
