Rev | Line | |
---|
[30] | 1 | /*
|
---|
| 2 | * Simple な Sample
|
---|
| 3 | *
|
---|
| 4 | * +-------------+ +-------------+ +-------------+
|
---|
| 5 | * | | | | | |
|
---|
| 6 | * | tTask | sTaskBody | tSimple | sSample | tSample |
|
---|
| 7 | * | Task |-----------|> Simple |----------|> Sample |
|
---|
| 8 | * | |cTask eBody| |cCall eEnt| |
|
---|
| 9 | * | |Body | | | |
|
---|
| 10 | * +-------------+ +-------------+ +-------------+
|
---|
[34] | 11 | *
|
---|
| 12 | *・シグニチャ記述
|
---|
| 13 | *
|
---|
| 14 | * sSample … 関数インタフェースの定義
|
---|
| 15 | * 慣習として接頭文字 s を付加する
|
---|
| 16 | *
|
---|
| 17 | * シグニチャ sSampleには 2 つの関数 sayHello と howAreYou がある。
|
---|
| 18 | * セルタイプ tSample の提供する機能となるので、sSample という名前にした。
|
---|
| 19 | *
|
---|
| 20 | *・セルタイプ記述
|
---|
| 21 | *
|
---|
| 22 | * tSimple … 呼び元のセルタイプ
|
---|
| 23 | * tSample … 呼び先のセルタイプ
|
---|
| 24 | * 慣習として接頭文字 t を付加する
|
---|
| 25 | * tTask … cygwin 用の tTask は cygwin_kernel.cdl を import することで使用できる
|
---|
| 26 | *
|
---|
| 27 | *・組上げ記述
|
---|
| 28 | *
|
---|
| 29 | * Simple … 呼び元のセル
|
---|
| 30 | * Sample … 呼び先のセル
|
---|
| 31 | * Task … タスクセル
|
---|
| 32 | *
|
---|
| 33 | * セルタイプコード:
|
---|
| 34 | * src/tSimple.c … 呼び元のセルタイプコード
|
---|
| 35 | * src/tSample.c … 呼び先のセルタイプコード
|
---|
| 36 | *
|
---|
[30] | 37 | */
|
---|
| 38 |
|
---|
| 39 | // cygwin 用の簡易な型定義
|
---|
| 40 | import( <cygwin_kernel.cdl> );
|
---|
[34] | 41 | // TECS 対応 TOPPERS/ASP ならば import( <kernel.cdl> ); に相当する
|
---|
[30] | 42 |
|
---|
[34] | 43 | // シグニチャ sSample
|
---|
[30] | 44 | signature sSample {
|
---|
| 45 | ER sayHello( [in]int32_t times );
|
---|
| 46 | ER howAreYou( [out,string(len)]char_t *buf, [in]int32_t len );
|
---|
| 47 | };
|
---|
| 48 |
|
---|
[34] | 49 | // セルタイプ tSample
|
---|
[30] | 50 | celltype tSample {
|
---|
| 51 | entry sSample eEnt;
|
---|
| 52 | };
|
---|
| 53 |
|
---|
[34] | 54 | // セルタイプ tSimple
|
---|
[30] | 55 | celltype tSimple {
|
---|
| 56 | call sSample cCall;
|
---|
| 57 | entry sTaskBody eBody;
|
---|
| 58 | };
|
---|
| 59 |
|
---|
[34] | 60 | // セル Sample
|
---|
[30] | 61 | cell tSample Sample {
|
---|
| 62 | };
|
---|
| 63 |
|
---|
[34] | 64 | // セル Simple
|
---|
[30] | 65 | cell tSimple Simple {
|
---|
| 66 | cCall = Sample.eEnt;
|
---|
| 67 | };
|
---|
| 68 |
|
---|
[34] | 69 | // セル Task
|
---|
[30] | 70 | cell tTask Task {
|
---|
| 71 | cBody = Simple.eBody;
|
---|
| 72 | priority = 11;
|
---|
| 73 | stackSize = 1024;
|
---|
| 74 | taskAttribute = C_EXP( "TA_ACT" );
|
---|
| 75 | };
|
---|
Note:
See
TracBrowser
for help on using the repository browser.