diff options
| author | Yuxin Zhou <[email protected]> | 2021-10-14 00:51:26 +0000 |
|---|---|---|
| committer | Yuxin Zhou <[email protected]> | 2021-10-14 00:51:26 +0000 |
| commit | 1af8404c54f9c8d3caa2ac3523c2a5f014aecb1c (patch) | |
| tree | 93e4f4d64ec8c21c01b77f19b8e7326e85227e3d /common_smp/src/txe_byte_allocate.c | |
| parent | 215df45d4b59d4ce8606a88f566d1d426e64a84c (diff) | |
Release 6.1.9
Diffstat (limited to 'common_smp/src/txe_byte_allocate.c')
| -rw-r--r-- | common_smp/src/txe_byte_allocate.c | 102 |
1 files changed, 52 insertions, 50 deletions
diff --git a/common_smp/src/txe_byte_allocate.c b/common_smp/src/txe_byte_allocate.c index 3c226c11..7c522bae 100644 --- a/common_smp/src/txe_byte_allocate.c +++ b/common_smp/src/txe_byte_allocate.c @@ -12,8 +12,8 @@ /**************************************************************************/ /**************************************************************************/ -/** */ -/** ThreadX Component */ +/** */ +/** ThreadX Component */ /** */ /** Byte Memory */ /** */ @@ -32,57 +32,59 @@ #include "tx_byte_pool.h" -/**************************************************************************/ -/* */ -/* FUNCTION RELEASE */ -/* */ -/* _txe_byte_allocate PORTABLE C */ +/**************************************************************************/ +/* */ +/* FUNCTION RELEASE */ +/* */ +/* _txe_byte_allocate PORTABLE C */ /* 6.1 */ /* AUTHOR */ /* */ /* William E. Lamie, Microsoft Corporation */ /* */ /* DESCRIPTION */ -/* */ -/* This function checks for errors in allocate bytes function call. */ -/* */ -/* INPUT */ -/* */ -/* pool_ptr Pointer to pool control block */ -/* memory_ptr Pointer to place allocated bytes */ +/* */ +/* This function checks for errors in allocate bytes function call. */ +/* */ +/* INPUT */ +/* */ +/* pool_ptr Pointer to pool control block */ +/* memory_ptr Pointer to place allocated bytes */ /* pointer */ -/* memory_size Number of bytes to allocate */ -/* wait_option Suspension option */ -/* */ -/* OUTPUT */ -/* */ -/* TX_POOL_ERROR Invalid memory pool pointer */ -/* TX_PTR_ERROR Invalid destination pointer */ -/* TX_WAIT_ERROR Invalid wait option */ -/* TX_CALLER_ERROR Invalid caller of this function */ -/* TX_SIZE_ERROR Invalid size of memory request */ -/* status Actual completion status */ -/* */ -/* CALLS */ -/* */ -/* _tx_byte_allocate Actual byte allocate function */ -/* */ -/* CALLED BY */ -/* */ -/* Application Code */ -/* */ -/* RELEASE HISTORY */ -/* */ +/* memory_size Number of bytes to allocate */ +/* wait_option Suspension option */ +/* */ +/* OUTPUT */ +/* */ +/* TX_POOL_ERROR Invalid memory pool pointer */ +/* TX_PTR_ERROR Invalid destination pointer */ +/* TX_WAIT_ERROR Invalid wait option */ +/* TX_CALLER_ERROR Invalid caller of this function */ +/* TX_SIZE_ERROR Invalid size of memory request */ +/* status Actual completion status */ +/* */ +/* CALLS */ +/* */ +/* _tx_byte_allocate Actual byte allocate function */ +/* */ +/* CALLED BY */ +/* */ +/* Application Code */ +/* */ +/* RELEASE HISTORY */ +/* */ /* DATE NAME DESCRIPTION */ /* */ -/* 09-30-2020 William E. Lamie Initial Version 6.1 */ +/* 05-19-2020 William E. Lamie Initial Version 6.0 */ +/* 09-30-2020 Yuxin Zhou Modified comment(s), */ +/* resulting in version 6.1 */ /* */ /**************************************************************************/ -UINT _txe_byte_allocate(TX_BYTE_POOL *pool_ptr, VOID **memory_ptr, +UINT _txe_byte_allocate(TX_BYTE_POOL *pool_ptr, VOID **memory_ptr, ULONG memory_size, ULONG wait_option) { -UINT status; +UINT status; #ifndef TX_TIMER_PROCESS_IN_ISR TX_THREAD *thread_ptr; #endif @@ -94,15 +96,15 @@ TX_THREAD *thread_ptr; /* Check for an invalid byte pool pointer. */ if (pool_ptr == TX_NULL) { - + /* Byte pool pointer is invalid, return appropriate error code. */ status = TX_POOL_ERROR; } - + /* Now check for invalid pool ID. */ else if (pool_ptr -> tx_byte_pool_id != TX_BYTE_POOL_ID) { - + /* Byte pool pointer is invalid, return appropriate error code. */ status = TX_POOL_ERROR; } @@ -122,7 +124,7 @@ TX_THREAD *thread_ptr; /* Error in size, return appropriate error. */ status = TX_SIZE_ERROR; } - + /* Determine if the size is greater than the pool size. */ else if (memory_size > pool_ptr -> tx_byte_pool_size) { @@ -131,10 +133,10 @@ TX_THREAD *thread_ptr; status = TX_SIZE_ERROR; } - else + else { - /* Check for a wait option error. Only threads are allowed any form of + /* Check for a wait option error. Only threads are allowed any form of suspension. */ if (wait_option != TX_NO_WAIT) { @@ -142,14 +144,14 @@ TX_THREAD *thread_ptr; /* Is call from ISR or Initialization? */ if (TX_THREAD_GET_SYSTEM_STATE() != ((ULONG) 0)) { - + /* A non-thread is trying to suspend, return appropriate error code. */ status = TX_WAIT_ERROR; } } } #ifndef TX_TIMER_PROCESS_IN_ISR - + /* Check for timer execution. */ if (status == TX_SUCCESS) { @@ -170,15 +172,15 @@ TX_THREAD *thread_ptr; /* Is everything still okay? */ if (status == TX_SUCCESS) { - + /* Check for interrupt call. */ if (TX_THREAD_GET_SYSTEM_STATE() != ((ULONG) 0)) { - + /* Now, make sure the call is from an interrupt and not initialization. */ if (TX_THREAD_GET_SYSTEM_STATE() < TX_INITIALIZE_IN_PROGRESS) { - + /* Invalid caller of this function, return appropriate error code. */ status = TX_CALLER_ERROR; } |
