Lund Performance Solutions

XDSMAP is a library of plug-compatible modules that intercept calls to extra data segment intrinsics and map these calls to mapped files. The result is that calls to DMOVIN and DMOVOUT can be up to 20 times faster than the original intrinsic.


XDSMAP does not use the Compatibility Mode extra data segments, but rather creates temporary files to store the data segments. All of the extra data segment intrinsics (GETDSEG, ALTDSEG, FREEDSEG, DMOVIN, and DMOVOUT) are intercepted by XDSMAP. Each intrinsic performs the same functional operation as the original. These intrinsics can be called from any native mode program that uses extra data segments.

NOTE Privileged access to extra data segments is not supported.

Each XDSMAP intrinsic functions in a manner consistent with the documented functionality in the Hewlett-Packard Intrinsic Reference Manual. For the sake of completeness, a brief description of each intrinsic is provided in this chapter. Also, a small test program has been provided so that you may test these intrinsics on your system. Results from tests run on an HP 3000 S/925 are provided for comparison.
Lastly, the XDSMAP intrinsics return all error codes and conditions as documented in the Hewlett- Packard Intrinsic Reference Manual.


No special capabilities are required.


XDSMAP is delivered as a Native Mode object file which can be either linked directly to your program (preferred method where performance issues are of primary concern) or placed in an executable library (NMXL) for run-time binding.

Relocatable Library

:link from=myprog.o,xdsmap.o;to=myprog;cap=ia,ba,ds;rl=xdsmap.rl

Executable Library

:run myprog;xl="XDSMAP.XL"
:link from=myprog.o,xdsmap.o;to=myprog;cap=ia,ba,ds;xl=xdsmap.xl

Intrinsic Summary

Listed below is a summary list of XDSMAP intrinsics.
Table 10.1 XDSMAP Intrinsics
Adjusts size of extra data segment
Copies data into caller’s data area
Copies data into extra data segment
Deallocates memory
Allocates extra data segment for process use

Intrinsics Definitions

Following is a detailed definition for each of the XDSMAP intrinsics.


This intrinsic is used to adjust the size (up or down) of an extra data segment. The size cannot be increased above the original value allocated by GETDSEG. The calling sequence is as follows:

Figure 10.1 ALTDSEG Intrinsic


This intrinsic is used to copy data from the extra segment into the caller’s data area. The calling sequence is as follows:

Figure 10.2 DMOVIN Intrinsic


This intrinsic is used to copy data from the caller’s data area into an extra data segment. The calling sequence is as follows:

Figure 10.3 DMOVOUT Intrinsic


This intrinsic is used to deallocate the memory allocated by the GETDSEG intrinsic. The calling sequence is as follows:

Figure 10.4 FREEDSEG Intrinsic


This intrinsic is used for allocating or acquiring an extra data segment for use by a process. The calling sequence is as follows:

Figure 10.5 GETDSEG Intrinsic

XDSMAP Examples

Sample test program results. See the file TESTXDS.SPL.LPSTOOLS.

Figure 10.6 Compatibility Mode Output

Figure 10.7 Native Mode Output Without XDSMAP

Figure 10.8 Native Mode Output With XDSMAP
The sample test program TESTXDS.SPL.LPSTOOLS:

Figure 10.9 Test Program for XDSMAP

XDSMAP Error Messages

See the HP Intrinsic Reference Manual for possible error conditions.

Lund Performance Solutions
Voice: (541) 812-7600
Fax: (541) 81207611