documented xma.h, though terse
This commit is contained in:
		| @ -104,7 +104,8 @@ static QSE_INLINE_ALWAYS qse_size_t getxfi (qse_xma_t* xma, qse_size_t size) | ||||
| 	return xfi; | ||||
| } | ||||
|  | ||||
| qse_xma_t* qse_xma_open (qse_mmgr_t* mmgr, qse_size_t ext, qse_size_t size) | ||||
| qse_xma_t* qse_xma_open ( | ||||
| 	qse_mmgr_t* mmgr, qse_size_t xtnsize, qse_size_t zonesize) | ||||
| { | ||||
| 	qse_xma_t* xma; | ||||
|  | ||||
| @ -118,10 +119,10 @@ qse_xma_t* qse_xma_open (qse_mmgr_t* mmgr, qse_size_t ext, qse_size_t size) | ||||
| 		if (mmgr == QSE_NULL) return QSE_NULL; | ||||
| 	} | ||||
|  | ||||
| 	xma = (qse_xma_t*) QSE_MMGR_ALLOC (mmgr, QSE_SIZEOF(*xma) + ext); | ||||
| 	xma = (qse_xma_t*) QSE_MMGR_ALLOC (mmgr, QSE_SIZEOF(*xma) + xtnsize); | ||||
| 	if (xma == QSE_NULL) return QSE_NULL; | ||||
|  | ||||
| 	if (qse_xma_init (xma, mmgr, size) == QSE_NULL) | ||||
| 	if (qse_xma_init (xma, mmgr, zonesize) == QSE_NULL) | ||||
| 	{ | ||||
| 		QSE_MMGR_FREE (mmgr, xma); | ||||
| 		return QSE_NULL; | ||||
| @ -136,22 +137,22 @@ void qse_xma_close (qse_xma_t* xma) | ||||
| 	QSE_MMGR_FREE (xma->mmgr, xma); | ||||
| } | ||||
|  | ||||
| qse_xma_t* qse_xma_init (qse_xma_t* xma, qse_mmgr_t* mmgr, qse_size_t size) | ||||
| qse_xma_t* qse_xma_init (qse_xma_t* xma, qse_mmgr_t* mmgr, qse_size_t zonesize) | ||||
| { | ||||
| 	qse_xma_blk_t* free; | ||||
| 	qse_size_t xfi; | ||||
|  | ||||
| 	size = ((size + ALIGN - 1) / ALIGN) * ALIGN; | ||||
| 	/* adjust 'size' to be large enough to hold a single smallest block */ | ||||
| 	if (size < MINBLKLEN) size = MINBLKLEN; | ||||
| 	zonesize = ((zonesize + ALIGN - 1) / ALIGN) * ALIGN; | ||||
| 	/* adjust 'zonesize' to be large enough to hold a single smallest block */ | ||||
| 	if (zonesize < MINBLKLEN) zonesize = MINBLKLEN; | ||||
|  | ||||
| 	/* allocate a memory chunk to use for actual memory allocation */ | ||||
| 	free = QSE_MMGR_ALLOC (mmgr, size); | ||||
| 	free = QSE_MMGR_ALLOC (mmgr, zonesize); | ||||
| 	if (free == QSE_NULL) return QSE_NULL; | ||||
| 	 | ||||
| 	/* initialize the header part of the free chunk */ | ||||
| 	free->avail = 1; | ||||
| 	free->size = size - HDRSIZE; /* size excluding the block header */ | ||||
| 	free->size = zonesize - HDRSIZE; /* size excluding the block header */ | ||||
| 	free->f.prev = QSE_NULL; | ||||
| 	free->f.next = QSE_NULL; | ||||
| 	free->b.next = QSE_NULL; | ||||
| @ -168,9 +169,9 @@ qse_xma_t* qse_xma_init (qse_xma_t* xma, qse_mmgr_t* mmgr, qse_size_t size) | ||||
|  | ||||
| 	/* initialize some statistical variables */ | ||||
| #ifdef QSE_XMA_ENABLE_STAT | ||||
| 	xma->stat.total = size; | ||||
| 	xma->stat.total = zonesize; | ||||
| 	xma->stat.alloc = 0; | ||||
| 	xma->stat.avail = size - HDRSIZE; | ||||
| 	xma->stat.avail = zonesize - HDRSIZE; | ||||
| 	xma->stat.nfree = 1; | ||||
| 	xma->stat.nused = 0; | ||||
| #endif | ||||
|  | ||||
		Reference in New Issue
	
	Block a user