All pastes #739735 Raw Edit

Stuff

public text v1 · immutable
·published 2007-10-17 12:59 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 bitfield_size_in_bytes = DATABLOCKS / CHAR_BIT + 1;
const size_t blocks_in_bytes = blocks * BLOCK_SIZE;

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

/* FIXME: alignment! */
struct mdata *metadata = (struct mdata*) memory_area; 
char *bitfield = metadata + metadata_in_bytes;
/* FIXME: alignment! */
char **datablocks = (char**)(bitfield + bitfield_in_bytes);
for (size_t i = 1; i != BLOCKS; ++i)
    datablocks[i] = ((void*)datablocks[i-1]) + BLOCK_SIZE;