構造体 toppers::itron::jsp::initialization_policy

初期化処理のためのポリシークラス [詳細]

#include "toppers/itron/jsp/initialization.hpp"

toppers::itron::jsp::initialization_policyに対する継承グラフ

Inheritance graph
[凡例]
toppers::itron::jsp::initialization_policyのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public 型

enum  { use_id_ = 0 }
 specified_object<Plociy> クラスが要求する Policy::use_id_ 定数 [詳細]

Static Public メソッド

static void generate_kernel_cfg (const kernel_cfg &cfg, std::ostream &ostr)
 specified_object<Plociy> クラスが要求する Policy::generate_kernel_cfg 関数
static void generate_assertions (const kernel_cfg &cfg, std::ostream &ostr)
 パラメータチェックコード の生成

Static Public 変数

static const char name_ [] = "initialization"
static const char *const apis_ [] = { "ATT_INI", 0 }
static const char *const params_ [] = { "{ #iniatr exinf inirtn }", 0 }

説明

初期化処理のためのポリシークラス

このクラスで実現される静的API

  ATT_INI( { ATR iniatr, VP_INT exinf, FP inirtn } );

initialization.hpp69 行で定義されています。


列挙型

anonymous enum
 

specified_object<Plociy> クラスが要求する Policy::use_id_ 定数

kernel_object_policy_base クラスでは true に定義しています。 ID番号ではなく、オブジェクト番号を使用する場合は、kernel_object_policy_base から継承したクラスで同名のメンバを再定義してください。

toppers::itron::kernel_object_policy_baseを再定義しています。

initialization.hpp73 行で定義されています。

00073 { use_id_ = 0 };


関数

void toppers::itron::jsp::initialization_policy::generate_assertions const kernel_cfg cfg,
std::ostream &  ostr
[static]
 

パラメータチェックコード の生成

引数:
cfg kernel_cfg.c 生成情報
ostr 出力ストリーム

toppers::itron::kernel_object_policy_baseを再定義しています。

initialization.cpp84 行で定義されています。

参照先 toppers::kernel_cfg::get_inib_array()name_.

00085       {
00086         const kernel_cfg::inib_array* pinibs = cfg.get_inib_array( name_ );
00087         static const char pattern[] = 
00088           "#if ((@#iniatr) & (TA_HLNG|TA_ASM)) != TA_HLNG\n"
00089           "#error \"`iniatr\' for `@inirtn\' is not TA_HLNG\"\n"
00090           "#endif\n"
00091           "__CFG_ASSERT(((@#iniatr) & (TA_HLNG|TA_ASM)) != TA_HLNG);\n"
00092           "__CFG_ASSERT(sizeof((*(@inirtn))(0), 1));\n"   // inirtnに関数型マクロを指定していた場合にはコンパイル不可
00093           "\n";
00094         std::transform( pinibs->begin(), pinibs->end(), std::ostream_iterator<std::string>( ostr ), generator( pattern ) );
00095       }

関数の呼び出しグラフ:

void toppers::itron::jsp::initialization_policy::generate_kernel_cfg const kernel_cfg cfg,
std::ostream &  ostr
[static]
 

specified_object<Plociy> クラスが要求する Policy::generate_kernel_cfg 関数

引数:
cfg kernel_cfg.c 生成情報
ostr 出力ストリーム

toppers::itron::jsp::file_generator< initialization_policy >を再定義しています。

initialization.cpp54 行で定義されています。

参照先 toppers::kernel_cfg::get_inib_array()name_.

00055       {
00056         using boost::format;
00057         typedef kernel_cfg::inib_array::const_iterator const_iterator;
00058 
00059         const kernel_cfg::inib_array* pinibs = cfg.get_inib_array( name_ );
00060         if ( pinibs == 0 )
00061         {
00062           static const kernel_cfg::inib_array dummy;
00063           pinibs = &dummy;
00064         }
00065 
00066         // 初期化ルーチンの呼び出し関数定義
00067         ostr << "\t/* Initialization handler */\n\n";
00068         ostr << "void\n_kernel_call_inirtn(void)\n{\n";
00069         for ( const_iterator iter( pinibs->begin() ), last( pinibs->end() ); iter != last; ++iter )
00070         {
00071           if ( !( *iter )->get( "inirtn" ).empty() )
00072           {
00073             ostr << format( "\t%1%((VP_INT)%2%);\n" ) % ( *iter )->get( "inirtn" ) % ( *iter )->get( "exinf" );
00074           }
00075         }
00076         ostr << "}\n\n";
00077       }

関数の呼び出しグラフ:


この構造体の説明は次のファイルから生成されました:
Copyright © 2006 by TAKAGI Nobuhisa.
このページは Wed Apr 12 16:32:07 2006 に Doxygen によって生成されました。