All pastes #739758 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-10-17 13:25 UTC
rendered paste body
const size_t MAXMESSAGES = 200;
const size_t MESSAGE_SIZE = 160;
const size_t BLOCK_SIZE = 64;
const size_t BLOCKS_PER_MESSAGE = MESSAGE_SIZE / BLOCK_SIZE + 1;
const size_t BLOCKS = MAXMESSAGE * BLOCKS_PER_MESSAGE;


const size_t metadata_in_bytes = sizeof(mdata) * MAXMESSAGES;
const size_t bitmap_size_in_bytes = DATABLOCKS / CHAR_BIT + 1;
const size_t blocks_in_bytes = blocks * BLOCK_SIZE;

void *memory_area = malloc(metadata_in_bytes + bitmap_size_in_bytes + 
			   blocks_in_bytes);

/* FIXME: alignment! */
struct mdata *metadata = (struct mdata*) memory_area; 
char *bitmap = ((void*)metadata) + metadata_in_bytes;
void *datablocks = (char**)(((void*)bitmap) + bitmap_size_in_bytes);

/* access i'th block: datablocks + i*BLOCK_SIZE */