hp.com home products and services support and drivers solutions how to buy
cd-rom home
End of Jump to page title
HP OpenVMS systems
documentation

Jump to content


Upgrading Privileged-Code Applications on OpenVMS Alpha and OpenVMS I64 Systems

Upgrading Privileged-Code Applications on OpenVMS Alpha and OpenVMS I64 Systems


Previous Contents Index

7.9 50-Bit Physical Address Search Command

Use the following command procedure to help identify which modules require changing for the 50-Bit PA project.

Note

This search command is so long that it only works on OpenVMS Alpha V7.3-2 or later versions that support longer DCL commands.

If you see the following DCL error:


%DCL-W-BUFOVF, command buffer overflow - shorten expression or command line 


move to a Version 7.3-2 or later system.


$! In the SEARCH command replace xxx with the list of files in your build 
$! environment where the relevant symbols might exist. For example, here is 
$! the one used for the VMS build. 
$! 
$! search resd$:[*.lis]*.lis,- 
$!        resd$:[lib*.src]*.mar,- 
$!        resd$:[lib*.src]*.req,- 
$!        resd$:[starlet*.src]*.mar,- 
$!        resd$:[starlet*.src]*.req,- 
$!        resd$:[lib_h.src]*.h - 
$! 
$! Note that it may not be sufficient to just search .LIS files. Macros and 
$! header files may also contain symbols that need to be examined. 
$! 
$! 
$ search xxx - 
! data cells 
        exe$gl_blakhole,- 
        mmg$gl_maxmem,- 
        mmg$gl_max_node_pfn,- 
        mmg$gl_max_shared_pfn,- 
        mmg$gl_maxpfn,- 
        mmg$gl_memsize,- 
        mmg$gl_minpfn,- 
        mmg$gl_min_node_pfn,- 
        mmg$gl_min_shared_pfn,- 
        mmg$gl_phypgcnt,- 
 mmg$gl_shared_l2pt_pfn,- 
        mmg$gl_syi_pfn_memory_map,- 
        mmg$gq_window_pte_pfn,- 
        mmg$gq_window2_pte_pfn,- 
        pfn$al_head,- 
        pfn$al_color_head,- 
        pfn$al_color_tail,- 
        pfn$al_count,- 
        pfn$al_hilimit,- 
        pfn$al_lolimit,- 
 pfn$al_mfylsthd,- 
        pfn$al_tail,- 
        pfn$gl_phypgcnt,- 
        sch$gl_freecnt,- 
        sch$gl_freelim,- 
        sch$gl_freereq,- 
        sch$gl_mfycnt,- 
        sch$gl_mfyl,- 
! routines 
        ioc$ptetopfn,- 
        ioc_std$ptetopfn,- 
        mmg$allo_contig,- 
        mmg$allo_contig_pfn,- 
        mmg$alloc_contig_color_a,- 
        mmg$alloc_contig_range,- 
        mmg$alloc_pfn,- 
        mmg$alloc_pfn_algnd_64,- 
        mmg$alloc_pfn_color_64,- 
        mmg$alloc_pfn_map_sva,- 
        mmg$alloc_sva_map,- 
        mmg$alloc_zero_algnd_64,- 
        mmg$alloc_zero_color_64,- 
        mmg$alloc_zero_pfn,- 
        mmg_std$allo_contig,- 
        mmg_std$allo_contig_a,- 
        mmg_std$allo_contig_pfn,- 
        mmg_std$allo_contig_pfn_a,- 
        mmg_std$alloc_ctg_pfn_map_sva,- 
        mmg_std$alloc_pfn_map_system_va,- 
        mmg_std$alloc_pfn_64,- 
        mmg_std$alloc_system_va_map,- 
        mmg_std$alloc_zero_pfn_64,- 
! macros 
        allocpfn,- 
        alloc_zero_pfn,- 
        call_ptetopfn,- 
! system services        
 sec$m_pfnmap,- 
        sys$create_gpfn,- 
        sys$crmpsc_gpfn_64,- 
        sys$crmpsc_pfn_64,- 
        syi$_max_pfn,- 
        syi$_pfn_memory_map,- 
