IMS 安裝層次 API 的 CALL 要求 (CALL)

使用 DFSGVRM API 的 CALL 功能,以取得 IMS 系統的版本、版次及修正層次。

當呼叫端應用程式發出 CALL 要求時, IMS 會建置參數清單以呼叫模組 DFSGVRM0,且參數清單由 DFSGVRMP 對映。 參數清單的儲存體由呼叫端應用程式取得,且長度必須為 GVRMP_LN。 使用 CALL 要求上的 PARMS 參數,將參數清單的位址指定為符號或暫存器。

CALL 函數會傳回包含 IMS 安裝層次且由DFSGVRMO對映的輸出區域。 輸出區域的位址位於參數清單的 GVRMP_A_OUTPUT_AREA 欄位中。 您可以選擇性地在 CALL 要求上使用 RETAREA 參數,以指定接收輸出區域位址的暫存器。 指定 RETAREA 參數可讓您避免呼叫端應用程式必須直接參照參數清單中的欄位。

如果在 CALL 函數傳回輸出區域之後, RETAREA 暫存器或參數清單欄位 GVRMP_A_OUTPUT_AREA 不是零,則不論呼叫端應用程式必須使用 REL 函數來釋放輸出儲存區的回覆碼。

CALL 要求的語法

讀取語法圖跳過視覺化語法圖DFSGVRMFUNCTION=CALL, PARMS =符號( R2 - R12),LOC=31,LOC=24, RETAREA=( R2 - R12)

CALL 要求的參數

PARMS=符號 | (R2-R12)
指定要呼叫模組 DFSGVRM0的參數清單位址。 參數清單由 DFSGVRMP 對映。

如果指定為符號,則符號必須代表長度為 GVRMP_LN 的儲存體區域。

如果指定為暫存器,則暫存器必須指向長度為 GVRMP_LN 的區域。

RETAREA = (R2-R12)
指定接收 DFSGVRM 模組所傳回且由DFSGVRMO對映之輸出區域位址的暫存器。

這是選用的參數。

如果未指定此參數,則輸出區域的位址位於參數清單的 GVRMP_A_OUTPUT_AREA 欄位中。

發出 CALL 功能的應用程式負責在 RETAREA 暫存器或 GVRMP_A_OUTPUT_AREA 欄位為非零時釋放輸出區域,不論巨集回覆碼為何。 當傳回的輸出區域不存在時,輸出區域位址會設為零。

LOC=24|31
指定是否應從低於 (LOC=24) 或高於 (LOC=31) 16 MB 線擷取輸出區域。

這是選用的參數。

如果未指定此參數,則區域高於 16 MB 線 (LOC=31)。

CALL 要求的回覆碼和原因碼

發出 DFSGVRM FUNCT=CALL 要求時, IMS 會傳回暫存器 15 中的回覆碼,以及暫存器 0 中的原因碼。

表 1. CALL 要求的回覆碼和原因碼
回覆碼 原因碼 意義
X'00000000 ' X'00000000 ' 已順利完成要求。
X'00000008 ' X'yyyyzzzz' 無法 LOAD 模組 DFSGVRM0。
在原因碼中:
yyyy
是 LOAD 發出的 ABEND 程式碼的低階 2 位元組。
zzzz
是已發出的 ABEND 原因碼的低順序 2 位元組。
X'0000000C' DELETE 巨集的回覆碼 在順利呼叫 DFSGVRM0之後,嘗試刪除模組 DFSGVRM0 失敗。

提供的退貨區域有效且可供使用。

X'00000010 ' 來自 STORAGE RELEASE 的回覆碼 無法釋放 AREA= 參數所參照的輸出區域。
X'00001008 ' 儲存體取得的回覆碼 DFSGVRM0 模組無法取得輸出區域的儲存體。
X'0000100C' X'yyyyzzzz' 無法載入模組 DFSVC000。
在原因碼中:
yyyy
是 LOAD 發出的 ABEND 程式碼的低階 2 位元組。
zzzz
是已發出的 ABEND 原因碼的低順序 2 位元組。
X'000010FF' 各種 發生內部錯誤。