Ignore:
Timestamp:
Mar 8, 2016, 8:37:45 PM (7 years ago)
Author:
coas-nagasima
Message:

MIMEにSJISを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • UsbWattMeter/trunk/asp_dcre/include/queue.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=SHIFT_JIS
    r164 r167  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    11  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    12  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    13  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    14  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    15  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    16  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    17  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    18 ƒƒ“ƒgi—˜—p
    19  *      ŽÒƒ}ƒjƒ
    20 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    21  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    22  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    23  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    24  *      ‚ƁD
    25  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    26 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    27 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    28  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    29  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    30  *        •ñ‚·‚邱‚ƁD
    31  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    32  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    33  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    34  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    35  *      –Ɛӂ·‚邱‚ƁD
    36  *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    39  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    40  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    41  *  ‚̐ӔC‚𕉂í‚È‚¢D
     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 *      免責すること.
     32 *
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    4238 *
    4339 *  @(#) $Id$
     
    4541
    4642/*
    47  *              ƒLƒ
    48 [‘€ìƒ‰ƒCƒuƒ‰ƒŠ
    49  *
    50  *  ‚±‚̃Lƒ
    51 [‘€ìƒ‰ƒCƒuƒ‰ƒŠ‚ł́CƒLƒ
    52 [ƒwƒbƒ_‚ðŠÜ‚ÞƒŠƒ“ƒO\‘¢‚̃_ƒuƒ‹
    53  *  ƒŠƒ“ƒNƒLƒ
    54 [‚ðˆµ‚¤D‹ï‘Ì“I‚ɂ́CƒLƒ
    55 [ƒwƒbƒ_‚ÌŽŸƒGƒ“ƒgƒŠ‚̓Lƒ
    56 [‚Ì
    57  *  æ“ª‚̃Gƒ“ƒgƒŠC‘OƒGƒ“ƒgƒŠ‚̓Lƒ
    58 [‚Ì––”ö‚̃Gƒ“ƒgƒŠ‚Æ‚·‚éD‚Ü‚½CƒL
    59  *  ƒ
    60 [‚̐擪‚̃Gƒ“ƒgƒŠ‚Ì‘OƒGƒ“ƒgƒŠ‚ƁCƒLƒ
    61 [‚Ì––”ö‚̃Gƒ“ƒgƒŠ‚ÌŽŸƒGƒ“
    62  *  ƒgƒŠ‚́CƒLƒ
    63 [ƒwƒbƒ_‚Æ‚·‚éD‹ó‚̃Lƒ
    64 [‚́CŽŸƒGƒ“ƒgƒŠC‘OƒGƒ“ƒgƒŠ‚Æ
    65  *  ‚àŽ©•ªŽ©g‚ðŽw‚·ƒLƒ
    66 [ƒwƒbƒ_‚Å‚ ‚ç‚í‚·D
     43 *              キュー操作ライブラリ
     44 *
     45 *  このキュー操作ライブラリでは,キューヘッダを含むリング構造のダブル
     46 *  リンクキューを扱う.具体的には,キューヘッダの次エントリはキューの
     47 *  先頭のエントリ,前エントリはキューの末尾のエントリとする.また,キ
     48 *  ューの先頭のエントリの前エントリと,キューの末尾のエントリの次エン
     49 *  トリは,キューヘッダとする.空のキューは,次エントリ,前エントリと
     50 *  も自分自身を指すキューヘッダであらわす.
    6751 */
    6852
     
    7559
    7660/*
    77  *  ƒLƒ
    78 [‚̃f[ƒ^\‘¢‚Ì’è‹`
     61 *  キューのデータ構造の定義
    7962 */
    8063typedef struct queue {
    81         struct queue *p_next;           /* ŽŸƒGƒ“ƒgƒŠ‚ւ̃|ƒCƒ“ƒ^ */
    82         struct queue *p_prev;           /* ‘OƒGƒ“ƒgƒŠ‚ւ̃|ƒCƒ“ƒ^ */
     64        struct queue *p_next;           /* 次エントリへのポインタ */
     65        struct queue *p_prev;           /* 前エントリへのポインタ */
    8366} QUEUE;
    8467
    8568/*
    86  *  ƒLƒ
    87 [‚̏‰Šú‰»
    88  *
    89  *  p_queue‚ɂ̓Lƒ
    90 [ƒwƒbƒ_‚ðŽw’è‚·‚éD
     69 *  キューの初期化
     70 *
     71 *  p_queueにはキューヘッダを指定する.
    9172 */
    9273Inline void
     
    9879
    9980/*
    100  *  ƒLƒ
    101 [‚Ì‘OƒGƒ“ƒgƒŠ‚Ö‚Ì‘}“ü
    102  *
    103  *  p_queue‚Ì‘O‚Ép_entry‚ð‘}“ü‚·‚éDp_queue‚ɃLƒ
    104 [ƒwƒbƒ_‚ðŽw’肵‚½ê
    105  *  ‡‚ɂ́CƒLƒ
    106 [‚Ì––”ö‚Ép_entry‚ð‘}“ü‚·‚邱‚Æ‚É‚È‚éD
     81 *  キューの前エントリへの挿入
     82 *
     83 *  p_queueの前にp_entryを挿入する.p_queueにキューヘッダを指定した場
     84 *  合には,キューの末尾にp_entryを挿入することになる.
    10785 */
    10886Inline void
     
    11694
    11795/*
    118  *  ƒLƒ
    119 [‚ÌŽŸƒGƒ“ƒgƒŠ‚Ö‚Ì‘}“ü
    120  *
    121  *  p_queue‚ÌŽŸ‚Ép_entry‚ð‘}“ü‚·‚éDp_queue‚ɃLƒ
    122 [ƒwƒbƒ_‚ðŽw’肵‚½ê
    123  *  ‡‚ɂ́CƒLƒ
    124 [‚̐擪‚Ép_entry‚ð‘}“ü‚·‚邱‚Æ‚É‚È‚éD
     96 *  キューの次エントリへの挿入
     97 *
     98 *  p_queueの次にp_entryを挿入する.p_queueにキューヘッダを指定した場
     99 *  合には,キューの先頭にp_entryを挿入することになる.
    125100 */
    126101Inline void
     
    134109
    135110/*
    136  *  ƒGƒ“ƒgƒŠ‚̍폜
    137  *
    138  *  p_entry‚ðƒLƒ
    139 [‚©‚çíœ‚·‚éD
     111 *  エントリの削除
     112 *
     113 *  p_entryをキューから削除する.
    140114 */
    141115Inline void
     
    147121
    148122/*
    149  *  ƒLƒ
    150 [‚Ì—ñ‹“
    151  *
    152  *  ˆø”p_top‚ðƒLƒ
    153 [‚Æ‚·‚éƒGƒ“ƒgƒŠ‚ðæ“ª‚©‚ç—ñ‹“‚·‚éB
    154  *  Å‰‚̌ďo‚µ‚ł́Ap_entry‚ÉNULL‚ð“n‚·B•Ô’l‚Íp_top‚ÌŽŸ‚̃Gƒ“ƒgƒŠ(‚‚܂èæ“ª)‚Å‚ ‚éB
    155  *  ŽŸ‰ñˆÈ~‚Í‘O‰ñ‚É“¾‚½ƒGƒ“ƒgƒŠ‚ðp_entry‚É“n‚·B•Ô’l‚Íp_entry‚ÌŽŸ‚̃Gƒ“ƒgƒŠ‚Æ‚È‚éB
    156  *  p_entry‚ÌŽŸ‚̃Gƒ“ƒgƒŠ‚ªp_top‚¾‚Á‚½‚Æ‚«ANULL‚ð•Ô’l‚Æ‚µ‚āAƒLƒ
    157 [‚̏I’[‚ð‚ ‚ç‚í‚·B
    158  *  p_top‚ÌNULLƒ`ƒFƒbƒN‚âp_entry‚̑Ó–«ŒŸØ‚͍s‚Á‚Ä‚¢‚È‚¢BŒÄo‚µ‘¤‚̐ӔC‚ōs‚¤‚±‚ƁB
    159  *  ‚Ü‚½AŒ¾‚¤‚Ü‚Å‚à‚È‚¢‚ªAƒXƒŒƒbƒhƒZ[ƒt‚ɂ͂Ȃ肦‚È‚¢B—ñ‹“ƒ‹[ƒv’†‚Í”r‘¼‚Í
    160  *  ŒÄo‚µ‘¤‚̐ӔC‚ōs‚¤‚±‚ƁB
     123 *  キューの列挙
     124 *
     125 *  引数p_topをキューとするエントリを先頭から列挙する。
     126 *  最初の呼出しでは、p_entryにNULLを渡す。返値はp_topの次のエントリ(つまり先頭)である。
     127 *  次回以降は前回に得たエントリをp_entryに渡す。返値はp_entryの次のエントリとなる。
     128 *  p_entryの次のエントリがp_topだったとき、NULLを返値として、キューの終端をあらわす。
     129 *  p_topのNULLチェックやp_entryの妥当性検証は行っていない。呼出し側の責任で行うこと。
     130 *  また、言うまでもないが、スレッドセーフにはなりえない。列挙ループ中は排他は
     131 *  呼出し側の責任で行うこと。
    161132 */
    162133Inline QUEUE *
     
    176147
    177148/*
    178  *  ƒLƒ
    179 [‚ÌŽŸƒGƒ“ƒgƒŠ‚ÌŽæo‚µ
    180  *
    181  *  p_queue‚ÌŽŸƒGƒ“ƒgƒŠ‚ðƒLƒ
    182 [‚©‚çíœ‚µCíœ‚µ‚½ƒGƒ“ƒgƒŠ‚ð•Ô‚·D
    183  *  p_queue‚ɃLƒ
    184 [ƒwƒbƒ_‚ðŽw’肵‚½ê‡‚ɂ́CƒLƒ
    185 [‚̐擪‚̃Gƒ“ƒgƒŠ‚ð
    186  *  Žæ‚èo‚·‚±‚Æ‚É‚È‚éDp_queue‚É‹ó‚̃Lƒ
    187 [‚ðŽw’肵‚ČĂяo‚µ‚Ä‚Í‚È‚ç
    188  *  ‚È‚¢D
     149 *  キューの次エントリの取出し
     150 *
     151 *  p_queueの次エントリをキューから削除し,削除したエントリを返す.
     152 *  p_queueにキューヘッダを指定した場合には,キューの先頭のエントリを
     153 *  取り出すことになる.p_queueに空のキューを指定して呼び出してはなら
     154 *  ない.
    189155 */
    190156Inline QUEUE *
     
    201167
    202168/*
    203  *  ƒLƒ
    204 [‚ÌŽŸƒGƒ“ƒgƒŠ‚̃|ƒCƒ“ƒ^‚ðŽæ“¾
    205  *
    206  *  p_queue ‚ÌŽŸƒGƒ“ƒgƒŠ‚ð•Ô‚·Dp_queue ‚ɃLƒ
    207 [ƒwƒbƒ_‚ðŽw’肵‚½ê‡‚ɂ́C
    208  *  ƒLƒ
    209 [‚̐擪‚̃Gƒ“ƒgƒŠ‚ðŽæ‚èo‚·‚±‚Æ‚É‚È‚éDp_queue ‚É‹ó‚̃Lƒ
    210 [‚ð
    211  *  Žw’肵‚ČĂяo‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     169 *  キューの次エントリのポインタを取得
     170 *
     171 *  p_queue の次エントリを返す.p_queue にキューヘッダを指定した場合には,
     172 *  キューの先頭のエントリを取り出すことになる.p_queue に空のキューを
     173 *  指定して呼び出してはならない.
    212174 */
    213175Inline QUEUE *
     
    220182
    221183/*
    222  *  ƒLƒ
    223 [‚ª‹ó‚©‚Ç‚¤‚©‚̃`ƒFƒbƒN
    224  *
    225  *  p_queue‚ɂ̓Lƒ
    226 [ƒwƒbƒ_‚ðŽw’è‚·‚éD
     184 *  キューが空かどうかのチェック
     185 *
     186 *  p_queueにはキューヘッダを指定する.
    227187 */
    228188Inline bool_t
Note: See TracChangeset for help on using the changeset viewer.