prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/CORE/VOSS/inc/vos_lock.h b/CORE/VOSS/inc/vos_lock.h
new file mode 100644
index 0000000..3bfb3e3
--- /dev/null
+++ b/CORE/VOSS/inc/vos_lock.h
@@ -0,0 +1,249 @@
+/*
+ * Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#if !defined( __VOS_LOCK_H )
+#define __VOS_LOCK_H
+
+/**=========================================================================
+  
+  \file  vos_lock.h
+  
+  \brief virtual Operating System Servies (vOS) Locks
+               
+   Definitions for vOSS Locks
+  
+   Copyright 2008 (c) Qualcomm, Incorporated.  All Rights Reserved.
+   
+   Qualcomm Confidential and Proprietary.
+  
+  ========================================================================*/
+
+/* $Header$ */
+
+/*--------------------------------------------------------------------------
+  Include Files
+  ------------------------------------------------------------------------*/
+#include "vos_status.h"
+#include "i_vos_lock.h"
+
+/*-------------------------------------------------------------------------- 
+  Preprocessor definitions and constants
+  ------------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------------- 
+  Type declarations
+  ------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------- 
+  Function declarations and documenation
+  ------------------------------------------------------------------------*/
+
+/*--------------------------------------------------------------------------
+  
+  \brief vos_lock_init() - initialize a vOSS lock
+  
+  The \a vos_lock_init() function initializes the specified lock. Upon 
+  successful initialization, the state of the lock becomes initialized 
+  and unlocked.
+
+  A lock must be initialized by calling vos_lock_init() before it 
+  may be used in any other lock functions. 
+  
+  Attempting to initialize an already initialized lock results in 
+  a failure.
+ 
+  \param lock - pointer to the opaque lock object to initialize
+  
+  \return VOS_STATUS_SUCCESS - lock was successfully initialized and 
+          is ready to be used.
+  
+          VOS_STATUS_E_RESOURCES - System resources (other than memory) 
+          are unavailable to initilize the lock
+
+          VOS_STATUS_E_NOMEM - insufficient memory exists to initialize 
+          the lock
+
+          VOS_STATUS_E_BUSY - The implementation has detected an attempt 
+          to reinitialize the object referenced by lock, a previously 
+          initialized, but not yet destroyed, lock.
+
+          VOS_STATUS_E_FAULT  - lock is an invalid pointer.     
+  \sa
+  
+  --------------------------------------------------------------------------*/
+VOS_STATUS vos_lock_init( vos_lock_t *lock );
+
+/*--------------------------------------------------------------------------
+  
+  \brief vos_lock_acquire() - acquire a lock
+
+  A lock object is acquired by calling \a vos_lock_acquire().  If the lock 
+  is already locked, the calling thread shall block until the lock becomes 
+  available. This operation shall return with the lock object referenced by 
+  lock in the locked state with the calling thread as its owner. 
+  
+  \param lock - the lock object to acquire
+  
+  \return VOS_STATUS_SUCCESS - the lock was successfully acquired by 
+          the calling thread.
+  
+          VOS_STATUS_E_INVAL - The value specified by lock does not refer 
+          to an initialized lock object.
+          
+          VOS_STATUS_E_FAULT - lock is an invalid pointer.     
+          
+  \sa
+  
+  ------------------------------------------------------------------------*/
+VOS_STATUS vos_lock_acquire( vos_lock_t * lock );
+
+
+/*--------------------------------------------------------------------------
+  
+  \brief vos_lock_release() - release a lock
+
+  The \a vos_lock_release() function shall release the lock object 
+  referenced by 'lock'.  
+
+  If a thread attempts to release a lock that it unlocked or is not
+  initialized, an error is returned. 
+
+  \param lock - the lock to release
+  
+  \return VOS_STATUS_SUCCESS - the lock was successfully released
+  
+          VOS_STATUS_E_INVAL - The value specified by lock does not refer 
+          to an initialized lock object.
+                   
+          VOS_STATUS_E_FAULT - The value specified by lock does not refer 
+          to an initialized lock object.
+                   
+          VOS_STATUS_E_PERM - Operation is not permitted.  The calling 
+          thread does not own the lock. 
+    
+  \sa
+  
+  ------------------------------------------------------------------------*/
+VOS_STATUS vos_lock_release( vos_lock_t *lock );
+
+
+/*--------------------------------------------------------------------------
+  
+  \brief vos_lock_destroy() - Destroy a vOSS Lock
+
+  The \a vos_lock_destroy() function shall destroy the lock object 
+  referenced by lock.  After a successful return from \a vos_lock_destroy()
+  the lock object becomes, in effect, uninitialized.
+   
+  A destroyed lock object can be reinitialized using vos_lock_init(); 
+  the results of otherwise referencing the object after it has been destroyed 
+  are undefined.  Calls to vOSS lock functions to manipulate the lock such
+  as vos_lock_acquire() will fail if the lock is destroyed.  Therefore, 
+  don't use the lock after it has been destroyed until it has 
+  been re-initialized.
+  
+  \param lock - the lock object to be destroyed.
+  
+  \return VOS_STATUS_SUCCESS - lock was successfully destroyed.
+  
+          VOS_STATUS_E_BUSY - The implementation has detected an attempt 
+          to destroy the object referenced by lock while it is locked 
+          or still referenced. 
+
+          VOS_STATUS_E_INVAL - The value specified by lock is invalid.
+          
+          VOS_STATUS_E_FAULT  - lock is an invalid pointer.     
+  \sa
+  
+  ------------------------------------------------------------------------*/
+VOS_STATUS vos_lock_destroy( vos_lock_t *lock );
+
+/*--------------------------------------------------------------------------
+  
+  \brief vos_spin_lock_init() - initializes a vOSS spin lock
+  
+  The vos_spin_lock_init() function initializes the specified spin lock. Upon 
+  successful initialization, the state of the lock becomes initialized 
+  and unlocked.
+
+  A lock must be initialized by calling vos_spin_lock_init() before it 
+  may be used in any other lock functions. 
+  
+  Attempting to initialize an already initialized lock results in 
+  a failure.
+ 
+  \param pLock - pointer to the opaque lock object to initialize
+  
+  \return VOS_STATUS_SUCCESS - spin lock was successfully initialized and 
+          is ready to be used.
+  --------------------------------------------------------------------------*/
+VOS_STATUS vos_spin_lock_init(vos_spin_lock_t *pLock);
+
+/*--------------------------------------------------------------------------
+  
+  \brief vos_spin_lock_acquire() - acquires a spin lock
+
+  A lock object is acquired by calling \a vos_spin_lock_acquire().  If the lock 
+  is already locked, the calling thread shall spin until the lock becomes 
+  available. This operation shall return with the lock object referenced by 
+  lock in the locked state with the calling thread as its owner. 
+  
+  \param pLock - the lock object to acquire
+  
+  \return VOS_STATUS_SUCCESS - the lock was successfully acquired by 
+          the calling thread.
+      
+  \sa
+  ------------------------------------------------------------------------*/
+VOS_STATUS vos_spin_lock_acquire(vos_spin_lock_t *pLock);
+
+/*--------------------------------------------------------------------------
+  
+  \brief vos_spin_lock_release() - releases a lock
+
+  The \a vos_lock_release() function shall release the spin lock object 
+  referenced by 'lock'.  
+
+  If a thread attempts to release a lock that it unlocked or is not
+  initialized, an error is returned. 
+
+  \param pLock - the lock to release
+  
+  \return VOS_STATUS_SUCCESS - the lock was successfully released
+  
+  \sa
+  ------------------------------------------------------------------------*/
+VOS_STATUS vos_spin_lock_release(vos_spin_lock_t *pLock);
+
+/*--------------------------------------------------------------------------
+  
+  \brief vos_spin_lock_destroy() - releases resource of a lock
+
+  \param pLock - pointer to a lock to release
+  
+  \return VOS_STATUS_SUCCESS - the lock was successfully released
+  
+  \sa
+  ------------------------------------------------------------------------*/
+VOS_STATUS vos_spin_lock_destroy(vos_spin_lock_t *pLock);
+
+
+#endif // __VOSS_LOCK_H