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/tecsgen/tecslib/core/tecsinfo.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r388 r389  
    66#   Copyright (C) 2017-2018 by TOPPERS Project
    77#--
    8 #   ä¸Šè¨˜è‘—作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    11 #   å¤‰ãƒ»å†é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    15 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    16 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 #       è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    23 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 #       ç”¨ã§ããªã„形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 #       ã¨ï¼Ž
    27 #     (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    31 #     (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34 #         å ±å‘Šã™ã‚‹ã“と.
    35 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    40 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42 #       å
    43 è²¬ã™ã‚‹ã“と.
     8#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13#       スコード中に含まれていること.
     14#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17#       の無保証規定を掲載すること.
     18#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20#       と.
     21#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     23#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24#         報告すること.
     25#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29#       免責すること.
    4430
    45 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    46 ãŠ
    47 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    49 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    50 #   ã®è²¬ä»»ã‚’負わない.
     31#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35#   の責任を負わない.
    5136
    5237#   $Id$
    5338#++
    5439
    55 # TECS æƒ
    56 å ±ã‚»ãƒ«ã®ç”Ÿæˆ
     40# TECS 情報セルの生成
    5741module TECSInfo
    58   # region は Link root のこと
     42  # region は Link root のこと
    5943  def self.print_info f, region
    6044    # p "region: "+ region.get_name.to_s
     
    6751    Type.reset_print_info
    6852
    69     # mikan å
    70 ¨éƒ¨ç”Ÿæˆã™ã‚‹ã®ã§ã¯ãªãã€region 下のセルのセルタイプと、そこから参ç
    71 §ã•ã‚Œã‚‹ã‚·ã‚°ãƒ‹ãƒãƒ£ã€ã‚»ãƒ«ã‚¿ã‚¤ãƒ—に限定して出力すべき
    72     # しかし、意味解析後に出力するため、これは容易ではない.最適化とコード生成は、リンクルートごとに行われる.
     53    # mikan 全部生成するのではなく、region 下のセルのセルタイプと、そこから参照されるシグニチャ、セルタイプに限定して出力すべき
     54    # しかし、意味解析後に出力するため、これは容易ではない.最適化とコード生成は、リンクルートごとに行われる.
    7355    Namespace.print_info f, indent
    7456    region.get_link_root.print_info f, indent
     
    9072
    9173class Namespace
    92   # RootRegion と LinkRegion は同じ Region クラスのオブジェクトである
    93   # 子ネームスペースは Namespace クラスの、子リージョンは Region クラスのオブジェクトである
    94   # これは、意味解析段階で呼び出されるため、リンクユニットごとに出しわけることができない
    95   # 出しわけるには、2パスにするå¿
    96 è¦ãŒã‚ã‚‹
     74  # RootRegion と LinkRegion は同じ Region クラスのオブジェクトである
     75  # 子ネームスペースは Namespace クラスの、子リージョンは Region クラスのオブジェクトである
     76  # これは、意味解析段階で呼び出されるため、リンクユニットごとに出しわけることができない
     77  # 出しわけるには、2パスにする必要がある
    9778  def print_info_ns_sub f, indent
    9879    if @name == "::" then
     
    151132    }
    152133    @namespace_list.each { |ns|
    153       if ns.instance_of? Namespace then   # region を含めない
     134      if ns.instance_of? Namespace then   # region を含めない
    154135        ns.print_info_ns f, indent
    155136      end
     
    161142  end
    162143
    163   #=== Namespace# 構造体メンバーのオフセット定義
     144  #=== Namespace# 構造体メンバーのオフセット定義
    164145  def print_struct_define f
    165146    f.print "\n/***** Offset of members of structures  *****/\n"
     
    184165    }
    185166    @namespace_list.each { |ns|
    186       if ns.instance_of? Namespace then   # region を含めない
     167      if ns.instance_of? Namespace then   # region を含めない
    187168        ns.print_celltype_define_offset f
    188169      end
     
    197178    }
    198179    @namespace_list.each { |ns|
    199       if ns.instance_of? Namespace then   # region を含めない
     180      if ns.instance_of? Namespace then   # region を含めない
    200181        ns.print_celltype_define f
    201182      end
     
    210191    }
    211192    @namespace_list.each { |ns|
    212       if ns.instance_of? Namespace then   # region を含めない
     193      if ns.instance_of? Namespace then   # region を含めない
    213194        ns.print_call_define f
    214195      end
     
    223204    }
    224205    @namespace_list.each { |ns|
    225       if ns.instance_of? Namespace then   # region を含めない
     206      if ns.instance_of? Namespace then   # region を含めない
    226207        ns.print_entry_define f
    227208      end
     
    415396
    416397  def print_define_offset f
    417     # intptr_t に一回キャストするのは 64bit 版を考量してのこと.しかし 32bit としているので 4GB をè¶
    418 ãˆã‚‹æ§‹é€ ä½“等は扱えない
     398    # intptr_t に一回キャストするのは 64bit 版を考量してのこと.しかし 32bit としているので 4GB を超える構造体等は扱えない
    419399    if @n_cell_gen > 0 then
    420400      f.print <<EOT
     
    453433// #include "#{@global_name}_tecsgen.h"   // no cell exist
    454434EOT
    455       # 生成されないセルタイプ
     435      # 生成されないセルタイプ
    456436      @attribute.each{ |decl|
    457437        f.printf "#define OFFSET_OF_%-30s  (%s)\n", "#{@global_name}_#{decl.get_name}", "0xffffffff"
     
    641621        red = "(void *)0"
    642622      end
    643       # mikan 受け口é
    644 åˆ—
     623      # mikan 受け口配列
    645624      f.print <<EOT
    646625#{indent}cell nTECSInfo::tRawEntryDescriptorInfo #{@global_name}_#{port.get_name}RawEntryDescriptorInfo {
     
    795774
    796775  def print_info f, indent
    797     # Type の info は、最後にまとめて出力するので、ここでは記録するだけ
     776    # Type の info は、最後にまとめて出力するので、ここでは記録するだけ
    798777    if @@typeinfo_printed[ get_ID_str ] then
    799778      return
     
    821800
    822801  def print_info_post f, indent
    823     if self.class.superclass == Type then     # 親クラスが Type の場合 types.rb のクラス
     802    if self.class.superclass == Type then     # 親クラスが Type の場合 types.rb のクラス
    824803      type_name = self.class.name
    825804    else
    826       type_name = self.class.superclass.name  # ctypes.rb のクラス (親クラスが types.rb のクラス)
     805      type_name = self.class.superclass.name  # ctypes.rb のクラス (親クラスが types.rb のクラス)
    827806    end
    828807    # p "type: #{type_name}, #{self.class.name}"
     
    856835  end
    857836
    858   #=== Type# 型文字列の識別子化
    859   #型文字列に含まれる識別子として用いることのできない文字を用いることのできる文字列に置き換える
    860   # 空白 => __
     837  #=== Type# 型文字列の識別子化
     838  #型文字列に含まれる識別子として用いることのできない文字を用いることのできる文字列に置き換える
     839  # 空白 => __
    861840  # * => _Ptr_
    862841  # [] => _Array_
Note: See TracChangeset for help on using the changeset viewer.