void* Mono_Posix_Syscall_mremap (void *old_address, mph_size_t old_size, mph_size_t new_size, guint64 flags) { guint64 _flags; mph_return_val_if_size_t_overflow (old_size, MAP_FAILED); mph_return_val_if_size_t_overflow (new_size, MAP_FAILED); if (Mono_Posix_FromMremapFlags (flags, &_flags) == -1) return MAP_FAILED; return mremap (old_address, (size_t) old_size, (size_t) new_size, (unsigned long) _flags); }
void* Mono_Posix_Syscall_mremap (void *old_address, mph_size_t old_size, mph_size_t new_size, guint64 flags) { guint64 _flags; mph_return_val_if_size_t_overflow (old_size, MAP_FAILED); mph_return_val_if_size_t_overflow (new_size, MAP_FAILED); if (Mono_Posix_FromMremapFlags (flags, &_flags) == -1) return MAP_FAILED; #if defined(linux) return mremap (old_address, (size_t) old_size, (size_t) new_size, (unsigned long) _flags); #elif defined(__NetBSD__) return mremap (old_address, (size_t) old_size, old_address, (size_t) new_size, (unsigned long) _flags); #else #error Port me #endif }
G_BEGIN_DECLS void* Mono_Posix_Syscall_mmap (void *start, mph_size_t length, int prot, int flags, int fd, mph_off_t offset) { int _prot, _flags; mph_return_val_if_size_t_overflow (length, MAP_FAILED); mph_return_val_if_off_t_overflow (offset, MAP_FAILED); if (Mono_Posix_FromMmapProts (prot, &_prot) == -1) return MAP_FAILED; if (Mono_Posix_FromMmapFlags (flags, &_flags) == -1) return MAP_FAILED; return mmap (start, (size_t) length, _prot, _flags, fd, (off_t) offset); }