Beispiel #1
0
/**
 *  키 큐에서 데이터를 제거
 */
BOOL kGetKeyFromKeyQueue( KEYDATA* pstData )
{
    BOOL bResult;
    BOOL bPreviousInterrupt;
    
    // 임계 영역 시작
    bPreviousInterrupt = kLockForSystemData();

    bResult = kGetQueue( &gs_stKeyQueue, pstData );

    // 임계 영역 끝
    kUnlockForSystemData( bPreviousInterrupt );
    return bResult;
}
Beispiel #2
0
BOOL kGetKeyFromKeyQueue( KEYDATA* pstData )
{
	BOOL bResult;
	BOOL bPreviousFlag;

	if( kIsQueueEmpty( &gs_stKeyQueue ) == TRUE )
	{
		return FALSE;
	}

	bPreviousFlag = kLockForSystemData();

	bResult = kGetQueue( &gs_stKeyQueue, pstData );

	kUnlockForSystemData( bPreviousFlag );
	return bResult;
}
Beispiel #3
0
/**
 *  키 큐에서 키 데이터를 제거
 */
BOOL kGetKeyFromKeyQueue( KEYDATA* pstData )
{
    BOOL bResult;
    BOOL bPreviousInterrupt;
    
    // 큐가 비었으면 키 데이터를 꺼낼 수 없음
    if( kIsQueueEmpty( &gs_stKeyQueue ) == TRUE )
    {
        return FALSE;
    }

    // 임계 영역 시작
    bPreviousInterrupt = kLockForSystemData();

    // 키 큐에서 키 데이터를 제거
    bResult = kGetQueue( &gs_stKeyQueue, pstData );

    // 임계 영역 끝
    kUnlockForSystemData( bPreviousInterrupt );
    return bResult;
}
Beispiel #4
0
/**
 *  키 큐에서 키 데이터를 제거
 */
BOOL kGetKeyFromKeyQueue( KEYDATA* pstData )
{
    BOOL bResult;
    BOOL bPreviousInterrupt;
    
    // 큐가 비었으면 키 데이터를 꺼낼 수 없음
    if( kIsQueueEmpty( &gs_stKeyQueue ) == TRUE )
    {
        return FALSE;
    }

    // 인터럽트 불가
    bPreviousInterrupt = kSetInterruptFlag( FALSE );

    // 키 큐에서 키 데이터를 제거
    bResult = kGetQueue( &gs_stKeyQueue, pstData );

    // 이전 인터럽트 플래그 복원
    kSetInterruptFlag( bPreviousInterrupt );
    return bResult;
}