PAGE_SIZE definition can potentially collide with name from
/usr/include/bits/limits.h
/usr/include/sys/user.h
/usr/include/bits/xopen_lim.h
diff -ru libemu-ab48695b7113db692982a1839e3d6eb9e73e90a9/src/emu_memory.c libemu-ab48695b7113db692982a1839e3d6eb9e73e90a9.new/src/emu_memory.c
--- libemu-ab48695b7113db692982a1839e3d6eb9e73e90a9/src/emu_memory.c 2018-03-22 22:28:11.673550718 +0100
+++ libemu-ab48695b7113db692982a1839e3d6eb9e73e90a9.new/src/emu_memory.c 2018-03-22 22:27:20.249304848 +0100
@@ -37,16 +37,16 @@
#include "emu/emu_breakpoint.h"
-#define PAGE_BITS 12 /* size of one page, 2^12 = 4096 */
-#define PAGESET_BITS 10 /* number of pages in one pageset, 2^10 = 1024 */
+#define EMU_PAGE_BITS 12 /* size of one page, 2^12 = 4096 */
+#define EMU_PAGESET_BITS 10 /* number of pages in one pageset, 2^10 = 1024 */
-#define PAGE_SIZE (1 << PAGE_BITS)
-#define PAGESET_SIZE (1 << PAGESET_BITS)
+#define EMU_PAGE_SIZE (1 << EMU_PAGE_BITS)
+#define EMU_PAGESET_SIZE (1 << EMU_PAGESET_BITS)
-#define PAGESET(x) ((x) >> (PAGESET_BITS + PAGE_BITS))
-#define PAGE(x) (((x) >> PAGE_BITS) & ((1 << PAGESET_BITS) - 1))
-#define OFFSET(x) (((1 << PAGE_BITS) - 1) & (x))
+#define EMU_PAGESET(x) ((x) >> (EMU_PAGESET_BITS + EMU_PAGE_BITS))
+#define EMU_PAGE(x) (((x) >> EMU_PAGE_BITS) & ((1 << EMU_PAGESET_BITS) - 1))
+#define OFFSET(x) (((1 << EMU_PAGE_BITS) - 1) & (x))
#define FS_SEGMENT_DEFAULT_OFFSET 0x7ffdf000
@@ -70,7 +70,7 @@
#if 1
/*static void emu_memory_debug_pagetable(struct emu_memory *m)
{
- int pagesets = 1 << (32 - PAGESET_BITS - PAGE_BITS);
+ int pagesets = 1 << (32 - EMU_PAGESET_BITS - EMU_PAGE_BITS);
int pagesets_used = 0;
printf("*** memory debug\n");
@@ -82,7 +82,7 @@
if( m->pagetable[i] != NULL )
{
printf(" pageset %d allocated at 0x%08x\n", i, (int)m->pagetable[i]);
- int pages = 1 << (PAGESET_BITS);
+ int pages = 1 << (EMU_PAGESET_BITS);
int pages_used = 0;
for( j = 0; j < pages; j++ )
@@ -107,14 +107,14 @@
static void emu_memory_debug_addr(uint32_t addr)
{
printf("addr 0x%08x, pageset 0x%08x, page 0x%08x, offset 0x%08x\n",
- addr, PAGESET(addr), PAGE(addr), OFFSET(addr));
+ addr, EMU_PAGESET(addr), EMU_PAGE(addr), OFFSET(addr));
}*/
#endif
uint32_t emu_memory_get_usage(struct emu_memory *m)
{
- uint32_t usage = (1 << (32 - PAGE_BITS - PAGESET_BITS)) * sizeof(void *); /* pageset table */
- int pagesets = 1 << (32 - PAGESET_BITS - PAGE_BITS);
+ uint32_t usage = (1 << (32 - EMU_PAGE_BITS - EMU_PAGESET_BITS)) * sizeof(void *); /* pageset table */
+ int pagesets = 1 << (32 - EMU_PAGESET_BITS - EMU_PAGE_BITS);
int i, j;
@@ -122,12 +122,12 @@
{
if( m->pagetable[i] != NULL )
{
- usage += PAGESET_SIZE * sizeof(void *);
- int pages = 1 << (PAGESET_BITS);
+ usage += EMU_PAGESET_SIZE * sizeof(void *);
+ int pages = 1 << (EMU_PAGESET_BITS);
for( j = 0; j < pages; j++ )
if( m->pagetable[i][j] != NULL )
- usage += PAGE_SIZE;
+ usage += EMU_PAGE_SIZE;
}
}
@@ -145,12 +145,12 @@
em->emu = e;
- em->pagetable = malloc((1 << (32 - PAGE_BITS - PAGESET_BITS)) * sizeof(void *));
+ em->pagetable = malloc((1 << (32 - EMU_PAGE_BITS - EMU_PAGESET_BITS)) * sizeof(void *));
if( em->pagetable == NULL )
{
return NULL;
}
- memset(em->pagetable, 0, (1 << (32 - PAGE_BITS - PAGESET_BITS)) * sizeof(void *));
+ memset(em->pagetable, 0, (1 << (32 - EMU_PAGE_BITS - EMU_PAGESET_BITS)) * sizeof(void *));
em->segment_table[s_fs] = FS_SEGMENT_DEFAULT_OFFSET;
@@ -172,11 +172,11 @@
emu_breakpoint_free(m->breakpoint);
- for( i = 0; i < (1 << (32 - PAGESET_BITS - PAGE_BITS)); i++ )
+ for( i = 0; i < (1 << (32 - EMU_PAGESET_BITS - EMU_PAGE_BITS)); i++ )
{
if( m->pagetable[i] != NULL )
{
- for( j = 0; j < PAGESET_SIZE; j++ )
+ for( j = 0; j < EMU_PAGESET_SIZE; j++ )
if( m->pagetable[i][j] != NULL ) {
free(m->pagetable[i][j]);
m->pagetable[i][j] = NULL;
@@ -185,7 +185,7 @@
}
}
- for( i = 0; i < (1 << (32 - PAGESET_BITS - PAGE_BITS)); i++ )
+ for( i = 0; i < (1 << (32 - EMU_PAGESET_BITS - EMU_PAGE_BITS)); i++ )
{
if( m->pagetable[i] != NULL )
{
@@ -202,11 +202,11 @@
{
int i, j;
- for( i = 0; i < (1 << (32 - PAGESET_BITS - PAGE_BITS)); i++ )
+ for( i = 0; i < (1 << (32 - EMU_PAGESET_BITS - EMU_PAGE_BITS)); i++ )
{
if( m->pagetable[i] != NULL )
{
- for( j = 0; j < PAGESET_SIZE; j++ )
+ for( j = 0; j < EMU_PAGESET_SIZE; j++ )
if( m->pagetable[i][j] != NULL )
free(m->pagetable[i][j]);
@@ -214,7 +214,7 @@
}
}
- memset(m->pagetable, 0, (1 << (32 - PAGE_BITS - PAGESET_BITS)) * sizeof(void *));
+ memset(m->pagetable, 0, (1 << (32 - EMU_PAGE_BITS - EMU_PAGESET_BITS)) * sizeof(void *));
m->segment_table[s_fs] = FS_SEGMENT_DEFAULT_OFFSET;
@@ -223,9 +223,9 @@
static inline int page_is_alloc(struct emu_memory *em, uint32_t addr)
{
- if( em->pagetable[PAGESET(addr)] != NULL )
+ if( em->pagetable[EMU_PAGESET(addr)] != NULL )
{
- if( em->pagetable[PAGESET(addr)][PAGE(addr)] != NULL )
+ if( em->pagetable[EMU_PAGESET(addr)][EMU_PAGE(addr)] != NULL )
{
return -1;
}
@@ -236,31 +236,31 @@
static inline int page_alloc(struct emu_memory *em, uint32_t addr)
{
- if( em->pagetable[PAGESET(addr)] == NULL )
+ if( em->pagetable[EMU_PAGESET(addr)] == NULL )
{
- em->pagetable[PAGESET(addr)] = malloc(PAGESET_SIZE * sizeof(void *));
+ em->pagetable[EMU_PAGESET(addr)] = malloc(EMU_PAGESET_SIZE * sizeof(void *));
- if( em->pagetable[PAGESET(addr)] == NULL )
+ if( em->pagetable[EMU_PAGESET(addr)] == NULL )
{
emu_errno_set(em->emu, ENOMEM);
emu_strerror_set(em->emu, "out of memory\n", addr);
return -1;
}
- memset(em->pagetable[PAGESET(addr)], 0, PAGESET_SIZE * sizeof(void *));
+ memset(em->pagetable[EMU_PAGESET(addr)], 0, EMU_PAGESET_SIZE * sizeof(void *));
}
- if( em->pagetable[PAGESET(addr)][PAGE(addr)] == NULL )
+ if( em->pagetable[EMU_PAGESET(addr)][EMU_PAGE(addr)] == NULL )
{
- em->pagetable[PAGESET(addr)][PAGE(addr)] = malloc(PAGE_SIZE);
+ em->pagetable[EMU_PAGESET(addr)][EMU_PAGE(addr)] = malloc(EMU_PAGE_SIZE);
- if( em->pagetable[PAGESET(addr)][PAGE(addr)] == NULL )
+ if( em->pagetable[EMU_PAGESET(addr)][EMU_PAGE(addr)] == NULL )
{
emu_errno_set(em->emu, ENOMEM);
emu_strerror_set(em->emu, "out of memory\n", addr);
return -1;
}
- memset(em->pagetable[PAGESET(addr)][PAGE(addr)], 0, PAGE_SIZE);
+ memset(em->pagetable[EMU_PAGESET(addr)][EMU_PAGE(addr)], 0, EMU_PAGE_SIZE);
}
return 0;
@@ -268,11 +268,11 @@
static inline void *translate_addr(struct emu_memory *em, uint32_t addr)
{
- if( em->pagetable[PAGESET(addr)] != NULL )
+ if( em->pagetable[EMU_PAGESET(addr)] != NULL )
{
- if( em->pagetable[PAGESET(addr)][PAGE(addr)] != NULL )
+ if( em->pagetable[EMU_PAGESET(addr)][EMU_PAGE(addr)] != NULL )
{
- return em->pagetable[PAGESET(addr)][PAGE(addr)] + OFFSET(addr);
+ return em->pagetable[EMU_PAGESET(addr)][EMU_PAGE(addr)] + OFFSET(addr);
}
}
@@ -342,14 +342,14 @@
return -1;
}
- if (OFFSET(addr) + len <= PAGE_SIZE)
+ if (OFFSET(addr) + len <= EMU_PAGE_SIZE)
{
bcopy(address, dest, len);
return 0;
}
else
{
- uint32_t cb = PAGE_SIZE - OFFSET(addr);
+ uint32_t cb = EMU_PAGE_SIZE - OFFSET(addr);
bcopy(address, dest, cb);
return emu_memory_read_block(m, oaddr + cb, dest + cb, len - cb);
}
@@ -461,14 +461,14 @@
address = translate_addr(m, addr);
}
- if (OFFSET(addr) + len <= PAGE_SIZE)
+ if (OFFSET(addr) + len <= EMU_PAGE_SIZE)
{
bcopy(src, address, len);
return 0;
}
else
{
- uint32_t cb = PAGE_SIZE - OFFSET(addr);
+ uint32_t cb = EMU_PAGE_SIZE - OFFSET(addr);
bcopy(src, address, cb);
return emu_memory_write_block(m, oaddr + cb, src + cb, len - cb);
}
@@ -491,16 +491,16 @@
/* make sure a memory block of size *len* is allocated at *addr* */
/*int32_t emu_memory_alloc_at(struct emu_memory *m, uint32_t addr, size_t len)
{
- len += addr % PAGE_SIZE;
- addr = (addr >> PAGE_BITS) << PAGE_BITS;
+ len += addr % EMU_PAGE_SIZE;
+ addr = (addr >> EMU_PAGE_BITS) << EMU_PAGE_BITS;
while( len > 0 )
{
- if( len > PAGE_SIZE )
+ if( len > EMU_PAGE_SIZE )
{
- len -= PAGE_SIZE;
+ len -= EMU_PAGE_SIZE;
page_alloc(m, addr);
- addr += PAGE_SIZE;
+ addr += EMU_PAGE_SIZE;
}
else
{
@@ -516,9 +516,9 @@
{
*addr = 0x00200000;
- uint32_t pages = len / PAGE_SIZE;
+ uint32_t pages = len / EMU_PAGE_SIZE;
- if( len % PAGE_SIZE != 0 )
+ if( len % EMU_PAGE_SIZE != 0 )
{
pages++;
}
@@ -530,7 +530,7 @@
{
for( i = 0; i < pages; i++ )
{
- if( page_is_alloc(m, *addr + i * PAGE_SIZE) != 0 )
+ if( page_is_alloc(m, *addr + i * EMU_PAGE_SIZE) != 0 )
{
break;
}
@@ -540,7 +540,7 @@
{
for( i = 0; i < pages; i++ )
{
- if( page_alloc(m, *addr + i * PAGE_SIZE) )
+ if( page_alloc(m, *addr + i * EMU_PAGE_SIZE) )
{
return -1;
}
@@ -549,7 +549,7 @@
return 0;
}
- *addr += len + PAGE_SIZE;
+ *addr += len + EMU_PAGE_SIZE;
}
return -1;