Patent ID: 7383460

Claim:
A method for configuring a timer in a computing device, the method comprising: receiving a request from an application to set a hardware interrupt timer, the application including: (a) a process that causes said request to be sent to a kernel mode routine having a first set interrupt timer application programming interface (API) capable of receiving said request, (b) an application managed memory, and (c) an application interrupt service routine to be run upon expiration of the hardware interrupt timer, said request including a parameter chosen from the group comprising: (i) a mode in which the hardware interrupt timer is requested to operate; (ii) an interval; (iii) a reference to an area of the application managed memory in which a hardware-dependent process is to store a value representing an actual time at which the hardware interrupt timer has been set to expire in accordance with the validated request, and (iv) an interrupt request level at which the application interrupt service routine should execute; validating the request in a hardware-independent process, said hardware-independent process comprising the kernel mode routine having the first set interrupt timer API, wherein validating the request includes validating the parameter included in the request and verifying that the application is authorized to set the hardware interrupt timer; relaying the validated request to the hardware-dependent process, the hardware-dependent process comprising: (a) a timer interrupt service routine containing logic to set an expiration time and the application interrupt service routine, and a second set interrupt timer API corresponding to the first set interrupt timer API; setting the hardware interrupt timer in the hardware-dependent process to expire in accordance with the validated request, wherein setting the hardware interrupt timer comprises storing the expiration time in the hardware interrupt timer and storing the expiration time in the area of the application managed memory; inserting the application interrupt service routine in the timer interrupt service routine scheduled to execute upon expiration of the timer; and returning control to the application when execution of the timer interrupt service routine and the inserted application interrupt service routine is complete.