Patent US5619698A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5619698A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for patching operating systems

Assignee: Apple Inc
•
Filing: 1995-05-05
•
Granted: 1997-04-08
•
Expires: 2015-05-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention discloses a variety of methods and apparatus for providing patches within a computer operating system. A patch structure in accordance with one embodiment of the present invention includes a patch block which serves to link the patch structure into a patch chain, and a patch which contains the desired functionality of the patch structure. The patch chain includes a root patch structure and a final patch structure. The root patch structure has a root patch block and a given function which has the root functionality. One aspect of the present invention teaches a method for integrating patches into a computer operating system including the steps of obtaining a new patch to be associated with a patch chain for the given function, determining whether a patch chain is already created in the operating system for the given function and creating a root patch block pointing to the given function as the start of a new patch chain if a patch chain has not already been created for the given function, creating a new patch block for the new patch, and inserting data into the new patch block to cause the new patch block to point to the new patch.

Inventors

  • 👤 Alan W. Lillich
  • 👤 Jeffrey R. Cobb
  • 👤 Erik L. Eidt
  • 👤 Wayne N. Meretsky

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 14:12
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/4401; G06F9/4406; G06F8/00; G06F8/60; G06F8/65; G06F9/448; G06F9/4482; G06F9/4484

Claims Analysis

