99 lines
5.2 KiB
ArmAsm
99 lines
5.2 KiB
ArmAsm
;/**************************************************************************/
|
|
;/* */
|
|
;/* 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 ARM9/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
|
|
|