[an error occurred while processing this directive]

HP OpenVMS Systems

C Programming Language
Content starts here HP C

HP C
User's Guide for OpenVMS Systems


Previous Contents Index

Chapter 4
4 Data Storage and Representation
     4.1     Storage Allocation
     4.2     Standard-Conforming Method of Controlling External Objects
     4.3     Global Storage Classes
         4.3.1         The globaldef and globalref Specifiers
         4.3.2         Comparing the Global and the External Storage Classes
         4.3.3         The globalvalue Specifier
     4.4     Storage-Class Modifiers
         4.4.1         The noshare Modifier
         4.4.2         The readonly Modifier
         4.4.3         The _align Modifier
     4.5     Floating-Point Numbers (float, double, long double)
     4.6     Pointer Conversions
     4.7     Structure Alignment
         4.7.1         Bit-Field Alignment
         4.7.2         Bit-Field Initialization
         4.7.3         Variant Structures and Unions
     4.8     Program Sections
         4.8.1         Attributes of Program Sections
         4.8.2         Program Sections Created by HP C
Chapter 5
5 Preprocessor Directives
     5.1     CDD/Repository Extraction (#dictionary)
     5.2     File Inclusion (#include)
         5.2.1         Inclusion Using Angle Brackets
         5.2.2         Inclusion Using Quotation Marks
         5.2.3         Inclusion of Text Modules
         5.2.4         Macro Substitution in #include Directives
     5.3     Changing the Default Object Module Name and Identification (#module)
     5.4     Implementation-Specific Preprocessor Directive (#pragma)
         5.4.1         #pragma assert Directive
             5.4.1.1             #pragma assert func_attrs
             5.4.1.2             #pragma assert global_status_variable
             5.4.1.3             Usage Notes
             5.4.1.4             #pragma assert non_zero
         5.4.2         #pragma builtins Directive
         5.4.3         #pragma dictionary Directive
         5.4.4         #pragma environment Directive
         5.4.5         #pragma extern_model Directive
             5.4.5.1             Syntax
             5.4.5.2             #pragma extern_model common_block
             5.4.5.3             #pragma extern_model relaxed_refdef
             5.4.5.4             #pragma extern_model strict_refdef
             5.4.5.5             #pragma extern_model globalvalue
             5.4.5.6             #pragma extern_model save
             5.4.5.7             #pragma extern_model restore
             5.4.5.8             Effects on the HP C Run-Time Library and User Programs
             5.4.5.9             Example
         5.4.6         #pragma extern_prefix Directive
         5.4.7         #pragma function Directive
         5.4.8         #pragma [no]include_directory Directive
         5.4.9         #pragma [no]inline Directive
         5.4.10         #pragma intrinsic Directive
         5.4.11         #pragma linkage Directive (ALPHA ONLY)
         5.4.12         #pragma linkage Directive (I64 ONLY)
             5.4.12.1             #pragma linkage Format
                 5.4.12.1.1                 Register Mapping
                 5.4.12.1.2                 Mapping Diagnostics
             5.4.12.2             #pragma linkage_ia64 Format
         5.4.13         #pragma [no]member_alignment Directive
         5.4.14         #pragma message Directive
             5.4.14.1             #pragma message option1
             5.4.14.2             #pragma message option2
             5.4.14.3             #pragma message (quoted-string)
         5.4.15         #pragma module Directive
         5.4.16         #pragma names Directive
         5.4.17         #pragma optimize Directive
         5.4.18         #pragma pack Directive
         5.4.19         #pragma pointer_size Directive
         5.4.20         #pragma required_pointer_size Directive
         5.4.21         #pragma [no]standard Directive
         5.4.22         #pragma unroll Directive
         5.4.23         #pragma use_linkage Directive
Chapter 6
6 Predefined Macros and Built-In Functions
     6.1     Predefined Macros
         6.1.1         CC$gfloat (G_Floating Identification Macro)
         6.1.2         System Identification Macros
             6.1.2.1             The __DECC_VER Macro
             6.1.2.2             The __VMS_VER Macro
         6.1.3         Standards Conformance Macros
         6.1.4         Floating-Point Macros
         6.1.5         Compiler-Mode Macros
         6.1.6         Pointer-Size Macro
         6.1.7         The __HIDE_FORBIDDEN_NAMES Macro
     6.2     Built-In Functions
         6.2.1         Built-In Functions for OpenVMS Alpha Systems (ALPHA ONLY)
             6.2.1.1             Translation Macros for VAX C Built-in Functions
             6.2.1.2             In-line Assembly Code---ASMs
             6.2.1.3             Absolute Value ( __ABS)
             6.2.1.4             Acquire and Release Longword Semaphore (__ACQUIRE_SEM_LONG, __RELEASE_SEM_LONG)
             6.2.1.5             Add Aligned Word Interlocked ( __ADAWI)
             6.2.1.6             Add Atomic Longword ( __ADD_ATOMIC_LONG)
             6.2.1.7             Add Atomic Quadword ( __ADD_ATOMIC_QUAD)
             6.2.1.8             Allocate Bytes from Stack ( __ALLOCA)
             6.2.1.9             AND Atomic Longword ( __AND_ATOMIC_LONG)
             6.2.1.10             AND Atomic Quadword ( __AND_ATOMIC_QUAD)
             6.2.1.11             Atomic Add Longword (__ATOMIC_ADD_LONG)
             6.2.1.12             Atomic Add Quadword (__ATOMIC_ADD_QUAD)
             6.2.1.13             Atomic AND Longword (__ATOMIC_AND_LONG)
             6.2.1.14             Atomic AND Quadword (__ATOMIC_AND_QUAD)
             6.2.1.15             Atomic OR Longword (__ATOMIC_OR_LONG)
             6.2.1.16             Atomic OR Quadword (__ATOMIC_OR_QUAD)
             6.2.1.17             Atomic Increment Longword (__ATOMIC_INCREMENT_LONG)
             6.2.1.18             Atomic Increment Quadword (__ATOMIC_INCREMENT_QUAD)
             6.2.1.19             Atomic Decrement Longword (__ATOMIC_DECREMENT_LONG)
             6.2.1.20             Atomic Decrement Quadword (__ATOMIC_DECREMENT_QUAD)
             6.2.1.21             Atomic Exchange Longword (__ATOMIC_EXCH_LONG)
             6.2.1.22             Atomic Exchange Quadword (__ATOMIC_EXCH_QUAD)
             6.2.1.23             Compare Store Longword ( __CMP_STORE_LONG)
             6.2.1.24             Compare Store Quadword ( __CMP_STORE_QUAD)
             6.2.1.25             Convert G_Floating to F_Floating Chopped ( __CVTGF_C)
             6.2.1.26             Convert G_Floating to Quadword ( __CVTGQ)
             6.2.1.27             Convert IEEE T_Floating to IEEE S_Floating Chopped ( __CVTTS_C)
             6.2.1.28             Convert IEEE T_Floating to Quadword ( __CVTTQ)
             6.2.1.29             Convert X_Floating to Quadword ( __CVTXQ)
             6.2.1.30             Convert X_Floating to IEEE T_Floating Chopped ( __CVTXT_C)
             6.2.1.31             Copy Sign Built-in Functions
             6.2.1.32             Cosine ( __COS)
             6.2.1.33             Double-Precision, Floating-Point Arithmetic Built-in Functions
             6.2.1.34             Floating-Point Absolute Value ( __FABS)
             6.2.1.35             _leadz
             6.2.1.36             Long Double-Precision, Floating-Point Arithmetic Built-in Functions
             6.2.1.37             Longword Absolute Value ( __LABS)
             6.2.1.38             Lock and Unlock Longword (__LOCK_LONG, __UNLOCK_LONG)
             6.2.1.39             Memory Barrier ( __MB)
             6.2.1.40             Memory Copy and Set Functions ( __MEMCPY, __MEMMOVE, __MEMSET)
             6.2.1.41             OR Atomic Longword ( __OR_ATOMIC_LONG)
             6.2.1.42             OR Atomic Quadword ( __OR_ATOMIC_QUAD)
             6.2.1.43             Privileged Architecture Library Code Instructions
             6.2.1.44             __PAL_BPT
             6.2.1.45             __PAL_BUGCHK
             6.2.1.46             __PAL_CFLUSH
             6.2.1.47             __PAL_CHME
             6.2.1.48             __PAL_CHMK
             6.2.1.49             __PAL_CHMS
             6.2.1.50             __PAL_CHMU
             6.2.1.51             __PAL_DRAINA
             6.2.1.52             __PAL_GENTRAP
             6.2.1.53             __PAL_HALT
             6.2.1.54             __PAL_INSQHIL
             6.2.1.55             __PAL_INSQHILR
             6.2.1.56             __PAL_INSQHIQ
             6.2.1.57             __PAL_INSQHIQR
             6.2.1.58             __PAL_INSQTIL
             6.2.1.59             __PAL_INSQTILR
             6.2.1.60             __PAL_INSQTIQ
             6.2.1.61             __PAL_INSQTIQR
             6.2.1.62             __PAL_INSQUEL
             6.2.1.63             __PAL_INSQUEL_D
             6.2.1.64             __PAL_INSQUEQ
             6.2.1.65             __PAL_INSQUEQ_D
             6.2.1.66             __PAL_LDQP
             6.2.1.67             __PAL_STQP
             6.2.1.68             __PAL_MFPR_XXXX
             6.2.1.69             __PAL_MTPR_XXXX
             6.2.1.70             __PAL_PROBER
             6.2.1.71             __PAL_PROBEW
             6.2.1.72             __PAL_RD_PS
             6.2.1.73             __PAL_REMQHIL
             6.2.1.74             __PAL_REMQHILR
             6.2.1.75             __PAL_REMQHIQ
             6.2.1.76             __PAL_REMQHIQR
             6.2.1.77             __PAL_REMQTIL
             6.2.1.78             __PAL_REMQTILR
             6.2.1.79             __PAL_REMQTIQ
             6.2.1.80             __PAL_REMQTIQR
             6.2.1.81             __PAL_REMQUEL
             6.2.1.82             __PAL_REMQUEL_D
             6.2.1.83             __PAL_REMQUEQ
             6.2.1.84             __PAL_REMQUEQ_D
             6.2.1.85             __PAL_SWPCTX
             6.2.1.86             __PAL_SWASTEN
             6.2.1.87             __PAL_WR_PS_SW
             6.2.1.88             _popcnt
             6.2.1.89             _poppar
             6.2.1.90             Read Process Cycle Counter ( __RPCC)
             6.2.1.91             Sine ( __SIN)
             6.2.1.92             Single-Precision, Floating-Point Arithmetic Built-in Functions
             6.2.1.93             Test for Bit Clear then Clear Bit Interlocked (__INTERLOCKED_TESTBITCC_QUAD)
             6.2.1.94             Test for Bit Clear then Clear Bit Interlocked (__TESTBITCCI)
             6.2.1.95             Test for Bit Set Then Set Bit Interlocked (__INTERLOCKED_TESTBITSS_QUAD)
             6.2.1.96             Test for Bit Set then Set Bit Interlocked (__TESTBITSSI)
             6.2.1.97             _trailz
             6.2.1.98             Trap Barrier Instruction ( __TRAPB)
             6.2.1.99             Unsigned Quadword Multiply High ( __UMULH)
         6.2.2         Built-In Functions for I64 Systems (I64 ONLY)
             6.2.2.1             Builtin Differences on I64 Systems
             6.2.2.2             Built-in Functions Specific to I64 Systems
             6.2.2.3             Get Hardware Register Value ( __getReg)
             6.2.2.4             Set Hardware Register Value ( __setReg)
             6.2.2.5             Get Index Register Value ( __getIndReg)
             6.2.2.6             Set Index Register Value ( __setIndReg)
             6.2.2.7             Generate Break Instruction ( __break)
             6.2.2.8             Serialize Data ( __dsrlz)
             6.2.2.9             Flush Cache Instruction ( __fc)
             6.2.2.10             Flush Write Buffers ( __fwb)
             6.2.2.11             Invalidate ALAT ( __invalat)
             6.2.2.12             Invalidate ALAT ( __invala)
             6.2.2.13             Execute Serialize ( __isrlz)
             6.2.2.14             Insert Data Address Translation Cache ( __itcd)
             6.2.2.15             Insert Instruction Address Translation Cache ( __itci)
             6.2.2.16             Insert Data Translation Register ( __itrd)
             6.2.2.17             Insert Instruction Translation Register ( __itri)
             6.2.2.18             Purge Translation Cache Entry ( __ptce)
             6.2.2.19             Purge Global Translation Cache ( __ptcg)
             6.2.2.20             Purge Local Translation Cache ( __ptcl)
             6.2.2.21             Purge Global Translation Cache and ALAT ( __ptcga)
             6.2.2.22             Purge Data Translation Register ( __ptrd)
             6.2.2.23             Purge Instruction Translation Register ( __ptri)
             6.2.2.24             Reset System Mask ( __rsm)
             6.2.2.25             Reset User Mask ( __rum)
             6.2.2.26             Set System Mask ( __ssm)
             6.2.2.27             Set User Mask ( __sum)
             6.2.2.28             Enable Memory Synchronization ( __synci)
             6.2.2.29             Translation Hashed Entry Address ( __thash)
             6.2.2.30             Translation Hashed Entry Tag ( __ttag)
             6.2.2.31             Atomic Compare and Exchange ( _InterlockedCompareExchange_acq)
             6.2.2.32             Atomic Compare and Exchange ( _InterlockedCompareExchange64_acq)
             6.2.2.33             Atomic Compare and Exchange ( _InterlockedCompareExchange_rel)
             6.2.2.34             Atomic Compare and Exchange ( _InterlockedCompareExchange64_rel)
             6.2.2.35             Conditional Atomic Compare and Exchange Longword (__CMP_SWAP_LONG)
             6.2.2.36             Conditional Atomic Compare and Exchange Quadword (__CMP_SWAP_QUAD)
             6.2.2.37             Conditional Atomic Compare and Exchange Longword with Acquire Semantics ( __CMP_SWAP_LONG_ACQ)
             6.2.2.38             Conditional Atomic Compare and Exchange Quadword with Acquire Semantics ( __CMP_SWAP_QUAD_ACQ)
             6.2.2.39             Conditional Atomic Compare and Exchange Longword with Release Semantics ( __CMP_SWAP_LONG_REL)
             6.2.2.40             Conditional Atomic Compare and Exchange Quadword with Release Semantics ( __CMP_SWAP_QUAD_REL)
             6.2.2.41             Return Address ( __RETURN_ADDRESS)
             6.2.2.42             Implement Alpha __PAL_GENTRAP and __PAL_BUGCHK Builtins (__break2)
             6.2.2.43             Flush Register Stack ( __flushrs)
             6.2.2.44             Load Register Stack ( __loadrs)
             6.2.2.45             Probe Read-Access Permission ( __prober)
             6.2.2.46             Probe Write-Access Permission ( __probew)
             6.2.2.47             Translation Access Key ( __tak)
             6.2.2.48             Translate to Physical Address ( __tpa)
         6.2.3         Built-In Functions for OpenVMS VAX Systems (VAX ONLY)
             6.2.3.1             Allocate Bytes from Stack ( __ALLOCA)
             6.2.3.2             Add Aligned Word Interlocked ( _ADAWI)
             6.2.3.3             Branch on Bit Clear-Clear Interlocked ( _BBCCI)
             6.2.3.4             Branch on Bit Set-Set Interlocked ( _BBSSI)
             6.2.3.5             Find First Clear Bit ( _FFC)
             6.2.3.6             Find First Set Bit ( _FFS)
             6.2.3.7             Halt ( _HALT)
             6.2.3.8             Insert Entry into Queue at Head Interlocked ( _INSQHI)
             6.2.3.9             Insert Entry into Queue at Tail Interlocked ( _INSQTI)
             6.2.3.10             Insert Entry in Queue ( _INSQUE)
             6.2.3.11             Locate Character ( _LOCC)
             6.2.3.12             Move from Processor Register ( _MFPR)
             6.2.3.13             Move Character 3 Operand ( _MOVC3)
             6.2.3.14             Move Character 5 Operand ( _MOVC5)
             6.2.3.15             Move from Processor Status Longword ( _MOVPSL)
             6.2.3.16             Move to Processor Register ( _MTPR)
             6.2.3.17             Probe Read Accessibility ( _PROBER)
             6.2.3.18             Probe Write Accessibility ( _PROBEW)
             6.2.3.19             Read General-Purpose Register ( _READ_GPR)
             6.2.3.20             Remove Entry from Queue at Head Interlocked ( _REMQHI)
             6.2.3.21             Remove Entry from Queue at Tail Interlocked ( _REMQTI)
             6.2.3.22             Remove Entry from Queue ( _REMQUE)
             6.2.3.23             Scan Characters ( _SCANC)
             6.2.3.24             Skip Character ( _SKPC)
             6.2.3.25             Span Characters ( _SPANC)


Previous Next Contents Index