2 * -------------------------------------------
3 * CC3220 SDK - v0.10.00.00
4 * -------------------------------------------
6 * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
12 * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
15 * Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the
20 * Neither the name of Texas Instruments Incorporated nor the names of
21 * its contributors may be used to endorse or promote products derived
22 * from this software without specific prior written permission.
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 //*****************************************************************************
41 // Prototypes for the Apps-NWP spinlock.
43 //*****************************************************************************
45 #ifndef __HWSPINLOCK_H__
46 #define __HWSPINLOCK_H__
48 //*****************************************************************************
50 // If building with a C++ compiler, make all of the definitions in this header
53 //*****************************************************************************
59 //*****************************************************************************
60 // values that can be passed to API as ui32LockID parameter
61 //*****************************************************************************
62 #define HWSPINLOCK_SSPI 0x02000000
64 //*****************************************************************************
65 // Values that are returned from HwSpinLockTest()
66 //*****************************************************************************
67 #define HWSPINLOCK_OWNER_APPS 0x00000001
68 #define HWSPINLOCK_OWNER_NWP 0x00000002
69 #define HWSPINLOCK_OWNER_NONE 0x00000000
71 //*****************************************************************************
73 // API Function prototypes
75 //*****************************************************************************
76 extern void HwSpinLockAcquire(uint32_t ui32LockID);
77 extern int32_t HwSpinLockTryAcquire(uint32_t ui32LockID, uint32_t ui32Retry);
78 extern void HwSpinLockRelease(uint32_t ui32LockID);
79 extern uint32_t HwSpinLockTest(uint32_t ui32LockID, bool bCurrentStatus);
81 //*****************************************************************************
83 // Mark the end of the C bindings section for C++ compilers.
85 //*****************************************************************************
90 #endif // __HWSPINLOCK_H__