|
HP OpenVMS systems documentation |
Previous | Contents | Index |
Use the following command procedure to help identify which modules require changing for the 50-Bit PA project.
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:
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 |
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.
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 |
This section describes the additions and changes to cells in the buffer object descriptor (BOD) structure (see Table A-2).
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 |