コード例 #1
0
ファイル: lock.c プロジェクト: bhargavz/cloudproxy
void interruptible_lock_acquire_readlock(VMM_READ_WRITE_LOCK* lock)
{
    (void)lock;
    interruptible_lock_acquire(&lock->lock);
    hw_interlocked_increment((INT32*)(&lock->readers));
    lock_release(&lock->lock);
}
コード例 #2
0
ファイル: lock.c プロジェクト: bhargavz/cloudproxy
void interruptible_lock_acquire_writelock(VMM_READ_WRITE_LOCK * lock)
{
    (void)lock;
    BOOLEAN ipc_processed = FALSE;

    interruptible_lock_acquire(&lock->lock);
    //  wait until readers == 0
    while(lock->readers) {
        ipc_processed = ipc_process_one_ipc();
        if(FALSE == ipc_processed) {
            hw_pause();
        }
    }
}
コード例 #3
0
ファイル: ikgt_handler_api.c プロジェクト: 01org/ikgt-plugin
API void ikgt_lock_acquire(ikgt_lock_t *lock)
{
	interruptible_lock_acquire((mon_lock_t *)lock);
}