summaryrefslogtreecommitdiff
path: root/ports/arm11/ac5/src/tx_thread_interrupt_disable.s
diff options
context:
space:
mode:
authorScott Larson <[email protected]>2020-08-07 17:47:29 -0700
committerScott Larson <[email protected]>2020-08-07 17:47:29 -0700
commit6a018a4cfda937c0d8cbdee761187c5c5843e115 (patch)
treecc9990878ab97ac171a192fe1c2922e752feee99 /ports/arm11/ac5/src/tx_thread_interrupt_disable.s
parent608f55f0d120886e0eddf7e39cf3c3b6f06bd08c (diff)
add ARM11v6.0.1_rel
Diffstat (limited to 'ports/arm11/ac5/src/tx_thread_interrupt_disable.s')
-rw-r--r--ports/arm11/ac5/src/tx_thread_interrupt_disable.s98
1 files changed, 98 insertions, 0 deletions
diff --git a/ports/arm11/ac5/src/tx_thread_interrupt_disable.s b/ports/arm11/ac5/src/tx_thread_interrupt_disable.s
new file mode 100644
index 00000000..a3145dab
--- /dev/null
+++ b/ports/arm11/ac5/src/tx_thread_interrupt_disable.s
@@ -0,0 +1,98 @@
+;/**************************************************************************/
+;/* */
+;/* Copyright (c) Microsoft Corporation. All rights reserved. */
+;/* */
+;/* This software is licensed under the Microsoft Software License */
+;/* Terms for Microsoft Azure RTOS. Full text of the license can be */
+;/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
+;/* and in the root directory of this software. */
+;/* */
+;/**************************************************************************/
+;
+;
+;/**************************************************************************/
+;/**************************************************************************/
+;/** */
+;/** ThreadX Component */
+;/** */
+;/** Thread */
+;/** */
+;/**************************************************************************/
+;/**************************************************************************/
+;
+;#define TX_SOURCE_CODE
+;
+;
+;/* Include necessary system files. */
+;
+;#include "tx_api.h"
+;#include "tx_thread.h"
+;
+;
+ IF :DEF:TX_ENABLE_FIQ_SUPPORT
+DISABLE_INTS EQU 0xC0 ; IRQ & FIQ interrupts disabled
+ ELSE
+DISABLE_INTS EQU 0x80 ; IRQ interrupts disabled
+ ENDIF
+;
+;
+ AREA ||.text||, CODE, READONLY
+;/**************************************************************************/
+;/* */
+;/* FUNCTION RELEASE */
+;/* */
+;/* _tx_thread_interrupt_disable ARM11/AC5 */
+;/* 6.0.1 */
+;/* AUTHOR */
+;/* */
+;/* William E. Lamie, Microsoft Corporation */
+;/* */
+;/* DESCRIPTION */
+;/* */
+;/* This function is responsible for disabling interrupts */
+;/* */
+;/* INPUT */
+;/* */
+;/* None */
+;/* */
+;/* OUTPUT */
+;/* */
+;/* old_posture Old interrupt lockout posture */
+;/* */
+;/* CALLS */
+;/* */
+;/* None */
+;/* */
+;/* CALLED BY */
+;/* */
+;/* Application Code */
+;/* */
+;/* RELEASE HISTORY */
+;/* */
+;/* DATE NAME DESCRIPTION */
+;/* */
+;/* 06-30-2020 William E. Lamie Initial Version 6.0.1 */
+;/* */
+;/**************************************************************************/
+;UINT _tx_thread_interrupt_disable(void)
+;{
+ EXPORT _tx_thread_interrupt_disable
+_tx_thread_interrupt_disable
+;
+; /* Pickup current interrupt lockout posture. */
+;
+ MRS r0, CPSR ; Pickup current CPSR
+;
+; /* Mask interrupts. */
+;
+ ORR r1, r0, #DISABLE_INTS ; Mask interrupts
+ MSR CPSR_cxsf, r1 ; Setup new CPSR
+ IF {INTER} = {TRUE}
+ BX lr ; Return to caller
+ ELSE
+ MOV pc, lr ; Return to caller
+ ENDIF
+;}
+;
+ END
+