Changeset 389 for azure_iot_hub/trunk/asp3_dcre/include/queue.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/include/queue.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ä¸è¨èä½æ¨©è 11 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 12 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 13 * å¤ã»åé 14 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 28 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 41 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 42 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 43 ããã³TOPPERSããã¸ã§ã¯ãã 44 * å 45 責ãããã¨ï¼ 10 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 46 32 * 47 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 50 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 51 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 52 * ã®è²¬ä»»ãè² ããªãï¼ 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 53 38 * 54 39 * $Id$ … … 56 41 57 42 /* 58 * ãã¥ã¼æä½ã©ã¤ãã©ãª43 * キュー操作ライブラリ 59 44 * 60 * ãã®ãã¥ã¼æä½ã©ã¤ãã©ãªã§ã¯ï¼ãã¥ã¼ããããå«ããªã³ã°æ§é ã®ããã« 61 * ãªã³ã¯ãã¥ã¼ãæ±ãï¼å 62 ·ä½çã«ã¯ï¼ãã¥ã¼ãããã®æ¬¡ã¨ã³ããªã¯ãã¥ã¼ã® 63 * å 64 é ã®ã¨ã³ããªï¼åã¨ã³ããªã¯ãã¥ã¼ã®æ«å°¾ã®ã¨ã³ããªã¨ããï¼ã¾ãï¼ã 65 * ã¥ã¼ã®å 66 é ã®ã¨ã³ããªã®åã¨ã³ããªã¨ï¼ãã¥ã¼ã®æ«å°¾ã®ã¨ã³ããªã®æ¬¡ã¨ã³ 67 * ããªã¯ï¼ãã¥ã¼ãããã¨ããï¼ç©ºã®ãã¥ã¼ã¯ï¼æ¬¡ã¨ã³ããªï¼åã¨ã³ããªã¨ 68 * ãèªåèªèº«ãæããã¥ã¼ãããã§ããããï¼ 45 * このキュー操作ライブラリでは,キューヘッダを含むリング構造のダブル 46 * リンクキューを扱う.具体的には,キューヘッダの次エントリはキューの 47 * 先頭のエントリ,前エントリはキューの末尾のエントリとする.また,キ 48 * ューの先頭のエントリの前エントリと,キューの末尾のエントリの次エン 49 * トリは,キューヘッダとする.空のキューは,次エントリ,前エントリと 50 * も自分自身を指すキューヘッダであらわす. 69 51 */ 70 52 … … 80 62 81 63 /* 82 * ãã¥ã¼ã®ãã¼ã¿æ§é ã®å®ç¾©64 * キューのデータ構造の定義 83 65 */ 84 66 typedef struct queue { 85 struct queue *p_next; /* 次ã¨ã³ããªã¸ã®ãã¤ã³ã¿*/86 struct queue *p_prev; /* åã¨ã³ããªã¸ã®ãã¤ã³ã¿*/67 struct queue *p_next; /* 次エントリへのポインタ */ 68 struct queue *p_prev; /* 前エントリへのポインタ */ 87 69 } QUEUE; 88 70 89 71 /* 90 * ãã¥ã¼ã®åæå72 * キューの初期化 91 73 * 92 * p_queue ã«ã¯ãã¥ã¼ããããæå®ããï¼74 * p_queueにはキューヘッダを指定する. 93 75 */ 94 76 Inline void … … 100 82 101 83 /* 102 * ãã¥ã¼ã®åã¨ã³ããªã¸ã®æ¿å 103 ¥ 84 * キューの前エントリへの挿入 104 85 * 105 * p_queueã®åã«p_entryãæ¿å 106 ¥ããï¼p_queueã«ãã¥ã¼ããããæå®ããå ´ 107 * åã«ã¯ï¼ãã¥ã¼ã®æ«å°¾ã«p_entryãæ¿å 108 ¥ãããã¨ã«ãªãï¼ 86 * p_queueの前にp_entryを挿入する.p_queueにキューヘッダを指定した場 87 * 合には,キューの末尾にp_entryを挿入することになる. 109 88 */ 110 89 Inline void … … 118 97 119 98 /* 120 * ãã¥ã¼ã®æ¬¡ã¨ã³ããªã¸ã®æ¿å 121 ¥ 99 * キューの次エントリへの挿入 122 100 * 123 * p_queueã®æ¬¡ã«p_entryãæ¿å 124 ¥ããï¼p_queueã«ãã¥ã¼ããããæå®ããå ´ 125 * åã«ã¯ï¼ãã¥ã¼ã®å 126 é ã«p_entryãæ¿å 127 ¥ãããã¨ã«ãªãï¼ 101 * p_queueの次にp_entryを挿入する.p_queueにキューヘッダを指定した場 102 * 合には,キューの先頭にp_entryを挿入することになる. 128 103 */ 129 104 Inline void … … 137 112 138 113 /* 139 * ã¨ã³ããªã®åé¤114 * エントリの削除 140 115 * 141 * p_entry ããã¥ã¼ããåé¤ããï¼116 * p_entryをキューから削除する. 142 117 */ 143 118 Inline void … … 149 124 150 125 /* 151 * ãã¥ã¼ã®æ¬¡ã¨ã³ããªã®ååºã126 * キューの次エントリの取出し 152 127 * 153 * p_queueã®æ¬¡ã¨ã³ããªããã¥ã¼ããåé¤ãï¼åé¤ããã¨ã³ããªãè¿ãï¼ 154 * p_queueã«ãã¥ã¼ããããæå®ããå ´åã«ã¯ï¼ãã¥ã¼ã®å 155 é ã®ã¨ã³ããªã 156 * åãåºããã¨ã«ãªãï¼p_queueã«ç©ºã®ãã¥ã¼ãæå®ãã¦å¼ã³åºãã¦ã¯ãªã 157 * ãªãï¼ 128 * p_queueの次エントリをキューから削除し,削除したエントリを返す. 129 * p_queueにキューヘッダを指定した場合には,キューの先頭のエントリを 130 * 取り出すことになる.p_queueに空のキューを指定して呼び出してはなら 131 * ない. 158 132 */ 159 133 Inline QUEUE * … … 170 144 171 145 /* 172 * ãã¥ã¼ã空ãã©ããã®ãã§ãã¯146 * キューが空かどうかのチェック 173 147 * 174 * p_queue ã«ã¯ãã¥ã¼ããããæå®ããï¼148 * p_queueにはキューヘッダを指定する. 175 149 */ 176 150 Inline bool_t
Note:
See TracChangeset
for help on using the changeset viewer.