summaryrefslogtreecommitdiff
path: root/emu/NetBSD/segflush-arm.c
blob: a03b438b770147f173dfd08316f7aa6032c564b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <sys/types.h>
#include <sys/mman.h>
#include <machine/sysarch.h>

#include "dat.h"


int
segflush(void *a, ulong n)
{
	struct arm_sync_icache_args args;

	mprotect(a, (size_t)n, PROT_READ | PROT_WRITE | PROT_EXEC);

	args.addr = (uintptr_t)a;
	args.len = (size_t)n;
	sysarch(ARM_SYNC_ICACHE, (void *)&args);
	return 0;
}