Patent ID: 7107044

Claim:
A dual-processor wireless-communications device comprising: a wireless transceiver for sending and receiving wireless data over a wireless network using wireless protocols; a base-band processor, coupled to control the wireless transceiver, for executing routines using a first operating system kernel including routines to transmit and receive wireless data through the wireless transceiver; a user-hardware-interface UHI driver, for executing on the base-band processor, activated by the first operating system kernel for processing user inputs from a user; an applications processor for executing application programs using a second operating system kernel; a shared memory having a first buffer that is written by the base-band processor and read by the applications processor; a keypad, coupled to the base-band processor, for receiving user inputs, the user inputs including phone numbers for placing calls over the wireless network and user inputs for controlling the application programs executing on the applications processor; a hot switch that indicates when the base-band processor receives user inputs and when the applications processor receives user inputs from the keypad; a transmit routine, activated by the UHI driver when the hot switch indicates that the applications processor receives user inputs, the transmit routine writing a key-press-event message generated by the UHI driver in response to a key press on the keypad, the key-press-event message being written to the first buffer in the shared memory; a shared mailbox, coupled to be written by the applications processor and by the base-band processor, having a plurality of mailbox locations, wherein writing to a first mailbox location in the shared mailbox generates a second interrupt to the applications processor; and a virtual UHI driver, executed by the applications processor in response to the second interrupt, the virtual UHI driver reading the key-press-event message from the first buffer in the shared memory in response to the second interrupt; whereby the keypad is shared by passing messages through the shared memory using the shared mailbox.