From 6c128c65b5ec0e5b8b5a0ccb165f3afd29e485f8 Mon Sep 17 00:00:00 2001 From: Guo Mang Date: Wed, 2 Aug 2017 09:54:47 +0800 Subject: Remove core packages since we can get them from edk2 repository Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang --- .../BaseSynchronizationLib/Arm/Synchronization.S | 213 -------------------- .../BaseSynchronizationLib/Arm/Synchronization.asm | 214 --------------------- 2 files changed, 427 deletions(-) delete mode 100644 MdePkg/Library/BaseSynchronizationLib/Arm/Synchronization.S delete mode 100644 MdePkg/Library/BaseSynchronizationLib/Arm/Synchronization.asm (limited to 'MdePkg/Library/BaseSynchronizationLib/Arm') diff --git a/MdePkg/Library/BaseSynchronizationLib/Arm/Synchronization.S b/MdePkg/Library/BaseSynchronizationLib/Arm/Synchronization.S deleted file mode 100644 index 53e45a0b9a..0000000000 --- a/MdePkg/Library/BaseSynchronizationLib/Arm/Synchronization.S +++ /dev/null @@ -1,213 +0,0 @@ -// Implementation of synchronization functions for ARM architecture -// -// Copyright (c) 2012-2015, ARM Limited. All rights reserved. -// Copyright (c) 2015, Linaro Limited. All rights reserved. -// -// This program and the accompanying materials -// are licensed and made available under the terms and conditions of the BSD License -// which accompanies this distribution. The full text of the license may be found at -// http://opensource.org/licenses/bsd-license.php -// -// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -// -// - -.text -.align 3 - -GCC_ASM_EXPORT(InternalSyncCompareExchange16) -GCC_ASM_EXPORT(InternalSyncCompareExchange32) -GCC_ASM_EXPORT(InternalSyncCompareExchange64) -GCC_ASM_EXPORT(InternalSyncIncrement) -GCC_ASM_EXPORT(InternalSyncDecrement) - -/** - Performs an atomic compare exchange operation on a 16-bit unsigned integer. - - Performs an atomic compare exchange operation on the 16-bit unsigned integer - specified by Value. If Value is equal to CompareValue, then Value is set to - ExchangeValue and CompareValue is returned. If Value is not equal to CompareValue, - then Value is returned. The compare exchange operation must be performed using - MP safe mechanisms. - - @param Value A pointer to the 16-bit value for the compare exchange - operation. - @param CompareValue 16-bit value used in compare operation. - @param ExchangeValue 16-bit value used in exchange operation. - - @return The original *Value before exchange. - -**/ -//UINT16 -//EFIAPI -//InternalSyncCompareExchange16 ( -// IN volatile UINT16 *Value, -// IN UINT16 CompareValue, -// IN UINT16 ExchangeValue -// ) -ASM_PFX(InternalSyncCompareExchange16): - dmb - -InternalSyncCompareExchange16Again: - ldrexh r3, [r0] - cmp r3, r1 - bne InternalSyncCompareExchange16Fail - -InternalSyncCompareExchange16Exchange: - strexh ip, r2, [r0] - cmp ip, #0 - bne InternalSyncCompareExchange16Again - -InternalSyncCompareExchange16Fail: - dmb - mov r0, r3 - bx lr - -/** - Performs an atomic compare exchange operation on a 32-bit unsigned integer. - - Performs an atomic compare exchange operation on the 32-bit unsigned integer - specified by Value. If Value is equal to CompareValue, then Value is set to - ExchangeValue and CompareValue is returned. If Value is not equal to CompareValue, - then Value is returned. The compare exchange operation must be performed using - MP safe mechanisms. - - @param Value A pointer to the 32-bit value for the compare exchange - operation. - @param CompareValue 32-bit value used in compare operation. - @param ExchangeValue 32-bit value used in exchange operation. - - @return The original *Value before exchange. - -**/ -//UINT32 -//EFIAPI -//InternalSyncCompareExchange32 ( -// IN volatile UINT32 *Value, -// IN UINT32 CompareValue, -// IN UINT32 ExchangeValue -// ) -ASM_PFX(InternalSyncCompareExchange32): - dmb - -InternalSyncCompareExchange32Again: - ldrex r3, [r0] - cmp r3, r1 - bne InternalSyncCompareExchange32Fail - -InternalSyncCompareExchange32Exchange: - strex ip, r2, [r0] - cmp ip, #0 - bne InternalSyncCompareExchange32Again - -InternalSyncCompareExchange32Fail: - dmb - mov r0, r3 - bx lr - -/** - Performs an atomic compare exchange operation on a 64-bit unsigned integer. - - Performs an atomic compare exchange operation on the 64-bit unsigned integer specified - by Value. If Value is equal to CompareValue, then Value is set to ExchangeValue and - CompareValue is returned. If Value is not equal to CompareValue, then Value is returned. - The compare exchange operation must be performed using MP safe mechanisms. - - @param Value A pointer to the 64-bit value for the compare exchange - operation. - @param CompareValue 64-bit value used in compare operation. - @param ExchangeValue 64-bit value used in exchange operation. - - @return The original *Value before exchange. - -**/ -//UINT64 -//EFIAPI -//InternalSyncCompareExchange64 ( -// IN volatile UINT64 *Value, // r0 -// IN UINT64 CompareValue, // r2-r3 -// IN UINT64 ExchangeValue // stack -// ) -ASM_PFX(InternalSyncCompareExchange64): - push { r4-r7 } - ldrd r4, r5, [sp, #16] - dmb - -InternalSyncCompareExchange64Again: - ldrexd r6, r7, [r0] - cmp r6, r2 - cmpeq r7, r3 - bne InternalSyncCompareExchange64Fail - -InternalSyncCompareExchange64Exchange: - strexd ip, r4, r5, [r0] - cmp ip, #0 - bne InternalSyncCompareExchange64Again - -InternalSyncCompareExchange64Fail: - dmb - mov r0, r6 - mov r1, r7 - pop { r4-r7 } - bx lr - -/** - Performs an atomic increment of an 32-bit unsigned integer. - - Performs an atomic increment of the 32-bit unsigned integer specified by - Value and returns the incremented value. The increment operation must be - performed using MP safe mechanisms. The state of the return value is not - guaranteed to be MP safe. - - @param Value A pointer to the 32-bit value to increment. - - @return The incremented value. - -**/ -//UINT32 -//EFIAPI -//InternalSyncIncrement ( -// IN volatile UINT32 *Value -// ) -ASM_PFX(InternalSyncIncrement): - dmb -TryInternalSyncIncrement: - ldrex r1, [r0] - add r1, r1, #1 - strex r2, r1, [r0] - cmp r2, #0 - bne TryInternalSyncIncrement - dmb - mov r0, r1 - bx lr - -/** - Performs an atomic decrement of an 32-bit unsigned integer. - - Performs an atomic decrement of the 32-bit unsigned integer specified by - Value and returns the decrement value. The decrement operation must be - performed using MP safe mechanisms. The state of the return value is not - guaranteed to be MP safe. - - @param Value A pointer to the 32-bit value to decrement. - - @return The decrement value. - -**/ -//UINT32 -//EFIAPI -//InternalSyncDecrement ( -// IN volatile UINT32 *Value -// ) -ASM_PFX(InternalSyncDecrement): - dmb -TryInternalSyncDecrement: - ldrex r1, [r0] - sub r1, r1, #1 - strex r2, r1, [r0] - cmp r2, #0 - bne TryInternalSyncDecrement - dmb - mov r0, r1 - bx lr diff --git a/MdePkg/Library/BaseSynchronizationLib/Arm/Synchronization.asm b/MdePkg/Library/BaseSynchronizationLib/Arm/Synchronization.asm deleted file mode 100644 index 1c9a183b8f..0000000000 --- a/MdePkg/Library/BaseSynchronizationLib/Arm/Synchronization.asm +++ /dev/null @@ -1,214 +0,0 @@ -// Implementation of synchronization functions for ARM architecture -// -// Copyright (c) 2012-2015, ARM Limited. All rights reserved. -// Copyright (c) 2015, Linaro Limited. All rights reserved. -// -// This program and the accompanying materials -// are licensed and made available under the terms and conditions of the BSD License -// which accompanies this distribution. The full text of the license may be found at -// http://opensource.org/licenses/bsd-license.php -// -// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -// -// - - EXPORT InternalSyncCompareExchange16 - EXPORT InternalSyncCompareExchange32 - EXPORT InternalSyncCompareExchange64 - EXPORT InternalSyncIncrement - EXPORT InternalSyncDecrement - - AREA ArmSynchronization, CODE, READONLY - -/** - Performs an atomic compare exchange operation on a 16-bit unsigned integer. - - Performs an atomic compare exchange operation on the 16-bit unsigned integer - specified by Value. If Value is equal to CompareValue, then Value is set to - ExchangeValue and CompareValue is returned. If Value is not equal to CompareValue, - then Value is returned. The compare exchange operation must be performed using - MP safe mechanisms. - - @param Value A pointer to the 16-bit value for the compare exchange - operation. - @param CompareValue 16-bit value used in compare operation. - @param ExchangeValue 16-bit value used in exchange operation. - - @return The original *Value before exchange. - -**/ -//UINT16 -//EFIAPI -//InternalSyncCompareExchange16 ( -// IN volatile UINT16 *Value, -// IN UINT16 CompareValue, -// IN UINT16 ExchangeValue -// ) -InternalSyncCompareExchange16 - dmb - -InternalSyncCompareExchange16Again - ldrexh r3, [r0] - cmp r3, r1 - bne InternalSyncCompareExchange16Fail - -InternalSyncCompareExchange16Exchange - strexh ip, r2, [r0] - cmp ip, #0 - bne InternalSyncCompareExchange16Again - -InternalSyncCompareExchange16Fail - dmb - mov r0, r3 - bx lr - -/** - Performs an atomic compare exchange operation on a 32-bit unsigned integer. - - Performs an atomic compare exchange operation on the 32-bit unsigned integer - specified by Value. If Value is equal to CompareValue, then Value is set to - ExchangeValue and CompareValue is returned. If Value is not equal to CompareValue, - then Value is returned. The compare exchange operation must be performed using - MP safe mechanisms. - - @param Value A pointer to the 32-bit value for the compare exchange - operation. - @param CompareValue 32-bit value used in compare operation. - @param ExchangeValue 32-bit value used in exchange operation. - - @return The original *Value before exchange. - -**/ -//UINT32 -//EFIAPI -//InternalSyncCompareExchange32 ( -// IN volatile UINT32 *Value, -// IN UINT32 CompareValue, -// IN UINT32 ExchangeValue -// ) -InternalSyncCompareExchange32 - dmb - -InternalSyncCompareExchange32Again - ldrex r3, [r0] - cmp r3, r1 - bne InternalSyncCompareExchange32Fail - -InternalSyncCompareExchange32Exchange - strex ip, r2, [r0] - cmp ip, #0 - bne InternalSyncCompareExchange32Again - -InternalSyncCompareExchange32Fail - dmb - mov r0, r3 - bx lr - -/** - Performs an atomic compare exchange operation on a 64-bit unsigned integer. - - Performs an atomic compare exchange operation on the 64-bit unsigned integer specified - by Value. If Value is equal to CompareValue, then Value is set to ExchangeValue and - CompareValue is returned. If Value is not equal to CompareValue, then Value is returned. - The compare exchange operation must be performed using MP safe mechanisms. - - @param Value A pointer to the 64-bit value for the compare exchange - operation. - @param CompareValue 64-bit value used in compare operation. - @param ExchangeValue 64-bit value used in exchange operation. - - @return The original *Value before exchange. - -**/ -//UINT64 -//EFIAPI -//InternalSyncCompareExchange64 ( -// IN volatile UINT64 *Value, // r0 -// IN UINT64 CompareValue, // r2-r3 -// IN UINT64 ExchangeValue // stack -// ) -InternalSyncCompareExchange64 - push { r4-r7 } - ldrd r4, r5, [sp, #16] - dmb - -InternalSyncCompareExchange64Again - ldrexd r6, r7, [r0] - cmp r6, r2 - cmpeq r7, r3 - bne InternalSyncCompareExchange64Fail - -InternalSyncCompareExchange64Exchange - strexd ip, r4, r5, [r0] - cmp ip, #0 - bne InternalSyncCompareExchange64Again - -InternalSyncCompareExchange64Fail - dmb - mov r0, r6 - mov r1, r7 - pop { r4-r7 } - bx lr - -/** - Performs an atomic increment of an 32-bit unsigned integer. - - Performs an atomic increment of the 32-bit unsigned integer specified by - Value and returns the incremented value. The increment operation must be - performed using MP safe mechanisms. The state of the return value is not - guaranteed to be MP safe. - - @param Value A pointer to the 32-bit value to increment. - - @return The incremented value. - -**/ -//UINT32 -//EFIAPI -//InternalSyncIncrement ( -// IN volatile UINT32 *Value -// ) -InternalSyncIncrement - dmb -TryInternalSyncIncrement - ldrex r1, [r0] - add r1, r1, #1 - strex r2, r1, [r0] - cmp r2, #0 - bne TryInternalSyncIncrement - dmb - mov r0, r1 - bx lr - -/** - Performs an atomic decrement of an 32-bit unsigned integer. - - Performs an atomic decrement of the 32-bit unsigned integer specified by - Value and returns the decrement value. The decrement operation must be - performed using MP safe mechanisms. The state of the return value is not - guaranteed to be MP safe. - - @param Value A pointer to the 32-bit value to decrement. - - @return The decrement value. - -**/ -//UINT32 -//EFIAPI -//InternalSyncDecrement ( -// IN volatile UINT32 *Value -// ) -InternalSyncDecrement - dmb -TryInternalSyncDecrement - ldrex r1, [r0] - sub r1, r1, #1 - strex r2, r1, [r0] - cmp r2, #0 - bne TryInternalSyncDecrement - dmb - mov r0, r1 - bx lr - - END -- cgit v1.2.3