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_timer_create.c | |
| parent | 215df45d4b59d4ce8606a88f566d1d426e64a84c (diff) | |
Release 6.1.9
Diffstat (limited to 'common_smp/src/txe_timer_create.c')
| -rw-r--r-- | common_smp/src/txe_timer_create.c | 102 |
1 files changed, 52 insertions, 50 deletions
diff --git a/common_smp/src/txe_timer_create.c b/common_smp/src/txe_timer_create.c index 08352974..de08c053 100644 --- a/common_smp/src/txe_timer_create.c +++ b/common_smp/src/txe_timer_create.c @@ -12,8 +12,8 @@ /**************************************************************************/ /**************************************************************************/ -/** */ -/** ThreadX Component */ +/** */ +/** ThreadX Component */ /** */ /** Timer */ /** */ @@ -31,63 +31,65 @@ #include "tx_timer.h" -/**************************************************************************/ -/* */ -/* FUNCTION RELEASE */ -/* */ -/* _txe_timer_create PORTABLE C */ +/**************************************************************************/ +/* */ +/* FUNCTION RELEASE */ +/* */ +/* _txe_timer_create PORTABLE C */ /* 6.1 */ /* AUTHOR */ /* */ /* William E. Lamie, Microsoft Corporation */ /* */ /* DESCRIPTION */ -/* */ -/* This function checks for errors in the create application timer */ -/* function call. */ -/* */ -/* INPUT */ -/* */ -/* timer_ptr Pointer to timer control block */ -/* name_ptr Pointer to timer name */ -/* expiration_function Application expiration function */ -/* initial_ticks Initial expiration ticks */ -/* reschedule_ticks Reschedule ticks */ -/* auto_activate Automatic activation flag */ +/* */ +/* This function checks for errors in the create application timer */ +/* function call. */ +/* */ +/* INPUT */ +/* */ +/* timer_ptr Pointer to timer control block */ +/* name_ptr Pointer to timer name */ +/* expiration_function Application expiration function */ +/* initial_ticks Initial expiration ticks */ +/* reschedule_ticks Reschedule ticks */ +/* auto_activate Automatic activation flag */ /* timer_control_block_size Size of timer control block */ -/* */ -/* OUTPUT */ -/* */ -/* TX_TIMER_ERROR Invalid timer control block */ -/* TX_TICK_ERROR Invalid initial expiration count */ -/* TX_ACTIVATE_ERROR Invalid timer activation option */ -/* TX_CALLER_ERROR Invalid caller of this function */ -/* status Actual completion status */ -/* */ -/* CALLS */ -/* */ -/* _tx_thread_system_preempt_check Check for preemption */ -/* _tx_timer_create Actual timer create function */ -/* */ -/* CALLED BY */ -/* */ -/* Application Code */ -/* */ -/* RELEASE HISTORY */ -/* */ +/* */ +/* OUTPUT */ +/* */ +/* TX_TIMER_ERROR Invalid timer control block */ +/* TX_TICK_ERROR Invalid initial expiration count */ +/* TX_ACTIVATE_ERROR Invalid timer activation option */ +/* TX_CALLER_ERROR Invalid caller of this function */ +/* status Actual completion status */ +/* */ +/* CALLS */ +/* */ +/* _tx_thread_system_preempt_check Check for preemption */ +/* _tx_timer_create Actual timer create 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_timer_create(TX_TIMER *timer_ptr, CHAR *name_ptr, +UINT _txe_timer_create(TX_TIMER *timer_ptr, CHAR *name_ptr, VOID (*expiration_function)(ULONG id), ULONG expiration_input, ULONG initial_ticks, ULONG reschedule_ticks, UINT auto_activate, UINT timer_control_block_size) { TX_INTERRUPT_SAVE_AREA -UINT status; +UINT status; ULONG i; TX_TIMER *next_timer; #ifndef TX_TIMER_PROCESS_IN_ISR @@ -105,7 +107,7 @@ TX_THREAD *thread_ptr; /* Timer pointer is invalid, return appropriate error code. */ status = TX_TIMER_ERROR; } - + /* Now check for invalid control block size. */ else if (timer_control_block_size != (sizeof(TX_TIMER))) { @@ -133,12 +135,12 @@ TX_THREAD *thread_ptr; /* Determine if this timer matches the current timer in the list. */ if (timer_ptr == next_timer) { - + break; } else { - + /* Move to next timer. */ next_timer = next_timer -> tx_timer_created_next; } @@ -149,7 +151,7 @@ TX_THREAD *thread_ptr; /* Decrement the preempt disable flag. */ _tx_thread_preempt_disable--; - + /* Restore interrupts. */ TX_RESTORE @@ -177,11 +179,11 @@ TX_THREAD *thread_ptr; /* Check for an illegal activation. */ if (auto_activate != TX_AUTO_ACTIVATE) { - + /* And activation is not the other value. */ if (auto_activate != TX_NO_ACTIVATE) { - + /* Invalid activation selected, return appropriate error code. */ status = TX_ACTIVATE_ERROR; } @@ -210,11 +212,11 @@ TX_THREAD *thread_ptr; /* 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; } |
