Esempio n. 1
0
        public ER ReferStatus(ref T_RMPL pk_rmpl)
        {
            //if (pk_rmpl == null)
            //	return ER.E_PAR;

            // 拡張情報
            pk_rmpl.exinf = m_cmpl.exinf;

            // 待ちタスクの有無
            pk_rmpl.wtsk = m_TskQueue.First != null;

            // 獲得可能なメモリ・ブロックの合計サイズ
            pk_rmpl.frsz = m_FreeSize;

            // 獲得可能なメモリ・ブロックの最大サイズ
            pk_rmpl.maxsz = m_MaxSize;

            return(ER.E_OK);
        }
Esempio n. 2
0
        public ER ref_mpl(ref T_RMPL pk_rmpl, ID mplid)
        {
            ER Result = ER.E_NOEXS;
            MemoryPool MemoryPool;

            if (g_Kernel == null)
                return ER.E_DLT;

            g_Kernel.LockCPU();
            try {
                MemoryPool = g_Kernel.Nucleus.GetMemoryPool(mplid);
                if (MemoryPool == null)
                    Result = ER.E_NOEXS;
                else
                    Result = MemoryPool.ReferStatus(ref pk_rmpl);
            }
            finally {
                g_Kernel.UnlockCPU();
            }

            return Result;
        }
Esempio n. 3
0
        public ER ReferStatus(ref T_RMPL pk_rmpl)
        {
            //if (pk_rmpl == null)
            //	return ER.E_PAR;

            // 拡張情報
            pk_rmpl.exinf = m_cmpl.exinf;

            // 待ちタスクの有無
            pk_rmpl.wtsk = m_TskQueue.First != null;

            // 獲得可能なメモリ・ブロックの合計サイズ
            pk_rmpl.frsz = m_FreeSize;

            // 獲得可能なメモリ・ブロックの最大サイズ
            pk_rmpl.maxsz = m_MaxSize;

            return ER.E_OK;
        }