Browse Prior Art Database

C Inter-linkage Function Invocation Method

IP.com Disclosure Number: IPCOM000109671D
Original Publication Date: 1992-Sep-01
Included in the Prior Art Database: 2005-Mar-24
Document File: 6 page(s) / 168K

Publishing Venue

IBM

Related People

Graham, CS: AUTHOR [+3]

Abstract

This invention provides a method to allow a set of code functions, hereafter referred to as a link unit, to selectively access functions that are not linked into the same load module without requiring extensive run-time linkage information to be maintained by an incremental link-loader. Function access is accomplished at compile time via inclusion of function table definitions, with the additional feature that the link unit code requiring access is written in normal function call language syntax, i.e., without additional code at the calling location.

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

C Inter-linkage Function Invocation Method

       This invention provides a method to allow a set of code
functions, hereafter referred to as a link unit, to selectively
access functions that are not linked into the same load module
without requiring extensive run-time linkage information to be
maintained by an incremental link-loader.  Function access is
accomplished at compile time via inclusion of function table
definitions, with the additional feature that the link unit code
requiring access is written in normal function call language syntax,
i.e., without additional code at the calling location.

      This invention describes a method whereby multiple link units
can provide internal function access to each of the other link units
within a functional group, with the access method being functionally
completed at load time rather than compile or run time.  Performing
the access resolution at load time with this method allows the
removal of the symbol tables which would necessarily be retained if
full address resolution was performed for incremental link unit
downloads.

      This invention consists of four main components:
o    Link Unit's list of internal function jump tables containing
function addresses.
      Each link unit will provide a list of jump tables for the
internal functions which will be externally accessed by other link
units.  These tables will contain address entries for each of the
accessed functions.  Each jump table will also contain a name field
by which access to the table will be controlled.
o    Link Unit's header include file defining each table and the
functions accessible through that table.
      Each link unit will provide a header include file to be used by
the external compilation units.  This header file will provide the
compilation the information necessary to access the function through
the jump table.  Inclusion of this header file will allow the
microcode using the external function to code the function call as if
it were internal, with the compiler and loader completing the
linkage, and call parameter type checking (as defined by ANSI-C) is
performed.
o    Link Unit's list of required external jump tables.
      Each link unit will provide a list of the external jump tables
provided by other link units which it requires access to for access
to a function or functions provided by that respective link unit.
Each entry in this table will contain the name of the jump table
required and a location in which the address of the jump table will
be placed.
o    Link Unit Loader logic to resolve jump table access and
addresses.
      The link unit loader will provide the logic by which resolution
of the required jump tables for a link unit is performed.
Compile Time

      A module within a given link unit which requires the use of a
function existing in a separate link unit will include the header
file defining the table which specifies that function.  Th...