Home | History | Annotate | Download | only in aarch32
      1 /*
      2  * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
      3  *
      4  * SPDX-License-Identifier: BSD-3-Clause
      5  */
      6 
      7 #include <asm_macros.S>
      8 
      9 	.globl	spin_lock
     10 	.globl	spin_unlock
     11 
     12 
     13 func spin_lock
     14 	mov	r2, #1
     15 1:
     16 	ldrex	r1, [r0]
     17 	cmp	r1, #0
     18 	wfene
     19 	strexeq	r1, r2, [r0]
     20 	cmpeq	r1, #0
     21 	bne	1b
     22 	dmb
     23 	bx	lr
     24 endfunc spin_lock
     25 
     26 
     27 func spin_unlock
     28 	mov	r1, #0
     29 	stl	r1, [r0]
     30 	bx	lr
     31 endfunc spin_unlock
     32