  | 
		
Upgrading Privileged-Code Applications on OpenVMS Alpha and
  OpenVMS I64 Systems
Order Number: AA--QSBGD--TE
 
  
January 2005
 
 Alpha and I64 privileged-code applications link against the system base image
  (SYS$BASE_IMAGE.EXE) on OpenVMS. This guide explains the changes that might
  affect privileged-code applications as a result of the OpenVMS Alpha 64-bit
  virtual addressing and kernel threads support provided in OpenVMS Alpha Version
  7.0 and later, as well as changes to OpenVMS infrastructure to support OpenVMS
  I64.
 Privileged-code applications from versions prior to OpenVMS Alpha Version
  7.0 might require the source-code changes described in this guide.
 Revision/Update Information:This manual supersedes
  the OpenVMS Guide to Upgrading Privileged-Code Applications, Version
  7.3.
 Software Version:OpenVMS I64 Version 8.2
 OpenVMS Alpha Version 8.2 
 Hewlett-Packard Company  
  Palo Alto, California
 
  
© 2005 Hewlett-Packard Development Company, L.P.
 Confidential computer software. Valid license from HP required for possession,
  use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer
  Software, Computer Software Documentation, and Technical Data for Commercial
  Items are licensed to the U.S. Government under vendor's standard commercial
  license.
 The information contained herein is subject to change without notice. The
  only warranties for HP products and services are set forth in the express warranty
  statements accompanying such products and services. Nothing herein should be
  construed as constituting an additional warranty. HP shall not be liable for
  technical or editorial errors or omissions contained herein.
 Intel and Itanium are trademarks or registered trademarks of Intel Corporation
  or its subsidiaries in the United States and other countries.
 Printed in the US
 
 ZK6466 
The HP OpenVMS documentation set is available on CD-ROM.
 
 
  
Preface
Alpha privileged-code applications link against the system base image (SYS$BASE_IMAGE.EXE)
  on OpenVMS Alpha. This guide explains the changes that might impact Alpha privileged-code
  applications as a result of the OpenVMS Alpha 64-bit virtual addressing and
  kernel threads support provided in OpenVMS Alpha Version 7.0.
 This guide is intended to help developers using privileged-code interfaces
  understand how the changes in OpenVMS Alpha Version 7.0 might affect their
  applications and device drivers.
 Nonprivileged code applications should not require any source code changes
  and should run without modification on OpenVMS Alpha Versions 7.0 and 7.1.
 The information in this document applies only to privileged-code applications
  on OpenVMS Alpha systems; applications on OpenVMS VAX systems are not affected.
 
 
  
    
      
          OpenVMS Alpha 7.3 Note
        
         
        Privileged-code applications and device drivers that
        were recompiled and relinked to run on OpenVMS Alpha Version 7.0 do not
        require source-code changes and do not have to be recompiled and relinked
        to run on OpenVMS Alpha Version 7.3. 
         
        However, privileged-code applications from releases prior to OpenVMS
        Alpha Version 7.0 that were not recompiled and relinked for OpenVMS Alpha
        Version 7.0, might need to be recompiled and relinked to run on OpenVMS
        Alpha Version 7.3 and might require source-code changes as described
        in this guide. 
         
        For more information about recompiling and relinking privileged-code
        applications and device drivers for OpenVMS Alpha Version 7.3, see OpenVMS
        Version 7.1 Release Notes.   | 
     
   
Intended Audience
This guide is intended for system programmers who use privileged-mode interfaces
  in their applications.
 Document Structure
The guide is divided into three parts:
 
  - Part I describes the infrastructure changes that might affect privileged-code
    applications and provides guidelines for upgrading them to OpenVMS Alpha
    Version 7.0.
  
 - Part II describes the changes that can be made to customer-written system
    services and device drivers to support 64-bit addresses and kernel threads.
  
 - The appendixes contain descriptions of I/O routines, I/O data structures,
    kernel threads routines, and kernel threads macros.
  
For more information about how to use this guide, see Chapter
    1.
 Related Documents
 
  - OpenVMS Alpha Guide to 64-Bit Addressing and VLM Features1
  
 - OpenVMS Programming Concepts Manual
  
 - OpenVMS Record Management Services Reference Manual
  
 - HP OpenVMS System Services Reference Manual: A--GETUAI and HP
      OpenVMS System Services Reference Manual: GETUTC--Z
  
