Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/include/t_stddef.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r388 r389  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    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 è²¬ã™ã‚‹ã“と.
    46  *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     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 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              TOPPERSå
    59 ±é€šãƒ˜ãƒƒãƒ€ãƒ•ã‚¡ã‚¤ãƒ«
    60  *
    61  *  TOPPERS関連のすべてのソースファイルでインクルードすべきヘッダファイ
    62  *  ル.各種のカーネルやソフトウェア部品でå
    63 ±é€šã«ç”¨ã„ることを想定してい
    64  *  る.TOPPERSの各種のカーネルやソフトウェア部品でå
    65 ±é€šã«ç”¨ã„るデータ型,
    66  *  定数,マクロの定義などを含む.
    67  *
    68  *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
    69  *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
    70  *  除くようになっている.
     43 *              TOPPERS共通ヘッダファイル
     44 *
     45 *  TOPPERS関連のすべてのソースファイルでインクルードすべきヘッダファイ
     46 *  ル.各種のカーネルやソフトウェア部品で共通に用いることを想定してい
     47 *  る.TOPPERSの各種のカーネルやソフトウェア部品で共通に用いるデータ型,
     48 *  定数,マクロの定義などを含む.
     49 *
     50 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     51 *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
     52 *  除くようになっている.
    7153 */
    7254
     
    7961
    8062/*
    81  *  ターゲット依存部
     63 *  ターゲット依存部
    8264 */
    8365#include "target_stddef.h"
    8466
    8567/*
    86  *  C言語/EC++でthrow()に対処するための定義
     68 *  C言語/EC++でthrow()に対処するための定義
    8769 */
    8870#if !defined(__cplusplus) || defined(__embedded_cplusplus)
     
    9375
    9476/*
    95  *  ターゲット依存のデータ型のマクロのデフォルト定義
     77 *  ターゲット依存のデータ型のマクロのデフォルト定義
    9678 */
    9779#ifndef TOPPERS_bool
    98 #define TOPPERS_bool    int                             /* ブール型 */
     80#define TOPPERS_bool    int                             /* ブール型 */
    9981#endif /* TOPPERS_bool */
    10082
     
    10284struct TOPPERS_dummy_t { int TOPPERS_dummy_field; };
    10385typedef void                    (*TOPPERS_fp_t)(struct TOPPERS_dummy_t);
    104 #define TOPPERS_fp              TOPPERS_fp_t    /* プログラムの起動番地 */
     86#define TOPPERS_fp              TOPPERS_fp_t    /* プログラムの起動番地 */
    10587#endif /* TOPPERS_fp */
    10688
    10789/*
    108  *  å
    109 ±é€šãƒ‡ãƒ¼ã‚¿åž‹
    110  */
    111 typedef TOPPERS_bool    bool_t;         /* 真偽値 */
    112 
    113 typedef signed int              int_t;          /* 自然なサイズの符号付き整数 */
    114 typedef unsigned int    uint_t;         /* 自然なサイズの符号無し整数 */
    115 
    116 typedef signed long             long_t;         /* 長めのサイズの符号付き整数 */
    117 typedef unsigned long   ulong_t;        /* 長めのサイズの符号無し整数 */
    118 
    119 typedef int_t                   FN;                     /* 機能コード */
    120 typedef int_t                   ER;                     /* エラーコード */
    121 typedef int_t                   ID;                     /* オブジェクトのID番号 */
    122 typedef uint_t                  ATR;            /* オブジェクトの属性 */
    123 typedef uint_t                  STAT;           /* オブジェクトの状æ
    124 ‹ */
    125 typedef uint_t                  MODE;           /* サービスコールの動作モード */
    126 typedef int_t                   PRI;            /* 優å
    127 ˆåº¦ */
    128 typedef uint32_t                TMO;            /* タイムアウト指定 */
    129 typedef uint32_t                RELTIM;         /* 相対時間[NGKI0550ï¼½*/
     90 *  共通データ型
     91 */
     92typedef TOPPERS_bool    bool_t;         /* 真偽値 */
     93
     94typedef signed int              int_t;          /* 自然なサイズの符号付き整数 */
     95typedef unsigned int    uint_t;         /* 自然なサイズの符号無し整数 */
     96
     97typedef signed long             long_t;         /* 長めのサイズの符号付き整数 */
     98typedef unsigned long   ulong_t;        /* 長めのサイズの符号無し整数 */
     99
     100typedef int_t                   FN;                     /* 機能コード */
     101typedef int_t                   ER;                     /* エラーコード */
     102typedef int_t                   ID;                     /* オブジェクトのID番号 */
     103typedef uint_t                  ATR;            /* オブジェクトの属性 */
     104typedef uint_t                  STAT;           /* オブジェクトの状態 */
     105typedef uint_t                  MODE;           /* サービスコールの動作モード */
     106typedef int_t                   PRI;            /* 優先度 */
     107typedef uint32_t                TMO;            /* タイムアウト指定 */
     108typedef uint32_t                RELTIM;         /* 相対時間[NGKI0550]*/
    130109#ifdef UINT64_MAX
    131 typedef uint64_t                SYSTIM;         /* システム時刻[NGKI0548ï¼½*/
     110typedef uint64_t                SYSTIM;         /* システム時刻[NGKI0548]*/
    132111#else /* UINT64_MAX */
    133 typedef uint32_t                SYSTIM;         /* システム時刻[NGKI0548ï¼½*/
     112typedef uint32_t                SYSTIM;         /* システム時刻[NGKI0548]*/
    134113#endif /* UINT64_MAX */
    135 typedef uint32_t                PRCTIM;         /* プロセッサ時間[NGKI0573ï¼½*/
    136 typedef uint32_t                HRTCNT;         /* 高分解能タイマのカウント値 */
    137 
    138 typedef TOPPERS_fp              FP;                     /* プログラムの起動番地 */
    139 
    140 typedef int_t                   ER_BOOL;        /* エラーコードまたは真偽値 */
    141 typedef int_t                   ER_ID;          /* エラーコードまたはID番号 */
    142 typedef int_t                   ER_UINT;        /* エラーコードまたは符号無し整数 */
    143 
    144 typedef uintptr_t               MB_T;           /* 管理領域を確保するためのデータ型 */
    145 
    146 typedef uint32_t                ACPTN;          /* アクセス許可パターン */
    147 typedef struct acvct {                          /* アクセス許可ベクタ */
    148         ACPTN           acptn1;                         /* 通常操作1のアクセス許可パターン */
    149         ACPTN           acptn2;                         /* 通常操作2のアクセス許可パターン */
    150         ACPTN           acptn3;                         /* 管理操作のアクセス許可パターン */
    151         ACPTN           acptn4;                         /* 参ç
    152 §æ“ä½œã®ã‚¢ã‚¯ã‚»ã‚¹è¨±å¯ãƒ‘ターン */
     114typedef uint32_t                PRCTIM;         /* プロセッサ時間[NGKI0573]*/
     115typedef uint32_t                HRTCNT;         /* 高分解能タイマのカウント値 */
     116
     117typedef TOPPERS_fp              FP;                     /* プログラムの起動番地 */
     118
     119typedef int_t                   ER_BOOL;        /* エラーコードまたは真偽値 */
     120typedef int_t                   ER_ID;          /* エラーコードまたはID番号 */
     121typedef int_t                   ER_UINT;        /* エラーコードまたは符号無し整数 */
     122
     123typedef uintptr_t               MB_T;           /* 管理領域を確保するためのデータ型 */
     124
     125typedef uint32_t                ACPTN;          /* アクセス許可パターン */
     126typedef struct acvct {                          /* アクセス許可ベクタ */
     127        ACPTN           acptn1;                         /* 通常操作1のアクセス許可パターン */
     128        ACPTN           acptn2;                         /* 通常操作2のアクセス許可パターン */
     129        ACPTN           acptn3;                         /* 管理操作のアクセス許可パターン */
     130        ACPTN           acptn4;                         /* 参照操作のアクセス許可パターン */
    153131} ACVCT;
    154132
     
    156134
    157135/*
    158  *  整数定数を作るマクロ
     136 *  整数定数を作るマクロ
    159137 */
    160138#ifndef UINT_C
    161 #define UINT_C(val)             (val ## U)              /* uint_t型の定数を作るマクロ */
     139#define UINT_C(val)             (val ## U)              /* uint_t型の定数を作るマクロ */
    162140#endif /* UINT_C */
    163141
    164142#ifndef ULONG_C
    165 #define ULONG_C(val)    (val ## UL)             /* ulong_t型の定数を作るマクロ */
     143#define ULONG_C(val)    (val ## UL)             /* ulong_t型の定数を作るマクロ */
    166144#endif /* ULONG_C */
    167145
    168146/*
    169  *  一般定数
     147 *  一般定数
    170148 */
    171149#ifndef NULL
    172 #define NULL            0                       /* 無効ポインタ */
     150#define NULL            0                       /* 無効ポインタ */
    173151#endif /* NULL */
    174152
    175153#ifndef true
    176 #define true            1                       /* 真 */
     154#define true            1                       /* */
    177155#endif /* true */
    178156
    179157#ifndef false
    180 #define false           0                       /* 偽 */
     158#define false           0                       /* */
    181159#endif /* false */
    182160
    183 #define E_OK            0                       /* 正常終了 */
    184 
    185 /*
    186  *  メインエラーコード
    187  */
    188 #define E_SYS           (-5)            /* システムエラー */
    189 #define E_NOSPT         (-9)            /* 未サポート機能 */
    190 #define E_RSFN          (-10)           /* 予約機能コード */
    191 #define E_RSATR         (-11)           /* 予約属性 */
    192 #define E_PAR           (-17)           /* パラメータエラー */
    193 #define E_ID            (-18)           /* 不正ID番号 */
    194 #define E_CTX           (-25)           /* コンテキストエラー */
    195 #define E_MACV          (-26)           /* メモリアクセス違反 */
    196 #define E_OACV          (-27)           /* オブジェクトアクセス違反 */
    197 #define E_ILUSE         (-28)           /* サービスコール不正使用 */
    198 #define E_NOMEM         (-33)           /* メモリ不足 */
    199 #define E_NOID          (-34)           /* ID番号不足 */
    200 #define E_NORES         (-35)           /* 資源不足 */
    201 #define E_OBJ           (-41)           /* オブジェクト状æ
    202 ‹ã‚¨ãƒ©ãƒ¼ */
    203 #define E_NOEXS         (-42)           /* オブジェクト未生成 */
    204 #define E_QOVR          (-43)           /* キューイングオーバーフロー */
    205 #define E_RLWAI         (-49)           /* å¾
    206 ã¡çŠ¶æ
    207 ‹ã®å¼·åˆ¶è§£é™¤ */
    208 #define E_TMOUT         (-50)           /* ポーリング失敗またはタイムアウト */
    209 #define E_DLT           (-51)           /* å¾
    210 ã¡ã‚ªãƒ–ジェクトの削除 */
    211 #define E_CLS           (-52)           /* å¾
    212 ã¡ã‚ªãƒ–ジェクトの状æ
    213 ‹å¤‰åŒ– */
    214 #define E_RASTER        (-53)           /* タスクの終了要求 */
    215 #define E_WBLK          (-57)           /* ノンブロッキング受付け */
    216 #define E_BOVR          (-58)           /* バッファオーバーフロー */
    217 #define E_COMM          (-65)           /* 通信エラー */
    218 
    219 /*
    220  *  オブジェクト属性
    221  */
    222 #define TA_NULL         UINT_C(0)       /* オブジェクト属性を指定しない */
    223 
    224 /*
    225  *  タイムアウト指定
    226  */
    227 #define TMO_POL         UINT_C(0)                       /* ポーリング */
    228 #define TMO_FEVR        (UINT32_MAX)            /* æ°¸ä¹
    229 å¾
    230 ã¡ */
    231 #define TMO_NBLK        (UINT32_MAX - 1)        /* ノンブロッキング */
    232 
    233 /*
    234  *  アクセス許可パターン
    235  */
    236 #define TACP_KERNEL     UINT_C(0)               /* カーネルドメインだけにアクセスを許可 */
    237 #define TACP_SHARED     (~UINT_C(0))    /* すべてのドメインからアクセスを許可 */
    238 
    239 /*
    240  *  型に関するæƒ
    241 å ±ã‚’取り出すためのマクロ
    242  *
    243  *  以下のALIGN_TYPEの定義は,アラインメントの単位が2の巾乗であることを
    244  *  仮定している.
     161#define E_OK            0                       /* 正常終了 */
     162
     163/*
     164 *  メインエラーコード
     165 */
     166#define E_SYS           (-5)            /* システムエラー */
     167#define E_NOSPT         (-9)            /* 未サポート機能 */
     168#define E_RSFN          (-10)           /* 予約機能コード */
     169#define E_RSATR         (-11)           /* 予約属性 */
     170#define E_PAR           (-17)           /* パラメータエラー */
     171#define E_ID            (-18)           /* 不正ID番号 */
     172#define E_CTX           (-25)           /* コンテキストエラー */
     173#define E_MACV          (-26)           /* メモリアクセス違反 */
     174#define E_OACV          (-27)           /* オブジェクトアクセス違反 */
     175#define E_ILUSE         (-28)           /* サービスコール不正使用 */
     176#define E_NOMEM         (-33)           /* メモリ不足 */
     177#define E_NOID          (-34)           /* ID番号不足 */
     178#define E_NORES         (-35)           /* 資源不足 */
     179#define E_OBJ           (-41)           /* オブジェクト状態エラー */
     180#define E_NOEXS         (-42)           /* オブジェクト未生成 */
     181#define E_QOVR          (-43)           /* キューイングオーバーフロー */
     182#define E_RLWAI         (-49)           /* 待ち状態の強制解除 */
     183#define E_TMOUT         (-50)           /* ポーリング失敗またはタイムアウト */
     184#define E_DLT           (-51)           /* 待ちオブジェクトの削除 */
     185#define E_CLS           (-52)           /* 待ちオブジェクトの状態変化 */
     186#define E_RASTER        (-53)           /* タスクの終了要求 */
     187#define E_WBLK          (-57)           /* ノンブロッキング受付け */
     188#define E_BOVR          (-58)           /* バッファオーバーフロー */
     189#define E_COMM          (-65)           /* 通信エラー */
     190
     191/*
     192 *  オブジェクト属性
     193 */
     194#define TA_NULL         UINT_C(0)       /* オブジェクト属性を指定しない */
     195
     196/*
     197 *  タイムアウト指定
     198 */
     199#define TMO_POL         UINT_C(0)                       /* ポーリング */
     200#define TMO_FEVR        (UINT32_MAX)            /* 永久待ち */
     201#define TMO_NBLK        (UINT32_MAX - 1)        /* ノンブロッキング */
     202
     203/*
     204 *  アクセス許可パターン
     205 */
     206#define TACP_KERNEL     UINT_C(0)               /* カーネルドメインだけにアクセスを許可 */
     207#define TACP_SHARED     (~UINT_C(0))    /* すべてのドメインからアクセスを許可 */
     208
     209/*
     210 *  型に関する情報を取り出すためのマクロ
     211 *
     212 *  以下のALIGN_TYPEの定義は,アラインメントの単位が2の巾乗であることを
     213 *  仮定している.
    245214 */
    246215#ifndef offsetof
     
    253222#endif /* alignof */
    254223
    255 #ifndef ALIGN_TYPE                              /* アラインメントのチェック */
     224#ifndef ALIGN_TYPE                              /* アラインメントのチェック */
    256225#define ALIGN_TYPE(addr, type) \
    257226                                                ((((uintptr_t)(addr)) & (alignof(type) - 1)) == 0U)
     
    259228
    260229/*
    261  *  assertマクロ
     230 *  assertマクロ
    262231 */
    263232#undef assert
     
    274243
    275244/*
    276  *  エラーコード生成・分解マクロ
    277  *
    278  *  以下のマクロ定義は,符号付き整数が2の補数で表現されており,右シフト
    279  *  演算子(>>)が算術シフトされることを仮定している.そうでない開発環
    280  *  境では,target_stddef.hでこれらの定義を上書きしなければならない.
    281  *
    282  *  MERCDマクロの定義は,メインエラーコードが負であることを仮定している.
    283  *  そうでない場合,2つの定義が一致しなくなる.
     245 *  エラーコード生成・分解マクロ
     246 *
     247 *  以下のマクロ定義は,符号付き整数が2の補数で表現されており,右シフト
     248 *  演算子(>>)が算術シフトされることを仮定している.そうでない開発環
     249 *  境では,target_stddef.hでこれらの定義を上書きしなければならない.
     250 *
     251 *  MERCDマクロの定義は,メインエラーコードが負であることを仮定している.
     252 *  そうでない場合,2つの定義が一致しなくなる.
    284253 */
    285254#ifndef ERCD
     
    301270
    302271/*
    303  *  アクセス許可パターン生成マクロ
    304  */
    305 #define TACP(domid)             (1U << ((domid) - 1))   /* domidだけにアクセスを許可 */
    306 
    307 /*
    308  *  相対時間(RELTIM)に指定できる最大値[NGKI0551ï¼½
    309  */
    310 #define TMAX_RELTIM             4000000000U                             /* 66分40秒まで指定可 */
     272 *  アクセス許可パターン生成マクロ
     273 */
     274#define TACP(domid)             (1U << ((domid) - 1))   /* domidだけにアクセスを許可 */
     275
     276/*
     277 *  相対時間(RELTIM)に指定できる最大値[NGKI0551]
     278 */
     279#define TMAX_RELTIM             4000000000U                             /* 66分40秒まで指定可 */
    311280
    312281#endif /* TOPPERS_T_STDDEF_H */
Note: See TracChangeset for help on using the changeset viewer.