Usefulness of configPRE SUPPRESS TICKS AND SLEEP PROCESSING

In tasks.c, there is a great macro/function that is defined
configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( xExpectedIdleTime );

Comments says “Define the following macro to set xExpectedIdleTime to 0”

So how can I make a C call with the parameter as a uint32_t and have its value changed.
In C++ I could have a function defined as

#define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING(x) void PreSuppressTicksAndSleepProcessing(uint32_t &ulExpectedIdleTime)

I think the line should be
configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( &xExpectedIdleTime );

I think you are missing that configPRE_SUPPRESS_TICKS_ANDSLEEP_PROCESSING(xExpectedIdleTime) is a MACRO (not a function). If you want to set xExpectedIdleTIme unconditionally to 0 then just use

#define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING(xExpectedIdleTime).  XExpectdIdleTime = 0

If you want it to call a function, then define it like:

void myfunct(TickType_t* time);
#define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING(xExpectedIdleTime)  myfunct(&XExpectedIdleTime)

These will be in your FreeRTOSConfig.h file