Commit 401ddc4e authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Make the VSM layout more hexdump friendly

parent e4d1d360
......@@ -137,7 +137,7 @@ VSM_common_new(void *p, ssize_t l)
sc->head = (void *)sc->b;
/* This should not be necessary, but just in case...*/
memset(sc->head, 0, sizeof *sc->head);
sc->head->magic = VSM_HEAD_MAGIC;
memcpy(sc->head->marker, VSM_HEAD_MARKER, sizeof sc->head->marker);
sc->head->hdrsize = sizeof *sc->head;
sc->head->shm_size = l;
sc->head->alloc_seq = random() | 1;
......@@ -145,8 +145,8 @@ VSM_common_new(void *p, ssize_t l)
ALLOC_OBJ(vr, VSM_RANGE_MAGIC);
AN(vr);
vr->off = PRNDUP(sizeof(*sc->head));
vr->len = l - vr->off;
vr->off = RUP2(sizeof(*sc->head), 16);
vr->len = RDN2(l - vr->off, 16);
VTAILQ_INSERT_TAIL(&sc->r_free, vr, list);
return (sc);
}
......@@ -182,9 +182,8 @@ VSM_common_alloc(struct vsm_sc *sc, ssize_t size,
vsm_common_insert_free(sc, vr);
}
size = PRNDUP(size);
l1 = size + sizeof(struct VSM_chunk);
l2 = size + 2 * sizeof(struct VSM_chunk);
l1 = RUP2(size + sizeof(struct VSM_chunk), 16);
l2 = RUP2(size + 2 * sizeof(struct VSM_chunk), 16);
/* Find space in free-list */
VTAILQ_FOREACH_SAFE(vr, &sc->r_free, list, vr2) {
......@@ -227,7 +226,8 @@ VSM_common_alloc(struct vsm_sc *sc, ssize_t size,
vr->chunk = (void *)(sc->b + vr->off);
vr->ptr = (vr->chunk + 1);
vr->chunk->magic = VSM_CHUNK_MAGIC;
memcpy(vr->chunk->marker, VSM_CHUNK_MARKER, sizeof vr->chunk->marker);
vr->chunk->len = vr->len;
strcpy(vr->chunk->class, class);
strcpy(vr->chunk->type, type);
strcpy(vr->chunk->ident, ident);
......
......@@ -98,8 +98,8 @@
#define VSM_FILENAME "_.vsm"
struct VSM_chunk {
#define VSM_CHUNK_MAGIC 0xa15712e5 /* From /dev/random */
unsigned magic;
#define VSM_CHUNK_MARKER "VSMCHUNK"
char marker[8];
ssize_t len; /* Incl VSM_chunk */
ssize_t next; /* Offset in shmem */
char class[8];
......@@ -108,8 +108,8 @@ struct VSM_chunk {
};
struct VSM_head {
#define VSM_HEAD_MAGIC 0xe75f7e91 /* From /dev/random */
unsigned magic;
#define VSM_HEAD_MARKER "VSMHEAD0" /* Incr. as version# *
char marker[8];
ssize_t hdrsize;
ssize_t shm_size;
ssize_t first; /* Offset, first chunk */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment