feat(freertos-smp): Add support for queue direct transfer buffer in task TCB

This commit adds support for queue direct transfer buffer being owned by
the task's TCB. This inherently solves some design issues with the
buffer being owned by the queue's object. On the flip side, this adds
memory cost to the task's TCB.
This commit is contained in:
Sudeep Mohanty 2025-12-03 15:43:05 +05:30
parent 53a44909aa
commit e850728909
4 changed files with 365 additions and 192 deletions

View file

@ -3291,6 +3291,11 @@ typedef struct xSTATIC_TCB
#if ( configUSE_POSIX_ERRNO == 1 )
int iDummy22;
#endif
#if ( configQUEUE_DIRECT_TRANSFER == 1 )
void * pvDummyDirectTransferBuffer;
BaseType_t xDummyDirectTransferPosition;
#endif
} StaticTask_t;
/*
@ -3337,11 +3342,6 @@ typedef struct xSTATIC_QUEUE
#if ( ( portUSING_GRANULAR_LOCKS == 1 ) && ( configNUMBER_OF_CORES > 1 ) )
portSPINLOCK_TYPE xDummySpinlock[ 2 ];
#endif /* #if ( ( portUSING_GRANULAR_LOCKS == 1 ) && ( configNUMBER_OF_CORES > 1 ) ) */
#if ( configQUEUE_DIRECT_TRANSFER == 1 )
void * pvDummyDirectTransferBuffer;
BaseType_t xDummyDirectTransferPosition;
#endif
} StaticQueue_t;
typedef StaticQueue_t StaticSemaphore_t;