For additional information about HP OpenVMS products and services, visit the
  following World Wide Web address:
 
 
  
      
      
      http://www.hp.com/go/openvms  
      
 |   
 
  
    
      
        
          Note 
        
         
        
        1  This manual has been archived but
          is available on the OpenVMS Documentation CD-ROM.
          This information has also been included in the OpenVMS Programming
          Concepts Manual, Volume I.
          | 
     
   
 Reader's Comments
HP welcomes your comments on this manual. Please send comments to either of
  the following addresses:
 
  
    |  Internet  | 
     openvmsdoc@hp.com  | 
   
  
    |  Postal Mail  | 
     Hewlett-Packard Company  
      OSSG Documentation Group, ZKO3-4/U08  
      110 Spit Brook Rd.  
      Nashua, NH 03062-2698  | 
   
 
How to Order Additional Documentation
For information about how to order additional documentation, visit the following
  World Wide Web address:
 
 
  
      
      
      http://www.hp.com/go/openvms/doc/order  
      
 |   
Conventions
The following product names may appear in this manual:
 
  - HP OpenVMS Industry Standard 64 for Integrity servers
  
 - OpenVMS I64
  
 - I64
  
All three names---the longer form and the two abbreviated forms---refer to
  the version of the OpenVMS operating system that runs on the Intel® Itanium® architecture.
 The following typographic conventions may be used in this manual:
 
  
    |  Ctrl/ x  | 
     A sequence such as Ctrl/ x indicates that you must hold down
      the key labeled Ctrl while you press another key or a pointing device button.  | 
   
  
    |  PF1 x  | 
     A sequence such as PF1 x indicates that you must first press
      and release the key labeled PF1 and then press and release another key
      or a pointing device button.  | 
   
  
    |  [Return]  | 
     In examples, a key name enclosed in a box indicates that you press a
      key on the keyboard. (In text, a key name is not enclosed in a box.)
        In the HTML version of this document, this convention appears as brackets,
        rather than a box.   | 
   
  
    |  ...  | 
     A horizontal ellipsis in examples indicates one of the following possibilities:
      
        - Additional optional arguments in a statement have been omitted.
        
 - The preceding item or items can be repeated one or more times.
        
 - Additional parameters, values, or other information can be entered.
      
  
     | 
   
  
     .  
      .  
      .  | 
     A vertical ellipsis indicates the omission of items from a code example
      or command format; the items are omitted because they are not important
      to the topic being discussed.  | 
   
  
    |  ( )  | 
     In command format descriptions, parentheses indicate that you must enclose
      choices in parentheses if you specify more than one.  | 
   
  
    |  [ ]  | 
     In command format descriptions, brackets indicate optional choices.
      You can choose one or more items or no items. Do not type the brackets
      on the command line. However, you must include the brackets in the syntax
      for OpenVMS directory specifications and for a substring specification
      in an assignment statement.  | 
   
  
    |  |  | 
     In command format descriptions, vertical bars separate choices within
      brackets or braces. Within brackets, the choices are optional; within braces,
      at least one choice is required. Do not type the vertical bars on the command
      line.  | 
   
  
    |  { }  | 
     In command format descriptions, braces indicate required choices; you
      must choose at least one of the items listed. Do not type the braces on
      the command line.  | 
   
  
    |  bold text  | 
     This typeface represents the introduction of a new term. It also represents
      the name of an argument, an attribute, or a reason.  | 
   
  
    |  italic text  | 
     Italic text indicates important information, complete titles of manuals,
      or variables. Variables include information that varies in system output
      (Internal error number), in command lines (/PRODUCER= name),
      and in command parameters in text (where dd represents the predefined
      code for the device type).  | 
   
  
    |  UPPERCASE TEXT  | 
     Uppercase text indicates a command, the name of a routine, the name
      of a file, or the abbreviation for a system privilege.  | 
   
  
    |   Monospace text   | 
     Monospace type indicates code examples and interactive screen displays.
       In the C programming language, monospace type in text identifies the
        following elements: keywords, the names of independently compiled external
        functions and files, syntax summaries, and references to variables or
        identifiers introduced in an example.   | 
   
  
    |  -  | 
     A hyphen at the end of a command format description, command line, or
      code line indicates that the command or statement continues on the following
      line.  | 
   
  
    |  numbers  | 
     All numbers in text are assumed to be decimal unless otherwise noted.
      Nondecimal radixes---binary, octal, or hexadecimal---are explicitly indicated.  | 
   
 
  
  
		 |