Remove use of caddr_t
authorTomas Carnecky <tomas.carnecky@gmail.com>
Thu, 19 May 2016 19:03:32 +0000 (21:03 +0200)
committerBen Gamari <ben@smart-cactus.org>
Thu, 19 May 2016 19:34:44 +0000 (21:34 +0200)
> caddr_t is a legacy BSD type associated with some low level calls like
> mmap, and it should never be used in modern code. It was rejected by
> the POSIX standard. The standardized mmap uses void *.

(http://stackoverflow.com/questions/6381526/what-is-the-significance-of-
caddr-t-and-when-is-it-used)

Reviewers: austin, simonmar, rwbarton, bgamari, erikd

Reviewed By: rwbarton, bgamari, erikd

Subscribers: erikd, thomie

Differential Revision: https://phabricator.haskell.org/D2234

rts/posix/OSMem.c

index a06f544..4e6ecc2 100644 (file)
 #include <sys/sysctl.h>
 #endif
 
-static caddr_t next_request = 0;
+static void *next_request = 0;
 
 void osMemInit(void)
 {
-    next_request = (caddr_t)RtsFlags.GcFlags.heapBase;
+    next_request = (void *)RtsFlags.GcFlags.heapBase;
 }
 
 /* -----------------------------------------------------------------------------
@@ -262,7 +262,7 @@ gen_map_mblocks (W_ size)
 void *
 osGetMBlocks(uint32_t n)
 {
-  caddr_t ret;
+  void *ret;
   W_ size = MBLOCK_SIZE * (W_)n;
 
   if (next_request == 0) {
@@ -289,7 +289,7 @@ osGetMBlocks(uint32_t n)
   }
   // Next time, we'll try to allocate right after the block we just got.
   // ToDo: check that we haven't already grabbed the memory at next_request
-  next_request = ret + size;
+  next_request = (char *)ret + size;
 
   return ret;
 }