reuse code for memory_map_mte
This drops the separate error message since that doesn't seem useful.pull/246/head
parent
6402e2b0d4
commit
aa950244f8
17
memory.c
17
memory.c
|
@ -17,8 +17,8 @@
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
void *memory_map(size_t size) {
|
static void *memory_map_prot(size_t size, int prot) {
|
||||||
void *p = mmap(NULL, size, PROT_NONE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
|
void *p = mmap(NULL, size, prot, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
|
||||||
if (unlikely(p == MAP_FAILED)) {
|
if (unlikely(p == MAP_FAILED)) {
|
||||||
if (errno != ENOMEM) {
|
if (errno != ENOMEM) {
|
||||||
fatal_error("non-ENOMEM mmap failure");
|
fatal_error("non-ENOMEM mmap failure");
|
||||||
|
@ -28,17 +28,14 @@ void *memory_map(size_t size) {
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *memory_map(size_t size) {
|
||||||
|
return memory_map_prot(size, PROT_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAS_ARM_MTE
|
#ifdef HAS_ARM_MTE
|
||||||
// Note that PROT_MTE can't be cleared via mprotect
|
// Note that PROT_MTE can't be cleared via mprotect
|
||||||
void *memory_map_mte(size_t size) {
|
void *memory_map_mte(size_t size) {
|
||||||
void *p = mmap(NULL, size, PROT_MTE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
|
return memory_map_prot(size, PROT_MTE);
|
||||||
if (unlikely(p == MAP_FAILED)) {
|
|
||||||
if (errno != ENOMEM) {
|
|
||||||
fatal_error("non-ENOMEM MTE mmap failure");
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
return p;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue