Status Area [ TurboIMAGE/XL Database Management System Reference Manual ] MPE/iX 5.0 Documentation
TurboIMAGE/XL Database Management System Reference Manual
Status Area
All addresses on MPE/iX are 32 bits. This has necessitated a change in
some of the information returned in the status area by TurboIMAGE/XL
library procedures.
Major Differences
Because TurboIMAGE/XL uses MPE/iX mapped files, DBOPEN calls HPFOPEN to
open these mapped files. If an error occurs during this process, the
condition code -9, formerly used to indicate an MPE/iX GETDSEG failure,
is now used to indicate an MPE/iX HPFOPEN failure. DBOPEN returns the
HPFOPEN status in the status array as shown in Table H-3 :
Table H-3. Condition Code -9 Status Array
--------------------------------------------------------------------------------------------
- Element - Content -
--------------------------------------------------------------------------------------------
- 1 - -9 -
--------------------------------------------------------------------------------------------
- 2 - Control Block Code -
- - DBG = 1 -
- - DBU = 2 -
- - DBR = 3 -
- - DBS = 4 -
- - DBUX = 5 -
--------------------------------------------------------------------------------------------
- 3 - HPFOPEN File System Error (16 bits) -
--------------------------------------------------------------------------------------------
- 4 - File System Intrinsic Code -
--------------------------------------------------------------------------------------------
When DBOPEN is successful, elements 3 and 4 still contain the size, in
halfwords, of the DBG and DBU respectively. However, because the maximum
value that can be reported is 32,768 halfwords (65,536 bytes), if the DBG
or the DBU/DBR is larger than that, only 32,768 halfwords are reported in
the status area. Note that although on MPE/iX words are 32-bit words,
TurboIMAGE/XL still returns all lengths in the status area as the number
of 16-bit halfwords.
For applications in Compatibility Mode (CM):
* Switch stubs translate the information returned to the status area
by TurboIMAGE/XL. After translation, each element of the status
area contains the information expected by TurboIMAGE/XL
applications with one exception. Element 10 contains the relative
address of the switch stub rather than that of the actual library
procedure (intrinsic).
For applications in Native Mode (NM):
* On TurboIMAGE/XL, elements 5 and 10 of the status area do not
contain code offsets because they are now 32 bits. Halfwords 5
and 10 return 0.
* Halfwords 7 and 8 contain the 32-bit address of the database
parameter.
* DBEXPLAIN cannot find complete information in the status area for
its explanation. To solve this problem, TurboIMAGE/XL places the
missing information in the DBU, which DBEXPLAIN now references.
However, the application must call DBEXPLAIN immediately after the
status information is received. If any other library procedure is
called between the time the error status is returned and DBEXPLAIN
is called, DBEXPLAIN displays the last information stored in the
DBU, which may or may not belong to the library procedure that
encountered the error. This could affect applications that use
two or more different status arrays.
Table H-4 compares elements 5 through 10 of the TurboIMAGE/V status
area with elements 5 through 10 of the TurboIMAGE/XL status area. If an
error occurs, this information is returned for all library procedures.
If the procedure executes successfully, this information is returned for
DBBEGIN, DBCLOSE, DBCONTROL, DBEND, DBINFO, DBLOCK, DBMEMO, and DBOPEN.
Table H-4. Status Area Changes for MPE/iX Applications
------------------------------------------------------------------------------------------------
| | | |
| Element | TurboIMAGE/V and Compatibility Mode | TurboIMAGE/XL |
| | | |
------------------------------------------------------------------------------------------------
| | | |
| 5 | PB-relative address of the caller. | 0 (moved to DBU) |
| | | |
------------------------------------------------------------------------------------------------
| | | |
| 6 | Bits 7-15: Intrinsic number of | No change. |
| | called library procedure. | |
| | Bits 0-3: Zero or access mode in | |
| | which database is opened. | |
| | | |
------------------------------------------------------------------------------------------------
| | | |
| 7 | 16-bit address of the database. | First 16 bits of the database |
| | | address. |
| | | |
------------------------------------------------------------------------------------------------
| | | |
| 8 | 16-bit address of the data set name | Second 16 bits of database address |
| | or qualifier. | (data set or qualifier address moved |
| | | to DBU). |
| | | |
------------------------------------------------------------------------------------------------
| | | |
| 9 | Value of the mode parameter. | No change. |
| | | |
------------------------------------------------------------------------------------------------
| | | |
| 10 | PB-relative address of the library | 0 (moved to DBU) |
| | procedure or the Compatibility Mode | |
| | switch stub. | |
| | | |
------------------------------------------------------------------------------------------------
MPE/iX 5.0 Documentation