Looking through the help for the 2407a and the F28335 C compiler help, I am unabled to determine which (if any) functions are advertised as being reentrant?
While I am aware of the usual suspects like strtok, printf, malloc, etc, on any platform, I am wondering if there is a master list somewhere?
Here is a snippet I found in the help about eXpress complient algorithms, it is the only section in the help that I could find that addresses the issue.
Thank you.
---
The following table summarizes the TI C-Language Run-time Support Library functions that may be referenced by eXpressDSP-compliant algorithms.
Allowed or disallowed Category Typical functions in category Notes
allowed String functions strcpy, strchr, … 1
allowed Memory-moving functions memcpy, memmove, memset, ... 2
allowed Integer math support _divi, _divu, _remi, _remu, ... 2
allowed Floating point support _addf, _subf, _mpyf, _divf, _addd, _subd, _mpyd, _divd, log10, cosh, ... 2, 3
allowed Conversion functions atoi, ftoi, itof, ... 2
disallowed Heap management functions malloc, free, realloc, alloc, … 5
disallowed I/O functions printf, open, read, write, … 4
disallowed misc. non-reentrant functions printf, sprintf, ctime, ... 5, 6
Notes:
1) Exceptions: strtok is not reentrant, and strdup allocates memory with malloc.
2) Some of these are issued by the compiler automatically for certain C operators.
3) The errno paradigm isn't reentrant. Thus, errno must not be used by eXpressDSP-compliant algorithms.
4) Algorithms are not allowed to perform I/O (except via DSP/BIOS APIs).
5) Algorithms must not allocate memory.
6) Algorithms must be reentrant and must, therefore, only reference reentrant functions.