Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Machine-Dependent Configuration

IP.com Disclosure Number: IPCOM000111291D
Original Publication Date: 1994-Feb-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 33K

Publishing Venue

IBM

Related People

Mealey, BG: AUTHOR [+2]

Abstract

The AIX* kernel is required to run on a growing number of different processor and system architectures. To control testing and distribution costs, it is a requirement that one AIX kernel satisfies all supported configurations. AIX provides machine-independent services to insulate the majority of system code from hardware dependencies. At system initialization time the system must alter itself such that the a correct version is provided for the proper executable.

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

Machine-Dependent Configuration

      The AIX* kernel is required to run on a growing number of
different processor and system architectures.  To control testing and
distribution costs, it is a requirement that one AIX kernel satisfies
all supported configurations.  AIX provides machine-independent
services to insulate the majority of system code from hardware
dependencies.  At system initialization time the system must alter
itself such that the a correct version is provided for the proper
executable.

      Callers of these machine-dependent functions fall into two
categories.  First are static callers.  These are function calls that
are fully resolved at bind time.  The second are indirect calls.
These are calls through a function pointer or from external modules.
To handle these cases all functions are implemented in a branch
table.  The branch table is a table of branch instructions that is
set up at system initialization time to point to the correct
machine-dependent functions.  This handles the static function calls.

      To account for the indirect call, a function descriptor is
created for each branch table entry.  A function descriptor is a data
structure used during all indirect function calls.  Among other
things a function descriptor contains the address of the actual
function.  During the initialization process the function descriptor
contents are altered to contain the address of the correct function
implementation.  This allows indi...