1.1.10.3 説明
prepro-ims.pl
は、z/OS上のCプログラムをTuxedo ART for IMSで実行可能な形式に変換するために使用されます。ファイルの変換に失敗した場合、障害情報および障害の原因となったソース・ファイルの行が stderr
に出力されます。完了すると、サマリーがstdout
に報告されます。
処理ルールは次のとおりです。
- 削除
#pragma runopts
の行と他のブラグマ・ディレクティブをコメント化します。IBM IMSの下で呼び出された場合、
env(IMS)
は適切な動作環境を確立し、plist(IMS)
は適切なパラメータ・リストを確立します。それは、Tuxedo ART for IMSランタイムでは不要であり、削除する必要があります。 - 再構築
関数
ctdli()
/aibtdli()
は、引数リストに後続のNULL
を追加することで再構築されました。このNULL
は、Tuxedo ART for IMS引数リストの終わりを示すために使用されます。aibtdli()
では、parmcount
パラメータが削除されます。関数
main()
引数リストは削除されました(argc
、argv
、envp
など)。メインフレームでは、IMSはグローバル・リストおよびそのリストを定義するマクロを使用します。Tuxedo ART for IMSでは、PCBリストを取得するためのGET
メソッドとして__getcb(int)
関数が実装されています。exit()
関数は、__art_ims_return ()
という名前に変更されました。IBM IMSドキュメントによれば、プログラムが処理するメッセージがない場合、mainから返すか、またはexit()
を呼び出すことでIMSに制御が返されます。exit()
によって、コンテナ・サーバーが予期せずに終了した場合、__art_ims_return ()
関数が使用され、制御をコンテナ・サーバーに返すための手助けをします。次の表に、処理ルールの例を示します。
表1-3 処理ルールの例
ルール ソース 宛先 削除 #pragma runopts(env(IMS), plist(IMS))
/*#pragma runopts(env(IMS), plist(IMS))*/
再構築 ctdli(func_GU, io_pcb, msg_seg_io_area);
ctdli(func_GU, io_pcb, msg_seg_io_area, NULL);
aibtdli(parmcount, func_GU, io_pcb, msg_seg_io_area);
aibtdli(func_GU, io_pcb, msg_seg_io_area, NULL);
main(/* if any argument */)
main()
exit(val)
__art_ims_return(val);
ノート:
prepro-ims.pl
は、メインフレームからオープン・システムへの一部の汎用Cの移植を処理できません。
親トピック: prepro-ims.pl