Changeset 389 for azure_iot_hub/trunk/asp3_dcre/kernel/cyclic.h
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/kernel/cyclic.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 … … 68 53 69 54 /* 70 * å¨æéç¥åæåãããã¯55 * 周期通知初期化ブロック 71 56 */ 72 57 typedef struct cyclic_handler_initialization_block { 73 ATR cycatr; /* å¨æéç¥å±æ§ */ 74 intptr_t exinf; /* éç¥ãã³ãã©ã®æ¡å¼µæ 75 å ± */ 76 NFYHDR nfyhdr; /* éç¥ãã³ãã©ã®èµ·åçªå° */ 77 RELTIM cyctim; /* å¨æéç¥ã®èµ·åå¨æ */ 78 RELTIM cycphs; /* å¨æéç¥ã®èµ·åä½ç¸ */ 58 ATR cycatr; /* 周期通知属性 */ 59 intptr_t exinf; /* 通知ハンドラの拡張情報 */ 60 NFYHDR nfyhdr; /* 通知ハンドラの起動番地 */ 61 RELTIM cyctim; /* 周期通知の起動周期 */ 62 RELTIM cycphs; /* 周期通知の起動位相 */ 79 63 } CYCINIB; 80 64 81 65 /* 82 * å¨æéç¥ç®¡çãããã¯66 * 周期通知管理ブロック 83 67 * 84 * 次ã«å¨æéç¥ãèµ·åããæå»ã¯ï¼ã¿ã¤ã ã¤ãã³ããããã¯ï¼tmevtbï¼ä¸ã®85 * ã¿ã¤ã ã¤ãã³ãã®çºçæå»ï¼evttimï¼ã§ä¿æããï¼68 * 次に周期通知を起動する時刻は,タイムイベントブロック(tmevtb)中の 69 * タイムイベントの発生時刻(evttim)で保持する. 86 70 */ 87 71 typedef struct cyclic_handler_control_block { 88 const CYCINIB *p_cycinib; /* åæåãããã¯ã¸ã®ãã¤ã³ã¿ */ 89 bool_t cycsta; /* å¨æéç¥ã®åä½ç¶æ 90 */ 91 TMEVTB tmevtb; /* ã¿ã¤ã ã¤ãã³ãããã㯠*/ 72 const CYCINIB *p_cycinib; /* 初期化ブロックへのポインタ */ 73 bool_t cycsta; /* 周期通知の動作状態 */ 74 TMEVTB tmevtb; /* タイムイベントブロック */ 92 75 } CYCCB; 93 76 94 77 /* 95 * 使ç¨ãã¦ããªãå¨æéç¥ç®¡çãããã¯ã®ãªã¹ã78 * 使用していない周期通知管理ブロックのリスト 96 79 */ 97 80 extern QUEUE free_cyccb; 98 81 99 82 /* 100 * å¨æéç¥IDã®æ大å¤ï¼kernel_cfg.cï¼83 * 周期通知IDの最大値(kernel_cfg.c) 101 84 */ 102 85 extern const ID tmax_cycid; … … 104 87 105 88 /* 106 * å¨æéç¥åæåãããã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼89 * 周期通知初期化ブロックのエリア(kernel_cfg.c) 107 90 */ 108 91 extern const CYCINIB cycinib_table[]; … … 110 93 111 94 /* 112 * å¨æéç¥ã®éç¥æ¹æ³ã®æ ¼ç´ã¨ãªã¢ï¼kernel_cfg.cï¼95 * 周期通知の通知方法の格納エリア(kernel_cfg.c) 113 96 */ 114 97 extern T_NFYINFO acyc_nfyinfo_table[]; 115 98 116 99 /* 117 * å¨æéç¥ç®¡çãããã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼100 * 周期通知管理ブロックのエリア(kernel_cfg.c) 118 101 */ 119 102 extern CYCCB cyccb_table[]; 120 103 121 104 /* 122 * å¨æéç¥ç®¡çãããã¯ããå¨æéç¥IDãåãåºãããã®ãã¯ã105 * 周期通知管理ブロックから周期通知IDを取り出すためのマクロ 123 106 */ 124 107 #define CYCID(p_cyccb) ((ID)(((p_cyccb) - cyccb_table) + TMIN_CYCID)) 125 108 126 109 /* 127 * å¨æéç¥æ©è½ã®åæå110 * 周期通知機能の初期化 128 111 */ 129 112 extern void initialize_cyclic(void); 130 113 131 114 /* 132 * å¨æéç¥èµ·åã«ã¼ãã³115 * 周期通知起動ルーチン 133 116 */ 134 117 extern void call_cyclic(CYCCB *p_cyccb);
Note:
See TracChangeset
for help on using the changeset viewer.