public ER ReferStatus(ref T_RSEM pk_rsem) { //if (pk_rsem == null) // return ER.E_PAR; // 拡張情報 pk_rsem.exinf = m_csem.exinf; // 待ちタスクの有無 pk_rsem.wtsk = m_TskQueue.First != null; // 現在の資源数 pk_rsem.semcnt = m_Count; // 最大資源数 pk_rsem.maxsem = m_csem.maxsem; return(ER.E_OK); }
public ER ReferStatus(ref T_RSEM pk_rsem) { //if (pk_rsem == null) // return ER.E_PAR; // 拡張情報 pk_rsem.exinf = m_csem.exinf; // 待ちタスクの有無 pk_rsem.wtsk = m_TskQueue.First != null; // 現在の資源数 pk_rsem.semcnt = m_Count; // 最大資源数 pk_rsem.maxsem = m_csem.maxsem; return ER.E_OK; }
public ER ref_sem(ref T_RSEM pk_rsem, ID semid) { ER Result = ER.E_NOEXS; Semaphore Semaphore; if (g_Kernel == null) return ER.E_DLT; g_Kernel.LockCPU(); try { Semaphore = g_Kernel.Nucleus.GetSemaphore(semid); if (Semaphore == null) Result = ER.E_NOEXS; else Result = Semaphore.ReferStatus(ref pk_rsem); } finally { g_Kernel.UnlockCPU(); } return Result; }