199a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause 299a2dd95SBruce Richardson * Copyright(c) 2015 RehiveTech. All rights reserved. 399a2dd95SBruce Richardson */ 499a2dd95SBruce Richardson 599a2dd95SBruce Richardson #ifndef _RTE_SPINLOCK_ARM_H_ 699a2dd95SBruce Richardson #define _RTE_SPINLOCK_ARM_H_ 799a2dd95SBruce Richardson 899a2dd95SBruce Richardson #ifndef RTE_FORCE_INTRINSICS 999a2dd95SBruce Richardson # error Platform must be built with RTE_FORCE_INTRINSICS 1099a2dd95SBruce Richardson #endif 1199a2dd95SBruce Richardson 12*719834a6SMattias Rönnblom #include <rte_common.h> 13*719834a6SMattias Rönnblom #include "generic/rte_spinlock.h" 14*719834a6SMattias Rönnblom 1599a2dd95SBruce Richardson #ifdef __cplusplus 1699a2dd95SBruce Richardson extern "C" { 1799a2dd95SBruce Richardson #endif 1899a2dd95SBruce Richardson 1999a2dd95SBruce Richardson static inline int rte_tm_supported(void) 2099a2dd95SBruce Richardson { 2199a2dd95SBruce Richardson return 0; 2299a2dd95SBruce Richardson } 2399a2dd95SBruce Richardson 2499a2dd95SBruce Richardson static inline void 2599a2dd95SBruce Richardson rte_spinlock_lock_tm(rte_spinlock_t *sl) 2699a2dd95SBruce Richardson { 2799a2dd95SBruce Richardson rte_spinlock_lock(sl); /* fall-back */ 2899a2dd95SBruce Richardson } 2999a2dd95SBruce Richardson 3099a2dd95SBruce Richardson static inline int 3199a2dd95SBruce Richardson rte_spinlock_trylock_tm(rte_spinlock_t *sl) 3299a2dd95SBruce Richardson { 3399a2dd95SBruce Richardson return rte_spinlock_trylock(sl); 3499a2dd95SBruce Richardson } 3599a2dd95SBruce Richardson 3699a2dd95SBruce Richardson static inline void 3799a2dd95SBruce Richardson rte_spinlock_unlock_tm(rte_spinlock_t *sl) 3899a2dd95SBruce Richardson { 3999a2dd95SBruce Richardson rte_spinlock_unlock(sl); 4099a2dd95SBruce Richardson } 4199a2dd95SBruce Richardson 4299a2dd95SBruce Richardson static inline void 4399a2dd95SBruce Richardson rte_spinlock_recursive_lock_tm(rte_spinlock_recursive_t *slr) 4499a2dd95SBruce Richardson { 4599a2dd95SBruce Richardson rte_spinlock_recursive_lock(slr); /* fall-back */ 4699a2dd95SBruce Richardson } 4799a2dd95SBruce Richardson 4899a2dd95SBruce Richardson static inline void 4999a2dd95SBruce Richardson rte_spinlock_recursive_unlock_tm(rte_spinlock_recursive_t *slr) 5099a2dd95SBruce Richardson { 5199a2dd95SBruce Richardson rte_spinlock_recursive_unlock(slr); 5299a2dd95SBruce Richardson } 5399a2dd95SBruce Richardson 5499a2dd95SBruce Richardson static inline int 5599a2dd95SBruce Richardson rte_spinlock_recursive_trylock_tm(rte_spinlock_recursive_t *slr) 5699a2dd95SBruce Richardson { 5799a2dd95SBruce Richardson return rte_spinlock_recursive_trylock(slr); 5899a2dd95SBruce Richardson } 5999a2dd95SBruce Richardson 6099a2dd95SBruce Richardson #ifdef __cplusplus 6199a2dd95SBruce Richardson } 6299a2dd95SBruce Richardson #endif 6399a2dd95SBruce Richardson 6499a2dd95SBruce Richardson #endif /* _RTE_SPINLOCK_ARM_H_ */ 65