Files
git-mirror/compat/mmap.c
Jeff King 65e8141f05 compat/mmap: mark unused argument in git_munmap()
Our mmap compat code emulates mapping by using malloc/free. Our
git_munmap() must take a "length" parameter to match the interface of
munmap(), but we don't use it (it is up to the allocator to know how big
the block is in free()).

Let's mark it as UNUSED to avoid complaints from -Wunused-parameter.
Otherwise you cannot build with "make DEVELOPER=1 NO_MMAP=1".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-11-18 09:36:05 -08:00

46 lines
773 B
C

#include "../git-compat-util.h"
void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset)
{
size_t n = 0;
if (start != NULL || flags != MAP_PRIVATE || prot != PROT_READ)
die("Invalid usage of mmap when built with NO_MMAP");
if (length == 0) {
errno = EINVAL;
return MAP_FAILED;
}
start = malloc(length);
if (!start) {
errno = ENOMEM;
return MAP_FAILED;
}
while (n < length) {
ssize_t count = xpread(fd, (char *)start + n, length - n, offset + n);
if (count == 0) {
memset((char *)start+n, 0, length-n);
break;
}
if (count < 0) {
free(start);
errno = EACCES;
return MAP_FAILED;
}
n += count;
}
return start;
}
int git_munmap(void *start, size_t length UNUSED)
{
free(start);
return 0;
}