Patent ID: 7698689

Claim:
A method for use in a system having a central processing unit (CPU) and a memory, comprising the steps of: causing software code to invoke a soft system management interrupt (SMI) in response to a software generated event that requests that an SMI handler perform a certain task that needs to be split up into shorter SMIs; entering the requested SMI handler; creating a new task context stack in memory; causing the SMI handler to use the new task context stack from that point forward, leaving the original context stack unchanged; when a time limit for a single SMI is about to be reached, directing the CPU back to the original context stack; storing the context of the task so that the task context stack persists in memory and the context of the task that is to be suspended is retained; exit the soft SMI returning an indication that signifies that a new SMI should be invoked to continue processing; causing the software code that caused the first soft SMI to invoke another soft SMI, passing an indicator that indicates that this is a continuation of a previously started task; re-entering the SMI handler; switching back to the saved task context stack; and continuing processing in the task context stack where it left off.