Patent ID: 8732729

Claim:
A unified device driving method executed in a handheld electronic device, comprising: determining a driver type, the driver type representative of a currently available hardware module on the handheld device the determining a driver type including at least one of: determining that a plurality of functions performed by the unified device driving method are performed fully in the currently available hardware module; determining that the plurality of functions performed by the unified device driving method are performed in a combination of hardware and software: and determining that the plurality of functions performed by the unlined device driving method are performed fully in software without participation of hardware; loading, in response to determining said driver type, a plurality of current dispatch table address pointers into a unified dispatch table, the unified dispatch table providing sufficient storage for at least two address pointers for each of a plurality of different hardware configurations, the loading the unified dispatch table including: setting, a first current dispatch table address pointer of the plurality of current dispatch table address pointers to an address of a first function of the plurality of functions when the first function is executable fully in the currently available hardware module; setting a second current dispatch table address pointer of the plurality current dispatch table address pointers to an address of a second function of the plurality of functions when the second function is executable in the combination of the hardware and software; and setting a third current dispatch table address pointer of the plurality of current dispatch table address pointers to an address of a third function of the plurality of functions when the third function is executable fully in the software; making the current dispatch table address pointers from the unified dispatch table available to a central processing unit; and driving the currently available hardware module with the plurality of functions, each of the plurality of functions associated with one of the plurality of current dispatch table address pointers loaded in the unified dispatch table.