API for xSemaphoreGetMutexHolder

There is an API function xSemaphoreGetMutexHolder. For some reason, on the API page http://www.freertos.org/xSemaphoreGetMutexHolder.html return type is missing. So I looked in the source code and saw that xSemaphoreGetMutexHolder is actually a macro for xQueueGetMutexHolder. And xQueueGetMutexHolder returns “void *” although it’s prefix (x) should mean something else. I’m not entirely sure what does x-prefix mean but every other functions that return “void *” are prefixed with “pv”. After reading API reference I figured out that it actually should return TaskHandle_t (which is a typedef for void *). Although this is not a bug I’m not sure it’s as it should be. UPD: Return type is also missing in API references for xSemaphoreTake, xSemaphoreTakeFromISR, xSemaphoreTakeRecursive, xSemaphoreGive, xSemaphoreGiveRecursive and xSemaphoreGiveFromISR.

API for xSemaphoreGetMutexHolder

Thanks for pointing out the missing return type 
in the documentation - it has been corrected.

I suspect the function returns a void* because 
inside the queue.c the TaskHandle_t type is not 
known - and it can't be relied upon that an 
application writer will include task.h before 
queue.h.  Returning void* is ok as it can be cast 
to any type, and in this case TaskHandle_t is itself 
a void * - hence I have updated the documentation to 
show a TaskHandle_t being returned.

Regards.
[edited to remove formatting as the forum uses the asterisk as a formatting character.]

API for xSemaphoreGetMutexHolder

I presume, including task.h inside queue.h is not acceptable? Then, I guess, it’s okay. As far as I can see, you didn’t update API references for other functions that I mentioned.