Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

GateSpinlock.h

Go to the documentation of this file.
00001 /** 
00002  *  @file   GateSpinlock.h
00003  *
00004  *  @brief      Gate based on Spinlock.
00005  *
00006  *
00007  *  @ver        02.00.00.68_beta1
00008  *  
00009  *  ============================================================================
00010  *  
00011  *  Copyright (c) 2008-2009, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *  
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *  
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *  
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *  
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information: 
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *  
00048  */
00049 
00050 
00051 #ifndef GATESPINLOCK_H_0x188E
00052 #define GATESPINLOCK_H_0x188E
00053 
00054 
00055 #if defined (__cplusplus)
00056 extern "C" {
00057 #endif
00058 
00059 
00060 /* =============================================================================
00061  *  Status codes
00062  * =============================================================================
00063  */
00064 /*!
00065  *  @def    GateSpinlock_E_INVALIDARG
00066  *  @brief  Argument passed to a function is invalid.
00067  */
00068 #define GateSpinlock_E_INVALIDARG       -1
00069 
00070 /*!
00071  *  @def    GateSpinlock_E_MEMORY
00072  *  @brief  Memory allocation failed.
00073  */
00074 #define GateSpinlock_E_MEMORY           -2
00075 
00076 /*!
00077  *  @def    GateSpinlock_E_BUSY
00078  *  @brief  The name is already registered or not.
00079  */
00080 #define GateSpinlock_E_BUSY             -3
00081 
00082 /*!
00083  *  @def    GateSpinlock_E_FAIL
00084  *  @brief  Generic failure.
00085  */
00086 #define GateSpinlock_E_FAIL             -4
00087 
00088 /*!
00089  *  @def    GateSpinlock_E_NOTFOUND
00090  *  @brief  Name not found in the nameserver.
00091  */
00092 #define GateSpinlock_E_NOTFOUND         -5
00093 
00094 /*!
00095  *  @def    GateSpinlock_E_INVALIDSTATE
00096  *  @brief  Module is not initialized.
00097  */
00098 #define GateSpinlock_E_INVALIDSTATE     -6
00099 
00100 /*!
00101  *  @def    GateSpinlock_E_INUSE
00102  *  @brief  Indicates that the instance is in use.
00103  */
00104 #define GateSpinlock_E_INUSE            -7
00105 
00106 /*!
00107  *  @def    GateSpinlock_E_HANDLE
00108  *  @brief  An invalid handle was provided.
00109  */
00110 #define GateSpinlock_E_HANDLE           -8
00111 
00112 /*!
00113  *  @def    GateSpinlock_S_SUCCESS
00114  *  @brief  Operation successful.
00115  */
00116 #define GateSpinlock_S_SUCCESS          0
00117 
00118 
00119 /* =============================================================================
00120  *  Macros and types
00121  * =============================================================================
00122  */
00123 /*! @brief  Object for Gate Mutex */
00124 typedef struct GateSpinlock_Object   GateSpinlock_Object;
00125 
00126 /*! @brief  Handle for Gate Mutex */
00127 typedef struct GateSpinlock_Object * GateSpinlock_Handle;
00128 
00129 /*! No parameters for GateMutex creation */
00130 typedef Void GateSpinlock_Params;
00131 
00132 
00133 /* =============================================================================
00134  *  APIs
00135  * =============================================================================
00136  */
00137 /* Function to create a Gate Mutex */
00138 GateSpinlock_Handle GateSpinlock_create (const GateSpinlock_Params * params);
00139 
00140 /* Function to delete a Gate Mutex */
00141 Int GateSpinlock_delete (GateSpinlock_Handle * handle);
00142 
00143 
00144 #if defined (__cplusplus)
00145 }
00146 #endif /* defined (__cplusplus) */
00147 
00148 
00149 #endif /* GATESPINLOCK_H_0x188E */

Generated on Mon Mar 14 11:59:45 2011 for Syslink by  doxygen 1.4.4