_C_Quickpool_Debug() — Modify
Quick Pool Memory Manager Characteristics
Format
#include <stdlib.h>
_C_Quickpool_Debug_T _C_Quickpool_Debug(_C_Quickpool_Debug_T *newval);
Language Level: Extended
Threadsafe: Yes.
Description
The _C_Quickpool_Debug() function modifies
Quick Pool memory manager characteristics. Environment variables can
also be used to configure this support (reference section Environment Variables).
The parameters for _C_Quickpool_Debug() are as follows:
Initializes all allocated storage to a specified
value.
Initializes all freed storage to a specified
value.
Collects statistics on the Quick Pool memory
manager for use with the _C_Quickpool_Report() function.
A 1-byte unsigned character value that
is used to initialize each byte of allocated memory. This field is
in use only when the _C_INIT_MALLOC flag is specified.
If the value of newval is
NULL, a structure containing the current Quick Pool memory manager
characteristics is returned and none of the Quick Pool memory manager
characteristics are modified.
Return Value
The return value is a structure that contains the _C_Quickpool_Debug() values
before the changes requested by the current function call are made.
This value can be used on a later call to restore the _C_Quickpool_Debug() values
to a prior state.
Example that uses _C_Quickpool_Debug()
The following example uses _C_Quickpool_Debug() with the _C_INIT_MALLOC and _C_INIT_FREE flags to initialize memory on the malloc and free functions.
#include <stdlib.h>
#include <stdio.h>
int main(void) {
char *p;
char *mtest = "AAAAAAAAAA";
char *ftest = "BBBBBBBBBB";
unsigned int cell_sizes[2] = { 16, 64 };
unsigned int cells_per_extent[2] = { 16, 16 };
_C_Quickpool_Debug_T dbgVals = { _C_INIT_MALLOC | _C_INIT_FREE, 'A', 'B' };
if (_C_Quickpool_Init(2, cell_sizes, cells_per_extent)) {
printf("Error initializing Quick Pool memory manager.\n");
return -1;
}
_C_Quickpool_Debug(&dbgVals);
if ((p = malloc(10)) == NULL) {
printf("Error during malloc.\n");
return -2;
}
if (memcmp(p, mtest, 10)) {
printf("malloc test failed\n");
}
free(p);
if (memcmp(p, ftest, 10)) {
printf("free test failed\n");
}
printf("Test successful!\n");
return 0;
}
/*****************Output should be similar to:*****************
Test successful!
*******************************************************************/
Related Information
Heap Memory