blob: 079959f5dc9db10dfe9553fd2d34a836698e28fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <stdio.h>
#include <sys/mman.h>
#include <sys/stat.h>
void* ircbrowse_mmap(int fd, size_t *lengthp) {
struct stat statbuf;
int ret = fstat(fd, &statbuf);
if (ret < 0) {
perror("stat");
return NULL;
}
void *addr = mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0);
if (addr == NULL) {
perror("mmap");
}
if (lengthp != NULL) *lengthp = statbuf.st_size;
return addr;
}
void ircbrowse_munmap(void *addr, size_t length) {
int ret = munmap(addr, length);
if (ret < 0) {
perror("munmap");
}
}
|