--- xinu/h/mem.h 2018/04/24 17:39:02 1.1 +++ xinu/h/mem.h 2018/04/24 17:39:10 1.1.1.2 @@ -1,20 +1,11 @@ /* mem.h - freestk, roundew, truncew */ -#define PAGESIZE 512 - -struct mblock { - struct mblock *mnext; - unsigned int mlen; - }; - /*---------------------------------------------------------------------- - * roundew, truncew - round or truncate address to next sizeof(mblock) + * roundew, truncew - round or trunctate address to next even word *---------------------------------------------------------------------- */ -#define roundew(x) (int *)( ((sizeof(struct mblock)-1) + (int)(x)) \ - & (~(sizeof(struct mblock)-1)) ) - -#define truncew(x) (int *)( ((int)(x)) & (~(sizeof(struct mblock)-1)) ) +#define roundew(x) (WORD *)( (3 + (WORD)(x)) & ~03 ) +#define truncew(x) (WORD *)( ((WORD)(x)) & ~03 ) /*---------------------------------------------------------------------- * freestk -- free stack memory allocated by getstk @@ -25,9 +16,11 @@ struct mblock { + (unsigned)sizeof(int), \ roundew(len) ) +struct mblock { + struct mblock *mnext; + unsigned int mlen; + }; extern struct mblock memlist; /* head of free memory list */ -extern int *maxaddr; /* max memory address */ -extern int end; /* address beyond loaded memory */ -extern int etext; /* address beyond text segment */ -extern int edata; /* address beyond data segment */ -extern int end; /* address beyond loaded memory */ +extern WORD *maxaddr; /* max memory address */ +extern WORD end; /* address beyond loaded memory */ +