threadprofilereadcount.c 1.99 KB
/************************************************************************
 Copyright (C) 1999 NINTENDO CO,Ltd,
 Copyright (C) 1999 MONEGI CORPORATION,
        All Rights Reserved
This program is a trade secret of NINTENDO CO,Ltd and MONEGI Corp.
and it is not to be reproduced, published, disclosed to others, copied,
adapted, distributed, or displayed without the prior authorization of
NINTENDO CO,Ltd. and MONEGI Corp. Licensee agrees to attach or embed
this Notice on all copies of the program, including partial copies or
modified versions thereof.
*************************************************************************/
/************************************************************************
 $Date: 2002/10/29 08:06:43 $
 $Revision: 1.1.1.1 $
 $Author: blythe $
************************************************************************/

#ifndef _FINALROM

#include <rdb.h>
#include <os_internal.h>
#include <os_thread.h>
#include "osint.h"

/*
 * 該当スレッドの累計countを取得する
 */
u32
osThreadProfileReadCount(OSId id)
{
#ifdef _DEBUG
    /* まだイニシャライズされていないときは操作できない */
    if (!__osThprofFlag) {
        __osError(ERR_OSTHPROFILEREADCOUNT_FLAG, 0);
        return 0;
    }
#endif /* _DEBUG */

    /* スレッドIDが規定値内かどうかをチェック */
    if (id >= THPROF_IDMAX){
#ifdef _DEBUG
	__osError(ERR_OSTHPROFILEREADCOUNT_LAR,1,id);
#endif /* _DEBUG */
	return 0;
    }

    return thprof[id].count;
}

/*
 * 該当スレッドの累計countを取得する (OSThread*版)
 */
u32
osThreadProfileReadCountTh(OSThread *thread)
{
    OSId id;

#ifdef _DEBUG
    /* まだイニシャライズされていないときは操作できない */
    if (!__osThprofFlag) {
        __osError(ERR_OSTHPROFILEREADCOUNTTH_FLAG, 0);
        return 0;
    }
#endif /* _DEBUG */

    id = osGetThreadId(thread);

    /* スレッドIDが規定値内かどうかをチェック */
    if (id >= THPROF_IDMAX){
#ifdef _DEBUG
	__osError(ERR_OSTHPROFILEREADCOUNTTH_LAR,1,id);
#endif /* _DEBUG */
	return 0;
    }

    return thprof[id].count;
}

#endif /* #ifndef _FINALROM */