/* -----------------------------------------------------------------------------
- * $Id: Storage.c,v 1.81 2003/10/24 09:52:51 simonmar Exp $
+ * $Id: Storage.c,v 1.84 2004/08/13 13:11:01 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
#include "Storage.h"
#include "Schedule.h"
#include "OSThreads.h"
-#include "StoragePriv.h"
#include "RetainerProfile.h" // for counting memory blocks (memInventory)
generation *oldest_gen = NULL; /* oldest generation, for convenience */
step *g0s0 = NULL; /* generation 0, step 0, for convenience */
-lnat total_allocated = 0; /* total memory allocated during run */
+ullong total_allocated = 0; /* total memory allocated during run */
/*
* Storage manager mutex: protects all the above state from
nat req_blocks = (lnat)BLOCK_ROUND_UP(n*sizeof(W_)) / BLOCK_SIZE;
bd = allocGroup(req_blocks);
dbl_link_onto(bd, &g0s0->large_objects);
+ g0s0->n_large_blocks += req_blocks;
bd->gen_no = 0;
bd->step = g0s0;
bd->flags = BF_LARGE;
SET_ARR_HDR(arr, &stg_ARR_WORDS_info, CCCS, data_size_in_words);
/* and return a ptr to the goods inside the array */
- return(BYTE_ARR_CTS(arr));
+ return arr->payload;
}
static void *