/* * Simple な Sample * * +-------------+ +-------------+ +-------------+ * | | | | | | * | tTask | sTaskBody | tSimple | sSample | tSample | * | Task |-----------|> Simple |----------|> Sample | * | |cTask eBody| |cCall eEnt| | * | |Body | | | | * +-------------+ +-------------+ +-------------+ * *・シグニチャ記述 * * sSample … 関数インタフェースの定義 * 慣習として接頭文字 s を付加する * * シグニチャ sSampleには 2 つの関数 sayHello と howAreYou がある。 * セルタイプ tSample の提供する機能となるので、sSample という名前にした。 * *・セルタイプ記述 * * tSimple … 呼び元のセルタイプ * tSample … 呼び先のセルタイプ * 慣習として接頭文字 t を付加する * tTask … cygwin 用の tTask は cygwin_kernel.cdl を import することで使用できる * *・組上げ記述 * * Simple … 呼び元のセル * Sample … 呼び先のセル * Task … タスクセル * * セルタイプコード: * src/tSimple.c … 呼び元のセルタイプコード * src/tSample.c … 呼び先のセルタイプコード * */ // cygwin 用の簡易な型定義 import( ); // TECS 対応 TOPPERS/ASP ならば import( ); に相当する // シグニチャ sSample signature sSample { ER sayHello( [in]int32_t times ); ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len ); }; // セルタイプ tSample celltype tSample { entry sSample eEnt; }; // セルタイプ tSimple celltype tSimple { call sSample cCall; entry sTaskBody eBody; }; // セル Sample cell tSample Sample { }; // セル Simple cell tSimple Simple { cCall = Sample.eEnt; }; // セル Task cell tTask Task { cBody = Simple.eBody; priority = 11; stackSize = 1024; taskAttribute = C_EXP( "TA_ACT" ); };