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

固定長メモリ・プール情報では,

1 ) 固定長メモリ・プール名mpfid

2 ) 属性(キューイング方式)mpfatr

3 ) メモリ・ブロック数blkcnt

4 ) ブロック・サイズblksz

5 ) セクション名sec_nam

6 ) システム予約領域mpf

といった項目を個々の固定長メモリ・プールに対して定義します。

なお,固定長メモリ・プール情報として定義可能な数は,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”に限られます。