IP Library › Granted Patent US 9,696,990
Granted Patent B2
US 9,696,990 · App. 14/551,285 · Granted Jul 4, 2017

Method and apparatus for implementing inter-component function calls

Inventors: Valeriu Togan (Crevenicu, RO); Marius Constantin Rotaru (Bucharest, RO)
Assignee: NXP USA, Inc.
G06F8/71G06F8/65G06F8/67G06F9/4426
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,696,990
App. No.
14/551,285
Granted
Jul 4, 2017
Kind
B2
Abstract

A method of implementing inter-component function calls. The method comprises generating a lower tier indirection data structure comprising an entry indicating a location in memory of a function within a first software component, a higher tier indirection data structure comprising an entry indicating a location in memory of the lower tier indirection data structure, and a configuration data structure comprising an entry defining an active version of the first software component. The method further comprises implementing executable computer program code for an inter-component function call by referencing entries within the configuration data structure, the higher tier indirection data structure and the lower tier indirection data structure.

Claims (51)

1. A method of implementing inter-component function calls within a computer program, the method comprising:

generating at least a first lower tier indirection data structure associated with at least a first software component, the at least first lower tier indirection data structure comprising at least one entry indicating a location in memory of at least one function within the at least first software component;

generating at least one higher tier indirection data structure comprising a component entry indicating a location in memory of the at least first lower tier indirection data structure;

generating at least one configuration data structure comprising at least one entry defining an active version of the at least first software component, wherein the at least one entry comprises a version index reference, and wherein the version index reference comprises an index of the component entry in the at least one higher tier indirection data structure; and

implementing executable computer program code for at least one inter-component function call to the at least one function within the at least first software component from within at least one further software component to:

load the version index reference comprising an indication of an active version of the at least first software component comprising the function to be called from an entry within the configuration data structure;

reference the component entry within the at least one higher tier indirection data structure to determine the location in memory of the at least first lower tier indirection data structure based on the loaded version index reference; and

reference an entry in the at least first lower tier indirection data structure to determine the location in memory of the at least one function within the at least first software component.

2. The method of claim 1 wherein a lower tier indirection structure is generated for each software component comprising at least one function accessible outside of the respective software component.

3. The method of claim 1 , wherein a lower tier indirection structure is generated for each of a first version of the at least first software component and at least one further version of the at least first software component.

4. The method of claim 3 , wherein the higher tier indirection structure comprises an entry indicating a location in memory of the lower tier indirection structure for the first version of the at least first software component, and a further entry indicating a location in memory of the lower tier indirection structure for the at least one further version of the at least first software component.

5. The method of claim 1 , wherein each lower tier indirection data structure comprises an entry for each function within the software function associated therewith.

6. The method of claim 1 , wherein the at least one higher tier indirection data structure comprises an entry for each lower tier indirection data structure.

7. The method of claim 1 , wherein each entry within each of the higher and lower tier indirection data structures comprises as least one from a group comprising:

an address in memory; and

an address offset value.

8. A non-transitory computer program product having executable program code stored therein for implementing inter-component function calls within a computer program, the program code operable for:

generating at least a first lower tier indirection data structure associated with at least a first software component, the at least first lower tier indirection data structure comprising at least one entry indicating a location in memory of at least one function within the at least first software component;

generating at least one higher tier indirection data structure comprising a component entry indicating a location in memory of the at least first lower tier indirection data structure;

generating at least one configuration data structure comprising at least one entry defining an active version of the at least first software component, wherein the at least one entry comprises a version index reference, and wherein the version index reference comprises an index of the component entry in the at least one higher tier indirection data structure; and

implementing executable computer program code for at least one inter-component function call to the at least one function within the at least first software component from within at least one further software component to:

load the version index reference comprising an indication of an active version of the at least first software component comprising the function to be called from an entry within the configuration data structure;

reference the component entry within the at least one higher tier indirection data structure to determine the location in memory of the at least first lower tier indirection data structure based on the loaded version index reference; and

