17.5.11 拡張サービス・コール・ルーチン情報

拡張サービス・コール・ルーチン情報では,

1 ) 機能コード番号fncd

2 ) 属性(記述言語)svcatr

3 ) 起動アドレスsvcrtn

といった項目を個々の拡張サービス・コール・ルーチンに対して定義します。

なお,拡張サービス・コール・ルーチン情報として定義可能な数は,1つの機能コード番号に対して1個に限られます。

以下に,拡張サービス・コール・ルーチン情報の記述形式を示します。

 
 DEF_SVC ( fncd, { svcatr, svcrtn } );


以下に,拡張サービス・コール・ルーチン情報で記述する項目について示します。

1 ) 機能コード番号fncd

拡張サービス・コール・ルーチンの機能コード番号を指定します。
なお,fncdとして指定可能な値は“0x1〜0xff”に限られます。


2 ) 属性(記述言語)svcatr

拡張サービス・コール・ルーチンの属性(記述言語)を指定します。
なお,svcatrとして指定可能な値は“TA_HLNG,TA_ASMのいずれか”に限られます。


TA_HLNG: C言語

TA_ASM: アセンブリ言語

3 ) 起動アドレスsvcrtn

拡張サービス・コール・ルーチンの起動アドレスを指定します。
なお,svcrtnとして指定可能な値は“0x0〜0xfffffffeの2バイト境界値,またはシンボル名”に限られます。


備考 拡張サービス・コール・ルーチンを以下のように記述した場合,svcrtnに指定するシンボル名はfunc_svcになります。

 #include        <kernel.h>
 #include        <kernel_id.h>
 
 ER_UINT
 func_svc ( VP_INT par1, VP_INT par2, VP_INT par3 )
 {
         ER_UINT ercd;
 
         ............
         ............
 
         return ( ercd );
 }