HP 3000 Manuals

OCA Report Formats [ Migration Process Guide ] MPE/iX 5.0 Documentation


Migration Process Guide

OCA Report Formats 

A report is automatically generated for each file that OCA scans.  There
are two formats of the report:

   *   Brief format

   *   Detailed format

The brief report format provides only information directly related to the
ability of the program or SL file to migrate successfully.  This
information includes a list of potential incompatibilities detected
when OCA scanned the selected program or SL files.  Appendix D,
"Incompatibilities", provides detailed descriptions and corrective
actions to take for each of the incompatibilities detected by OCA.


NOTE It is highly recommended that you run the brief report first. Run the detailed report only on programs which have potential incompatibilities as identified in the brief report, or if the additional information is needed.
The detailed report format provides more information about the program than in the brief report format. It also provides the code locations of potential incompatibilities. This should be done only on programs which have incompatibilities as reported by the OCA brief report (and not disqualified by RTM). A detailed report can be used to locate privileged segments or provide a better understanding of the program's structure. The content of this report differs slightly depending on whether the file is a program file or an SL file. If you have the source file, following are two alternatives to using the detailed report to obtain the code location of incompatibilities. After you have used the OCA brief report format to identify the names of incompatible external procedures: * Use an editor to find the exact location in your source file of the call to the incompatible procedure. * Use the compiler listing and a cross reference to find the exact location of the call to the incompatible procedure. Output Device Specification If you use the ;OFFLINE option, you can direct OCA report or HELP text output to the OCA list file OCALIST. By default this file is assigned to the system line printer (DEV=LP). If you want to redirect output to a different device, you can create an MPE file equation using the :FILE command (either at the SCAN prompt or prior to running OCA) to redefine the characteristics for OCALIST. This file equation is invoked for file specification only if you specify ;OFFLINE. In the following example, the :FILE command, is invoked at the SCAN prompt to create a file equation for OCALIST then a file name is specified with the ;OFFLINE option: SCAN>:FILE OCALIST;DEV=EPOC SCAN>@TOOLS.SWAT;OFFLINE SCAN>?;OFFLINE At any prompt, you can use the ;OFFLINE option immediately after a question mark "?" to redirect the HELP text output associated with that prompt. In the example above, HELP text about the SCAN prompt is redirected to device EPOC. Contents of Brief and Detailed Report Formats The following tables summarize the types of information returned in the brief and detailed reports created by OCA. The tables mirror the sequence of sections of the OCA report. Sections printed only for program files are noted in the table description: * General Information (returned for program files only) * Segment Information * Resolved External Procedures * Unresolved External Procedures (returned for program files only) * Potential Incompatibilities * Intrinsic Mechanism Information General Information. Table B-1 summarizes the information returned in the "General Information" section of an OCA report. This information is returned only for program files; segmented library (SL) files do not have equivalent characteristics. The first two categories of information indicate potential migration issues. You should pay particular attention to whether or not the program file was prepped with Privileged Mode (PM) capability. In this case, check to see if your program file contains Privileged Mode segments. In general, use of Privileged Mode code in an application is much more likely to cause migration-related problems. Table B-1. General Information (program files only) ----------------------------------------------------------------------------------------------- | | | | | Information | Brief | Detailed | | | | | ----------------------------------------------------------------------------------------------- | | | | | Program capabilities(for example, IA,BA,DS,PM) | X | X | | | | | | Are there privileged segments? | X | X | | | | | | Initial stack info: size of program global area | | X | | (DB-QI) | | | | | | | | Initial stack info: size of program global (DL-DB) | | X | | | | | | Initial stack info: size of initial DL area | | X | | | | | | Initial stack info: program of MAXDATA size (DL-Z) | | X | | | | | | Was a program prepped with; FPMAP option | | X | | | | | ----------------------------------------------------------------------------------------------- Segment Information. Table B-2 summarizes the information returned in the "Segment Information" section of an OCA report. The "Segment Information" section returns information about all program/SL segments, as well as information about possible patch areas if the program/SL file is patched. If the "General Information" section of an OCA report indicates that the program file contains Privileged Mode segments, the "Segment Information" section is useful for determining which program/SL segments are privileged. Table B-2. Segment Information ----------------------------------------------------------------------------------------------- | | | | | Information | Brief | Detailed | | | | | ----------------------------------------------------------------------------------------------- | | | | | Table containing the segment name (SL files only), | | X | | segment number, segment length, and mode (User or | | | | Priv) | | | | | | | | Summary information: total code size | | X | | | | | | Summary information: average code segment size | | X | | | | | | Patch area information: program name(program fine | | X | | patch areas only) | | | | | | | | Patch area information: segment name | | X | | | | | | Patch area information: prep date/time | | X | | | | | | Patch area information: patch data/time | | X | | | | | | Patch area information: whether or not the patch area | | X | | has been altered | | | | | | | | Patch area information: an octal dump of the patch | | X | | area (only if the patch area has been altered) | | | | | | | ----------------------------------------------------------------------------------------------- Resolved External Procedures. Table B-3 summarizes the information returned in the "Resolved External Procedures" section of an OCA report. The "Resolved External Procedures" section of the report provides a complete list of all external procedures called by a program directly or indirectly. This section also provides a cross-reference of all the calls. External procedure calls originating from a segment in the system library SL.PUB.SYS will not be in the list. This section may be very long for large programs and for programs that use SL files. Hewlett-Packard recommends that you request this information only if you need to get a "feel" for what a program is doing, and how it does it (for example, if you are migrating a program you did not write). Table B-3. Resolved External Procedures ----------------------------------------------------------------------------------------------- | | | | | Information | Brief | Detailed | | | | | ----------------------------------------------------------------------------------------------- | | | | | The name of the external procedure | | X | | | | | | Library in which the external procedure resolved | | X | | (Group, Pub, System) | | | | | | | | Segment number of the segment(s) calling the procedure | | X | | | | | | SST number(s) for the PCAL to the procedure | | X | | | | | | PB relative offsets for the calls to the procedure | | X | | | | | ----------------------------------------------------------------------------------------------- Unresolved External Procedures. Table B-4 summarizes the information returned in the "Unresolved External Procedures" section of an OCA report. This section is printed only if the program file contains one or more unresolved external procedure references. This usually occurs when you do not specify the correct library at the SCAN prompt using the LIB= option. For best results, you should scan the program file using the same LIB= option as you would when you run the program. Table B-4. Unresolved External Procedures (program files only) ----------------------------------------------------------------------------------------------- | | | | | Information | Brief | Detailed | | | | | ----------------------------------------------------------------------------------------------- | | | | | A list of the external procedures which were | X | X | | unresolved | | | | | | | | The reason why the procedure was unresolved | X | X | | | | | ----------------------------------------------------------------------------------------------- Potential Incompatibilities. Table B-5 summarizes the information returned in the "Potential Incompatibilities" section of an OCA report. This section lists the potential migration issues you should expect to encounter.
NOTE You should read the messages encountered in this section, and refer to Appendix D, "Incompatibilities", for a more detailed explanation of the cause of the incompatibility, as well as possible corrective actions to take to remedy the problem.
It is possible that the OCA report may list calls to system intrinsics that you will be unable to locate in your code. This should not alarm you. Many MPE V/E compilers generate calls to system intrinsics on your behalf. For example, the COBOL II/V compiler generates a call to the system intrinsic XCONTRAP if you compile with the $CONTROL DEBUG option enabled. When you recompile your source code using an MPE/iX NM compiler, all compiler-generated external references will be properly handled by the compiler. It is also possible that the OCA report may list incompatibilities against SL procedures not actually referenced by the program. If your program refers to an entry in an SL segment (whether directly or indirectly), OCA scans all procedures found in the SL segment, whether or not they are actually referenced. This occurs because the whole SL segment (not just the referenced procedures) is bound to the program at run time. The recommended method of determining whether or not a reported procedure is actually called by a program is to enable RTM and run the program again. (For details on this method, refer to Appendix C, "Using the Run Time Monitor".) Table B-5. Potential Incompatibilities ----------------------------------------------------------------------------------------------- | | | | | Information | Brief | Detailed | | | | | ----------------------------------------------------------------------------------------------- | | | | | A list of all the incompatibilities detected | X | X | | | | | | The name of the incompatible procedure that is | X | X | | referenced. | | | | | | | | A brief message indicating the nature of the | X | X | | incompatibility. | | | | | | | | An indication of the mode in which a user would expect | X | X | | to encounter the problem (that is,CM only, CM/NM,NM | | | | only). | | | | | | | | A message number which can be cross-referenced with a | X | X | | number from RTM and looked up in Appendix D. | | | | | | | ----------------------------------------------------------------------------------------------- You can also use the source code of both the program and SL segments to determine which procedures are actually referred to by the program by successfully tracing reported procedures back to the main program. If you are an advanced user of MPE V/E, you can use the OCA detailed report with LIB=G/P along with PMAPs (created with the MPE V/E SEGMENTER) of all SL segments in question. Cross reference all reported procedures and determine whether the procedures are actually referred to. Summary Information. Table B-6 summarizes the information returned in the "Summary Information" section of an OCA report. This section reports total numbers of events listed in the "Potential Incompatibilities" section of the report. Table B-6. Summary Information ----------------------------------------------------------------------------------------------- | | | | | Information | Brief | Detailed | | | | | ----------------------------------------------------------------------------------------------- | | | | | Total number of CM only incompatibilities detected | X | X | | | | | | Total number of CM/NM incompatibilities detected | X | X | | | | | | Total number of NM only incompatibilities detected | X | X | | | | | | Total number of user-defined incompatibilities | X | X | | detected | | | | | | | | Total number of uncallable procedures detected | X | X | | | | | ----------------------------------------------------------------------------------------------- Intrinsic Mechanism Information. Table B-7 summarizes the information returned in the "Intrinsic Mechanism Information" section of an OCA report. This section briefly describes the intrinsic mechanism issue related to migration, and lists all of the names of the system intrinsics your program references. Using this list, you can consult your source code to determine if you actually used the intrinsic mechanism. The intrinsic mechanism issue related to migration is discussed below. Table B-7. Intrinsic Mechanism Information ----------------------------------------------------------------------------------------------- | | | | | Information | Brief | Detailed | | | | | ----------------------------------------------------------------------------------------------- | | | | | A message briefly explaining the intrinsic mechanism | X | X | | issue | | | | | | | | A list of all the intrinsics that the application | X | X | | references | | | | | | | ----------------------------------------------------------------------------------------------- Although you may not recognize it by the name intrinsic mechanism, the intrinsic mechanism has been an MPE V/E feature for a long time. All of the programming languages supported on MPE V/E allow users to call system-supplied routines, called intrinsics, without explicitly declaring the intrinsic parameters. The compilers determine if you are calling the procedure correctly by examining the file SPLINTR.PUB.SYS, which contains the declarations for all the system intrinsics. The MPE V/E intrinsic mechanism is provided as a convenience for users. It is a shorthand notation for calling external procedures, but it does not cause the compiler to generate code any differently than if the procedure is declared as an external procedure and is called as in the example above. MPE/iX also supports a set of NM compilers which handle the intrinsic mechanism in a slightly different manner. On MPE/iX, the intrinsic mechanism plays a more important part in the compilation process. The intrinsic file on MPE/iX, SYSINTR.PUB.SYS contains more information about the procedure which is being called. For example, it contains information about the mode in which the procedure executes (CM or NM) and about how it can be accessed via the Switch subsystem. Furthermore, it contains crucial information about the parameter alignment necessary for calling the procedure. If you plan to migrate your application to NM on MPE/iX, you must use the intrinsic mechanism to get correct results. By mandating the use of the intrinsic mechanism and enhancing it to contain several new features, MPE/iX will be able to provide a programmatic interface which is more flexible and extensible than the one currently provided by MPE V/E. Each of the MPE V/E programming language reference manuals contain a section on how to call system intrinsics. These manuals can be consulted to determine the appropriate syntax for the language you are using. If you are already using the intrinsic mechanism (not explicitly declaring the procedures or allowing the compiler to do it implicitly), you will not encounter any problems in this area when migrating to NM on MPE/iX. All of the languages supported on MPE/iX in NM have their own migration guides. These guides will provide you with additional information on the subject of the intrinsic mechanism and how to deal with any potential issues which may arise when recompiling to NM. Some of the MPE/iX compilers support special migration related compiler options which can be of great assistance in determining if you have a problem in this area. COBOL II/XL, for example, supports a $CONTROL CALLINTRINSIC option which will generate a warning if your program contains calls to system intrinsics without using the intrinsic mechanism. It is possible that the OCA report may list calls to system intrinsics that you will be unable to locate in your code. This should not alarm you. Many of the MPE V/E compilers will generate calls to MPE V/E system intrinsics on your behalf. For example, most of the compilers will generate a call to the system intrinsic TERMINATE which handles terminating your process when your program is done executing. Any procedure names which you find in the list generated by OCA but cannot find references to in your source code fall into this category. When you recompile your source code on MPE/iX using NM compilers, all compiler-generated external references are handled through the intrinsic mechanism. Sample Brief Report Figure B-3 provides a sample of a brief OCA report. _______________________________________________________________________________________ | | | OCA HP30365A.00.05 (Cat A.00.05) - THU, OCT 23, 1986, 11:01 AM Page | | No. 1 Report for STICP.SOOL.MPEV ;LIB=G ;BRIEF | | | | G E N E R A L I N F O R M A T I O N | | | | Program was prepped with ;CAPS=BA,IA. | | Program contains only user mode segments. | | | | P O T E N T I A L I N C O M P A T I B I L I T I E S | | | | Incompatibilities detected in the program file "STICP.SOOL.MPEV". | | | | FCONTROL: *** System Defined Incompatibility *** | | - Some FCONTROL controlcodes are no longer valid | | on MPE/iX (CM/NM 500). | | These control codes include: 03, 48. | | | | Incompatibilities detected in the group SL (SL.SOOL.MPEV). | | | | CREATEPROCESS: *** System Defined Incompatibility *** | | - CREATEPROCESS may encounter byte pointer problems | | in NM on MPE/iX (NM 107). | | | | FCONTROL: *** System Defined Incompatibility *** | | - Some FCONTROL controlcodes are no longer valid | | on MPE/iX (CM/NM 500). | | These controlcodes include: 03, 48. | | | | S U M M A R Y I N F O R M A T I O N | | | | NM Only Incompatibilities:1 | | CM/NM Incompatibilities:2 | | Uncallable Procedures Detected:0 | | | | I N T R I N S I C M E C H A N I S M I N F O R M A T I O N | | | | | | Applications being recompiled to native mode must | | use the intrinsic mechanism for system intrinsics. | | | | Number of procedures requiring the intrinsic mechanism: 3 | | | | Procedures from STICP.SOOL.MPEV requiring the intrinsic mechanism:FCONTROL| | | | Procedures from SL.SOOLMPEV requiring the intrinsic mechanism: | | CREATPROCESS FCONTROL | | | _______________________________________________________________________________________ Figure B-3. Sample Brief Report Sample Detailed Report Figure B-4 provides a multipage sample of a detailed OCA report. It provides an expanded listing of general information, segment information, and resolved external procedures. __________________________________________________________________________________ | | | OCA HP30365A.00.05 (Cat A.00.05) - THU, OCT 23, 1986, 11:01 AM Page | | No. 1 Report for STICP.SOOL.MPEV ;LIB=G ;DETAILED | | | | G E N E R A L I N F O R M A T I O N | | | | Program was prepped with ;CAPS=BA,IA. | | Program contains only user mode segments. | | | | Program was prepped with ;CAPS=BA,IA. | | Program contains only user mode segments. | | | | Initial Stack Information: | | Size of initial DL area (DL-DB): 0 (%000000) | | Size of program global area (DB-QI): 284 (%000434) | | Size of initial stack (QI-Z): 4256 (%010240) | | ;MAXDATA= was not specified on :PREP command. | | | | S E G M E N T I N F O R M A T I O N | | | | Segment information for the program file "STICP.SOOL.MPEV". | | Total number of segments: 1 | | Starting segment number: 0 | | | | Segment Segment | | Number Length (%octal) Mode | | ================================================= | | %00000 76 (%00114) USER | | | | Total code segment size: 76 Average code segment size: 76 | | | | Information for referenced segments in the group SL (SL.SOOL.MPEV). | | Number of segments referenced: 1 | | | | Segment Segment Segment | | Name Number Length (%octal) Mode | | ============================================================= | | STICK %00000 72 (%00110) USER | | | | Total code segment size: 72 Average code segment size: 72 | | | | Information for referenced segments in the account SL (SL.PUB.MPEV).| | No externals resolved to this SL. | | NOTE : This application does not require this SL to migrate. | | | | Entry Point PB Relative Address Stt Number | | ==================================================== | | OB' %000013 %000001 | __________________________________________________________________________________ Figure B-4. Sample Detailed OCA Report Page 1 ________________________________________________________________________ | | | R E S O L V E D E X T E R N A L P R O C E D U R E S| | | | External references of the program "STICP.SOOL.MPEV". | | Called At Resolved To | | ------------------ ----------- | | Procedure Name Seg Num STT Num LIB | | ===================================================== | | FCONTROL %00000 8 SYSTEM | | | | **** O F F S E T S **** | | | | %000061 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to FCONTROL: 1 | | Number of segments which call FCONTROL: 1 | | | | Called At Resolved To | | ------------------ ----------- | | Procedure Name Seg Num STT Num LIB | | ===================================================== | | P'CLOSEIO %00000 5 SYSTEM | | | | **** O F F S E T S **** | | | | %000072 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to P'CLOSEIO: 1 | | Number of segments which call P'CLOSEIO: 1 | | | | Called At Resolved To | | ------------------ ----------- | | Procedure Name Seg Num STT Num LIB | | ====================================================== | | P'INITHEAP'3000 %00000 6 SYSTEM | | | | **** O F F S E T S **** | | | | %000016 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to P'INITHEAP'3000: 1 | | Number of segments which call P'INITHEAP'3000: 1 | ________________________________________________________________________ Figure B-5. Sample Detailed OCA Report Page 2 ___________________________________________________________________ | | | Called At Resolved To| | ------------------ -----------| | Procedure Name Seg Num STT Num LIB | | =====================================================| | P'RESET %00000 3 SYSTEM | | | | **** O F F S E T S **** | | %000052 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to P'RESET: 1 | | Number of segments which call P'RESET: 1 | | | | Called At Resolved To| | ------------------ -----------| | Procedure Name Seg Num STT Num LIB | | =====================================================| | P'REWRITE %00000 4 SYSTEM | | | | **** O F F S E T S **** | | %000035 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to P'REWRITE: 1 | | Number of segments which call P'REWRITE: 1 | | | | Called At Resolved To| | ------------------ -----------| | Procedure Name Seg Num STT Num LIB | | =====================================================| | PROCA %00000 7 GROUP | | | | **** O F F S E T S **** | | %000067 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to PROCA: 1 | | Number of segments which call PROCA: 1 | | | | Called At Resolved To| | ------------------ -----------| | Procedure Name Seg Num STT Num LIB | | =====================================================| | TERMINATE' %00000 2 SYSTEM | ___________________________________________________________________ Figure B-6. Sample Detailed OCA Report Page 3 _______________________________________________________________________________ | | | **** O F F S E T S **** | | | | %000073 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to TERMINATE': 1 | | Number of segments which call TERMINATE': 1 | | | | External references inherited from the group SL (SL.SOOL.MPEV). | | Called At Resolved To | | ------------------ ----------- | | Procedure Name Seg Num STT Num LIB | | ===================================================== | | CREATEPROCESS %00000 2 SYSTEM | | | | **** O F F S E T S **** | | | | %000072 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to CREATEPROCESS: 1 | | Number of segments which call CREATEPROCESS: 1 | | | | Called At Resolved To | | ------------------ ----------- | | Procedure Name Seg Num STT Num LIB | | ===================================================== | | FCONTROL %00000 3 SYSTEM | | | | **** O F F S E T S **** | | | | %000032 | | | | Total Number of calls in segment 0: 1 | | | | Total number of calls to FCONTROL: 1 | | Number of segments which call FCONTROL: 1 | | | | P O T E N T I A L I N C O M P A T I L I T I E S | | | | Incompatibilities detected in the program file "STICP.SOOL.MPEV".| | | | FCONTROL: *** System Defined Incompatibility *** | | - Some FCONTROL controlcodes are no longer valid | | on MPE/iX (CM/NM 500). | | These controlcodes include: 03, 48. | | | _______________________________________________________________________________ Figure B-7. Sample Detailed OCA Report Page 4 ________________________________________________________________________________ | | | Incompatibilities detected in the group SL (SL.SOOL.MPEV). | | | | CREATEPROCESS: *** System Defined Incompatibility *** | | - CREATPROCESS may encounter byte pointer problems | | in NM on MPE/iX (NM 107). | | | | FCONTROL: *** System Defined Incompatibility *** | | - Some FCONTROL controlcodes are no longer valid | | on MPE/iX (CM/NM 500 | | These controlcodes include: 03,48. | | | | S U M M A R Y I N F O R M A T I O N | | | | NM Only Incompatibilities: 1 | | CM/NM Incompatibilities: 2 | | Uncallable Procedures Detected: 0 | | | | I N T R I N S I C M E C H A N I S M I N F O R M A T I O N| | | | Applications being recompiled to native mode must use the intrinsic| | mechanism for system intrinsics. | | | | Number of procedures requiring the intrinsic mechanism: 3 | | | | Procedures from STICP.SOOL.MPEV requiring the intrinsic mechanism: | | FCONTROL | | | | Procedures from SL.SOOL.MPEV requiring the intrinsic mechanism: | | CREATEPROCESS FCONTROL | ________________________________________________________________________________ Figure B-8. Sample Detailed OCA Report Page 5


MPE/iX 5.0 Documentation