reference an entry in the at least first lower tier indirection data structure to determine the location in memory of the at least one function within the at least first software component.

9. An apparatus having one or more processors for generating executable computer program code comprising at least one processing module arranged to implement inter-component function calls within computer programs; wherein the at least one processing module is arranged to:

generate at least a first lower tier indirection data structure associated with at least a first software component, the at least first lower tier indirection data structure comprising at least one entry indicating a location in memory of at least one function within the at least first software component;

generate at least one higher tier indirection data structure comprising a component entry indicating a location in memory of the at least first lower tier indirection data structure;

generate at least one configuration data structure comprising at least one entry defining an active version of the at least first software component, wherein the at least one entry comprises a version index reference, and wherein the version index reference comprises an index of the component entry in the at least one higher tier indirection data structure; and

implement executable computer program code for at least one inter-component function call to the at least one function within the at least first software component from within at least one further software component to:

load the version index reference comprising an indication of an active version of the software component comprising the function to be called from an entry within the configuration data structure;

reference the component entry within the at least one higher tier indirection data structure to determine the location in memory of the at least first lower tier indirection data structure based on the loaded version index reference; and

reference an entry in the at least first lower tier indirection data structure to determine the location in memory of the at least one function within the at least first software component.

10. A non-transitory computer program product having executable computer program code stored therein comprising:

at least a first software component comprising at least one function;

at least one lower tier indirection data structure associated with the at least a first software component, the at least first lower tier indirection data structure comprising at least one entry indicating a location in memory of at least one function within the at least first software component;

at least one higher tier indirection data structure comprising a component entry indicating a location in memory of the at least first lower tier indirection data structure;

at least one configuration data structure comprising at least one entry defining an active version of the at least first software component, wherein the at least one entry comprises a version index reference, and wherein the version index reference comprises an index of the component entry in the at least one higher tier indirection data structure;

at least one further software component comprising at least one inter-component function call to the at least one function within the at least first software component, the at least one inter-component function call arranged to:

load the version index reference comprising an indication of an active version of the at least first software component comprising the function to be called from an entry within the configuration data structure;

reference the component entry within the at least one higher tier indirection data structure to determine the location in memory of the at least first lower tier indirection data structure based on the loaded version index reference; and

reference an entry in the at least first lower tier indirection data structure to determine the location in memory of the at least one function within the at least first software component.

11. A device comprising at least one processing module arranged to execute computer program code comprising:

at least a first software component comprising at least one function;

at least one lower tier indirection data structure associated with the at least a first software component, the at least first lower tier indirection data structure comprising at least one entry indicating a location in memory of at least one function within the at least first software component;

at least one higher tier indirection data structure comprising a component entry indicating a location in memory of the at least first lower tier indirection data structure;

at least one configuration data structure comprising at least one entry defining an active version of the at least first software component, wherein the at least one entry comprises a version index reference, and wherein the version index reference comprises an index of the component entry in the at least one higher tier indirection data structure;

at least one further software component comprising at least one inter-component function call to the at least one function within the at least first software component, the at least one inter-component function call arranged to:

load the version index reference comprising an indication of an active version of the at least first software component comprising the function to be called from an entry within the configuration data structure;

reference the component entry within the at least one higher tier indirection data structure to determine the location in memory of the at least first lower tier indirection data structure based on the loaded version index reference; and

reference an entry in the at least first lower tier indirection data structure to determine the location in memory of the at least one function within the at least first software component.

12. The method of claim 2 , wherein a lower tier indirection structure is generated for each of a first version of the at least first software component and at least one further version of the at least first software component.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0444 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0535 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037358/0001 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Feb 18, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035033/0001 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Feb 18, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035034/0019 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Feb 18, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035033/0923 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2014
From: TOGAN, VALERIU; ROTARU, MARIUS CONSTANTIN
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 034248/0785 →
Priority Claims (1)
RO 14-00719 · Sep 23, 2014 · national
Continuity (1)
Related Publication 20160085545A1 · Mar 24, 2016