root / gcell / src / ibm / sync / spu_source / mutex_lock.h @ 28361a1b
History | View | Annotate | Download (3.2 kB)
| 1 | /* -------------------------------------------------------------- */
|
|---|---|
| 2 | /* (C)Copyright 2001,2007, */
|
| 3 | /* International Business Machines Corporation, */
|
| 4 | /* Sony Computer Entertainment, Incorporated, */
|
| 5 | /* Toshiba Corporation, */
|
| 6 | /* */
|
| 7 | /* All Rights Reserved. */
|
| 8 | /* */
|
| 9 | /* Redistribution and use in source and binary forms, with or */
|
| 10 | /* without modification, are permitted provided that the */
|
| 11 | /* following conditions are met: */
|
| 12 | /* */
|
| 13 | /* - Redistributions of source code must retain the above copyright*/
|
| 14 | /* notice, this list of conditions and the following disclaimer. */
|
| 15 | /* */
|
| 16 | /* - Redistributions in binary form must reproduce the above */
|
| 17 | /* copyright notice, this list of conditions and the following */
|
| 18 | /* disclaimer in the documentation and/or other materials */
|
| 19 | /* provided with the distribution. */
|
| 20 | /* */
|
| 21 | /* - Neither the name of IBM Corporation nor the names of its */
|
| 22 | /* contributors may be used to endorse or promote products */
|
| 23 | /* derived from this software without specific prior written */
|
| 24 | /* permission. */
|
| 25 | /* */
|
| 26 | /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
|
| 27 | /* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
|
| 28 | /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
|
| 29 | /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
|
| 30 | /* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
|
| 31 | /* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
|
| 32 | /* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
|
| 33 | /* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
|
| 34 | /* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
|
| 35 | /* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
|
| 36 | /* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
|
| 37 | /* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
|
| 38 | /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
| 39 | /* -------------------------------------------------------------- */
|
| 40 | /* PROLOG END TAG zYx */
|
| 41 | #ifndef _SPU_MUTEX_LOCK_H_
|
| 42 | #define _SPU_MUTEX_LOCK_H_
|
| 43 | |
| 44 | #include "sync_utils.h" |
| 45 | #include "mutex.h" |
| 46 | #include "trace_libsync.h" |
| 47 | |
| 48 | static __inline void _mutex_lock(mutex_ea_t ea) |
| 49 | {
|
| 50 | |
| 51 | #ifdef LIBSYNC_TRACE
|
| 52 | s32 miss = 0;
|
| 53 | |
| 54 | TRACE_MUTEX_LOCK_ENTRY(interval); |
| 55 | miss = _spin_lock_trace(ea); |
| 56 | TRACE_MUTEX_LOCK_EXIT(interval, ea, miss); |
| 57 | |
| 58 | #else /* LIBSYNC_TRACE */ |
| 59 | |
| 60 | _spin_lock(ea); |
| 61 | |
| 62 | #endif /* LIBSYNC_TRACE */ |
| 63 | |
| 64 | } |
| 65 | |
| 66 | #endif /* _SPU_MUTEX_LOCK_H_ */ |