Title of Invention

METHOD AND SYSTEM FOR INVOKING A PRIVILEGED FUNCTION IN A DEVICE

Abstract ABSTRACT SYSTEM FOR INVOKING A PRIVILEGED FUNCTION IN A DEVICE The system includes a method that allows an application to invoke a function on a device, wherein the device includes at least two operating modes comprising a privileged mode (314) and a non-privileged mode(322), and the function executes in the privileged mode (314). The method includes receiving a request from the application to invoke the function and determining the operating mode of the application. The method also includes invoking the function using an interrupt (310), if the application is executing in the non-privileged mode, wherein the function is executed within the same task as the application. The method also includes invoking the function directly, if the application is executing in the privileged mode. Figure 3
Full Text BACKGROUND
I. FIELD
[0001] The present invention relates generally to tlae efficient operation of a device, and
more particularly, to a system for invoking a privileged function in a device.
II. DESCRIPTION OF THE RELATED ART
[0002] Advances in technology have resulted in the development of a variety of devices
for home, office, and personal use. For example, computer systems, such as desktops,
notebooks, and tablet computers have become powerful tools for use at home or in
office environments. Personal devices, such as wireless telephones, personal digital
assistants (PDAs), and paging devices have also become more powerful and are now
widely used.
[0003] Many devices now comprise complex hardware and software that run operating
systems such as UNIX, LINUX, or similar operating systems. Generally, these
operating systems provide for multiple modes of operation. For example, most systems
provide privileged and non-privileged modes of operation. Programs executing in the
privileged mode of operation are allowed to access memory and system resources
without limitation. Programs executing in the non-privileged mode are restricted from
| | ^ accessing certain memory regions and/or device systems. This configuration provides a
level of protection to important memory or device functions. For example, by executing
third-party applications in the non-privileged mode, important memory regions and
device functions can be protected from unauthorized access. Also, such an arrangement
allows the system to isolate faults during execution.
[0004] However, in some situations, it is desirable to allow privileged mode functions
to be invoked from applications executing in either the privileged or non-privileged
mode. For example, it is desirable for a privileged mode application to have access to
privileged mode fimctions, but it is also desirable for an application executing in the
non-privileged mode to have access to the same privileged functions. For example, it
may be deskable to allow an apphcation to have access to a selected system file, or
device hardware, such as a device modem.
,2
jfcH [0005] Unfortunately, conventional systems utilize a trap to suspend execution of the
non-privileged application while a separate privileged mode "kernel" task performs the
requested operation. As a result, the new privileged mode task results in additional
scheduling complexity and overhead. There may also be additional system delays in the
form of dispatch^ latency. Furthermore, the new task may execute at a different
priority than tibe non-privileged application from which it was invoked, thereby further
complicating system scheduling and operation.
[0006] Therefore, what is needed is a system that provides a way for an application,
executing in either the privileged or non-privileged mode, to invoke a privileged
function to execute within the same task as the application, thereby providing access to
privileged mode hooks to ^pHcations executing under either mode.
# SIMMARY
[0007] In one or more embodiments, a system comprising methods and/or apparatus
operates to provide access to privileged mode hooks from applications executing in
either the privileged or non-privileged mode. For example, in one embodiment, the
system provides a function handler that allows an application nmning in non-privileged
mode to execute privileged mode fimctions within the same task (or execution thread),
thereby avoiding task creation, scheduling, and dispatcher latency. The function
handler is also accessible to privileged apphcations to allow those apphcations to
execute privileged functions. Thus, the system maps well into existing software
because access to privileged mode fimctions can be accomplished without changing die
existing software model.
•^ [0008J In one or more embodiments, the function handler operates to determine whether
a calling application is executing in the privileged or non-privileged mode. If the
calling application is executing in privileged mode, the function handler calls the
privileged fimction directly. If the calling s^plication is executing in non-privileged
mode, the function handler generates an interrupt that is processed by, for example, a
transition system that allows the privileged function to be called within the same task as
the calling non-privileged application. Thus, the fimction handler operates to provide
privileged function hooks to both privileged and non-privileged apphcations.
[0009] In one embodiment, the calling application passes a function identifier to the
function handler. The function identifier identifies fimctions that are available for
3
execution. In one embodiment, the function handler determines the fiinction from the
identifier and calls the fiinction directly. In another embodiment, the function handler
generates an interrupt and passes the identifier to the transition system, which uses the
identifier to call the requested function after proper validation. The interrupt may be a
software, hardware, or exception based interrupt.
[0010] In one embodiment, a method is provided that allows an application to invoke a
function on a device, wherein the device includes at least two operating modes
comprising a privileged mode and a non-privileged mode, and the function executes in
the privileged mode. The method comprises receiving a request from the ^phcation to
invoke the fimction and determining the operating mode of the application. The method
also comprises invoking the function usmg an interrupt, if the application is executing in
'^^ the non-privileged mode, wherein the function is executed within the same task as the
application. The method also comprises invoking the function directly, if the
application is executing in the privileged mode.
[0011] In another embodiment, apparatus is provided that allows an ^plication to
invoke a function on a device, wherein the device includes at least two operating modes
comprising a privileged mode and a non-privileged mode, and the fimction executes in
the privileged mode. The apparatus comprises logic that receives a request from the
application to invoke the function. The apparatus also comprises logic that determines
the operating mode of the application. The apparatus also comprises logic to invoke the
function using an interrupt, if the application is executing in the non-privileged mode,
wherein the function is executed within the same task as the application. The apparatus
r ^ also comprises logic to invoke the function directly, if the application is executing in the
privileged mode.
[0012] In another embodiment, apparatus is provided that allows an application to
invoke a fimction on a device, wherein the device includes at least two operating modes
comprising a privileged mode and a non-privileged mode, and the function executes in
the privileged mode. The apparatus comprises means for receiving a request from the
application to invoke the function and means for determining the operating mode of the
application. The apparatus also comprises means for invoking the function using an
interrupt, if the application is executing in the non-privileged mode, wherein the
function is executed within the same task as the application. The apparatus also
4
-. c •
comprises means for invoking the function directly, if the application is executing in the
privileged mode.
[00131 ^ another embodiment, a computer-readable media is provided comprising
instractions, which when executed by a processor in a device, operate to allow an
application to invoke a Amction on a device, wherein the device includes at least two
operating modes comprising a privileged mode and a non-privileged mode, and the
function execute in the privileged mode. The computer-readable media comprises
instructions for receiving a request from the application to invoke the function and
instructions for determining the operating mode of the application. The computerreadable
media also comprises instructions for invoking the fimction using an interrupt,
fS^ if the application is executing in the non-privileged mode, wherein the function is
executed within the same task as the application. The computer readable media also
comprises instructions for invoking the function directly, if the application is executing
in the privileged mode.
[0014] Other aspects, advantages, and features of the present invention will become
apparent after review of the hereinafter set forth Brief Description of the Drawings,
Detailed Description of the Invention, and the Claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] The foregoing aspects and the attendant advantages of the embodiments
described herein will become more readily apparent by reference to the following
. ^ detailed description when taken in conjunction with the accompanying drawings
wherein:
[0016] FIG. 1 shows one embodiment of a fimction handler system that provides
privileged function hooks to privileged and non-privileged applications executing on a
device 102;
[0017] FIG. 2 shows a detailed block diagram of a device comprising one embodiment
of a function handler system; and
[0018] " FIG. 3 shows a flow diagram that illustrates the operation of one embodiment of
a fimction handler system for use in a device.
5
DETAILED DESCRIPTION
[0019] The following detailed description describes a function handler system that
provides privileged function hooks to privileged and non-privileged applications. For
example, the system operates to receive flmction calls from privileged and nonprivileged
applications, after which, the operating mode of the calling application is
determined, and a fast and efQcient transition to the privileged function is provided.
The function executes within the same thread of execution as the calling application.
Thus, the function handler provides privileged function hooks to both privileged and
non-privileged applications, which are then able to call privileged functions without a
new task being generated, thereby avoiding the overhead of new task creation,
^H>, scheduling and dispatcher latency,
[0020] In one or more embodiments, the fVmction handler system interacts with a
nmtime enviromnent (or operating system) executing on the device that is used to
simplify operation of the device, such as by providing generalized calls for device
specific resources. One such runtime environment is the Binary Runtime Btiviromnent
for Wireless™ (BREW™) software platform developed by QUALCOMM, Inc., of San
Diego, CaUfomia. The following description describes a device executing a nmtime
environment, such as the BREW software platform. Ho\Vever, in one or more
embodiments, the registration system is suitable for use with other types of runtune
environments to provide fast and efficient registration of privileged function hooks in a
variety of devices, including generating systems or other controlling or monitoring
programs. For example, the devices may include, but are not limited to, desktop
^ ^ computers, notebook computers, handheld computers, and portable devices, such as
wireless telephones, pagers, PDAs, email devices, tablet computers, or other type of
computing devices.
[0021] FIG. 1 shows one embodiment of a function handler system 100 that provides
privileged function hooks to privileged and non-privileged applications executing on a
device 102. The system 100 may be part of a home computer, office computer, or
personal device, such as a wireless telephone or PDA, or any other type of computing
device. During operation, one or more applications execute on the device 102 and
operate to provide information, functions, and/or services to the device 102. For
example, one type of application may be a viewer q)phcation that operates to allow the
device 102 to display movies, news, or other types of multimedia content
6
[0022] In one embodiment, the device 102 includes a runtime environment 104 (i.e.,
BREW) that provides at least two modes of operation; namely a non-privileged mode
(NP) and a privileged mode (P). The non-privilege mode of operation is used to restrict
the access of applications running on the device and to provide fault detection. For
example, £q[}plications running in non-privileged mode are restricted to selected memory
regions and may be denied access to device registers or other resources. The privileged
mode of operation allows appUcations running under this mode to access memory or
device resources without limitation.
[0023] When an application executes on the device 102, it runs imder the runtime
environment to provide the desired functionality. For example, the application 106 runs
on the device 102 under the non-privileged mode (NP), and the application 108 runs on
flie device 102 in the privileged mode (P). Either of these applications may require
functions or system services that are available through a privileged function 110. For
example, the {^plications may need to access privileged memory or device hardware
resources. To obtain these fimctions or services, the fimction handler system 100
provides a mechanism that allows either application (106, 108) to call the privileged
fimction through a function handler 112. When called through the function handler 112,
the function 110 executes within the same thread of execution as the calling application.
After the function 110 performs the requested service, program control returns to the
calling application.
[0024] As a result, the fimction handler system 100 provides a fast and efficient
mechanism to allow privileged and non-privileged applications to perform privileged
's' fimctions without the need for a new task to be created and scheduled for execution by
the runtime environment, thereby eliminating scheduler complexity and associated
dispatcher latency.
[0025] FIG. 2 shows a detailed block diagram of the device 102 con^rising one
embodiment of a function handler system. The device 102 comprises processing logic
202 and device resources 206 that are coupled to an internal data bus 204. The device
^resources 206 comprise hardware, software, memory, logic, or other resources that
allow the device to interface to various internal and external resomrces, devices, or
systems. Also coupled to the processing logic 202 are code memory 208 and data
memory 210.
7
c
[0026] In one or more embodiments, the processing logic 202 comprises a CPU,
processor, gate array, hardware logic, memory elements, virtual machine, software, I/O
interfaces, and/or any combination of hardware and software. Thus, the processing
logic 202 generally comprises logic to execute machine-readable instructions. For
example, instructions may be loaded into the device 102 from a con[^)uter-readable
media, such as a floppy disk, CDROM, Flash memory, or other computer-readable
media that interfaces to the device 102 via the device resources 206. In another
embodiment, the instructions may be downloaded into the device 102 from a network
resource, such as a network server or any other type of network resource that interfaces
to the device 102 via the device resources 206. The instructions, when executed by the
_- processing logic 202, provide one or more embodiments of a ftmction handler system as
described herein.
[0027] In one embodiment, code memory 208 comprises RAM, ROM, FLASH,
EEROM, or any other suitable type of memory, or a combination thereof. The code
memory 206 is partitioned into a privileged region (?) 212 and a non-privileged region
(NP) 214 through the operation of a memory management imit 216. The MMU 216
operates to restrict the operation of non-privileged program code so that non-privileged
code has limited access rights to selected regions of the code memory 208.
[0028] The privileged region 212 includes program code that when executed has
unrestricted access to the memory or other systans of the device 102. For example, the
privileged code region 212 comprises operating system code (OS), user interface code
(UI), validation code, q)plication code (A^p-P) 108 and privileged fimction code
w FUNC 110. Thecodeshownintheprivilegedcoderegion212 is representative of the
types of privileged code that may be included in the device 102. It is also possible that
the privileged code region 212 includes other types of privileged code for execution on
the device 102.
[0029] The non-privileged code region 214 includes program code that when executed
is restricted to accessing only selected memory regions. For example, the nonprivileged
code region 214 comprises OS code and application code (App-NP) 106, and
the fimction handler 106. fa one or more embodiments, the FH106 may be downloaded
to the device 102 from a network or system, installed at device manufacture, or added to
the device from a computer-readable media.
8
[0030] In one embodiment, data memory 210 comprises a privileged region 216 and a
non-privileged region 218. The privileged region 226 comprises data regions that may
be accessed only by privileged program code. For example, the privileged data region
216 comprises data used by the OS, UI, validation, App-P and FUNC code. The nonprivileged
data region 218 includes data regions that may be accessed by non-privileged
program code. For example, the non-privileged data region 218 comprises data used by
the non-privileged OS, App-NP, and FH program code. Also coupled to the data
memory 210 is a memory management unit (MMU) 220. The MMU 220 operates to
restrict access to the non-privileged and privileged data regions. For example, a non-
4 ^ privileged appUcation is restricted from accessing data in the privileged data region 216,
or data belonging to other non-privileged applications in the non-privileged data region
218.
[0031] The processing logic 202 also comprises mode logic 222 and intermpt logic 224.
The mode logic 222 comprises a CPU, processor, logic, device registers, software, or
any combination of hardware and software that operates to allow a mode change
between operating modes of the device 102. For example, in one embodiment, the
mode logic 222 comprises a register whose bits set the operating mode. For example, to
switch from privileged mode to non-privileged mode, selected bits in the register are
set, which results in a non-privileged stack being restored and program execution
continuing in the non-privileged mode.
,.^,>, [0032] The intermpt logic 224 comprises a CPU, processor, logic, software, or any
combination of hardware and software that operates to allow an interrupt to be received
and processed by the processmg logic 202, For example, the interrupt logic 224 may
receive a software intenupt that is generated by program code executed by the
processing logic 202. hi one embodiment, the frmction handler system uses the
software interrupt to allow non-privileged program code to execute a privileged
fimction within the same task and priority. In one embodiment, the intermpt logic 224
-^ processes software intermpts, hardware interrupts, program exceptions, or any other
type of intenupt as part of the operation of the fimction handler system.
[0033] It should be noted that the configuration of the device 102 is just one suitable
configuration for implementing the described fimction handler system. It is also
possible to implement one or more embodiments of the fimction handler system using
9
other device configurations, functional elements or element configurations within the
scope of the present invention.
[0034] During operation of the device 102, the processing logic 202 executes nonprivileged
^plication code (i.fc., App-NP) and/or privileged qiplication code (App-P).
When eifh&c application requires the services of a privileged function, such as Func 110,
the respective ^)plication calls the FH code 112 wifli an identifier that identifies the
desired fimction (i.e., Func). The FH code 112 is non-priAdleged code, and so it may be
called from either privileged or non-privileged applications.
[0035] The FH code determines the operating mode of the calling application, and
based on the determined mode, executes selected procedures to call the privileged
fimction Func to provide the requested services without creating a new task. The
following is a summary of the procedures used by the FH 112 to respond to a request
for the services of a privileged fimction.
1. Receive a request from an application to execute a fimction associated with an
identifier that is passed with the request.
2. Determine the operating mode of the requesting application.
3. If the requesting application is executing in the privileged operating mode, then:
a. Look iqj the requested privileged fimction based on the identifier.
b. Call the privileged fimction.
c. Return to the calling privileged application.
4. If the requesting q)plication is executing in the non-privileged operating mode,
"mi then:
a. Generate a software interrupt and pass the identifier.
b. Transition to a privileged mode interrupt handler.
c. Look \xp the requested privileged fimction based on the identifier.
d. Call the privileged fimction.
e. After the privileged fimction executes, restore the non-privileged
registers
f. Return to the calling non-privileged application.
[0036] In one embodiment, the described fimction handler system comprises program
instiiictions stored on a computer-readable media, which when executed by the
10,
c
processing logic 202, provides the functions described herein. In one or more
embodiments, the computer-readable media comprises a floppy disk, CD, memory card,
FLASH memory device, RAM, ROM, or any other type of memory device.
[0037] FIG, 3 shows a flow diagram 300 that illustrates the operation of one
embodiment of a function handler system for use in a device, for example the device
102. For clarity, the flow diagram 300 will be described with reference to the device
shown in FIG. 2. It will be assumed that the device is executing a BREW runtime
environment that operates to create a thread of execution 302. The execution thread 302
represents the execution of privileged or non-privileged appUcations on the device.
[0038] A system scheduler (not shown) operates to schedule the execution of
^ applications to form the thread of execution 302. Typically, the scheduler operates to
schedule execution based on priority, but may operate to schedule execution based on
other criteria. However, the function handler system described herein provides a
fimction handler that operates within the same thread of execution as a calling
appUcation, thereby avoiding new task creation, associated scheduler complexity, and
possible dispatcher latency.
[0039] The thread of execution 302 represents the execution of either the privileged
appUcation (App-P) or the non-privileged apphcation (App-NP). The executing
appUcation may be a viewer appUcation that allows the device to display various
multimedia content to the device user. As the appUcation executes, a requirement for
the services of a privileged function (Fimc) occm-s. To obtain services from the
,,7^ privileged function, the application calls the FH 304 and passes an identifier that
identifies the privileged function Func. It wiU be assimied that privileged functions
available in the system have an associated identifier that can be discovered by the
executing application. In one or more embodiments, the following functions are
performed by the processing lo^c 202 executing program instructions stored in the code
memoiy 208, which may also process data in the data memory 210.
[0040] At block 306, the FH 304 obtains the identifier that identifies the privileged
-junction Func. For example, the identifier may be passed to the FH in a register
associated with the processing logic 202 or other memory location in the data memory
210.
[0041] At block 308, a test is performed to determine if the calUng application is
executing in the privileged or non-privileged mode. For example, the processing logic
11
determines the current processing mode of the ^plication by evaluating the processor
status registers. If the calUng appUcation is executing in the non-privileged mode, the
method proceeds to block 310. If tibe calling application is executing in the privileged
mode, the method proceeds to block 312.
[0042] At block 312, it has been determined that the ^plication is executing in the
privileged mode. Tlie FH code 304 looks up the requested privileged fimction (i.e.,
Func) based on the received identifier. For example, the processing logic 202 uses the
identifier to access a data structure that maps available functions to identifiers to
detemiine the function being requested by the calling application. The data structure
may be stored in the data memory 210.
[0043] At block 314, the privileged Amotion Func is called to perform the requested
"" service. For example, the privileged Amotion may access a system file or a hardware
resource. In one embodiment, the processing logic executes program instructions to call
the privileged function Func. Upon execution, the function Func may also perform
various parameters checks and validations to verify that the calling application has
passed legal and vaUd parameters. Once the fimction Func has completed executing,
program flow returns to the thread of execution 302.
[0044] Therefore, if a privileged application calls the fimction Func through the FH
304, the FH 304 operates to detennine the requested function, based on the identifier,
and call that function to perform the requested service. If a non-privileged appUcation
calls the fimction Func through the FH 304, the FH 304 operates as follows to provide
tiie requested service.
^^ [0045] At block 310, the FH 304 generates an intexiupt that operates to request that the
operating mode of the device to transition to tiie privileged mode 316 so that the
privileged fimction Func can acecute. The interrupt may be a software internq)t or any
other type of interrupt that may be generated by the FH 304. The interrupt includes the
identifier passed fix)m the calling application. For example, the interrupt may be
generated and/or processed by intemipt logic 224 shown in FIG. 2.
[0046] After the interrupt is generated, program execution flows to privileged mode
- • I
program code 316 where the privileged function Func is call within the same task as the
calling application.
[0047] A brief description of the operation of program code 316 is provided below.
However, for a more detailed description of the operation of the program code 316, the
12
c.
reader is referred to U.S. Patent Application entitled "SYSTEM FOR PROVIDING
TRANSITIONS BETWEEN OPERATING MODES OF A DEVICE" having Attorney Docket No.
030620, which is incorporated by referaice herein.
[0048] After a switch to a privileged mode stack occurs and validation of the passed
function identifier, the program execution flows to block 318.
[0049] At block 318, the desired privileged function is determined based on the passed
identifier. For example, a data structure stored in the data memory 210 is search by the
processing logic 202 based on the identifier to identify the desu-ed function Func.
[0050] At block 320, once the privileged function Func is determined, it is called. For
example, in one embodiment, the processing logic 202 executes instructions stored in
"^ the code memory 208 to call the function Func. The privileged function may operate to
open a particular system file that contains data for use by the calling non-privileged
appUcation. hi one embodiment, additional parameters are passed to the privileged
function fi-om the application. For example, the parameters may further indicate or
define the type of service being requested by the non-privileged application. The
privileged function operates to validate these parameters to verify that execution of the
privileged function will not exceed the privileges granted to the application. For
example, the function operates to validate the parameters so that execution of the
fiinction will not exceed memory restrictions placed on the application.
[0051] At block 322, after the function Func is performed, the non-privileged mode
registers are restored, including the non-privileged mode stack. The program execution
'^€$ retums to the non-privileged amplication thread 302 as shown at path 324.
[0052] It should be noted that the program flow diagram 300 illustrates just one
embodiment and that changes, additions, or rearrangements of the program elements
may be made without deviating from the scope of the invention.
[0053] Accordingly, while one or more embodiments of methods and apparatus for a
function handler system have been illustrated and described herein, it will be
appreciated that various changes can be made to the embodiments without departing
from their spirit or essential characteristics. Therefore, the disclosures and descriptions
herein are intended to be illustrative, but not limiting, of the scope of the invention,
which is set forth in the following claims.
13








