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/plugin/HRPPlugin.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r388 r389  
    66#   Copyright (C) 2014-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$
     
    5641require_tecsgen_lib "HRPKernelObjectManager.rb"
    5742#
    58 # 各メソッドの役割りは、DomainPlugin.rb を参ç
    59 §ã®ã“と
    60 # HRPカーネル用ドメインプラグイン
     43# 各メソッドの役割りは、DomainPlugin.rb を参照のこと
     44# HRPカーネル用ドメインプラグイン
    6145class HRPPlugin < DomainPlugin
    6246 
     
    7256    else
    7357      cdl_error( "HRPPlugin: '$1' is unacceptable domain kind, specify 'kernel' or 'user'", option )
    74       @option = "kernel"   # とりあえず kernel を設定しておく
     58      @option = "kernel"   # とりあえず kernel を設定しておく
    7559    end
    7660  end
    7761
    7862  def add_through_plugin( join, current_region, next_region, through_type )
    79     # join.get_owner:Cell  左辺のセル
    80     # join.get_definition:Port 呼び口
    81     # join.get_subscript:Integer or nil 呼び口é
    82 åˆ—の添数 (Join::@subscript の説明参ç
    83 §)
    84     # join.get_cell:Cell 右辺のセル
    85     # join.get_port_name:Symbol 受け口
    86     # get_rhs_subscript:Integer or nil 受け口é
    87 åˆ—の添数 (Join::@rhs_subscript の説明参ç
    88 §)
     63    # join.get_owner:Cell  左辺のセル
     64    # join.get_definition:Port 呼び口
     65    # join.get_subscript:Integer or nil 呼び口配列の添数 (Join::@subscript の説明参照)
     66    # join.get_cell:Cell 右辺のセル
     67    # join.get_port_name:Symbol 受け口
     68    # get_rhs_subscript:Integer or nil 受け口配列の添数 (Join::@rhs_subscript の説明参照)
    8969    # return []
    9070    dbgPrint "MyDomainPlugin: add_through_plugin: #{current_region.get_name}=>#{next_region.get_name}, #{join.get_owner.get_name}.#{join.get_definition.get_name}=>#{join.get_cell.get_name}.#{join.get_port_name}, #{through_type}\n"
     
    11090                                                 get_real_celltype(join.get_rhs_port1).
    11191                                                 get_global_name)                #oyama: get_name => get_global_name
    112         # 結合å
    113 ˆãŒã‚«ãƒ¼ãƒãƒ«ã‚ªãƒ–ジェクトセル
     92        # 結合先がカーネルオブジェクトセル
    11493        # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
    115         # 何もしないthrough
     94        # 何もしないthrough
    11695        # puts "***** #{join.get_cell.get_celltype.get_name} is kernel object"
    11796        return []
     
    121100    # elsif next_domain.nil?
    122101    elsif next_domain.get_option.to_s == "OutOfDomain"
    123     #     # 結合å
    124 ˆãŒç„¡æ‰€å±ž
    125     #     # 何もしないthrough
     102    #     # 結合先が無所属
     103    #     # 何もしないthrough
    126104    #     # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
    127105        # puts "***** nil"
     
    129107    #elsif @start_region.get_param != :KERNEL_DOMAIN && @end_region.get_param == :KERNEL_DOMAIN
    130108    elsif current_domain.get_option.to_s != "kernel" && next_domain.get_option.to_s == "kernel"
    131         # ユーザドメインからカーネルドメインへの結合
     109        # ユーザドメインからカーネルドメインへの結合
    132110        # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
    133111        # puts "***** svc"
    134112        return [ :HRPSVCPlugin, "" ]
    135113    elsif current_domain != next_domain
    136         # 別のユーザドメインへの結合
     114        # 別のユーザドメインへの結合
    137115        # @plugin_body = HRP2RPCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
    138116        # puts "***** rpc"
     
    141119        return [ :HRPRPCPlugin, "noClientSemaphore=false,PPAllocatorSize=256" ]
    142120    else
    143         # その他
    144         # 何もしないthrough
     121        # その他
     122        # 何もしないthrough
    145123        # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
    146124        dbgPrint "warning: at HRP Join Check"
     
    156134  end
    157135
    158   #== ドメイン種別を返す
     136  #== ドメイン種別を返す
    159137  #return::Symbol :kernel, :user, :OutOfDomain
    160138  def get_kind
     
    165143  end
    166144
    167   # ATT_MODを生成済みかどうか                   # 2017.8.27
     145  # ATT_MODを生成済みかどうか                   # 2017.8.27
    168146  @@generate_memory_module = false
    169147
    170   @@include_extsvc_fncd = false  # 17.07.26 暫定
     148  @@include_extsvc_fncd = false  # 17.07.26 暫定
    171149  #
    172   #  ATT_MODの生成
    173   #  gen_factory実行時には,すべてのセルタイププラグインを生成済みのはずなので,
    174   #  カーネルAPIコードのメモリ保護を省略できる.
     150  #  ATT_MODの生成
     151  #  gen_factory実行時には,すべてのセルタイププラグインを生成済みのはずなので,
     152  #  カーネルAPIコードのメモリ保護を省略できる.
    175153  #
    176154  def gen_factory
     
    187165    if @@generate_memory_module == false
    188166
    189       # INCLUDE を出力
    190       #  すべてのドメインに対する cfg をå
    191 ˆã«ç”Ÿæˆã—ておく
    192       #  もし、ドメインに属するカーネルオブジェクトも、モジュールもない場合でも、cfg が出力される
     167      # INCLUDE を出力
     168      #  すべてのドメインに対する cfg を先に生成しておく
     169      #  もし、ドメインに属するカーネルオブジェクトも、モジュールもない場合でも、cfg が出力される
    193170      regions = DomainType.get_domain_regions[ :HRP ]
    194171      file = AppFile.open( "#{$gen}/tecsgen.cfg" )
     
    219196
    220197      #
    221       #  ATT_MODの生成
     198      #  ATT_MODの生成
    222199      #
    223200      Cell.get_cell_list2.each { |cell|
    224         # すべてのセルを走査してセルタイプをチェック
     201        # すべてのセルを走査してセルタイプをチェック
    225202        ct = cell.get_celltype
    226203        if ct.class == Celltype && check_celltype_list.include?( ct ) == false
    227           # チェック済みセルタイプに登録
     204          # チェック済みセルタイプに登録
    228205          check_celltype_list << ct
    229206
    230           # 未チェックのセルタイプだった場合
     207          # 未チェックのセルタイプだった場合
    231208          # puts "check for ATT_MOD : #{ct.classget_global_name}"
    232209          # puts "check for ATT_MOD : #{ct.get_global_name}"
    233210
    234           # カーネルAPIのコード,データはメモリ保護しない # HRP3 oyama delete by Takada's request
     211          # カーネルAPIのコード,データはメモリ保護しない # HRP3 oyama delete by Takada's request
    235212          # next if HRPKernelObjectManager.include_celltype?( ct.get_name )
    236213
    237           # å¿
    238 è¦ã®ãªã„セルタイプのコード,データはメモリ保護しない
     214          # 必要のないセルタイプのコード,データはメモリ保護しない
    239215          next if ! ct.need_generate?
    240216
    241           # HRPのドメインリージョンを取得
     217          # HRPのドメインリージョンを取得
    242218          regions = ct.get_domain_roots
    243219          regions_hrp = regions[ :HRP ]
     
    248224          # puts ""
    249225
    250           # セル管理ブロックとスケルトンのメモリ保護
    251           # gen_celltype_names_domain 相当の処理
     226          # セル管理ブロックとスケルトンのメモリ保護
     227          # gen_celltype_names_domain 相当の処理
    252228          if regions_hrp.include?( Region.get_root ) == false && regions_hrp.length > 1
    253             # ドメインが複数で,OutOfDomainにセルが存在しないセルタイプの場合
    254             # å
    255 ±æœ‰ã®ã‚»ãƒ«ç®¡ç†ãƒ–ロックとスケルトンコードを登録する
     229            # ドメインが複数で,OutOfDomainにセルが存在しないセルタイプの場合
     230            # 共有のセル管理ブロックとスケルトンコードを登録する
    256231            file = AppFile.open( "#{$gen}/tecsgen.cfg" )
    257232            file.printf "%-60s/* HRPPlugin 003 */\n", "ATT_MOD(\"#{ct.get_global_name}_tecsgen.o\");"
     
    270245          }
    271246
    272           # セルタイプコードがない場合はスキップ
     247          # セルタイプコードがない場合はスキップ
    273248          next if ct.is_all_entry_inline? && ! ct.is_active?
    274249
    275           # セルタイプコードのメモリ保護
    276           # gen_celltype_names_domain2 相当の処理
     250          # セルタイプコードのメモリ保護
     251          # gen_celltype_names_domain2 相当の処理
    277252          if regions_hrp.include?( Region.get_root ) == true || regions_hrp.length > 1
    278             # OutOfDomainにセルが存在するセルタイプの場合
    279             # または,複数のドメインにセルが存在するセルタイプの場合
    280             # セルタイプコードをå
    281 ±æœ‰ã™ã‚‹ã‚ˆã†ã«ç™»éŒ²ã™ã‚‹
     253            # OutOfDomainにセルが存在するセルタイプの場合
     254            # または,複数のドメインにセルが存在するセルタイプの場合
     255            # セルタイプコードを共有するように登録する
    282256            file = AppFile.open( "#{$gen}/tecsgen.cfg" )
    283257          else
    284             # OutOfDomainでない単一のドメインにセルが存在するセルタイプの場合
    285             # セルタイプコードを専有するように登録する
     258            # OutOfDomainでない単一のドメインにセルが存在するセルタイプの場合
     259            # セルタイプコードを専有するように登録する
    286260            file = AppFile.open( "#{$gen}/tecsgen_#{regions_hrp[0].get_global_name}.cfg" )
    287261          end
     
    290264          file.close
    291265        else
    292           # 何もしない
     266          # 何もしない
    293267        end
    294268      }
     
    296270      @@generate_memory_module = true
    297271    else
    298       # 何もしない
     272      # 何もしない
    299273    end
    300274  end
     
    309283      @@inter_domain_join_set[ rhs_cell ] = []
    310284    end
    311     # 左辺のドメインルートを記録
     285    # 左辺のドメインルートを記録
    312286    @@inter_domain_join_set[ rhs_cell ] << join
    313287  end
     
    339313    cell_domain_root = cell.get_region.get_domain_root
    340314    if cell_domain_root.get_domain_type.get_kind != :OutOfDomain then
    341       domain_roots << cell.get_region.get_domain_root  # 結合å
    342 ˆã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚‚含める
     315      domain_roots << cell.get_region.get_domain_root  # 結合先のドメインも含める
    343316    end
    344317    domain_roots.each{ |dr|
     
    364337    }
    365338    if acv == "" then
    366       # 呼びå
    367 ˆã‚»ãƒ«ãŒç„¡æ‰€å±žã‹ã¤ã€å‘¼ã³å
    368 ƒã‚‚無所属のみ、または結合無しの場合
     339      # 呼び先セルが無所属かつ、呼び元も無所属のみ、または結合無しの場合
    369340      acv = "TACP_SHARED"
    370341    end
Note: See TracChangeset for help on using the changeset viewer.