types.h
Functions
| Name | |
|---|---|
| void * | XMALLOC(size_t n, void * heap, int type) This is not actually a function, but rather a preprocessor macro, which allows the user to substitute in their own malloc, realloc, and free functions in place of the standard C memory functions. To use external memory functions, define XMALLOC_USER. This will cause the memory functions to be replaced by external functions of the form: extern void XMALLOC(size_t n, void heap, int type); extern void _XREALLOC(void p, size_t n, void_ heap, int type); extern void XFREE(void p, void heap, int type); To use the basic C memory functions in place of wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free, define NO_WOLFSSL_MEMORY. This will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) #define XFREE(p, h, t) {void xp = (p); if((xp)) free((xp));} #define XREALLOC(p, n, h, t) realloc((p), (n)) If none of these options are selected, the system will default to use the wolfSSL memory functions. A user can set custom memory functions through callback hooks, (see wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free). This option will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n)) |
| void * | XREALLOC(void * p, size_t n, void * heap, int type) This is not actually a function, but rather a preprocessor macro, which allows the user to substitute in their own malloc, realloc, and free functions in place of the standard C memory functions. To use external memory functions, define XMALLOC_USER. This will cause the memory functions to be replaced by external functions of the form: extern void XMALLOC(size_t n, void heap, int type); extern void _XREALLOC(void p, size_t n, void_ heap, int type); extern void XFREE(void p, void heap, int type); To use the basic C memory functions in place of wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free, define NO_WOLFSSL_MEMORY. This will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) #define XFREE(p, h, t) {void xp = (p); if((xp)) free((xp));} #define XREALLOC(p, n, h, t) realloc((p), (n)) If none of these options are selected, the system will default to use the wolfSSL memory functions. A user can set custom memory functions through callback hooks, (see wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free). This option will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n)) |
| void | XFREE(void * p, void * heap, int type) This is not actually a function, but rather a preprocessor macro, which allows the user to substitute in their own malloc, realloc, and free functions in place of the standard C memory functions. To use external memory functions, define XMALLOC_USER. This will cause the memory functions to be replaced by external functions of the form: extern void XMALLOC(size_t n, void heap, int type); extern void _XREALLOC(void p, size_t n, void_ heap, int type); extern void XFREE(void p, void heap, int type); To use the basic C memory functions in place of wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free, define NO_WOLFSSL_MEMORY. This will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) #define XFREE(p, h, t) {void xp = (p); if((xp)) free((xp));} #define XREALLOC(p, n, h, t) realloc((p), (n)) If none of these options are selected, the system will default to use the wolfSSL memory functions. A user can set custom memory functions through callback hooks, (see wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free). This option will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n)) |
| word32 | CheckRunTimeSettings(void ) This function checks the compile time class settings. It is important when a user is using a wolfCrypt library independently, as the settings must match between libraries for math to work correctly. This check is defined as CheckCtcSettings(), which simply compares CheckRunTimeSettings and CTC_SETTINGS, returning 0 if there is a mismatch, or 1 if they match. |
| char * | wc_strtok(char * str, const char * delim, char ** nextp) Thread-safe string tokenization. |
| char * | wc_strsep(char ** stringp, const char * delim) Separates string by delimiter. |
| size_t | wc_strlcpy(char * dst, const char * src, size_t dstSize) Safely copies string with size limit. |
| size_t | wc_strlcat(char * dst, const char * src, size_t dstSize) Safely concatenates strings with size limit. |
| int | wc_strcasecmp(const char * s1, const char * s2) Case-insensitive string comparison. |
| int | wc_strncasecmp(const char * s1, const char * s2, size_t n) Case-insensitive string comparison with length limit. |
| int | wolfSSL_NewThread(THREAD_TYPE * thread, THREAD_CB cb, void * arg) Creates a new thread. |
| int | wolfSSL_NewThreadNoJoin(THREAD_CB_NOJOIN cb, void * arg) Creates a detached thread. |
| int | wolfSSL_JoinThread(THREAD_TYPE thread) Waits for thread to complete. |
| int | wolfSSL_CondInit(COND_TYPE * cond) Initializes condition variable. |
| int | wolfSSL_CondFree(COND_TYPE * cond) Frees condition variable. |
| int | wolfSSL_CondSignal(COND_TYPE * cond) Signals condition variable. |
| int | wolfSSL_CondWait(COND_TYPE * cond) Waits on condition variable. |
| int | wolfSSL_CondStart(COND_TYPE * cond) Starts condition variable. |
| int | wolfSSL_CondEnd(COND_TYPE * cond) Ends condition variable. |
Functions Documentation
function XMALLOC
void * XMALLOC(
size_t n,
void * heap,
int type
)
This is not actually a function, but rather a preprocessor macro, which allows the user to substitute in their own malloc, realloc, and free functions in place of the standard C memory functions. To use external memory functions, define XMALLOC_USER. This will cause the memory functions to be replaced by external functions of the form: extern void XMALLOC(size_t n, void heap, int type); extern void _XREALLOC(void p, size_t n, void_ heap, int type); extern void XFREE(void p, void heap, int type); To use the basic C memory functions in place of wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free, define NO_WOLFSSL_MEMORY. This will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) #define XFREE(p, h, t) {void xp = (p); if((xp)) free((xp));} #define XREALLOC(p, n, h, t) realloc((p), (n)) If none of these options are selected, the system will default to use the wolfSSL memory functions. A user can set custom memory functions through callback hooks, (see wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free). This option will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n))
Parameters:
- s size of memory to allocate
- h (used by custom XMALLOC function) pointer to the heap to use
- t memory allocation types for user hints. See enum in types.h
See:
Return:
- pointer Return a pointer to allocated memory on success
- NULL on failure
Example
int* tenInts = XMALLOC(sizeof(int)*10, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (tenInts == NULL) {
// error allocating space
return MEMORY_E;
}
function XREALLOC
void * XREALLOC(
void * p,
size_t n,
void * heap,
int type
)
This is not actually a function, but rather a preprocessor macro, which allows the user to substitute in their own malloc, realloc, and free functions in place of the standard C memory functions. To use external memory functions, define XMALLOC_USER. This will cause the memory functions to be replaced by external functions of the form: extern void XMALLOC(size_t n, void heap, int type); extern void _XREALLOC(void p, size_t n, void_ heap, int type); extern void XFREE(void p, void heap, int type); To use the basic C memory functions in place of wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free, define NO_WOLFSSL_MEMORY. This will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) #define XFREE(p, h, t) {void xp = (p); if((xp)) free((xp));} #define XREALLOC(p, n, h, t) realloc((p), (n)) If none of these options are selected, the system will default to use the wolfSSL memory functions. A user can set custom memory functions through callback hooks, (see wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free). This option will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n))
Parameters:
- p pointer to the address to reallocate
- n size of memory to allocate
- h (used by custom XREALLOC function) pointer to the heap to use
- t memory allocation types for user hints. See enum in types.h
See:
Return:
- Return a pointer to allocated memory on success
- NULL on failure
Example
int* tenInts = (int*)XMALLOC(sizeof(int)*10, NULL, DYNAMIC_TYPE_TMP_BUFFER);
int* twentyInts = (int*)XREALLOC(tenInts, sizeof(int)*20, NULL,
DYNAMIC_TYPE_TMP_BUFFER);
function XFREE
void XFREE(
void * p,
void * heap,
int type
)
This is not actually a function, but rather a preprocessor macro, which allows the user to substitute in their own malloc, realloc, and free functions in place of the standard C memory functions. To use external memory functions, define XMALLOC_USER. This will cause the memory functions to be replaced by external functions of the form: extern void XMALLOC(size_t n, void heap, int type); extern void _XREALLOC(void p, size_t n, void_ heap, int type); extern void XFREE(void p, void heap, int type); To use the basic C memory functions in place of wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free, define NO_WOLFSSL_MEMORY. This will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) #define XFREE(p, h, t) {void xp = (p); if((xp)) free((xp));} #define XREALLOC(p, n, h, t) realloc((p), (n)) If none of these options are selected, the system will default to use the wolfSSL memory functions. A user can set custom memory functions through callback hooks, (see wolfSSL_Malloc, wolfSSL_Realloc, wolfSSL_Free). This option will replace the memory functions with: #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n))
Parameters:
- p pointer to the address to free
- h (used by custom XFREE function) pointer to the heap to use
- t memory allocation types for user hints. See enum in types.h
See:
Return: none No returns.
Example
int* tenInts = XMALLOC(sizeof(int) * 10, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (tenInts == NULL) {
// error allocating space
return MEMORY_E;
}
function CheckRunTimeSettings
word32 CheckRunTimeSettings(
void
)
This function checks the compile time class settings. It is important when a user is using a wolfCrypt library independently, as the settings must match between libraries for math to work correctly. This check is defined as CheckCtcSettings(), which simply compares CheckRunTimeSettings and CTC_SETTINGS, returning 0 if there is a mismatch, or 1 if they match.
Parameters:
- none No Parameters.
See: CheckRunTimeFastMath
Return: settings Returns the runtime CTC_SETTINGS (Compile Time Settings)
Example
if (CheckCtcSettings() != 1) {
return err_sys("Build vs. runtime math mismatch\n");
}
// This is converted by the preprocessor to:
// if ( (CheckCtcSettings() == CTC_SETTINGS) != 1) {
// and will compare whether the compile time class settings
// match the current settings
function wc_strtok
char * wc_strtok(
char * str,
const char * delim,
char ** nextp
)
Thread-safe string tokenization.
Parameters:
- str String to tokenize (NULL for continuation)
- delim Delimiter characters
- nextp Pointer to save position
See: wc_strsep
Return: Pointer to next token or NULL
Example
char str[] = "one,two,three";
char* saveptr;
char* token = wc_strtok(str, ",", &saveptr);
function wc_strsep
char * wc_strsep(
char ** stringp,
const char * delim
)
Separates string by delimiter.
Parameters:
- stringp Pointer to string pointer
- delim Delimiter characters
See: wc_strtok
Return: Pointer to token or NULL
Example
char str[] = "one,two,three";
char* ptr = str;
char* token = wc_strsep(&ptr, ",");
function wc_strlcpy
size_t wc_strlcpy(
char * dst,
const char * src,
size_t dstSize
)
Safely copies string with size limit.
Parameters:
- dst Destination buffer
- src Source string
- dstSize Destination buffer size
See: wc_strlcat
Return: Length of source string
Example
char dst[10];
size_t len = wc_strlcpy(dst, "hello", sizeof(dst));
function wc_strlcat
size_t wc_strlcat(
char * dst,
const char * src,
size_t dstSize
)
Safely concatenates strings with size limit.
Parameters:
- dst Destination buffer
- src Source string
- dstSize Destination buffer size
See: wc_strlcpy
Return: Total length attempted
Example
char dst[20] = "hello";
size_t len = wc_strlcat(dst, " world", sizeof(dst));
function wc_strcasecmp
int wc_strcasecmp(
const char * s1,
const char * s2
)
Case-insensitive string comparison.
Parameters:
- s1 First string
- s2 Second string
See: wc_strncasecmp
Return: 0 if equal, non-zero otherwise
Example
if (wc_strcasecmp("Hello", "hello") == 0) {
// strings are equal
}
function wc_strncasecmp
int wc_strncasecmp(
const char * s1,
const char * s2,
size_t n
)
Case-insensitive string comparison with length limit.
Parameters:
- s1 First string
- s2 Second string
- n Maximum characters to compare
See: wc_strcasecmp
Return: 0 if equal, non-zero otherwise
Example
if (wc_strncasecmp("Hello", "hello", 5) == 0) {
// strings are equal
}
function wolfSSL_NewThread
int wolfSSL_NewThread(
THREAD_TYPE * thread,
THREAD_CB cb,
void * arg
)
Creates a new thread.
Parameters:
- thread Thread handle pointer
- cb Thread callback function
- arg Argument to pass to callback
See: wolfSSL_JoinThread
Return:
- 0 on success
- negative on error
Example
THREAD_TYPE thread;
int ret = wolfSSL_NewThread(&thread, myCallback, NULL);
function wolfSSL_NewThreadNoJoin
int wolfSSL_NewThreadNoJoin(
THREAD_CB_NOJOIN cb,
void * arg
)
Creates a detached thread.
Parameters:
- cb Thread callback function
- arg Argument to pass to callback
See: wolfSSL_NewThread
Return:
- 0 on success
- negative on error
Example
int ret = wolfSSL_NewThreadNoJoin(myCallback, NULL);
function wolfSSL_JoinThread
int wolfSSL_JoinThread(
THREAD_TYPE thread
)
Waits for thread to complete.
Parameters:
- thread Thread handle
See: wolfSSL_NewThread
Return:
- 0 on success
- negative on error
Example
THREAD_TYPE thread;
wolfSSL_NewThread(&thread, myCallback, NULL);
int ret = wolfSSL_JoinThread(thread);
function wolfSSL_CondInit
int wolfSSL_CondInit(
COND_TYPE * cond
)
Initializes condition variable.
Parameters:
- cond Condition variable pointer
See: wolfSSL_CondFree
Return:
- 0 on success
- negative on error
Example
COND_TYPE cond;
int ret = wolfSSL_CondInit(&cond);
function wolfSSL_CondFree
int wolfSSL_CondFree(
COND_TYPE * cond
)
Frees condition variable.
Parameters:
- cond Condition variable pointer
See: wolfSSL_CondInit
Return:
- 0 on success
- negative on error
Example
COND_TYPE cond;
wolfSSL_CondInit(&cond);
int ret = wolfSSL_CondFree(&cond);
function wolfSSL_CondSignal
int wolfSSL_CondSignal(
COND_TYPE * cond
)
Signals condition variable.
Parameters:
- cond Condition variable pointer
See: wolfSSL_CondWait
Return:
- 0 on success
- negative on error
Example
COND_TYPE cond;
int ret = wolfSSL_CondSignal(&cond);
function wolfSSL_CondWait
int wolfSSL_CondWait(
COND_TYPE * cond
)
Waits on condition variable.
Parameters:
- cond Condition variable pointer
See: wolfSSL_CondSignal
Return:
- 0 on success
- negative on error
Example
COND_TYPE cond;
int ret = wolfSSL_CondWait(&cond);
function wolfSSL_CondStart
int wolfSSL_CondStart(
COND_TYPE * cond
)
Starts condition variable.
Parameters:
- cond Condition variable pointer
See: wolfSSL_CondEnd
Return:
- 0 on success
- negative on error
Example
COND_TYPE cond;
int ret = wolfSSL_CondStart(&cond);
function wolfSSL_CondEnd
int wolfSSL_CondEnd(
COND_TYPE * cond
)
Ends condition variable.
Parameters:
- cond Condition variable pointer
See: wolfSSL_CondStart
Return:
- 0 on success
- negative on error
Example
COND_TYPE cond;
wolfSSL_CondStart(&cond);
int ret = wolfSSL_CondEnd(&cond);
Source code
void* XMALLOC(size_t n, void* heap, int type);
void* XREALLOC(void *p, size_t n, void* heap, int type);
void XFREE(void *p, void* heap, int type);
word32 CheckRunTimeSettings(void);
char* wc_strtok(char *str, const char *delim, char **nextp);
char* wc_strsep(char **stringp, const char *delim);
size_t wc_strlcpy(char *dst, const char *src, size_t dstSize);
size_t wc_strlcat(char *dst, const char *src, size_t dstSize);
int wc_strcasecmp(const char *s1, const char *s2);
int wc_strncasecmp(const char *s1, const char *s2, size_t n);
int wolfSSL_NewThread(THREAD_TYPE* thread, THREAD_CB cb, void* arg);
int wolfSSL_NewThreadNoJoin(THREAD_CB_NOJOIN cb, void* arg);
int wolfSSL_JoinThread(THREAD_TYPE thread);
int wolfSSL_CondInit(COND_TYPE* cond);
int wolfSSL_CondFree(COND_TYPE* cond);
int wolfSSL_CondSignal(COND_TYPE* cond);
int wolfSSL_CondWait(COND_TYPE* cond);
int wolfSSL_CondStart(COND_TYPE* cond);
int wolfSSL_CondEnd(COND_TYPE* cond);
Updated on 2025-12-31 at 01:16:04 +0000