Cleancopy of claims
Indian Patent application No.: 2351/DELNP/2006
#*, We claim
1. A method for allowing an application (106,108) to invoke a function (110) on a
device (102), wherein the device includes at least two operating modes comprising a
privileged mode and a non-privileged mode, and the function (110) executes in the privileged
mode, the method comprising:
receiving a request from the application to invoke the function (110);
determining the operating mode of the application;
invoking the function using an interrupt, if the application (106) is executing in the
non-privileged mode, wherein the function (110) is executed within the same task as the
application(106); and
invoking (314) the function directly, if the application (108) is executing in the
privileged mode.
2. The method as claimed in claim 1, wherein the interrupt is a software interrupt.
3. The method of claim 1 , further comprising determining (318) the function (110)
based on an identifier that is passed with the request.
4. The method as claimed in claim 1, further comprising returning to the application
(106,108) when the execution of the function is completed.
5. The method as claimed in claim 1, wherein the device (102) is a wireless device.
6. Apparatus for allowing an application (106,108) to invoke a function (110) on a
device (102), wherein the device includes at least two operating modes comprising a
privileged mode and a non-privileged mode, and the function (110) executes in the privileged
mode, the apparatus comprising:
means for receiving a request from the application (106,108) to invoke the
function(llO);
means for determining the operating mode of the application (106,108);
Clean copy of claims
Indian Patent application No.: 2351/DELNP/2006
^ ^ means for invoking the function using an interrupt, if the appHcation (106) is
executing in the non-privileged mode, wherein the function (110) is executed within the same
task as the application (106); and
means for invoking the function (110) directly, if the application (108) is executing in
the privileged mode.
7. The apparatus as claimed in claim 6, wherein the interrupt is a software interrupt.
8. The apparatus as claimed in claim 6, further comprising identifier means for
identifying the function(l 10).
9. The apparatus as claimed in claim 6, wherein the device (102) is a wireless device.
10. The apparatus as claimed in any of claims 6 to 9, wherein the means for receiving, the
means for determining, and the means for invoking comprise logic.
Dated this 27 Drishi Kaur Vilkhu
Of Anand and Anand Advocates
Attorney for the Applicant

