Everything

13.4.6 固定長メモリ・プール情報

固定長メモリ・プール情報では,
といった項目を個々の固定長メモリ・プールに対して定義します。
なお,固定長メモリ・プール情報として定義可能な数は,0~127個に限られます。
以下に,固定長メモリ・プール情報の記述形式を示します。
 
 CRE_MPF ( mpfid, { mpfatr, blkcnt, blksz[:seg_nam], mpf } );

以下に,固定長メモリ・プール情報で記述する項目について示します。
1 ) 固定長メモリ・プール名mpfid
固定長メモリ・プールの名前を指定します。
なお,mpfidとして指定可能な値は,“オブジェクト名”に限られます。
備考 CF78V4では,固定長メモリ・プール名とIDの対応を以下に示した形式でシステム情報ヘッダ・ファイルに出力します。このため,処理プログラム内で該当システム情報ヘッダ・ファイルをインクルードすることにより,固定長メモリ・プール名をIDの代わりに利用することが可能となります。
【 システム情報ヘッダ・ファイル(C言語用)への出力形式 】
 #define mpfid   ID
 
【 システム情報ヘッダ・ファイル(アセンブリ言語用)への出力形式 】
 mpfid   .EQU     ID
 
2 ) 属性(キューイング方式)mpfatr
固定長メモリ・プールの属性(キューイング方式)を指定します。
なお,mpfatrとして指定可能な値は,“TA_TFIFO”に限られます。
【 タスクのキューイング方式 】
TA_TFIFO: タスクからget_mpf,またはtget_mpfを発行した際,メモリ・ブロックを獲得することができなかった(空きメモリ・ブロックが存在しなかった)場合には,該当タスクを固定長メモリ・プールの待ちキューに“メモリ・ブロックの獲得要求順”でキューイング
3 ) メモリ・ブロック数blkcnt
メモリ・ブロックの総数を指定します。
なお,blkcntとして指定可能な値は,“1~16383”に限られます。
4 ) ブロック・サイズblksz
1ブロック当たりのサイズ(単位:バイト)を指定します。
なお,blkszとして指定可能な値は,“4~65534の2バイト境界値”に限られます。
5 ) セクション名sec_nam
固定長メモリ・プールの割り付け先を指定します。
なお,sec_namとして指定可能な値は,“kernel_work0,kernel_work1,kernel_work2,kernel_work3のいずれか”に限られます。
【 固定長メモリ・プールの割り付け先 】
kernel_work0: 固定長メモリ・プールを.kernel_work0セクションに割り付ける
kernel_work1: 固定長メモリ・プールを.kernel_work1セクションに割り付ける
kernel_work2: 固定長メモリ・プールを.kernel_work2セクションに割り付ける
kernel_work3: 固定長メモリ・プールを.kernel_work3セクションに割り付ける
備考 sec_namの指定を省略した場合,固定長メモリ・プールの割り付け先は,“.kernel_work0セクション”となります。
6 ) システム予約領域mpf
システム予約領域です。
なお,mpfとして指定可能な値は,“NULL”に限られます。