Grazie dei suggerimenti, ho cercato di metterli in pratica. La struttura che uso per descrivere la partizione occupata è questa:
codice:
/** Elemento della lista delle partizioni libere */
typedef struct elMap_t {
/** Puntatore all'inizio della partizione */
byte *start;
/** Dimensione della partizione */
size_t size;
/** Puntatore al precedente elemento della lista */
struct elMap_t *prev;
/** Puntatore al prossimo elemento della lista */
struct elMap_t *next;
} elMap;
per sapere l'indirizzo dell'ultimo byte della partizione posso fare:
codice:
m->start + m->size
giusto?
e per sapere se ci sono byte liberi tra questa partizione e la successiva posso fare:
codice:
m->next->start - (m->start + m->size)
giusto?