Fix compile error when using rusage functionality on FreeRTOS

Signed-off-by: Thijs Sassen <thijs.sassen@adlinktech.com>
This commit is contained in:
Thijs Sassen 2019-10-07 08:47:50 +02:00 committed by eboasson
parent 378b4b19d7
commit 0b57b74b93
2 changed files with 4 additions and 3 deletions

View file

@ -27,6 +27,7 @@ typedef struct {
} ddsrt_thread_t; } ddsrt_thread_t;
typedef UBaseType_t ddsrt_tid_t; typedef UBaseType_t ddsrt_tid_t;
typedef TaskHandle_t ddsrt_thread_list_id_t;
#define PRIdTID "lu" #define PRIdTID "lu"
#if defined(__cplusplus) #if defined(__cplusplus)

View file

@ -66,13 +66,13 @@ rusage_self(ddsrt_rusage_t *usage)
} }
static dds_return_t static dds_return_t
rusage_thread(ddsrt_rusage_t *usage) rusage_thread(ddsrt_thread_list_id_t tid, ddsrt_rusage_t *usage)
{ {
TaskStatus_t states; TaskStatus_t states;
memset(usage, 0, sizeof(*usage)); memset(usage, 0, sizeof(*usage));
memset(&states, 0, sizeof(states)); memset(&states, 0, sizeof(states));
vTaskGetInfo(xTaskGetCurrentTaskHandle(), &states, pdFALSE, eInvalid); vTaskGetInfo(tid, &states, pdFALSE, eInvalid);
usage->stime = states.ulRunTimeCounter * DDSRT_NSECS_IN_RUSAGE_TIME_BASE; usage->stime = states.ulRunTimeCounter * DDSRT_NSECS_IN_RUSAGE_TIME_BASE;
return DDS_RETCODE_OK; return DDS_RETCODE_OK;
@ -97,7 +97,7 @@ ddsrt_getrusage(enum ddsrt_getrusage_who who, ddsrt_rusage_t *usage)
assert(usage != NULL); assert(usage != NULL);
if (who == DDSRT_RUSAGE_THREAD) { if (who == DDSRT_RUSAGE_THREAD) {
rc = rusage_thread_anythread(xTaskGetCurrentTaskHandle(), usage); rc = ddsrt_getrusage_anythread(xTaskGetCurrentTaskHandle(), usage);
} else { } else {
rc = rusage_self(usage); rc = rusage_self(usage);
} }