Browse Prior Art Database

Translating Hardware Errors into Software Exceptions or Error Routines

IP.com Disclosure Number: IPCOM000116872D
Original Publication Date: 1995-Nov-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 2 page(s) / 27K

Publishing Venue

IBM

Related People

DeBardelaben, S: AUTHOR [+2]

Abstract

Disclosed is a unified method for C++* programmers to use for handling both software and hardware errors, simplifying the error coding needed. The TExceptionServer is a concrete class representing a CPU exception server on a per-task basis, providing the methods for starting the serve and a mechanism for threads to register an abort routine with the server. When an exception occurs, the task's exception thread starts the abort routine running on the tread that caused the exception. It is the domain of this abort routine to take whatever action is needed, such as executing a C++ throw. Subclasses use TExceptionServer to add CPU handling.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 100% of the total text.

Translating Hardware Errors into Software Exceptions or Error Routines

      Disclosed is a unified method for C++* programmers to use for
handling both software and hardware errors, simplifying the error
coding needed.  The TExceptionServer is a concrete class representing
a CPU exception server on a per-task basis, providing the methods for
starting the serve and a mechanism for threads to register an abort
routine with the server.  When an exception occurs, the task's
exception thread starts the abort routine running on the tread that
caused the exception.  It is the domain of this abort routine to take
whatever action is needed, such as executing a C++ throw.  Subclasses
use TExceptionServer to add CPU handling.

The following functions are used for CPU Exceptions:
  o  TExceptionServer - Starts the Exception Server
  o  RegisterAbortRoutine - Allows a thread to register an abort
      routine, taking the thread id(mach_port_t), the address of the
      abort routine, and the address of the error info struct.
  o  UnRegisterAbortRoutine - Allows a thread to replace the existing
      abort routine with the previous one.
  *  Trademark of IBM Corp.