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

MIMEにSJISを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • UsbWattMeter/trunk/asp_dcre/kernel/pridataq.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=SHIFT_JIS
    r164 r167  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    12  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    13  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    14  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    15  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    16  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    17  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    18  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    19 ƒƒ“ƒgi—˜—p
    20  *      ŽÒƒ}ƒjƒ
    21 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    22  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    23  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    24  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    25  *      ‚ƁD
    26  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    27 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    28 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    29  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    30  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    31  *        •ñ‚·‚邱‚ƁD
    32  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    33  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    34  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    35  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    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 *      免責すること.
    3733 *
    38  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    39  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    40  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    41  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    42  *  ‚̐ӔC‚𕉂í‚È‚¢D
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    4339 *
    4440 *  @(#) $Id$
     
    4642
    4743/*
    48  *              —Dæ“xƒf[ƒ^ƒLƒ
    49 [‹@”\
     44 *              優先度データキュー機能
    5045 */
    5146
     
    5651
    5752/*
    58  *  —Dæ“xƒf[ƒ^ŠÇ—ƒuƒƒbƒN
     53 *  優先度データ管理ブロック
    5954 */
    6055typedef struct pridata_management_block PDQMB;
    6156
    6257struct pridata_management_block {
    63         PDQMB           *p_next;                /* ŽŸ‚̃f[ƒ^ */
    64         intptr_t        data;                   /* ƒf[ƒ^–{‘Ì */
    65         PRI                     datapri;                /* ƒf[ƒ^—Dæ“x */
     58        PDQMB           *p_next;                /* 次のデータ */
     59        intptr_t        data;                   /* データ本体 */
     60        PRI                     datapri;                /* データ優先度 */
    6661};
    6762
    6863/*
    69  *  —Dæ“xƒf[ƒ^ƒLƒ
    70 [‰Šú‰»ƒuƒƒbƒN
     64 *  優先度データキュー初期化ブロック
    7165 *
    72  *  ‚±‚̍\‘¢‘̂́C“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚̏‰Šú‰»ƒuƒƒbƒN‚Ì‹¤’Ê•”•ª
    73  *  iWOBJINIBj‚ðŠg’£iƒIƒuƒWƒFƒNƒgŽwŒüŒ¾Œê‚ÌŒp³‚É‘Š“–j‚µ‚½‚à‚̂ŁC
    74  *  Å‰‚̃tƒB[ƒ‹ƒh‚ª‹¤’Ê‚É‚È‚Á‚Ä‚¢‚éD
     66 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     67 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     68 *  最初のフィールドが共通になっている.
    7569 */
    7670typedef struct pridataq_initialization_block {
    77         ATR                     pdqatr;                 /* —Dæ“xƒf[ƒ^ƒLƒ
    78 [‘®« */
    79         uint_t          pdqcnt;                 /* —Dæ“xƒf[ƒ^ƒLƒ
    80 [‚Ì—e—Ê */
    81         PRI                     maxdpri;                /* ƒf[ƒ^—Dæ“x‚̍őå’l */
    82         PDQMB           *p_pdqmb;               /* —Dæ“xƒf[ƒ^ƒLƒ
    83 [ŠÇ——̈æ‚̐擪”Ô’n */
     71        ATR                     pdqatr;                 /* 優先度データキュー属性 */
     72        uint_t          pdqcnt;                 /* 優先度データキューの容量 */
     73        PRI                     maxdpri;                /* データ優先度の最大値 */
     74        PDQMB           *p_pdqmb;               /* 優先度データキュー管理領域の先頭番地 */
    8475} PDQINIB;
    8576
    8677/*
    87  *  —Dæ“xƒf[ƒ^ƒLƒ
    88 [ŠÇ—ƒuƒƒbƒN
     78 *  優先度データキュー管理ブロック
    8979 *
    90  *  ‚±‚̍\‘¢‘̂́C“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ÌŠÇ—ƒuƒƒbƒN‚Ì‹¤’Ê•”•ªiWOBJCBj
    91  *  ‚ðŠg’£iƒIƒuƒWƒFƒNƒgŽwŒüŒ¾Œê‚ÌŒp³‚É‘Š“–j‚µ‚½‚à‚̂ŁCÅ‰‚Ì2‚‚Ì
    92  *  ƒtƒB[ƒ‹ƒh‚ª‹¤’Ê‚É‚È‚Á‚Ä‚¢‚éD
     80 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     81 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     82 *  フィールドが共通になっている.
    9383 */
    9484typedef struct pridataq_control_block {
    95         QUEUE           swait_queue;    /* —Dæ“xƒf[ƒ^ƒLƒ
    96 [‘—M‘Ò‚¿ƒLƒ
    97 [ */
    98         const PDQINIB *p_pdqinib;       /* ‰Šú‰»ƒuƒƒbƒN‚ւ̃|ƒCƒ“ƒ^ */
    99         QUEUE           rwait_queue;    /* —Dæ“xƒf[ƒ^ƒLƒ
    100 [ŽóM‘Ò‚¿ƒLƒ
    101 [ */
    102         uint_t          count;                  /* —Dæ“xƒf[ƒ^ƒLƒ
    103 [’†‚̃f[ƒ^‚̐” */
    104         PDQMB           *p_head;                /* Å‰‚̃f[ƒ^ */
    105         uint_t          unused;                 /* –¢Žg—pƒf[ƒ^ŠÇ—ƒuƒƒbƒN‚̐擪 */
    106         PDQMB           *p_freelist;    /* –¢Š„“–‚ăf[ƒ^ŠÇ—ƒuƒƒbƒN‚̃ŠƒXƒg */
     85        QUEUE           swait_queue;    /* 優先度データキュー送信待ちキュー */
     86        const PDQINIB *p_pdqinib;       /* 初期化ブロックへのポインタ */
     87        QUEUE           rwait_queue;    /* 優先度データキュー受信待ちキュー */
     88        uint_t          count;                  /* 優先度データキュー中のデータの数 */
     89        PDQMB           *p_head;                /* 最初のデータ */
     90        uint_t          unused;                 /* 未使用データ管理ブロックの先頭 */
     91        PDQMB           *p_freelist;    /* 未割当てデータ管理ブロックのリスト */
    10792} PDQCB;
    10893
    10994/*
    110  *  —Dæ“xƒf[ƒ^ƒLƒ
    111 [‘Ò‚¿î•ñƒuƒƒbƒN‚Ì’è‹`
     95 *  優先度データキュー待ち情報ブロックの定義
    11296 *
    113  *  ‚±‚̍\‘¢‘̂́C“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚Ì‘Ò‚¿î•ñƒuƒƒbƒN‚Ì‹¤’Ê•”•ª
    114  *  iWINFO_WOBJj‚ðŠg’£iƒIƒuƒWƒFƒNƒgŽwŒüŒ¾Œê‚ÌŒp³‚É‘Š“–j‚µ‚½‚à‚̂ŁC
    115  *  Å‰‚Ì2‚‚̃tƒB[ƒ‹ƒh‚ª‹¤’Ê‚É‚È‚Á‚Ä‚¢‚éD
    116  *  —Dæ“xƒf[ƒ^ƒLƒ
    117 [‚Ö‚Ì‘—M‘Ò‚¿‚Æ—Dæ“xƒf[ƒ^ƒLƒ
    118 [‚©‚ç‚ÌŽóM‘Ò‚¿‚ŁC
    119  *  “¯‚¶‘Ò‚¿î•ñƒuƒƒbƒN‚ðŽg‚¤D
     97 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     98 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     99 *  最初の2つのフィールドが共通になっている.
     100 *  優先度データキューへの送信待ちと優先度データキューからの受信待ちで,
     101 *  同じ待ち情報ブロックを使う.
    120102 */
    121103typedef struct pridataq_waiting_information {
    122         WINFO           winfo;                  /* •W€‚Ì‘Ò‚¿î•ñƒuƒƒbƒN */
    123         PDQCB           *p_pdqcb;               /* ‘Ò‚Á‚Ä‚¢‚é—Dæ“xƒf[ƒ^ƒLƒ
    124 [‚ÌŠÇ—ƒuƒƒbƒN*/
    125         intptr_t        data;                   /* ‘—ŽóMƒf[ƒ^ */
    126         PRI                     datapri;                /* ƒf[ƒ^—Dæ“x */
     104        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     105        PDQCB           *p_pdqcb;               /* 待っている優先度データキューの管理ブロック*/
     106        intptr_t        data;                   /* 送受信データ */
     107        PRI                     datapri;                /* データ優先度 */
    127108} WINFO_PDQ;
    128109
    129110/*
    130  *  Žg—p‚µ‚Ä‚¢‚È‚¢—Dæ“xƒf[ƒ^ƒLƒ
    131 [ŠÇ—ƒuƒƒbƒN‚̃ŠƒXƒg
     111 *  使用していない優先度データキュー管理ブロックのリスト
    132112 */
    133113extern QUEUE    free_pdqcb;
    134114
    135115/*
    136  *  —Dæ“xƒf[ƒ^ƒLƒ
    137 [ID‚̍őå’likernel_cfg.cj
     116 *  優先度データキューIDの最大値(kernel_cfg.c)
    138117 */
    139118extern const ID tmax_pdqid;
     
    141120
    142121/*
    143  *  —Dæ“xƒf[ƒ^ƒLƒ
    144 [‰Šú‰»ƒuƒƒbƒN‚̃GƒŠƒAikernel_cfg.cj
     122 *  優先度データキュー初期化ブロックのエリア(kernel_cfg.c)
    145123 */
    146124extern const PDQINIB    pdqinib_table[];
     
    148126
    149127/*
    150  *  —Dæ“xƒf[ƒ^ƒLƒ
    151 [ŠÇ—ƒuƒƒbƒN‚̃GƒŠƒAikernel_cfg.cj
     128 *  優先度データキュー管理ブロックのエリア(kernel_cfg.c)
    152129 */
    153130extern PDQCB    pdqcb_table[];
    154131
    155132/*
    156  *  —Dæ“xƒf[ƒ^ƒLƒ
    157 [ŠÇ—ƒuƒƒbƒN‚©‚ç—Dæ“xƒf[ƒ^ƒLƒ
    158 [ID‚ðŽæ‚èo‚·‚½
    159  *  ‚߂̃}ƒNƒ
     133 *  優先度データキュー管理ブロックから優先度データキューIDを取り出すた
     134 *  めのマクロ
    160135 */
    161136#define PDQID(p_pdqcb)  ((ID)(((p_pdqcb) - pdqcb_table) + TMIN_PDQID))
    162137
    163138/*
    164  *  —Dæ“xƒf[ƒ^ƒLƒ
    165 [‹@”\‚̏‰Šú‰»
     139 *  優先度データキュー機能の初期化
    166140 */
    167141extern void     initialize_pridataq(void);
    168142
    169143/*
    170  *  —Dæ“xƒf[ƒ^ƒLƒ
    171 [ŠÇ——̈æ‚ւ̃f[ƒ^‚ÌŠi”[
     144 *  優先度データキュー管理領域へのデータの格納
    172145 */
    173146extern void     enqueue_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri);
    174147
    175148/*
    176  *  —Dæ“xƒf[ƒ^ƒLƒ
    177 [ŠÇ——̈悩‚ç‚̃f[ƒ^‚ÌŽæo‚µ
     149 *  優先度データキュー管理領域からのデータの取出し
    178150 */
    179151extern void     dequeue_pridata(PDQCB *p_pdqcb, intptr_t *p_data, PRI *p_datapri);
    180152
    181153/*
    182  *  —Dæ“xƒf[ƒ^ƒLƒ
    183 [‚ւ̃f[ƒ^‘—M
     154 *  優先度データキューへのデータ送信
    184155 */
    185156extern bool_t   send_pridata(PDQCB *p_pdqcb, intptr_t data,
     
    187158
    188159/*
    189  *  —Dæ“xƒf[ƒ^ƒLƒ
    190 [‚©‚ç‚̃f[ƒ^ŽóM
     160 *  優先度データキューからのデータ受信
    191161 */
    192162extern bool_t   receive_pridata(PDQCB *p_pdqcb, intptr_t *p_data,
Note: See TracChangeset for help on using the changeset viewer.