Changeset 315 for rubycfg_asp/trunk/asp_dcre/kernel/mempfix.h
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/kernel/mempfix.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 * å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 * è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 * ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 * ã¨ï¼ 30 * (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 * (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 * å ±åãããã¨ï¼ 38 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 * 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 * å 46 責ãããã¨ï¼ 11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * @(#) $Id$ … … 57 42 58 43 /* 59 * åºå®é·ã¡ã¢ãªãã¼ã«æ©è½44 * 固定長メモリプール機能 60 45 */ 61 46 … … 66 51 67 52 /* 68 * åºå®é·ã¡ã¢ãªãããã¯ç®¡çãããã¯53 * 固定長メモリブロック管理ブロック 69 54 * 70 * next ãã£ã¼ã«ãã«ã¯ï¼ã¡ã¢ãªãããã¯ãå²å½ã¦æ¸ã¿ã®å ´åã¯INDEX_ALLOCãï¼71 * æªå²å½ã¦ã®å ´åã¯æ¬¡ã®æªå²å½ã¦ãããã¯ã®ã¤ã³ããã¯ã¹çªå·ãæ ¼ç´ããï¼72 * æå¾ã®æªå²å½ã¦ãããã¯ã®å ´åã«ã¯ï¼INDEX_NULLãæ ¼ç´ããï¼55 * nextフィールドには,メモリブロックが割当て済みの場合はINDEX_ALLOCを, 56 * 未割当ての場合は次の未割当てブロックのインデックス番号を格納する. 57 * 最後の未割当てブロックの場合には,INDEX_NULLを格納する. 73 58 */ 74 59 typedef struct fixed_memoryblock_management_block { 75 uint_t next; /* 次ã®æªå²å½ã¦ãããã¯*/60 uint_t next; /* 次の未割当てブロック */ 76 61 } MPFMB; 77 62 78 63 /* 79 * åºå®é·ã¡ã¢ãªãã¼ã«åæåãããã¯64 * 固定長メモリプール初期化ブロック 80 65 * 81 * ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãããã¯ã®å 82 ±éé¨å 83 * ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼ 84 * æåã®ãã£ã¼ã«ããå 85 ±éã«ãªã£ã¦ããï¼ 66 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 67 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 68 * 最初のフィールドが共通になっている. 86 69 */ 87 70 typedef struct fixed_memorypool_initialization_block { 88 ATR mpfatr; /* åºå®é·ã¡ã¢ãªãã¼ã«å±æ§ */ 89 uint_t blkcnt; /* ã¡ã¢ãªãããã¯æ° */ 90 uint_t blksz; /* ã¡ã¢ãªãããã¯ã®ãµã¤ãºï¼ä¸¸ããå¤ï¼ */ 91 void *mpf; /* åºå®é·ã¡ã¢ãªãã¼ã«é åã®å 92 é çªå° */ 93 MPFMB *p_mpfmb; /* åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åã®å 94 é çªå° */ 71 ATR mpfatr; /* 固定長メモリプール属性 */ 72 uint_t blkcnt; /* メモリブロック数 */ 73 uint_t blksz; /* メモリブロックのサイズ(丸めた値) */ 74 void *mpf; /* 固定長メモリプール領域の先頭番地 */ 75 MPFMB *p_mpfmb; /* 固定長メモリプール管理領域の先頭番地 */ 95 76 } MPFINIB; 96 77 97 78 /* 98 * åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãããã¯79 * 固定長メモリプール管理ブロック 99 80 * 100 * ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãããã¯ã®å 101 ±éé¨åï¼WOBJCBï¼ 102 * ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã® 103 * ãã£ã¼ã«ããå 104 ±éã«ãªã£ã¦ããï¼ 81 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 82 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 83 * フィールドが共通になっている. 105 84 */ 106 85 typedef struct fixed_memorypool_control_block { 107 QUEUE wait_queue; /* åºå®é·ã¡ã¢ãªãã¼ã«å¾ 108 ã¡ãã¥ã¼ */ 109 const MPFINIB *p_mpfinib; /* åæåãããã¯ã¸ã®ãã¤ã³ã¿ */ 110 uint_t fblkcnt; /* æªå²å½ã¦ãããã¯æ° */ 111 uint_t unused; /* æªä½¿ç¨ãããã¯ã®å 112 é */ 113 uint_t freelist; /* æªå²å½ã¦ãããã¯ã®ãªã¹ã */ 86 QUEUE wait_queue; /* 固定長メモリプール待ちキュー */ 87 const MPFINIB *p_mpfinib; /* 初期化ブロックへのポインタ */ 88 uint_t fblkcnt; /* 未割当てブロック数 */ 89 uint_t unused; /* 未使用ブロックの先頭 */ 90 uint_t freelist; /* 未割当てブロックのリスト */ 114 91 } MPFCB; 115 92 116 93 /* 117 * åºå®é·ã¡ã¢ãªãã¼ã«å¾ 118 ã¡æ 119 å ±ãããã¯ã®å®ç¾© 94 * 固定長メモリプール待ち情報ブロックの定義 120 95 * 121 * ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾ 122 ã¡æ 123 å ±ãããã¯ã®å 124 ±éé¨å 125 * ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼ 126 * æåã®2ã¤ã®ãã£ã¼ã«ããå 127 ±éã«ãªã£ã¦ããï¼ 96 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 97 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 98 * 最初の2つのフィールドが共通になっている. 128 99 */ 129 100 typedef struct fixed_memorypool_waiting_information { 130 WINFO winfo; /* æ¨æºã®å¾ 131 ã¡æ 132 å ±ããã㯠*/ 133 MPFCB *p_mpfcb; /* å¾ 134 ã£ã¦ããåºå®é·ã¡ã¢ãªãã¼ã«ã®ç®¡çãããã¯*/ 135 void *blk; /* ç²å¾ããã¡ã¢ãªããã㯠*/ 101 WINFO winfo; /* 標準の待ち情報ブロック */ 102 MPFCB *p_mpfcb; /* 待っている固定長メモリプールの管理ブロック*/ 103 void *blk; /* 獲得したメモリブロック */ 136 104 } WINFO_MPF; 137 105 138 106 /* 139 * 使ç¨ãã¦ããªãåºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãããã¯ã®ãªã¹ã107 * 使用していない固定長メモリプール管理ブロックのリスト 140 108 */ 141 109 extern QUEUE free_mpfcb; 142 110 143 111 /* 144 * åºå®é·ã¡ã¢ãªãã¼ã«IDã®æ大å¤ï¼kernel_cfg.cï¼112 * 固定長メモリプールIDの最大値(kernel_cfg.c) 145 113 */ 146 114 extern const ID tmax_mpfid; … … 148 116 149 117 /* 150 * åºå®é·ã¡ã¢ãªãã¼ã«åæåãããã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼118 * 固定長メモリプール初期化ブロックのエリア(kernel_cfg.c) 151 119 */ 152 120 extern const MPFINIB mpfinib_table[]; … … 154 122 155 123 /* 156 * åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãããã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼124 * 固定長メモリプール管理ブロックのエリア(kernel_cfg.c) 157 125 */ 158 126 extern MPFCB mpfcb_table[]; 159 127 160 128 /* 161 * åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãããã¯ããåºå®é·ã¡ã¢ãªãã¼ã«IDãåãåºãã162 * ãã®ãã¯ã129 * 固定長メモリプール管理ブロックから固定長メモリプールIDを取り出すた 130 * めのマクロ 163 131 */ 164 132 #define MPFID(p_mpfcb) ((ID)(((p_mpfcb) - mpfcb_table) + TMIN_MPFID)) 165 133 166 134 /* 167 * åºå®é·ã¡ã¢ãªãã¼ã«æ©è½ã®åæå135 * 固定長メモリプール機能の初期化 168 136 */ 169 137 extern void initialize_mempfix(void); 170 138 171 139 /* 172 * åºå®é·ã¡ã¢ãªãã¼ã«ãããããã¯ãç²å¾140 * 固定長メモリプールからブロックを獲得 173 141 */ 174 142 extern void get_mpf_block(MPFCB *p_mpfcb, void **p_blk); -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.