mirror of
https://github.com/RaySollium99/libpicofe.git
synced 2025-09-05 06:47:45 -04:00
bugfixes related to mmap usage for ROM
git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@867 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
1e122e3119
commit
1ed480497a
1 changed files with 16 additions and 1 deletions
17
linux/plat.c
17
linux/plat.c
|
@ -1,3 +1,4 @@
|
|||
#define _GNU_SOURCE
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <dirent.h>
|
||||
|
@ -112,8 +113,9 @@ int plat_wait_event(int *fds_hnds, int count, int timeout_ms)
|
|||
void *plat_mmap(unsigned long addr, size_t size)
|
||||
{
|
||||
void *req, *ret;
|
||||
|
||||
req = (void *)addr;
|
||||
ret = mmap(req, size, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0);
|
||||
ret = mmap(req, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
|
||||
if (ret == MAP_FAILED)
|
||||
return NULL;
|
||||
if (ret != req)
|
||||
|
@ -122,6 +124,19 @@ void *plat_mmap(unsigned long addr, size_t size)
|
|||
return ret;
|
||||
}
|
||||
|
||||
void *plat_mremap(void *ptr, size_t oldsize, size_t newsize)
|
||||
{
|
||||
void *ret;
|
||||
|
||||
ret = mremap(ptr, oldsize, newsize, MREMAP_MAYMOVE);
|
||||
if (ret == MAP_FAILED)
|
||||
return NULL;
|
||||
if (ret != ptr)
|
||||
printf("warning: mremap moved: %p -> %p\n", ptr, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void plat_munmap(void *ptr, size_t size)
|
||||
{
|
||||
munmap(ptr, size);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue