/* set/initialize chunk mem */ int chunk_mem(void *chunk, int len) { int n = 0, size = 0, need = len+1; if(chunk && len > 0) { if(need > CHK(chunk)->bsize) { n = need/CHUNK_BLOCK_SIZE; if(need % CHUNK_BLOCK_SIZE) ++n; size = n * CHUNK_BLOCK_SIZE; CHK(chunk)->data = (char *)xmm_renew(CHK(chunk)->data, CHK(chunk)->bsize, size); if(CHK(chunk)->data) CHK(chunk)->bsize = size; else CHK(chunk)->bsize = 0; } //if(CHK(chunk)->data) memset(CHK(chunk)->data, 0, CHK(chunk)->bsize); if(CHK(chunk)->data) { CHK(chunk)->type = CHUNK_MEM; CHK(chunk)->status = CHUNK_STATUS_ON; CHK(chunk)->size = CHK(chunk)->left = len; CHK(chunk)->end = CHK(chunk)->data; CHK(chunk)->data[len] = 0; CHK(chunk)->ndata = 0; } return 0; } return -1; }
/* set/initialize chunk mem */ int chunk_mem(void *chunk, int len) { int n = 0, size = 0; if(chunk) { if(len > CHK(chunk)->bsize) { n = len/CHUNK_BLOCK_SIZE; if(len % CHUNK_BLOCK_SIZE) ++n; size = n * CHUNK_BLOCK_SIZE; CHK(chunk)->data = (char *)xmm_renew(CHK(chunk)->data, CHK(chunk)->bsize, size); if(CHK(chunk)->data) CHK(chunk)->bsize = size; else CHK(chunk)->bsize = 0; } if(CHK(chunk)->data) memset(CHK(chunk)->data, 0, CHK(chunk)->bsize); CHK(chunk)->type = CHUNK_MEM; CHK(chunk)->status = CHUNK_STATUS_ON; CHK(chunk)->size = CHK(chunk)->left = len; CHK(chunk)->end = CHK(chunk)->data; CHK(chunk)->ndata = 0; return 0; } return -1; }
/* set/initialize chunk mem */ int chunk_set_bsize(void *chunk, int len) { int n = 0, size = 0; if(chunk) { if(len > CHK(chunk)->bsize) { n = len / CHUNK_BLOCK_SIZE; if(len % CHUNK_BLOCK_SIZE) ++n; size = n * CHUNK_BLOCK_SIZE; CHK(chunk)->data = (char *)xmm_renew(CHK(chunk)->data, CHK(chunk)->bsize, size); if(CHK(chunk)->data) CHK(chunk)->bsize = size; else CHK(chunk)->bsize = 0; } //if(CHK(chunk)->data) memset(CHK(chunk)->data, 0, CHK(chunk)->bsize); CHK(chunk)->end = CHK(chunk)->data; CHK(chunk)->ndata = 0; return 0; } return -1; }