! data structures 
        gsd$l_basepfn,- 
        gsd$l_pages,- 
        gsd$l_refcnt,- 
        pmap$,- 
        pmm$, - 
        pfn$l_blink,- 
        pfn$l_flink,- 
        pfn$l_pt_pfn,- 
        prcstr$l_pio_pfn,- 
        prcstr$l_p1pointer_pfn,- 
        pte$m_pfn,- 
        pte$s_pfn,- 
        pte$v_pfn 
$ exit 


Appendix A
Data Structure Changes

This appendix contains descriptions of the OpenVMS Alpha Version 7.0 I/O data structure changes made to support 64-bit addressing.

The data structures are listed in alphabetical order. However, the individual structure members are listed in the order in which they are defined within each data structure. Note, however, that the following sections only describe new or changed structure members. Existing unchanged members are not described. In addition, unused or "fill" structure members that might be added to obtain natural alignment are not listed. Thus, you can not use the following descriptions to calculate the precise memory layout of the structures. However, you can assume that any new or changed structure members will be naturally aligned within the structure.

A.1 Pointer Size Conventions

Any unqualified use of the term "pointer" implies a 32-bit pointer. All 64-bit pointers will be explicitly identified as either a 64-bit or quadword pointer.

As of OpenVMS Alpha Version 7.0, a new C compiler pragma controls the pointer size. To facilitate the use of 64-bit pointers, a new header file, far_pointers.h in SYS$STARLET_C.TLB, defines types for 64-bit pointers to the intrinsic C data types.

Table A-1 summarizes the 64-bit pointer data types.

Table A-1 64-Bit Pointer Data Types
Type Name 32-Bit Analog Description Defined by
CHAR_PQ char * 64-bit pointer to a char far_pointers.h
CHAR_PPQ char ** 64-bit pointer to a CHAR_PQ far_pointers.h
INT_PQ int * 64-bit pointer to a 32-bit int far_pointers.h
INT64_PQ int64 * 64-bit pointer to a 64-bit int far_pointers.h
UINT64_PQ uint64 * 64-bit pointer to a 64-bit int far_pointers.h
VOID_PQ void * 64-bit pointer to arbitrary data far_pointers.h
VOID_PPQ void ** 64-bit pointer to a VOID_PQ far_pointers.h
IOSB_PQ IOSB * 64-bit pointer to an IOSB structure iosbdef.h
IOSB_PPQ IOSB ** 64-bit pointer to an IOSB_PQ iosbdef.h
PTE_PQ PTE * 64-bit pointer to a PTE ptedef.h
PTE_PPQ PTE ** 64-bit pointer to a PTE_PQ ptedef.h

A.2 Buffer Object Descriptor (BOD)

This section describes the additions and changes to cells in the buffer object descriptor (BOD) structure (see Table A-2).

Table A-2 BOD Structure Changes
Field Type Comments
bod$v_s2_window Bit A bit equal to BOD$M_S2_WINDOW in the bod$l_flags cell.

When this bit is clear, the buffer object is mapped into the S0/S1 portion of system space and the bod$ps_svapte and bod$l_basesva cells are valid.

When this bit is set, the buffer object is mapped into the S2 portion of system space and the bod$pq_va_pte and bod$pq_basesva cells are valid.

bod$pq_basepva VOID_PQ Process virtual address for the start of the buffer object. This cell replaces the bod$l_basepva cell.
bod$l_basepva - This cell will be removed. It will be replaced by the bod$pq_basepva cell.
bod$pq_basesva VOID_PQ System virtual address for the start of the buffer object. This cell is overlaid on the bod$l_basesva cell and this use is valid only if BOD$M_S2_WINDOW is set in bod$l_flags .
bod$pq_va_pte PTE_PQ Virtual address for the first system PTE that maps the buffer object. This cell is overlaid on the bod$ps_svapte cell and this use is valid only if BOD$M_S2_WINDOW is set in bod$l_flags .


Previous Next Contents Index