Total Claims: 81
Claim 1
Independent Claim 234 words
A computer implemented method for integrating patches into a computer operating system comprising the steps of: providing an operating system capable of supporting a plurality of patch structures in a patch chain, each patch structure including a patch and a patch block, said patch block pointing to said patch, said patch chain including a root patch block pointing to a given function supported by said operating system, wherein each patch structure of said patch chain can process a call for said given function, each of said plurality of patch blocks pointing to either another patch block or to said root patch block; obtaining a new patch to be associated with a patch chain for said given function; determining whether a patch chain is already created in said operating system for said given function, said patch chain for said given function not existing unless said given function is already patched, and creating a root patch block pointing to said given function as the start of a new patch chain if a patch chain has not already been created for said given function; creating a new patch block for said new patch; and inserting data into said new patch block to cause said new patch block to point to said new patch, thereby forming a new patch structure, and to cause said new patch structure to be joined with said patch chain for said given function.
Claim 2
Dependent Claim 234 words
A computer implemented method for integrating patches into a computer operating system comprising the steps of: providing an operating system capable of supporting a plurality of patch structures in a patch chain, each patch structure including a patch and a patch block, said patch block pointing to said patch, said patch chain including a root patch block pointing to a given function supported by said operating system, wherein each patch structure of said patch chain can process a call for said given function, each of said plurality of patch blocks pointing to either another patch block or to said root patch block; obtaining a new patch to be associated with a patch chain for said given function; determining whether a patch chain is already created in said operating system for said given function, said patch chain for said given function not existing unless said given function is already patched, and creating a root patch block pointing to said given function as the start of a new patch chain if a patch chain has not already been created for said given function; creating a new patch block for said new patch; and inserting data into said new patch block to cause said new patch block to point to said new patch, thereby forming a new patch structure, and to cause said new patch structure to be joined with said patch chain for said given function.
Claim 3
Dependent Claim 100 words
A computer implemented method as recited in claim 1 wherein said patch chain for said given function further includes a lock mechanism arranged such that when said lock mechanism is locked by a computer entity, said patch chain may only be modified by said computer entity, said method further comprising the steps of: prior to said step of determining whether a patch chain is already created for said given function, locking said lock mechanism thereby protecting said patch chain during any subsequent steps; and after any steps requiring access to said patch chain have been completed, unlocking said lock mechanism.
Claim 4
Dependent Claim 17 words
A computer implemented method as recited in claim 2 wherein said lock mechanism is a synchronization variable.
Claim 5
Dependent Claim 18 words
A computer implemented method as recited in claim 2 wherein said lock mechanism is a mutual exclusion lock.
Claim 6
Dependent Claim 57 words
A computer implemented method as recited in claim 1 further comprising the steps of: determining whether a patch data structure including said new patch is already present in said patch chain for said given function; and aborting said computer implemented method when a patch data structure including said new patch is already present in said patch chain.
Claim 7
Dependent Claim 56 words
A computer implemented method as recited in claim 5 wherein a client has requested that said new patch be integrated into said patch chain, the computer implemented method further including the step of returning an error message to said client when a patch data structure including said new patch is already present in said patch chain.
Claim 8
Dependent Claim 44 words
A computer implemented method as recited in claim 1 further comprising the steps of: determining whether said new patch block for said new patch was successfully created; and aborting the computer implemented method when the creation of said new patch block was not successful.
Claim 9
Dependent Claim 49 words
A computer implemented method as recited in claim 7 wherein a client has requested that said new patch be integrated into said patch chain, the computer implemented method further including the step of returning an error message to said client when said new patch block was not successfully created.
Claim 10
Dependent Claim 74 words
A computer implemented method as recited in claim 1 wherein said given function includes function code and function data, said function data having a function transition vector, said function transition vector having a function code pointer, and wherein said step of creating said root patch block includes the substeps of: saving said function code pointer within said root patch block; and saving a pointer to said function transition vector within said root patch block.
Claim 11
Dependent Claim 73 words
A computer implemented method as recited in claim 9 wherein said step of creating said root patch block further includes the substep of modifying said function code pointer to point to a redirect code found in said root patch block, said re-direct code arranged to point to a first time patch code such that when a call is made to said given function, the call is redirected to said first time patch code.
Claim 12
Dependent Claim 39 words
A computer implemented method as recited in claim 1 further comprising the steps of: determining whether said root patch block was successfully created; and aborting said computer implemented method when the creation of said root patch block was unsuccessful.
Claim 13
Dependent Claim 49 words
A computer implemented method as recited in claim 11 wherein a client requested that said new patch be integrated into said patch chain for said given function, the method further including the step of returning an appropriate error message when the creation of said root patch block was unsuccessful.
Claim 14
Dependent Claim 58 words
A computer implemented method as recited in claim 1 wherein said step of inserting data includes the substeps of: selecting an insertion point for said new patch structure within said patch chain for said given function; determining whether said insertion point was successfully located; and aborting the computer implemented method if said insertion point is not successfully located.
Claim 15
Dependent Claim 54 words
A computer implemented method as recited in claim 13 wherein a client requested that said new patch be integrated into said patch chain for said given function and wherein the computer implemented method further includes the step of returning an appropriate error message to said client when said insertion pointer is not successfully located.
Claim 16
Dependent Claim 25 words
A computer implemented method as recited in claim 13 wherein said insertion point was successfully located and said inserted data corresponds to said insertion point.
Claim 17
Dependent Claim 62 words
A computer implemented method as recited in claim 1 wherein said step of inserting data includes the substep of joining said new patch structure with said patch chain for said given function by saving a pointer to an adjacent, preceding patch block within said new patch block and saving a pointer to an adjacent, subsequent patch block within said new patch block.
Claim 18
Dependent Claim 71 words
A computer implemented method as recited in claim 1 wherein said new patch includes patch code and patch data, said patch data having a patch transition vector, said patch transition vector having a patch code pointer, and wherein said step of inserting data includes the substeps of: saving said patch code pointer within said new patch block; and saving a pointer to said patch transition vector within said new patch block.
Claim 19
Dependent Claim 81 words
A computer implemented method as recited in claim 17 wherein said step of inserting data further includes the substep of modifying said patch code pointer to point to a re-direct code found in said root patch block, said re-direct code arranged to point to a first time patch code, wherein when a call is made to said given function or to any patch in said patch chain for said given function, the call is redirected to said first time patch code.
Claim 20
Dependent Claim 42 words
A computer implemented method as recited in claim 1 wherein said new patch block further includes an enable bit and wherein the computer implemented method further includes the step of setting said enable bit to indicate that said new patch is enabled.
Claim 21
Dependent Claim 48 words
A computer implemented method as recited in claim 19 wherein a client requested that said new patch be integrated in said patch chain for said given function and wherein said computer implemented method further i includes the step of returning information regarding said patch chain to said client.
Claim 22
Dependent Claim 23 words
A computer implemented method as recited in claim 1 wherein said new patch structure is appended at the end of said patch chain.
Claim 23
Dependent Claim 22 words
A computer implemented method as recited in claim 2 wherein said new patch structure is inserted between two previously existing patch structures.
Claim 24
Dependent Claim 23 words
A computer implemented method as recited in claim 22 wherein one of said two previously existing patch structures is said root patch structure.
Claim 25
Dependent Claim 244 words
A computer implemented method for integrating patches into a computer operating system comprising the steps of: providing an operating system capable of supporting a plurality of patch structures in a patch chain, each patch structure including a patch and a patch block, said patch block pointing to said patch, said patch chain including a root patch block pointing to a root function supported by said operating system, wherein each patch structure of said patch chain can process a call for said root function, each of said plurality of patch blocks pointing to either another patch block or to said root patch block; obtaining a new patch intended to modify the functionality of a given function, said given function operative to be either a root function or a patch; determining whether a patch chain including said given function is already created in said operating system, said patch chain including given function not existing unless said given function is already patched, and creating a root patch block pointing to said given function as the start of a new patch chain if a patch chain including said given function has not already been created; creating a new patch block for said new patch; and inserting data into said new patch block to cause said new patch block to point to said new patch, thereby forming a new patch structure, and to cause said new patch structure to be joined with said patch chain for said given function.
Claim 26
Dependent Claim 244 words
A computer implemented method for integrating patches into a computer operating system comprising the steps of: providing an operating system capable of supporting a plurality of patch structures in a patch chain, each patch structure including a patch and a patch block, said patch block pointing to said patch, said patch chain including a root patch block pointing to a root function supported by said operating system, wherein each patch structure of said patch chain can process a call for said root function, each of said plurality of patch blocks pointing to either another patch block or to said root patch block; obtaining a new patch intended to modify the functionality of a given function, said given function operative to be either a root function or a patch; determining whether a patch chain including said given function is already created in said operating system, said patch chain including given function not existing unless said given function is already patched, and creating a root patch block pointing to said given function as the start of a new patch chain if a patch chain including said given function has not already been created; creating a new patch block for said new patch; and inserting data into said new patch block to cause said new patch block to point to said new patch, thereby forming a new patch structure, and to cause said new patch structure to be joined with said patch chain for said given function.
Claim 27
Dependent Claim 100 words
A computer implemented method as recited in claim 24 wherein said patch chain including said given function further includes a lock mechanism arranged such that when said lock mechanism is locked by a computer entity, said patch chain may only be modified by said computer entity, said method further comprising the steps of: prior to said step of determining whether a patch chain is already created including said given function, locking said lock mechanism thereby protecting said patch chain during any subsequent steps; and after any steps requiring access to said patch chain have been completed, unlocking said lock mechanism.
Claim 28
Dependent Claim 17 words
A computer implemented method as recited in claim 2 wherein said lock mechanism is a synchronization variable.
Claim 29
Dependent Claim 18 words
A computer implemented method as recited in claim 25 wherein said lock mechanism is a mutual exclusion lock.
Claim 30
Dependent Claim 57 words
A computer implemented method as recited in claim 24 further comprising the steps of: determining whether a patch data structure including said new patch is already present in said patch chain including said given function; and aborting said computer implemented method when a patch data structure including said new patch is already present in said patch chain.
Claim 31
Dependent Claim 56 words
A computer implemented method as recited in claim 28 wherein a client has requested that said new patch be integrated into said patch chain, the computer implemented method further including the step of returning an error message to said client when a patch data structure including said new patch is already present in said patch chain.
Claim 32
Dependent Claim 44 words
A computer implemented method as recited in claim 24 further comprising the steps of: determining whether said new patch block for said new patch was successfully created; and aborting the computer implemented method when the creation of said new patch block was not successful.
Claim 33
Dependent Claim 49 words
A computer implemented method as recited in claim 30 wherein a client has requested that said new patch be integrated into said patch chain, the computer implemented method further including the step of returning an error message to said client when said new patch block was not successfully created.
Claim 34
Dependent Claim 74 words
A computer implemented method as recited in claim 24 wherein said given function includes function code and function data, said function data having a function transition vector, said function transition vector having a function code pointer, and wherein said step of creating said root patch block includes the substeps of: saving said function code pointer within said root patch block; and saving a pointer to said function transition vector within said root patch block.
Claim 35
Dependent Claim 73 words
A computer implemented method as recited in claim 32 wherein said step of creating said root patch block further includes the substep of modifying said function code pointer to point to a re-direct code found in said root patch block, said re-direct code arranged to point to a first time patch code such that when a call is made to said given function, the call is redirected to said first time patch code.
Claim 36
Dependent Claim 39 words
A computer implemented method as recited in claim 24 further comprising the steps of: determining whether said root patch block was successfully created; and aborting said computer implemented method when the creation of said root patch block was unsuccessful.
Claim 37
Dependent Claim 49 words
A computer implemented method as recited in claim 34 wherein a client requested that said new patch be integrated into said patch chain including said given function, the method further including the step of returning an appropriate error message when the creation of said root patch block was unsuccessful.
Claim 38
Dependent Claim 58 words
A computer implemented method as recited in claim 24 wherein said step of inserting dam includes the substeps of: selecting an insertion point for said new patch structure within said patch chain including said given function; determining whether said insertion point was successfully located; and aborting the computer implemented method if said insertion point is not successfully located.
Claim 39
Dependent Claim 54 words
A computer implemented method as recited in claim 36 wherein a client requested that said new patch be integrated into said patch chain including said given function and wherein the computer implemented method further includes the step of returning an appropriate error message to said client when said insertion pointer is not successfully located.
Claim 40
Dependent Claim 25 words
A computer implement method as recited in claim 36 wherein said insertion point was successfully located and said inserted data corresponds to said insertion point.
Claim 41
Dependent Claim 62 words
A computer implemented method as recited in claim 24 wherein said step of inserting data includes the substep of joining said new patch structure with said patch chain including said given function by saving a pointer to an adjacent, preceding patch block within said new patch block and saving a pointer to an adjacent, subsequent patch block within said new patch block.
Claim 42
Dependent Claim 76 words
A computer implemented method as recited in claim 24 wherein said new patch includes patch code and patch data, said patch data having a patch transition vector, said patch transition vector having a patch code pointer and a patch global pointer, and wherein said step of inserting data includes the substeps of: saving said patch code pointer within said new patch block; and saving a pointer to said patch transition vector within said new patch block.
Claim 43
Dependent Claim 69 words
A computer implemented method as recited in claim 40 wherein said step of inserting data further includes the substep of modifying said patch code pointer to point to a re-direct code found in said root patch block, said re-direct code arranged to point to a first time patch code, wherein when a call is made to said given function the call is redirected to said first time patch code.
Claim 44
Dependent Claim 42 words
A computer implemented method as recited in claim 24 wherein said new patch block further includes an enable bit and wherein the computer implemented method further includes the step of setting said enable bit to indicate that said new patch is enabled.
Claim 45
Dependent Claim 48 words
A computer implemented method as recited in claim 42 wherein a client requested that said new patch be integrated in said patch chain for said given function and wherein said computer implemented method further includes the step of returning addressing information regarding said patch chain to said client.
Claim 46
Dependent Claim 23 words
A computer implemented method as recited in claim 24 wherein said new patch structure is appended at the end of said patch chain.
Claim 47
Dependent Claim 22 words
A computer implemented method as recited in claim 25 wherein said new patch structure is inserted between two previously existing patch structures.
Claim 48
Dependent Claim 23 words
A computer implemented method as recited in claim 45 wherein one of said two previously existing patch structures is said root patch structure.
Claim 49
Dependent Claim 142 words
An operating system for a computer comprising: means receptive to one or more patches for a given function that is capable of running on said computer; means for creating a patch chain comprising a root patch block pointing to said given function and at least one patch structure chained with said root patch block, said patch structure including a patch block pointing to an associated patch, said means for creating a patch chain not responsive to create a patch chain unless said given function is to be patched by said at least one patch structure, wherein said patch structure is capable of processing a call for said given function; and means for adding new patch structures to said patch chain, whereby a call to said given function is processed by each of said patches in said patch and by said given function.
Claim 50
Dependent Claim 142 words
An operating system for a computer comprising: means receptive to one or more patches for a given function that is capable of running on said computer; means for creating a patch chain comprising a root patch block pointing to said given function and at least one patch structure chained with said root patch block, said patch structure including a patch block pointing to an associated patch, said means for creating a patch chain not responsive to create a patch chain unless said given function is to be patched by said at least one patch structure, wherein said patch structure is capable of processing a call for said given function; and means for adding new patch structures to said patch chain, whereby a call to said given function is processed by each of said patches in said patch and by said given function.
Claim 51
Dependent Claim 56 words
An operating system as described in claim 47 wherein said means for adding a new patch structure includes: root determination means for determining if said given function is already present in said patch chain; and means to actuate said means for creating a patch chain if said given function is not present in said patch chain.
Claim 52
Dependent Claim 59 words
An operating system as described in claim 47 wherein said means for adding a new patch structures includes: new patch means for determining if a new patch structure is already present in said patch chain; and means responsive to said new patch means to return an error message when said given function is already present in said patch chain.
Claim 53
Dependent Claim 55 words
An operating system as described in claim 47 wherein said means for adding new patch structures includes: new patch determination means for determining if a new patch structure has been successfully created; and means responsive to said new patch determination means to return an error message when said new patch structure is not created successfully.
Claim 54
Dependent Claim 55 words
An operating system as described in claim 47 wherein said patch chain further includes a lock mechanism arranged such that when said lock mechanism is locked by a computer entity, said patch chain may only be modified by said computer entity, said operating system further including locking means for locking and unlocking said lock mechanism.
Claim 55
Dependent Claim 73 words
An operating system as recited in claim 47 wherein said given function includes function code and function data, said function data having a function transition vector, said function transition vector having a function code pointer, and wherein said means for creating said patch chain include: means for saving said function code pointer within said root patch block; and means for saving a pointer to said function transition vector within said root patch block.
Claim 56
Dependent Claim 55 words
An operating system as recited in claim 52 further including a first time patch code and wherein said root patch block includes a re-direct code arranged to point to said first time patch code such that when a call is made to said given function, the call is redirected to said first time patch code.
Claim 57
Dependent Claim 31 words
An operating system as recited in claim 53 wherein said means for creating said patch chain further includes means for modifying said function code pointer to point to said re-direct code.
Claim 58
Dependent Claim 68 words
An operating system as recited in claim 47 wherein said means for adding new patch structures includes: means for selecting an insertion point for said new patch structure within said patch chain; means for determining whether said insertion point was successfully located; and means for performing an orderly abortion of the operation of said means for adding new patch structures if said insertion point is not successfully located.
Claim 59
Dependent Claim 61 words
An operating system as recited in claim 55 wherein the operating system is responsive to a client request that said new patch be integrated into said patch chain for said given function and wherein said means for adding new patch structures further includes means for returning an appropriate error message to said client when said insertion pointer is not successfully located.
Claim 60
Dependent Claim 60 words
An operating system as recited in claim 47 wherein said means for adding new patch structures includes means for joining said new patch structure with said patch chain for said given function by saving a pointer to the preceding patch block within said new patch block and saving a pointer to the subsequent patch block within said new patch block.
Claim 61
Dependent Claim 73 words
An operating system as recited in claim 47 wherein a new patch includes patch code and patch data, said patch data having a patch transition vector, said patch transition vector having a patch code pointer, and wherein said means for adding new patch structures includes: means for saving said patch code pointer within said new patch block; and means for saving a pointer to said patch transition vector within said new patch block.
Claim 62
Dependent Claim 70 words
An operating system as recited in claim 58 wherein said means for adding new patch structures further includes means for modifying said patch code pointer to point to a re-direct code found in said root patch block, said re-direct code arranged to point to a first time patch code, wherein when a call is made to a new patch structure the call is redirected to said first time patch code.
Claim 63
Dependent Claim 41 words
An operating system as recited in claim 47 wherein a new patch block further includes an enable bit and wherein the means for adding new patches includes means for setting said enable bit to indicate that said new patch is enabled.
Claim 64
Dependent Claim 19 words
An operating system as recited in claim 47 means for returning information regarding said patch chain to a client.
Claim 65
Independent Claim 264 words
A method for handling a call to a function having at least one patch implemented by way of a patch chain having a plurality of patch structures each having an enable flag, said patch chain not existing unless said function is patched, said method comprising the steps of: diverting a call from a client for a specified function to a root patch block of said patch chain, wherein said root patch block and said specified function define a root patch structure; saving a return address of said client; finding a first patch structure in said patch chain including the substeps of: (a) selecting a patch structure, said patch structure being one link in said patch chain; (b) determining if an enable flag corresponding to said selected patch structure indicates that said selected patch structure is enabled; and (c) repeatedly performing steps (a) and (b) until said enable flag corresponding to said selected patch structure indicates that said selected patch structure is enabled, wherein the selection process of step (a) operates a first time by selecting a final patch structure located at an end of said patch chain opposite to said root patch structure and then upon subsequent repetitions of step (a) a subsequent patch structure one link closer to said root patch structure than an adjacent, previous patch structure is selected; diverting said call to said first patch structure capable of processing said call, said first patch structure selectively returning process control to said client at said return address or passing on said system call to an additional patch structure in said patch chain.
Claim 66
Independent Claim 264 words
A method for handling a call to a function having at least one patch implemented by way of a patch chain having a plurality of patch structures each having an enable flag, said patch chain not existing unless said function is patched, said method comprising the steps of: diverting a call from a client for a specified function to a root patch block of said patch chain, wherein said root patch block and said specified function define a root patch structure; saving a return address of said client; finding a first patch structure in said patch chain including the substeps of: (a) selecting a patch structure, said patch structure being one link in said patch chain; (b) determining if an enable flag corresponding to said selected patch structure indicates that said selected patch structure is enabled; and (c) repeatedly performing steps (a) and (b) until said enable flag corresponding to said selected patch structure indicates that said selected patch structure is enabled, wherein the selection process of step (a) operates a first time by selecting a final patch structure located at an end of said patch chain opposite to said root patch structure and then upon subsequent repetitions of step (a) a subsequent patch structure one link closer to said root patch structure than an adjacent, previous patch structure is selected; diverting said call to said first patch structure capable of processing said call, said first patch structure selectively returning process control to said client at said return address or passing on said system call to an additional patch structure in said patch chain.
Claim 67
Dependent Claim 52 words
A method as recited in claim 62 implemented under a computer operating system having a function calling convention requiring that all call parameters are passed by way of predefined registers, said step of saving a return address of said client including the substep of storing said return address in a predefined register.
Claim 68
Dependent Claim 58 words
A method as recited in claim 62 implemented under a computer operating system having a function calling convention requiring that all call parameters are passed by way of adding said call parameters onto a computer operating system memory stack, said step of saving a return address of said client including adding said return address onto a memory stack.
Claim 69
Dependent Claim 134 words
A method as recited in claim 62 wherein said first patch structure passes said system call on to an additional patch structure in said patch chain, said step of passing said system call to an additional patch structure including the substeps of: (a) saving a return address of said first patch structure; (b) selecting a subsequent patch structure; (c) determining if an enable flag corresponding to said selected subsequent patch structure indicates that said selected patch structure is enabled; and (d) repeatedly performing: steps (b) and (c) until said enable flag corresponding to said selected subsequent patch structure indicates that said selected patch structure is enabled, wherein the selection process of step (b) operates by selecting a subsequent patch structure one link closer to said root patch structure than an adjacent, previous patch structure.
Claim 70
Dependent Claim 220 words
A patch chain operable to modify a functionality of a given function, said patch chain existing only when said given function is patched, said patch chain comprising: a root patch structure including a root patch block and an associated given function, said root patch block pointing to said associated given function, said associated given function having a root functionality; and a final patch structure being located on an end of said patch chain which is opposite said root patch structure and when said root patch structure and said final patch structure are the only patch structures in said patch chain then said final patch structure is chained to said root patch structure, said final patch structure including a final patch block pointing to a final patch, said final patch having a final patch functionality intended to modify said root functionality; wherein a call from a client to said given function is diverted to a first time patch code of said operating system by said root patch block, said first time code operable to selectively divert said call to a first enabled patch structure, wherein the first time code selection process begins by evaluating said final patch structure and then continues by evaluating subsequent adjacent patch structures, the first time code selection process complete when an enabled patch structure is found.
Claim 71
Dependent Claim 220 words
A patch chain operable to modify a functionality of a given function, said patch chain existing only when said given function is patched, said patch chain comprising: a root patch structure including a root patch block and an associated given function, said root patch block pointing to said associated given function, said associated given function having a root functionality; and a final patch structure being located on an end of said patch chain which is opposite said root patch structure and when said root patch structure and said final patch structure are the only patch structures in said patch chain then said final patch structure is chained to said root patch structure, said final patch structure including a final patch block pointing to a final patch, said final patch having a final patch functionality intended to modify said root functionality; wherein a call from a client to said given function is diverted to a first time patch code of said operating system by said root patch block, said first time code operable to selectively divert said call to a first enabled patch structure, wherein the first time code selection process begins by evaluating said final patch structure and then continues by evaluating subsequent adjacent patch structures, the first time code selection process complete when an enabled patch structure is found.
Claim 72
Dependent Claim 65 words
A patch chain as recited in claim 66 wherein said final patch structure is one of a plurality of patch structures, said plurality of patch structures being chained with said root patch structure to form said patch chain, wherein said call diverted to said first time code may be selectively diverted by said first time code to a desired patch structure in said patch chain.
Claim 73
Dependent Claim 39 words
A patch chain as recited in claim 67 wherein said root patch block includes a final patch block pointer pointing to said final patch block and said first time code selectively diverts said call to said final patch structure.
Claim 74
Dependent Claim 23 words
A patch chain as recited in claim 66 wherein said root patch block includes a redirect code pointing to said first time code.
Claim 75
Dependent Claim 34 words
A patch chain as described in claim 68 wherein said root patch structure and said plurality of patch structures each contain a corresponding enable flag indicative of whether a corresponding patch structure is enabled.
Claim 76
Dependent Claim 83 words
A patch chain as described in claim 66 wherein said root patch block includes a trap address support pointer which points to a special patch code, said special patch code responding to a GET TRAP command received from a client by returning the value of the trap address pointer to said client, and said special patch code responding to a SET TRAP command and an address received from a client by modifying said trap address pointer to be said address received from client.
Claim 77
Dependent Claim 30 words
A computer system comprising: a central processing unit; memory coupled to said central processing unit; and at least one patch chain as recited in claim 66 residing in said memory.
Claim 78
Dependent Claim 210 words
A computer system comprising: a central processing unit; memory coupled to said central processing unit; a first time patch code at least partially stored in said memory and implemented on said central processing unit, said first time patch code responsive to a call from a patch chain having a plurality of patch structures to selectively redirect said call to a desired one of said plurality of patch structures; a patching system having data structures at least partially stored in said memory, said data structures including a root patch structure having a root patch block and an associated function component, said root patch block pointing to said associated function component, said root patch structure being forming one end of a first patch chain, and a final patch structure forming an opposite end of said first patch chain relative to said root patch structure and when said root patch structure and said final patch structure are the only patch structures in said first patch chain then said final patch structure is chained to said root patch structure, said final patch structure including a patch block pointing to a patch, wherein a call from a client process to said function component is diverted to said first time code by said root patch block.
Claim 79
Dependent Claim 210 words
A computer system comprising: a central processing unit; memory coupled to said central processing unit; a first time patch code at least partially stored in said memory and implemented on said central processing unit, said first time patch code responsive to a call from a patch chain having a plurality of patch structures to selectively redirect said call to a desired one of said plurality of patch structures; a patching system having data structures at least partially stored in said memory, said data structures including a root patch structure having a root patch block and an associated function component, said root patch block pointing to said associated function component, said root patch structure being forming one end of a first patch chain, and a final patch structure forming an opposite end of said first patch chain relative to said root patch structure and when said root patch structure and said final patch structure are the only patch structures in said first patch chain then said final patch structure is chained to said root patch structure, said final patch structure including a patch block pointing to a patch, wherein a call from a client process to said function component is diverted to said first time code by said root patch block.
Claim 80
Dependent Claim 23 words
A computer system as recited in claim 73 wherein said first time patch code is for use by a plurality of patch chains.
Claim 81
Dependent Claim 22 words
A computer system as recited in claim 73 wherein said first time patch code is for use by said first patch chain.

References Cited (Backward Citations)

US5335344A Cited
US5446898A Cited
US5325532A Cited
US5369770A Cited
US5359730A Cited
US5375241A Cited
US5481713A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-04-07 2000-10-07 2001-04-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-04-07 2004-10-07 2005-04-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-04-07 2008-10-07 2009-04-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag