第16章  サービス・コール


本章では,RI850V4が提供しているサービス・コールについて解説しています。

16.1 概  要

RI850V4が提供しているサービス・コールは,ユーザが記述した処理プログラムからRI850V4が管理している資源(タスク,セマフォなど)を操作するために用意されたサービス・ルーチンです。

以下に,RI850V4が提供しているサービス・コールを管理モジュール別に示します。

- タスク管理機能

act_tsk  iact_tsk  can_act  ican_act
sta_tsk  ista_tsk  ext_tsk  ter_tsk
chg_pri  ichg_pri  get_pri  iget_pri
ref_tsk  iref_tsk  ref_tst  iref_tst

- タスク付属同期機能

slp_tsk  tslp_tsk  wup_tsk  iwup_tsk
can_wup  ican_wup  rel_wai  irel_wai
sus_tsk  isus_tsk  rsm_tsk  irsm_tsk
frsm_tsk  ifrsm_tsk  dly_tsk

- 同期通信機能(セマフォ)

wai_sem  pol_sem  ipol_sem  twai_sem
sig_sem  isig_sem  ref_sem  iref_sem

- 同期通信機能(イベントフラグ)

set_flg  iset_flg  clr_flg  iclr_flg
wai_flg  pol_flg  ipol_flg  twai_flg
ref_flg  iref_flg

- 同期通信機能(データ・キュー)

snd_dtq  psnd_dtq  ipsnd_dtq  tsnd_dtq
fsnd_dtq  ifsnd_dtq  rcv_dtq  prcv_dtq
iprcv_dtq  trcv_dtq  ref_dtq  iref_dtq

- 同期通信機能(メールボックス)

snd_mbx  isnd_mbx  rcv_mbx  prcv_mbx
iprcv_mbx  trcv_mbx  ref_mbx  iref_mbx

- 拡張同期通信機能(ミューテックス)

loc_mtx  ploc_mtx  tloc_mtx  unl_mtx
ref_mtx  iref_mtx

- メモリ・プール管理機能(固定長メモリ・プール)

get_mpf  pget_mpf  ipget_mpf  tget_mpf
rel_mpf  irel_mpf  ref_mpf  iref_mpf

- メモリ・プール管理機能(可変長メモリ・プール)

get_mpl  pget_mpl  ipget_mpl  tget_mpl
rel_mpl  irel_mpl  ref_mpl  iref_mpl

- 時間管理機能

set_tim  iset_tim  get_tim  iget_tim
sta_cyc  ista_cyc  stp_cyc  istp_cyc
ref_cyc  iref_cyc

- システム状態管理機能

rot_rdq  irot_rdq  vsta_sch  get_tid
iget_tid  loc_cpu  iloc_cpu  unl_cpu
iunl_cpu  sns_loc  dis_dsp  ena_dsp
sns_dsp  sns_ctx  sns_dpn

- サービス・コール管理機能

cal_svc  ical_svc

16.1.1 サービス・コールの呼び出し

サービス・コールをC言語,およびアセンブリ言語で記述された処理プログラムから発行する場合の呼び出し方法を以下に示します。

- C言語
サービス・コールをC言語で記述された処理プログラムから発行する場合,通常のC言語関数と同様の方法で呼び出しを行うことにより,サービス・コールのパラメータはRI850V4に引き数として渡され,該当処理が実行されます。


- アセンブリ言語
サービス・コールをアセンブリ言語で記述された処理プログラムから発行する場合,ユーザが開発環境として使用するコンパイラ・パッケージの関数呼び出し規約にしたがったパラメータ,および戻り番地の設定を行ったのち,jarl命令による呼び出しを行うことにより,サービス・コールのパラメータはRI850V4に引き数として渡され,該当処理が実行されます。


備考 RI850V4が提供するサービス・コールを処理プログラムから発行する場合,以下に示したヘッダ・ファイルの定義(インクルード処理)を行う必要があります。

kernel.h: 標準ヘッダ・ファイル

kernel_id.h: システム情報ヘッダ・ファイル

16.2 サービス・コール解説

次項からRI850V4が提供しているサービス・コールについて,以下の記述フォーマットにしたがって解説します。

 

1 ) 名称
サービス・コールの名称を示しています。


2 ) 概要
サービス・コールの機能概要を示しています。


3 ) C言語形式
サービス・コールをC言語で記述された処理プログラムから発行する際の記述形式を示しています。


4 ) パラメータ
サービス・コールのパラメータを以下の形式で示しています。


 
I/O

パラメータ

説明

A

B

C



A ) パラメータの種類

I: RI850V4への入力パラメータ

O: RI850V4からの出力パラメータ

B ) パラメータのデータ・タイプ

C ) パラメータの説明

5 ) 機能
サービス・コールの機能詳細を示しています。


6 ) 戻り値
サービス・コールからの戻り値を以下の形式で示しています。


 
マクロ

数値

意味

A

B

C



A ) 戻り値のマクロ

B ) 戻り値の数値

C ) 戻り値の意味