Browse Prior Art Database

Process to Determine that a Byte String is a Pointer

IP.com Disclosure Number: IPCOM000080627D
Original Publication Date: 1974-Jan-01
Included in the Prior Art Database: 2005-Feb-27
Document File: 2 page(s) / 23K

Publishing Venue

IBM

Related People

Larson, LE: AUTHOR

Abstract

The process for the encoding of a pointer is such that (a) a pointer can be formed when embedded in a byte string, and (b) a pointer modified by a field overlay can be detected. These functions are accomplished without the need for a ninth bit in a byte. Assume that a pointer can be declared as follows: (Image Omitted) Where FLAG 1, is a byte code chosen by implementation (e.g. x'21'). BITS, is a pointer pattern with random ordering. FLAG 2, is a congruence number calculated modulo 255.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 100% of the total text.

Page 1 of 2

Process to Determine that a Byte String is a Pointer

The process for the encoding of a pointer is such that (a) a pointer can be formed when embedded in a byte string, and (b) a pointer modified by a field overlay can be detected. These functions are accomplished without the need for a ninth bit in a byte. Assume that a pointer can be declared as follows:

(Image Omitted)

Where FLAG 1, is a byte code chosen by implementation (e.g. x'21').

BITS, is a pointer pattern with random ordering.

FLAG 2, is a congruence number calculated modulo 255.

To find a pointer embedded in a byte string the process is:

1) Scan the byte string for FLAG 1 value.

2) If none found, string does not contain a pointer.

3) Calculate the congruence number of the potential

pointer.

4) If the calculated value does not equal the value

in FLAG 2 of the potential pointer, then a pointer

has not been found, and the scan of the byte string

continues.

The probability that this process will erroneously call a byte string a pointer is quite small.

To determine that a pointer has been overlayed the process is:

1) Check FLAG 1 to insure it has the correct value.

2) If not, the pointer is damaged.

3) Calculate the congruence number of the pointer.

4) If the calculated value is not equal to the value

in FLAG 2, the pointer is damaged.

1

Page 2 of 2

2

[This page contains 1 picture or other non-text object]