Changeset 167 for UsbWattMeter/trunk/asp_dcre/kernel/mailbox.h
- Timestamp:
- Mar 8, 2016, 8:37:45 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
UsbWattMeter/trunk/asp_dcre/kernel/mailbox.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 * [{bNX@\44 * メールボックス機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * [{bNXú»ubN53 * メールボックス初期化ブロック 58 54 * 59 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌú»ubN̤ʪ60 * iWOBJINIBjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC61 * ÅÌtB[hª¤ÊÉÈÁÄ¢éD55 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 56 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 57 * 最初のフィールドが共通になっている. 62 58 */ 63 59 typedef struct mailbox_initialization_block { 64 ATR mbxatr; /* [{bNX®«*/65 PRI maxmpri; /* bZ[WDæxÌÅål*/60 ATR mbxatr; /* メールボックス属性 */ 61 PRI maxmpri; /* メッセージ優先度の最大値 */ 66 62 } MBXINIB; 67 63 68 64 /* 69 * [{bNXÇubN65 * メールボックス管理ブロック 70 66 * 71 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÇubN̤ʪiWOBJCBj72 * ðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅCÅÌ2ÂÌ73 * tB[hª¤ÊÉÈÁÄ¢éD67 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 68 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 69 * フィールドが共通になっている. 74 70 * 75 * bZ[WL 76 [ªbZ[WÌDæxÌêÉÍCpk_lastÍgíÈ 77 * ¢DܽCbZ[WL 78 [ªóÌêipk_headªNULLÌêjÉàC 79 * pk_lastͳøÅ éD 71 * メッセージキューがメッセージの優先度順の場合には,pk_lastは使わな 72 * い.また,メッセージキューが空の場合(pk_headがNULLの場合)にも, 73 * pk_lastは無効である. 80 74 */ 81 75 typedef struct mailbox_control_block { 82 QUEUE wait_queue; /* [{bNXÒ¿L 83 [ */ 84 const MBXINIB *p_mbxinib; /* ú»ubNÖÌ|C^ */ 85 T_MSG *pk_head; /* æªÌbZ[W */ 86 T_MSG *pk_last; /* öÌbZ[W */ 76 QUEUE wait_queue; /* メールボックス待ちキュー */ 77 const MBXINIB *p_mbxinib; /* 初期化ブロックへのポインタ */ 78 T_MSG *pk_head; /* 先頭のメッセージ */ 79 T_MSG *pk_last; /* 末尾のメッセージ */ 87 80 } MBXCB; 88 81 89 82 /* 90 * [{bNXÒ¿îñubNÌè`83 * メールボックス待ち情報ブロックの定義 91 84 * 92 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ93 * iWINFO_WOBJjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC94 * ÅÌ2ÂÌtB[hª¤ÊÉÈÁÄ¢éD85 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 86 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 87 * 最初の2つのフィールドが共通になっている. 95 88 */ 96 89 typedef struct mailbox_waiting_information { 97 WINFO winfo; /* WÌÒ¿îñubN*/98 MBXCB *p_mbxcb; /* ÒÁÄ¢é[{bNXÌÇubN*/99 T_MSG *pk_msg; /* óMµ½bZ[W*/90 WINFO winfo; /* 標準の待ち情報ブロック */ 91 MBXCB *p_mbxcb; /* 待っているメールボックスの管理ブロック */ 92 T_MSG *pk_msg; /* 受信したメッセージ */ 100 93 } WINFO_MBX; 101 94 102 95 /* 103 * gpµÄ¢È¢[{bNXÇubNÌXg96 * 使用していないメールボックス管理ブロックのリスト 104 97 */ 105 98 extern QUEUE free_mbxcb; 106 99 107 100 /* 108 * [{bNXIDÌÅålikernel_cfg.cj101 * メールボックスIDの最大値(kernel_cfg.c) 109 102 */ 110 103 extern const ID tmax_mbxid; … … 112 105 113 106 /* 114 * [{bNXú»ubNÌGAikernel_cfg.cj107 * メールボックス初期化ブロックのエリア(kernel_cfg.c) 115 108 */ 116 109 extern const MBXINIB mbxinib_table[]; … … 118 111 119 112 /* 120 * [{bNXÇubNÌGAikernel_cfg.cj113 * メールボックス管理ブロックのエリア(kernel_cfg.c) 121 114 */ 122 115 extern MBXCB mbxcb_table[]; 123 116 124 117 /* 125 * [{bNXÇubN©ç[{bNXIDðæèo·½ßÌ}N118 * メールボックス管理ブロックからメールボックスIDを取り出すためのマクロ 126 119 */ 127 120 #define MBXID(p_mbxcb) ((ID)(((p_mbxcb) - mbxcb_table) + TMIN_MBXID)) 128 121 129 122 /* 130 * [{bNX@\Ìú»123 * メールボックス機能の初期化 131 124 */ 132 125 extern void initialize_mailbox(void); -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.