Topic: User implementation of XMALLOC/XFREE
I'm new to wolfSSL and the topic of secure communication.
I'm trying to implement wolfSSL into our product which runs on an ARM Cortex M4 processor based on the uTasker OS.
My goal is to use a TLS v1.2 connection to another embedded device (which FW I don't have any influence on), and to shrink the wolfSSL implementation to an absolute minimum.
I have made my own XMALLOC/XFREE implementation, but the uTasker uMalloc function is not as intelligent as the standard C-library malloc. It doesn't support free for more than the last allocated block...
I came across the option to use static I/O buffers by looking at the type parameter for the XMALLOC function. If I search in the source code, I can see more than 50 different memory allocation types.
- Does anyone have more information on how to use these memory types?
- Can they be used to reduce the use of dynamic memory?
- What purpose does the heap parameter have? Sometimes it is zero and sometimes it refers to an already allocated memory block (but the size is much larger than the old block).
I have already looked in the wolfSSL documentation for the XMALLOC function, but I didn't get the answers I was looking for...