Difference between revisions of "$GET ARITH EXCEPTION"

From VSI OpenVMS Wiki
Jump to: navigation, search
(Created page with "'''$GET_ARITH_EXCEPTION''' is a system service that returns information about the exception context for a given arithmetic exception on Alpha systems. T...")
 
 
Line 52: Line 52:
 
=Quota Required=
 
=Quota Required=
 
None
 
None
 +
 +
[[Category:System Services]]

Latest revision as of 12:48, 28 November 2019

$GET_ARITH_EXCEPTION is a system service that returns information about the exception context for a given arithmetic exception on Alpha systems. There are two forms the signal argument vectors: one for use with 32-bit addresses and one for use with 64-bit addresses. For more information, see the section Signal Argument Vector in the HP OpenVMS Calling Standard.

The Get Arithmetic Exception Information service returns, to the buffer specified by the buffer argument, the following information for a given arithmetic exception in an array of quadwords:

  • First quadword, the PC of the triggering instruction in the trap shadow
  • Second quadword, a copy of the triggering instruction
  • Third quadword, the exception summary
  • Fourth quadword, the register write mask

Format

SYS$GET_ARITH_EXCEPTION sigarg ,mcharg ,buffer

C Prototype:

int sys$get_arith_exception (void *sigarg, void *mcharg, void *buffer);

Arguments

sigarg

OpenVMS usage: signal array
Type: vector_longword_signed
Access: read only
Mechanism: by reference

Address of the signal array for the given arithmetic exception.

mcharg

OpenVMS usage: mech array
Type: vector_quadword_unsigned
Access: read only
Mechanism: by reference

Address of the mechanism array for the given arithmetic exception.

buffer

OpenVMS usage: vector_quadword
Type: vector_quadword_unsigned)
Access: write only
Mechanism: by descriptor

Four-quadword buffer to receive additional exception context. The buffer argument is the address of a descriptor that points to this buffer.

Condition Values Returned

Value Description
SS$_NORMAL The service completed successfully.
SS$_ACCVIO The specified buffer cannot be written.
SS$_BADBUFLEN The specified buffer length is invalid or out of range.

Privileges Required

None

Quota Required

None