第19章  サービス・コール


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

19.1 概  要

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

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

- タスク管理機能

cre_tsk acre_tsk del_tsk act_tsk iact_tsk can_act ican_act sta_tsk ista_tsk ext_tsk exd_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

- タスク例外処理機能

def_tex ras_tex iras_tex dis_tex ena_tex sns_tex ref_tex iref_tex

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

cre_sem acre_sem del_sem wai_sem pol_sem ipol_sem twai_sem sig_sem isig_sem ref_sem iref_sem

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

cre_flg acre_flg del_flg set_flg iset_flg clr_flg iclr_flg wai_flg pol_flg ipol_flg twai_flg ref_flg iref_flg

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

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

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

cre_mbx acre_mbx del_mbx snd_mbx isnd_mbx rcv_mbx prcv_mbx iprcv_mbx trcv_mbx ref_mbx iref_mbx

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

cre_mtx acre_mtx del_mtx loc_mtx ploc_mtx tloc_mtx unl_mtx ref_mtx

- 拡張同期通信機能(メッセージ・バッファ)

cre_mbf acre_mbf del_mbf snd_mbf psnd_mbf ipsnd_mbf tsnd_mbf rcv_mbf prcv_mbf trcv_mbf ref_mbf iref_mbf

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

cre_mpf acre_mpf del_mpf get_mpf pget_mpf ipget_mpf tget_mpf rel_mpf irel_mpf ref_mpf iref_mpf

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

cre_mpl acre_mpl del_mpl get_mpl pget_mpl ipget_mpl tget_mpl rel_mpl ref_mpl iref_mpl

- 時間管理機能

set_tim iset_tim get_tim iget_tim cre_cyc acre_cyc del_cyc sta_cyc ista_cyc stp_cyc istp_cyc ref_cyc iref_cyc cre_alm acre_alm del_alm sta_alm ista_alm stp_alm istp_alm ref_alm iref_alm

- システム状態管理機能

rot_rdq irot_rdq get_tid iget_tid loc_cpu iloc_cpu unl_cpu iunl_cpu dis_dsp ena_dsp sns_ctx sns_loc sns_dsp sns_dpn vsys_dwn ivsys_dwn
vsta_knl ivsta_knl

- 割り込み管理機能

chg_ims ichg_ims get_ims iget_ims

- システム構成管理機能

ref_ver iref_ver

- オブジェクト・リセット機能

vrst_dtq vrst_mbx vrst_mbf vrst_mpf vrst_mpl

- メモリ・オブジェクト保護機能

ata_mem det_mem sac_mem vprb_mem ref_mem

19.1.1 サービス・コールの呼び出し方法

サービス・コールは,通常のC言語関数と同様の方法で呼び出します。

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

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

- kernel_id.h:cfg600pxが出力するシステム情報ヘッダ・ファイル

19.2 サービス・コール解説

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

 

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


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


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


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


 
I/O

パラメータ

説明

A

B

C



A ) パラメータの種類

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

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

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

C ) パラメータの説明

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


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


 
マクロ

数値

意味

A

B

C



A ) 戻り値のマクロ

B ) 戻り値の数値

C ) 戻り値の意味