Changeset 167 for UsbWattMeter/trunk/asp_dcre/kernel/mempfix.h
- Timestamp:
- Mar 8, 2016, 8:37:45 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
UsbWattMeter/trunk/asp_dcre/kernel/mempfix.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêĢ鱯D 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 22 * Ì³ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 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 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Åè·v[@\44 * 固定長メモリプール機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * Åè·ubNÇubN53 * 固定長メモリブロック管理ブロック 58 54 * 59 * next tB[hÉÍCubNªÄÏÝÌêÍINDEX_ALLOCðC60 * ¢ÄÌêÍÌ¢ÄubNÌCfbNXÔði[·éD61 * ÅãÌ¢ÄubNÌêÉÍCINDEX_NULLði[·éD55 * nextフィールドには,メモリブロックが割当て済みの場合はINDEX_ALLOCを, 56 * 未割当ての場合は次の未割当てブロックのインデックス番号を格納する. 57 * 最後の未割当てブロックの場合には,INDEX_NULLを格納する. 62 58 */ 63 59 typedef struct fixed_memoryblock_management_block { 64 uint_t next; /* Ì¢ÄubN*/60 uint_t next; /* 次の未割当てブロック */ 65 61 } MPFMB; 66 62 67 63 /* 68 * Åè·v[ú»ubN64 * 固定長メモリプール初期化ブロック 69 65 * 70 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌú»ubN̤ʪ71 * iWOBJINIBjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC72 * ÅÌtB[hª¤ÊÉÈÁÄ¢éD66 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 67 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 68 * 最初のフィールドが共通になっている. 73 69 */ 74 70 typedef struct fixed_memorypool_initialization_block { 75 ATR mpfatr; /* Åè·v[®«*/76 uint_t blkcnt; /* ubN*/77 uint_t blksz; /* ubNÌTCYiÛß½lj*/78 void *mpf; /* Åè·v[ÌæÌæªÔn*/79 MPFMB *p_mpfmb; /* Åè·v[ÇÌæÌæªÔn*/71 ATR mpfatr; /* 固定長メモリプール属性 */ 72 uint_t blkcnt; /* メモリブロック数 */ 73 uint_t blksz; /* メモリブロックのサイズ(丸めた値) */ 74 void *mpf; /* 固定長メモリプール領域の先頭番地 */ 75 MPFMB *p_mpfmb; /* 固定長メモリプール管理領域の先頭番地 */ 80 76 } MPFINIB; 81 77 82 78 /* 83 * Åè·v[ÇubN79 * 固定長メモリプール管理ブロック 84 80 * 85 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÇubN̤ʪiWOBJCBj86 * ðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅCÅÌ2ÂÌ87 * tB[hª¤ÊÉÈÁÄ¢éD81 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 82 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 83 * フィールドが共通になっている. 88 84 */ 89 85 typedef struct fixed_memorypool_control_block { 90 QUEUE wait_queue; /* Åè·v[Ò¿L 91 [ */ 92 const MPFINIB *p_mpfinib; /* ú»ubNÖÌ|C^ */ 93 uint_t fblkcnt; /* ¢ÄubN */ 94 uint_t unused; /* ¢gpubNÌæª */ 95 uint_t freelist; /* ¢ÄubNÌXg */ 86 QUEUE wait_queue; /* 固定長メモリプール待ちキュー */ 87 const MPFINIB *p_mpfinib; /* 初期化ブロックへのポインタ */ 88 uint_t fblkcnt; /* 未割当てブロック数 */ 89 uint_t unused; /* 未使用ブロックの先頭 */ 90 uint_t freelist; /* 未割当てブロックのリスト */ 96 91 } MPFCB; 97 92 98 93 /* 99 * Åè·v[Ò¿îñubNÌè`94 * 固定長メモリプール待ち情報ブロックの定義 100 95 * 101 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ102 * iWINFO_WOBJjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC103 * ÅÌ2ÂÌtB[hª¤ÊÉÈÁÄ¢éD96 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 97 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 98 * 最初の2つのフィールドが共通になっている. 104 99 */ 105 100 typedef struct fixed_memorypool_waiting_information { 106 WINFO winfo; /* WÌÒ¿îñubN*/107 MPFCB *p_mpfcb; /* ÒÁÄ¢éÅè·v[ÌÇubN*/108 void *blk; /* l¾µ½ubN*/101 WINFO winfo; /* 標準の待ち情報ブロック */ 102 MPFCB *p_mpfcb; /* 待っている固定長メモリプールの管理ブロック*/ 103 void *blk; /* 獲得したメモリブロック */ 109 104 } WINFO_MPF; 110 105 111 106 /* 112 * gpµÄ¢È¢Åè·v[ÇubNÌXg107 * 使用していない固定長メモリプール管理ブロックのリスト 113 108 */ 114 109 extern QUEUE free_mpfcb; 115 110 116 111 /* 117 * Åè·v[IDÌÅålikernel_cfg.cj112 * 固定長メモリプールIDの最大値(kernel_cfg.c) 118 113 */ 119 114 extern const ID tmax_mpfid; … … 121 116 122 117 /* 123 * Åè·v[ú»ubNÌGAikernel_cfg.cj118 * 固定長メモリプール初期化ブロックのエリア(kernel_cfg.c) 124 119 */ 125 120 extern const MPFINIB mpfinib_table[]; … … 127 122 128 123 /* 129 * Åè·v[ÇubNÌGAikernel_cfg.cj124 * 固定長メモリプール管理ブロックのエリア(kernel_cfg.c) 130 125 */ 131 126 extern MPFCB mpfcb_table[]; 132 127 133 128 /* 134 * Åè·v[ÇubN©çÅè·v[IDðæèo·½135 * ßÌ}N129 * 固定長メモリプール管理ブロックから固定長メモリプールIDを取り出すた 130 * めのマクロ 136 131 */ 137 132 #define MPFID(p_mpfcb) ((ID)(((p_mpfcb) - mpfcb_table) + TMIN_MPFID)) 138 133 139 134 /* 140 * Åè·v[@\Ìú»135 * 固定長メモリプール機能の初期化 141 136 */ 142 137 extern void initialize_mempfix(void); 143 138 144 139 /* 145 * Åè·v[©çubNðl¾140 * 固定長メモリプールからブロックを獲得 146 141 */ 147 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.