From: Godzil Date: Thu, 16 May 2013 07:39:25 +0000 (+0200) Subject: Change sbrk definitions. X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=06665f462494ffedf2981a95f6c7ac8d19ef0e3d;p=ack.git Change sbrk definitions. The prototypes difference between platform is really annoying, since it's hard to always match the system on, and prevent warning on bad types. I try now to always use BRK emulation on all platform that do not match the prototype used in ACK. the PM script should be changed to set this correctly during setup. --- diff --git a/h/missing_proto.h b/h/missing_proto.h index 3294d989f..fc01704c5 100644 --- a/h/missing_proto.h +++ b/h/missing_proto.h @@ -3,7 +3,7 @@ #ifdef NOSBRK void *sbrk(__intptr_t increment); -int brk(void * addr); +void *brk(void * addr); #endif #ifdef NOMKTEMP @@ -12,7 +12,7 @@ char *mktemp(char *template); #ifdef EMULATE_BRK void *sbrk_emu(int increment); -int brk_emu(void * addr); +void *brk_emu(const void * addr); #ifdef sbrk #undef sbrk diff --git a/modules/src/sbrk/sbrk_emu.c b/modules/src/sbrk/sbrk_emu.c index f70d1fc36..d8a1947d4 100644 --- a/modules/src/sbrk/sbrk_emu.c +++ b/modules/src/sbrk/sbrk_emu.c @@ -27,14 +27,14 @@ extern char *calloc(); static void *bottom = NULL; /* bottom of calloc()ed pseudo-heap */ static void *brkval = NULL; /* current value of simulated break */ -int brk_emu( void *endds ) +void *brk_emu(const void *endds ) { int offset; if ( bottom == NULL ) { if ( (bottom = calloc( HEAP_SIZE, 1 )) == 0 ) { - return BRK_ERR; /* unable to set up pseudo-heap */ + return (void *)BRK_ERR; /* unable to set up pseudo-heap */ } else { @@ -45,12 +45,12 @@ int brk_emu( void *endds ) if ( (offset = endds - bottom) < 0 || offset > HEAP_SIZE ) { errno = ENOMEM; - return BRK_ERR; /* attempt to set break out of heap */ + return (void *)BRK_ERR; /* attempt to set break out of heap */ } else { - brkval = endds; - return BRK_OK; + brkval = (void *)endds; + return (void *)BRK_OK; } }