Lines Matching refs:lock
16 void mpp_spinlock_init(spinlock_t *lock) in mpp_spinlock_init() argument
18 MPP_SYNC_CLR(&lock->lock); in mpp_spinlock_init()
19 lock->count = 0; in mpp_spinlock_init()
20 lock->time = 0; in mpp_spinlock_init()
22 mpp_env_get_u32("mpp_lock_debug", &lock->debug, 0); in mpp_spinlock_init()
25 void mpp_spinlock_lock(spinlock_t *lock) in mpp_spinlock_lock() argument
29 if (lock->debug) in mpp_spinlock_lock()
32 while (!MPP_BOOL_CAS(&lock->lock, LOCK_IDLE, LOCK_BUSY)) { in mpp_spinlock_lock()
37 if (lock->debug && time) { in mpp_spinlock_lock()
38 lock->time += mpp_time() - time; in mpp_spinlock_lock()
39 lock->count++; in mpp_spinlock_lock()
43 void mpp_spinlock_deinit(spinlock_t *lock, const char *name) in mpp_spinlock_deinit() argument
45 if (lock->debug && lock->count) { in mpp_spinlock_deinit()
47 lock->count, lock->time, (RK_S32)(lock->time / lock->count)); in mpp_spinlock_deinit()
51 void mpp_spinlock_unlock(spinlock_t *lock) in mpp_spinlock_unlock() argument
53 MPP_SYNC_CLR(&lock->lock); in mpp_spinlock_unlock()
56 bool mpp_spinlock_trylock(spinlock_t *lock) in mpp_spinlock_trylock() argument
61 if (lock->debug) in mpp_spinlock_trylock()
64 ret = MPP_BOOL_CAS(&lock->lock, LOCK_IDLE, LOCK_BUSY); in mpp_spinlock_trylock()
66 if (ret && lock->debug && time) { in mpp_spinlock_trylock()
67 lock->time += mpp_time() - time; in mpp_spinlock_trylock()
68 lock->count++; in mpp_spinlock_trylock()