Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
167 words
A method in a computer system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of a first type, comprising the steps of: loading the program of the first type; when the program of the first type is loaded, loading a first library; after loading the first library, loading a second library; after loading the second library, reloading the first library; when the program of the first type invokes an invoked routine of the set of routines, under the control of the first library, modifying the first library to call the invoked routine in the second library when the program of the first type invokes the invoked routine; after modifying the first library, simulating the reinvocation of the invoked routine by the program of the first type; and when the reinvocation of the invoked routine is simulated, calling the invoked routine in the second library under the control of the modified first library.
Claim 2
Independent Claim
167 words
A method in a computer system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of a first type, comprising the steps of: loading the program of the first type; when the program of the first type is loaded, loading a first library; after loading the first library, loading a second library; after loading the second library, reloading the first library; when the program of the first type invokes an invoked routine of the set of routines, under the control of the first library, modifying the first library to call the invoked routine in the second library when the program of the first type invokes the invoked routine; after modifying the first library, simulating the reinvocation of the invoked routine by the program of the first type; and when the reinvocation of the invoked routine is simulated, calling the invoked routine in the second library under the control of the modified first library.
Claim 3
Dependent Claim
48 words
The method of claim 1, further including the step of, when the loaded program of the first type invokes the invoked routine of the set of routines after modifying the first library, calling the invoked routine in the second library under the control of the modified first library.
Claim 4
Independent Claim
158 words
A method in a computer system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of a second type, comprising the steps of: loading a program of the second type; when the program of the second type is loaded, loading a second library; after loading the second library, loading the first library; when the program of the second type invokes an invoked routine of the set of routines, under the control of the second library, modifying the second library to call the invoked routine in the first library when a routine of the second type invokes the invoked routine; after modifying the second library, simulating the reinvocation of the invoked routine by a program of the second type; and when the reinvocation of the invoked routine is simulated, calling the invoked routine in the first library under the control of the modified second library.
Claim 5
Independent Claim
158 words
A method in a computer system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of a second type, comprising the steps of: loading a program of the second type; when the program of the second type is loaded, loading a second library; after loading the second library, loading the first library; when the program of the second type invokes an invoked routine of the set of routines, under the control of the second library, modifying the second library to call the invoked routine in the first library when a routine of the second type invokes the invoked routine; after modifying the second library, simulating the reinvocation of the invoked routine by a program of the second type; and when the reinvocation of the invoked routine is simulated, calling the invoked routine in the first library under the control of the modified second library.
Claim 6
Dependent Claim
48 words
The method of claim 3, further including the step of, when the loaded program of the second type invokes the invoked routine of the set of routines after modifying the second library, calling the invoked routine in the first library under the control of the modified second library.
Claim 7
Dependent Claim
31 words
The method of claim 3, further including the steps of, when the loaded program of the second type is unloaded: unloading the first library once; and unloading the second library once.
Claim 8
Dependent Claim
49 words
The method of claim 3, further including the steps of: when a program of the first type is loaded, reloading the first library; and when the loaded program of the first type invokes an invoked routine of the set of routines, invoking the invoked routine in the first library.
Claim 9
Dependent Claim
20 words
The method of claim 6, further including the step of, when the first library is reloaded, reloading the second library.
Claim 10
Independent Claim
178 words
A method in a computer system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of a first type, comprising the steps of: loading a program of the first type; when the program of the first type is loaded, loading a first library; when the program of the first type invokes an invoked routine of the set of routines, loading a second library; after loading the second library, reloading the first library; when the program of the first type invokes an invoked routine of the set of routines, under the control of the first library, modifying the first library to call the invoked routine in the second library when a routine of the first type invokes the invoked routine; after modifying the first library, simulating the reinvocation of the invoked routine by a program of the first type; and when the reinvocation of the invoked routine is simulated, calling the invoked routine in the second library under the control of the modified first library.
Claim 11
Independent Claim
178 words
A method in a computer system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of a first type, comprising the steps of: loading a program of the first type; when the program of the first type is loaded, loading a first library; when the program of the first type invokes an invoked routine of the set of routines, loading a second library; after loading the second library, reloading the first library; when the program of the first type invokes an invoked routine of the set of routines, under the control of the first library, modifying the first library to call the invoked routine in the second library when a routine of the first type invokes the invoked routine; after modifying the first library, simulating the reinvocation of the invoked routine by a program of the first type; and when the reinvocation of the invoked routine is simulated, calling the invoked routine in the second library under the control of the modified first library.
Claim 12
Dependent Claim
31 words
The method of claim 1, further including the steps of, when the loaded program of the first type is unloaded: unloading the first library twice; and unloading the second library once.
Claim 13
Dependent Claim
49 words
The method of claim 1, further including the steps of: when a program of the second type is loaded, reloading the second library; and when the loaded program of the second type invokes an invoked routine of the set of routines, invoking the invoked routine in the second library.
Claim 14
Independent Claim
194 words
A method in a computer system for patching a segment of executable code at runtime under the control of the code segment, the code segment having a patching section and a patched section, the patching section for patching the patched section to change the contents of the patched section, comprising the steps of: (a) when the code segment is executed a first time, under the control of a portion of the patched section, jumping from the beginning of the patched section to a point beyond the patched section and executing the patching section; (b) when the patching section is executed, patching the patched section, comprising the substeps of: (b)(1) patching a portion of the patched section that does not include the portion of the patched segment under the control of which step (a) is performed, and (b)(2) after step (b)(1), using a single atomic operation to patch the portion of the patched segment under the control of which step (a) is performed to instead cause the patched segment to be executed; and (c) when the code is executed after step (b), executing the patched section and preventing the patching section from being executed again.
Claim 15
Independent Claim
194 words
A method in a computer system for patching a segment of executable code at runtime under the control of the code segment, the code segment having a patching section and a patched section, the patching section for patching the patched section to change the contents of the patched section, comprising the steps of: (a) when the code segment is executed a first time, under the control of a portion of the patched section, jumping from the beginning of the patched section to a point beyond the patched section and executing the patching section; (b) when the patching section is executed, patching the patched section, comprising the substeps of: (b)(1) patching a portion of the patched section that does not include the portion of the patched segment under the control of which step (a) is performed, and (b)(2) after step (b)(1), using a single atomic operation to patch the portion of the patched segment under the control of which step (a) is performed to instead cause the patched segment to be executed; and (c) when the code is executed after step (b), executing the patched section and preventing the patching section from being executed again.
Claim 16
Dependent Claim
36 words
The method of claim 9 wherein step (d) includes the step of patching the patched segment to prevent the patching segment from being executed again before the executable code is removed from memory and loaded again.
Claim 17
Dependent Claim
50 words
The method of claim 9 wherein the code is simultaneously executable by a plurality of threads, and wherein threads that execute the code for the performance of step (e) execute the patching code, and wherein threads that execute the code after a performance of step (e) execute the patched section.
Claim 18
Independent Claim
188 words
A method in a computer system for pairing a first dynamic load library and a second dynamic load library, the first dynamic load library being loadable using a first loader, the second dynamic load library being loadable using a second loader, comprising the steps of: (a) invoking the first loader; (b) under the control of the invoked first loader, loading the first dynamic load library and executing a first initialization routine of the first dynamic load library; (c) when the first initialization routine is executed, if no indication exists that the first loader was invoked by a second initialization routine of the second dynamic load library, invoking the second loader to load the second dynamic load library; (d) when the second loader is invoked, loading the second dynamic load library and, if the second dynamic load library has not previously been loaded, executing the second initialization routine of the second dynamic load library; and (e) when the second initialization routine is executed, invoking the first loader to load the first dynamic load library and generating an indication that the first loader was invoked by the second initialization routine.
Claim 19
Independent Claim
188 words
A method in a computer system for pairing a first dynamic load library and a second dynamic load library, the first dynamic load library being loadable using a first loader, the second dynamic load library being loadable using a second loader, comprising the steps of: (a) invoking the first loader; (b) under the control of the invoked first loader, loading the first dynamic load library and executing a first initialization routine of the first dynamic load library; (c) when the first initialization routine is executed, if no indication exists that the first loader was invoked by a second initialization routine of the second dynamic load library, invoking the second loader to load the second dynamic load library; (d) when the second loader is invoked, loading the second dynamic load library and, if the second dynamic load library has not previously been loaded, executing the second initialization routine of the second dynamic load library; and (e) when the second initialization routine is executed, invoking the first loader to load the first dynamic load library and generating an indication that the first loader was invoked by the second initialization routine.
Claim 20
Dependent Claim
55 words
The method of claim 14 wherein step (c) includes the step of executing a first library pairing routine to invoke the second loader to load the second dynamic load library, and wherein (e) includes the step of executing a second library pairing routine to invoke the first loader to load the first dynamic load library.
Claim 21
Dependent Claim
46 words
The method of claim 14 wherein the first loader is invoked in step (a) by a thread, and wherein the step of generating an indication that the first loader was invoked by the second initialization routine includes the step of associating the indication with the thread.
Claim 22
Dependent Claim
78 words
The method of claim 14, further including the steps of: (f) under the control of a calling program, calling a routine in the first dynamic load library; (g) under the control of the called routine in the first dynamic load library, calling a call rewriting routine; and (h) under the control of the called call rewriting routine, modifying the called routine in the first dynamic load library to call a corresponding routine in the second dynamic load library.
Claim 23
Dependent Claim
38 words
The method of claim 17, further including the step of, after step (h), jumping to the modified called routine in the first dynamic load library in order to call the corresponding routine in the second dynamic load library.
Claim 24
Dependent Claim
55 words
The method of claim 17, further including the steps of: (i) after step (h), under the control of the calling program, again calling the routine in the first dynamic load library; and (j) under the control of the called routine in first dynamic load library, calling the corresponding routine in the second dynamic load library.
Claim 25
Dependent Claim
59 words
The method of claim 14 wherein the computer system includes a microprocessor for executing libraries in one of a plurality of modes, and wherein the first dynamic load library is executed by the microprocessor in a first mode, and wherein the second dynamic load library is executed by the microprocessor in a second mode different from the first mode.
Claim 26
Dependent Claim
194 words
An article of computer-readable media having contents causing a computer system to pair a first dynamic load library and a second dynamic load library, the first dynamic load library being loadable using a first loader, the second dynamic load library being loadable using a second loader, by performing the steps of: (a) invoking the first loader; (b) under the control of the invoked first loader, loading the first dynamic load library and executing a first initialization routine of the first dynamic load library; (c) when the first initialization routine is executed, if no indication exists that the first loader was invoked by a second initialization routine of the second dynamic load library, invoking the second loader to load the second dynamic load library; (d) when the second loader is invoked, loading the second dynamic load library and, if the second dynamic load library has not previously been loaded, executing the second initialization routine of the second dynamic load library; and (e) when the second initialization routine is executed, invoking the first loader to load the first dynamic load library and generating an indication that the first loader was invoked by the second initialization routine.
Claim 27
Dependent Claim
194 words
An article of computer-readable media having contents causing a computer system to pair a first dynamic load library and a second dynamic load library, the first dynamic load library being loadable using a first loader, the second dynamic load library being loadable using a second loader, by performing the steps of: (a) invoking the first loader; (b) under the control of the invoked first loader, loading the first dynamic load library and executing a first initialization routine of the first dynamic load library; (c) when the first initialization routine is executed, if no indication exists that the first loader was invoked by a second initialization routine of the second dynamic load library, invoking the second loader to load the second dynamic load library; (d) when the second loader is invoked, loading the second dynamic load library and, if the second dynamic load library has not previously been loaded, executing the second initialization routine of the second dynamic load library; and (e) when the second initialization routine is executed, invoking the first loader to load the first dynamic load library and generating an indication that the first loader was invoked by the second initialization routine.