Documents:

2351-delnp-2006-abstract.pdf

2351-delnp-2006-Claims-(18-02-2014).pdf

2351-delnp-2006-Claims-(21-08-2013).pdf

2351-delnp-2006-claims.pdf

2351-delnp-2006-Correspondence Others-(21-08-2013).pdf

2351-delnp-2006-Correspondence Others-(18-02-2014).pdf

2351-delnp-2006-correspondence-others 1.pdf

2351-delnp-2006-correspondence-others.pdf

2351-delnp-2006-Description (Complete)-(21-08-2013).pdf

2351-delnp-2006-description (complete).pdf

2351-delnp-2006-Drawings-(21-08-2013).pdf

2351-delnp-2006-drawings.pdf

2351-delnp-2006-form-1.pdf

2351-delnp-2006-form-18.pdf

2351-delnp-2006-Form-2-(21-08-2013).pdf

2351-delnp-2006-form-2.pdf

2351-delnp-2006-Form-3-(21-08-2013).pdf

2351-delnp-2006-form-3.pdf

2351-delnp-2006-form-5.pdf

2351-delnp-2006-GPA-(21-08-2013).pdf

2351-delnp-2006-gpa.pdf

2351-delnp-2006-pct-304.pdf

2351-delnp-2006-pct-311.pdf

2351-delnp-2006-pct-332.pdf

2351-delnp-2006-pct-402.pdf

2351-delnp-2006-Petition-137-(21-08-2013).pdf


Patent Number 260290
Indian Patent Application Number 2351/DELNP/2006
PG Journal Number 17/2014
Publication Date 25-Apr-2014
Grant Date 21-Apr-2014
Date of Filing 27-Apr-2006
Name of Patentee QUALCOMM INCORPORATED
Applicant Address 5775 MOREHOUSE DRIVE SAN DIEGO, CLIFORNIA 92121-1741, USA
Inventors:
# Inventor's Name Inventor's Address
1 KELLEY BRIAN HAROLD 10917 CLOVERHURST WAY, SAN DIEGO, CA 92130, USA
2 CHANDRASEKHAR RAMESH 12671 LA TORTOLA, SAN DIEGO, CA 92129, USA
PCT International Classification Number G06F
PCT International Application Number PCT/US2004/036286
PCT International Filing date 2004-10-28
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 10/697,355 2003-10-29 U.S.A.