tizen 2.4 release
[kernel/linux-3.0.git] / drivers / gpu / arm / mali400 / r4p0_rel0 / linux / mali_osk_atomics.c
1 /*
2  * Copyright (C) 2010 ARM Limited. All rights reserved.
3  * 
4  * This program is free software and is provided to you under the terms of the GNU General Public License version 2
5  * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
6  * 
7  * A copy of the licence is included with the program, and can also be obtained from Free Software
8  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
9  */
10
11 /**
12  * @file mali_osk_atomics.c
13  * Implementation of the OS abstraction layer for the kernel device driver
14  */
15
16 #include "mali_osk.h"
17 #include <asm/atomic.h>
18 #include "mali_kernel_common.h"
19
20 void _mali_osk_atomic_dec( _mali_osk_atomic_t *atom )
21 {
22         atomic_dec((atomic_t *)&atom->u.val);
23 }
24
25 u32 _mali_osk_atomic_dec_return( _mali_osk_atomic_t *atom )
26 {
27         return atomic_dec_return((atomic_t *)&atom->u.val);
28 }
29
30 void _mali_osk_atomic_inc( _mali_osk_atomic_t *atom )
31 {
32         atomic_inc((atomic_t *)&atom->u.val);
33 }
34
35 u32 _mali_osk_atomic_inc_return( _mali_osk_atomic_t *atom )
36 {
37         return atomic_inc_return((atomic_t *)&atom->u.val);
38 }
39
40 _mali_osk_errcode_t _mali_osk_atomic_init( _mali_osk_atomic_t *atom, u32 val )
41 {
42         MALI_CHECK_NON_NULL(atom, _MALI_OSK_ERR_INVALID_ARGS);
43         atomic_set((atomic_t *)&atom->u.val, val);
44         return _MALI_OSK_ERR_OK;
45 }
46
47 u32 _mali_osk_atomic_read( _mali_osk_atomic_t *atom )
48 {
49         return atomic_read((atomic_t *)&atom->u.val);
50 }
51
52 void _mali_osk_atomic_term( _mali_osk_atomic_t *atom )
53 {
54         MALI_IGNORE(atom);
55 }
56
57 u32 _mali_osk_atomic_xchg( _mali_osk_atomic_t *atom, u32 val )
58 {
59         return atomic_xchg((atomic_t*)&atom->u.val, val);
60 }