用于在一装置中调用一特权函数的系统转让专利

申请号 : CN200480031825.4

文献号 : CN100596055C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 布赖恩·哈罗德·凯利拉梅什·钱德拉塞卡尔

申请人 : 高通股份有限公司

摘要 :

本发明提供一种用于在一装置中调用一特权函数的系统。所述系统包含一允许一应用程序在一装置上调用一函数的方法,其中所述装置包含包括一特权模式(314)和一非特权模式(322)在内的至少两种操作模式,且所述函数以所述特权模式(314)执行。所述方法包含:从所述应用程序接收一调用所述函数的请求;和判定所述应用程序的操作模式。所述方法还包含:如果所述应用程序正以所述非特权模式执行,那么使用一中断(310)来调用所述函数,其中在与所述应用程序相同的任务中执行所述函数。所述方法还包含:如果所述应用程序正以所述特权模式执行,那么直接调用所述函数。

权利要求 :

1.一种允许一应用程序在一装置上调用一函数的方法,其中所述装置包含包括一特权 模式和一非特权模式在内的至少两种操作模式,且所述函数以所述特权模式执行, 所述方法包括:从所述应用程序接收一调用所述函数的请求;

判定所述应用程序的操作模式;

如果所述应用程序正以所述非特权模执行,那么使用一中断来调用所述函数,其 中在与所述应用程序相同的任务中执行所述函数;和如果所述应用程序正以所述特权模式执行,那么直接调用所述函数。

2.根据权利要求1所述的方法,其中所述中断为一软件中断。

3.根据权利要求1所述的方法,其进一步包括基于一连同所述请求一起传递的识别符 来判定所述函数。

4.根据权利要求1所述的方法,其进一步包括当所述函数的所述执行完成时返回至所 述应用程序。

5.根据权利要求1所述的方法,其中所述装置为一无线装置。

6.一种允许一应用程序在一装置上调用一函数的设备,其中所述装置包含包括一特权 模式和一非特权模式在内的至少两种操作模式,且所述函数以所述特权模式执行, 所述设备包括:从所述应用程序接收一调用所述函数的请求的逻辑单元;

判定所述应用程序的操作模式的逻辑单元;

在所述应用程序正在执行所述非特权模式时使用一中断来调用所述函数的逻辑 单元,其中,在与所述应用程序相同的任务中执行所述函数;和在所述应用程序正在执行所述特权模式时直接调用所述函数的逻辑单元。

7.根据权利要求6所述的设备,其中所述中断为一软件中断。

8.根据权利要求6所述的设备,其进一步包括一与所述请求关联的识别符,所述识别 符识别所述函数。

9.根据权利要求6所述的设备,其中所述装置为一无线装置。

10.一种允许一应用程序在一装置上调用一函数的设备,其中所述装置包含包括一特权 模式和一非特权模式在内的至少两种操作模式,且所述函数以所述特权模式执行, 所述设备包括:用于从所述应用程序接收一调用所述函数的请求的构件;

用于判定所述应用程序的操作模式的构件;

所述应用程序正在执行所述非特权模式时的用于使用一中断来调用所述函数的 构件,其中在与所述应用程序相同的任务中执行所述函数;和所述应用程序正在执行所述特权模式时的用于直接调用所述函数的构件。

11.根据权利要求10所述的设备,其中所述中断为一软件中断。

12.根据权利要求10所述的设备,其进一步包括用于识别所述函数的识别符构件。

13.根据权利要求10所述的设备,其中所述装置为一无线装置。

说明书 :

技术领域

本发明大体上涉及一装置的有效操作,且更特定地说涉及一种用于在一装置中调用 一特权函数的系统。

背景技术

技术进步已导致家庭、办公和个人用途的各种装置的发展。例如,例如桌上型计算 机、笔记本计算机和平板计算机的计算机系统已成为用于家庭或办公环境的强大工具。 例如无线电话、个人数字助理(PDA)和传呼装置的个人装置也已变得更加强大且正被 广泛使用。
如今许多装置包括运行例如UNIX、LINUX的操作系统或类似操作系统的复杂硬件 和软件。通常,这些操作系统提供多种操作模式。例如,大多数系统提供特权操作模式 和非特权操作模式。允许以特权操作模式执行的程序无限制地访问存储器和系统资源。 限制以非特权模式执行的程序访问特定存储区域和/或装置系统。此配置对于重要的存储 器或装置函数提供某种程度的保护。例如,通过以非特权模式执行第三方应用程序,可 保护重要的存储区域和装置函数免遭非授权访问。并且,此配置允许系统在执行期间将 故障隔离开来。
然而在某些情况下,需要允许从以特权模式或非特权模式执行的应用程序调用特权 模式函数。例如,需要特权模式应用程序具有对特权模式函数的访问权,但也需要以非 特权模式执行的应用程序具有对相同特权函数的访问权。例如,可能需要允许应用程序 具有对一选定的系统文件或装置硬件(例如装置调制解调器)的访问权。
不幸的是,常规系统利用一陷阱来暂时中止非特权应用程序的执行,同时一分离的 特权模式“核心”任务执行所请求的操作。因此,新特权模式任务导致另外的排程复杂 性和额外开销。也可能存在调度程序延滞形式的另外的系统延迟。此外,新任务与非特 权应用程序(从中调用了新任务)相比可以不同优先权而执行,藉此使系统排程和操作 进一步复杂。
因此,需要这样一种系统,其提供以特权模式或非特权模式执行的应用程序调用特 权模式函数的方式,所述应用程序调用一特权模式函数以便在与应用程序相同的任务内 执行,藉此为执行于任一模式下的应用程序提供对特权模式挂接的访问权。

发明内容

在一或一个以上实施例中,提供一种包括方法和/或设备的系统,所述系统运行以便 为以特权模式或非特权模式执行的应用程序提供对特权模式挂接的访问权。例如,在一 实施例中,所述系统提供一函数处理器,其允许以非特权模式运行的应用程序在相同任 务(或执行线程)内执行特权模式函数,藉此避免任务建立、排定和调度程序延滞。所 述函数处理器也可为特权应用程序所访问以便允许那些应用程序执行特权函数。因此, 所述系统良好地应用于现有软件中,因为可在不改变现有软件模型的前提下实现对特权 模式函数的存取。
在一或一个以上实施例中,所述函数处理器运行以便判定一调用应用程序正以特权 模式执行还是以非特权模式执行。如果所述调用应用程序正以特权模式执行,那么函数 处理器直接调用特权函数。如果调用应用程序正以非特权模式执行,那么函数处理器产 生一由(例如)一过渡系统处理的中断,所述过渡系统允许在与调用非特权应用程序相 同的任务内调用特权函数。因此,函数处理器运行以便为特权和非特权应用程序两者提 供特权函数挂接。
在一实施例中,调用应用程序将一函数识别符传递至函数处理器。所述函数识别符 识别可用于执行的函数。在一实施例中,函数处理器根据识别符判定函数并直接调用所 述函数。在另一实施例中,函数处理器产生中断并将识别符传递至过渡系统,所述过渡 系统在适当验证之后使用所述识别符来调用所请求的函数。所述中断可为基于软体、硬 体或异常的中断。
在一实施例中,提供一种允许一应用程序在一装置上调用一函数的方法,其中所述 装置包含至少两种操作模式,所述操作模式包括一特权模式和一非特权模式,且所述函 数以所述特权模式执行。所述方法包括:从所述应用程序接收一调用所述函数的请求; 和判定所述应用程序的操作模式。所述方法还包括:如果所述应用程序正以所述非特权 模式执行,那么使用一中断来调用所述函数,其中在与所述应用程序相同的任务内执行 所述函数。所述方法还包括:如果所述应用程序正以所述特权模式执行,那么直接调用 所述函数。
在另一实施例中,提供一种允许一应用程序在一装置上调用一函数的设备,其中所 述装置包含至少两种操作模式,所述操作模式包括一特权模式和一非特权模式,且所述 函数以所述特权模式执行。所述设备包括从所述应用程序接收一调用所述函数的请求的 逻辑。所述设备还包括判定所述应用程序的操作模式的逻辑。所述设备还包括如果所述 应用程序正以所述非特权模式执行就使用一中断来调用所述函数的逻辑,其中在与所述 应用程序相同的任务内执行所述函数。所述设备还包括如果所述应用程序正以所述特权 模式执行就直接调用所述函数的逻辑。
在另一实施例中,提供一种允许一应用程序在一装置上调用一函数的设备,其中所 述装置包含至少两种操作模式,所述操作模式包括一特权模式和一非特权模式,且所述 函数以所述特权模式执行。所述设备包括用于从所述应用程序接收一调用所述函数的请 求的构件,和用于判定所述应用程序的操作模式的构件。所述设备还包括用于如果所述 应用程序正以所述非特权模式执行就使用一中断来调用所述函数的构件,其中在与所述 应用程序相同的任务内执行所述函数。所述设备还包括用于如果所述应用程序正以所述 特权模式执行就直接调用所述函数的构件。
在另一实施例中,提供一种包括指令的计算机可读媒体,当一装置中的一处理器执 行所述指令时,所述指令运行以便允许一应用程序在一装置上调用一函数,其中所述装 置包含至少两种操作模式,所述操作模式包括一特权模式和一非特权模式,且所述函数 以所述特权模式执行。所述计算机可读媒体包括用于从所述应用程序接收一调用所述函 数的请求的指令,和用于判定所述应用程序的操作模式的指令。所述计算机可读媒体还 包括用于如果所述应用程序正以所述非特权模式执行就使用一中断来调用所述函数的指 令,其中在与所述应用程序相同的任务内执行所述函数。所述计算机可读媒体还包括用 于如果所述应用程序正以所述特权模式执行就直接调用所述函数的指令。
在阅读下文所陈述的附图说明、具体实施方式和权利要求书之后,将更易了解本发 明的其他方面、优点和特征。

附图说明

结合附图,参看以下具体实施方式,将更易了解本文中所描述的实施例的前述方面 和相应优点,在附图中:
图1展示一函数处理器系统的一实施例,所述函数处理器系统为执行于一装置102 上的特权和非特权应用程序提供特权函数挂接;
图2展示一包括函数处理器系统的一实施例的装置的详细方框图;且
图3展示说明用于装置中的函数处理器系统的一实施例操作的流程图。

具体实施方式

以下具体实施方式描述一函数处理器系统,其为特权和非特权应用程序提供特权函 数挂接。例如,所述系统运行以便从特权和非特权应用程序接收函数调用,此后,判定 调用应用程序的操作模式,并提供至特权函数的快速且有效过渡。所述函数执行于与调 用应用程序相同的执行线程内。因此,函数处理器为特权和非特权应用程序两者提供特 权函数挂接,接着特权和非特权应用程序能够调用特权函数而不会产生一新任务,藉此 避免新任务建立、排定和调度程序延滞的开销。
在一或一个以上实施例中,函数处理器系统与执行于装置上的运行环境(或操作系 统)互动,所述运行环境是用来(例如)通过提供对装置特定资源的一般调用来简化装 置操作。一种此类运行环境为由美国加州圣地亚哥市的高通(QUALCOMM)公司开发 的无线二进制运行环境TM(BREWTM)软件平台。以下实施方式描述一执行例如BREW 软件平台的运行环境的装置。然而,在一或一个以上实施例中,所述注册系统适于与其 他类型运行环境一起使用以在多种装置中提供特权函数挂接的快速且有效注册,所述多 种装置包含产生系统或其他控制或监视程序。例如,所述装置可包含(但不限于)台式 计算机、笔记本计算机、手提计算机,和例如无线电话、传呼机、PDA、电子邮件装置、 平板计算机等便携式装置,或其他类型计算装置。
图1展示一函数处理器系统100的一实施例,所述函数处理器系统100为执行于一 装置102上的特权和非特权应用程序提供特权函数挂接。系统100可为家用计算机、办 公计算机、或例如无线电话或PDA的个人装置或者任何其他类型计算装置的一部分。在 操作期间,一或一个以上应用程序执行于装置102上以便为装置102提供信息、功能和/ 或服务。例如,应用程序的一种类型可为观看器应用程序,其运行以便允许装置102显 示电影、新闻或其他类型多媒体内容。
在一实施例中,装置102包含一运行环境104(意即,BREW),其提供至少两种操 作模式,即非特权模式(NP)和特权模式(P)。非特权操作模式是用来限制运行于装置 上的应用程序的访问并提供故障检测。例如,将以非特权模式运行的应用程序限制于选 定的存储区域,且可拒绝其访问装置寄存器或其他资源。特权操作模式允许在此模式下 运行的应用程序不受限制地访问存储器或装置资源。
当应用程序执行于装置102上时,其在运行环境下运行以便提供所需功能性。例如, 应用程序116在非特权模式(NP)下运行于装置102上,且应用程序118在特权模式(P) 中运行于装置102上。这些应用程序的任一者可要求通过一特权函数110可用的功能或 系统资源。例如,应用程序可能需要访问特权存储器或装置硬件资源。为了获得这些功 能和服务,函数处理器系统100提供一机制,所述机制允许任一应用程序(116、118) 通过一函数处理器112来调用特权函数。当通过函数处理器112被调用时,函数110执 行于与调用应用程序相同的执行线程内。在函数110执行所请求的服务之后,程序控制 返回调用应用程序。
因此,函数处理器系统100提供一快速且有效的机制以便允许特权和非特权应用程 序执行特权函数,而无需建立新任务和排程新任务以供由运行环境执行,藉此消除排程 器复杂性和相关调度程序延滞。
图2展示包括函数处理系统的一实施例的装置102的详细方框图。装置102包括处 理逻辑模块202和耦接至一内部数据总线204的装置资源206。所述装置资源206包括 硬件、软件、存储器、逻辑或允许所述装置连接至各种内部和外部资源、装置或系统的 其他资源。代码存储器208和数据存储器210也耦接至处理逻辑模块202。
在一或一个以上实施例中,处理逻辑模块202包括一CPU、处理器、门阵列、硬件 逻辑、存储器元件、虚拟机、软件、I/O接口和/或硬件与软件的任何组合。因此,处理 逻辑模块202通常包括用来执行机器可读指令的逻辑。例如,可从一例如软盘、CDROM、 闪存的计算机可读媒体,或通过装置资源206而连接至装置102的其他计算机可读媒体 将指令载入装置102中。在另一实施例中,可从一例如网络服务器的网络资源,或通过 装置资源206而连接至装置102的任何其他类型网络资源将指令下载至装置102中。当 处理逻辑模块202执行指令时,所述指令提供如本文中所描述函数处理系统的一或一个 以上实施例。
在一实施例中,代码存储器208包括RAM、ROM、FLASH、EEROM或任何其他适 宜类型的存储器,或其组合。通过一存储器管理单元(memory management unit)216的 操作将代码存储器206分割成一特权区域(P)212和一非特权区域(NP)214。所述MMU 216运行以便限制非特权程序代码的操作,从而使非特权代码对于代码存储器208的选 定区域具有有限访问权。
特权区域212包含程序代码,当所述程序代码被执行时,其对于存储器或装置102 的其他系统具有无限制访问权。例如,特权代码区域212包括操作系统代码(OS)、用 户接口代码(UI)、验证代码、应用程序代码(App-P)108和特权函数代码FUNC 110。 特权代码区域212中所展示的代码代表可包含于装置102中的特权代码类型。特权代码 区域212也可能包含用于执行于装置102上的其他类型特权代码。
非特权代码区域214包含程序代码,当所述程序代码被执行时,其被限制为仅访问 选定的存储区域。例如,非特权代码区域214包括OS代码和应用程序代码(App-NP) 106,以及函数处理器106。在一或一个以上实施例中,可从一在装置制造时安装的网络 或系统将FH 106下载至装置102,或可从一计算机可读媒体将FH 106添加至所述装置。
在一实施例中,数据存储器210包括一特权区域216和一非特权区域218。所述特 权区域216包括仅可由特权程序代码访问的数据区域。例如,特权数据区域226包括OS、 UI、验证、App-P和FUNC代码所使用的数据。所述非特权数据区域218包含可由非特 权程序代码访问的数据区域。例如,非特权数据区域218包括由非特权OS、App-NP和 FH程序代码所使用的数据。一存储器管理单元(MMU)220也耦接至数据存储器210。 MMU 220运行以便限制对于非特权和特权数据区域的访问。例如,限制非特权应用程序 访问特权数据区域216中的数据,或属于非特权数据区域218中其他非特权应用程序的 数据。
处理逻辑模块202还包括模式逻辑模块222和中断逻辑模块224。模式逻辑模块222 包括一CPU、处理器、逻辑、装置寄存器、软件或运行以允许在装置102的操作模式之 间进行模式变化的硬件与软件的任何组合。例如,在一实施例中,模式逻辑模块222包 括一寄存器,所述寄存器的位设置操作模式。例如,为了从特权模式切换至非特权模式, 设置暂存器中选定的位,从而使得恢复非特权堆栈且以非特权模式继续进行程序执行。
中断逻辑模块224包括一CPU、处理器、逻辑、软件或运行以允许处理逻辑模块202 接收并处理中断的硬件与软件的任何组合。例如,中断逻辑模块224可接收由处理逻辑 模块202执行的程序代码所产生的软件中断。在一实施例中,函数处理系统使用所述软 件中断来允许非特权程序代码执行相同任务和优先权内的特权函数。在一实施例中,中 断逻辑模块224处理软件中断、硬件中断、程序异常或作为函数处理系统操作的一部分 的任何其他类型中断。
应注意,所述装置102的配置仅为一种适于实施所描述的函数处理系统的配置。也 可能使用本发明范畴内的其他装置配置、功能元件或元件配置来实施函数处理系统的一 或一个以上实施例。
在装置102操作期间,处理逻辑模块202执行非特权应用程序代码(意即,App-NP) 和/或特权应用程序代码(App-P)。当任一应用程序要求特权函数服务(例如Func 110) 时,个别应用程序调用具有识别符的FH代码112,所述识别符识别所需函数(意即,Func)。 FH代码112为非特权代码,且因此其可从特权或非特权应用程序中被调用。
FH代码判定调用应用程序的操作模式,并基于所判定的模式来执行选定步骤以便调 用特权函数Func来提供所请求的服务而不会建立新任务。以下为FH 112用来回应对于 特权函数服务的请求的步骤概述。
1.从应用程序接收一执行与一识别符关联的函数的请求,所述识别符连同所述请求 一起传递。
2.判定所述请求应用程序的操作模式。
3.如果请求应用程序正以特权操作模式执行,那么:
a.基于识别符来查找所请求的特权函数。
b.调用特权函数。
c.返回调用特权应用程序。
4.如果请求应用程序正以非特权操作模式执行,那么:
a.产生软件中断并传递识别符。
b.过渡至特权模式中断处理器。
c.基于识别符来查找所请求的特权函数。
d.调用特权函数。
e.在特权函数执行之后,恢复非特权寄存器。
f.返回调用非特权应用程序。
在一实施例中,所描述的函数处理系统包括存储于计算机可读媒体上的程序指令, 当处理逻辑模块202执行所述程序指令时,所述程序指令提供本文中所描述的功能。在 一或一个以上实施例中,计算机可读媒体包括软盘、CD、存储卡、FLASH存储装置、 RAM、ROM或任何其他类型存储装置。
图3展示说明用于一装置(例如装置102)中的函数处理系统的一实施例操作的流 程图300。为明确起见,将参看图2中所展示的装置102来描述流程图300。将假设所述 装置正执行BREW运行环境,所述BREW运行环境运行以便建立一执行线程302。所述 执行线程302表示在装置上执行特权或非特权应用程序。
一系统排程器(未图示)运行以便排程应用程序的执行,从而形成执行线程302。 通常,排程器运行以便基于优先权来排程执行,但可运行以便基于其他标准来排程执行。 然而,本文中所描述的函数处理器系统提供一函数处理器,所述函数处理器在与调用应 用程序相同的执行线程内运行,藉此避免新任务建立、相关排程器复杂性和可能的调度 程序延滞。
执行线程302表示执行特权应用程序(App-P)或非特权应用程序(App-NP)。执行 应用程序可为查看器应用程序,其运行以便允许装置为装置用户显示各种多媒体内容。 当应用程序执行时,发生对于一特权函数(Func)服务的要求。为了获得来自特权函数 的服务,应用程序调用FH 304并传递一识别特权函数Func的识别符。将假设:系统中 可用的特权函数具有一可被执行应用程序发现的相关识别符。在一或一个以上实施例中, 执行存储于代码存储器208中的程序指令的处理逻辑模块202执行以下功能,所述处理 逻辑模块202也处理数据存储器210中的数据。
在方框306处,FH 304获得识别特权函数Func的识别符。例如,所述识别符可在 与处理逻辑模块202关联的寄存器中或数据存储器210中其他存储位置中而传递至FH。
在方框308处,执行一测试来判定调用应用程序正以特权模式执行还是以非特权模 式执行。例如,处理逻辑模块通过评估处理器状态寄存器来判定应用程序的当前处理模 式。如果调用应用程序正以非特权模式执行,那么方法前进至方框310。如果调用应用 程序正以特权模式执行,那么方法前进至方框312。
在方框312处,已判定应用程序正以特权模式执行。FH代码304基于接收到的识别 符来查找所请求的特权函数(意即,Func)。例如,处理逻辑模块202使用识别符来访问 一将可用函数映射至识别符的数据结构,以便判定调用应用程序正请求的函数。数据结 构可存储于数据存储器210中。
在方框314中,调用特权函数Func以便执行所请求的服务。例如,特权函数可访问 一系统文件或一硬件资源。在一实施例中,处理逻辑模块执行程序指令以便调用特权函 数Func。一旦执行,函数Func也可执行各种参数查核和验证以便确认调用应用程序已 通过合法且有效参数。一旦函数Func已完成执行,那么程序流返回执行线程302。
因此,如果特权应用程序通过FH 304调用函数Func,那么FH 304运行以便基于识 别符来判定所请求的函数,并调用所述函数来执行所请求的服务。如果非特权应用程序 通过FH 304调用函数Func,那么FH 304如下运行以便提供所请求的服务。
在方框310处,FH 304产生一中断,所述中断运行以便请求装置的操作模式过渡至 特权模式316,从而特权函数Func可执行。中断可为一软件中断或可由FH 304产生的 任何其他类型中断。中断包括自调用应用程序传递的识别符。例如,中断可由图2中所 展示的中断逻辑模块224产生和/或处理。
在产生中断之后,程序执行流动至特权模式程序代码316,其中在与调用应用程序 相同的任务内调用特权函数Func。
下文提供对于程序代码316的操作的简单描述。然而,关于对于程序代码316的操 作的更详细描述,读者可参考标题为“SYSTEM FOR PROVIDING TRANSITIONS BETWEEN OPERATING MODES OF A DEVICE”的代理人案号第030620号美国专利申 请案,其以引用的方式并入本文中。
在方框318处,基于所传递的识别符来判定所需特权函数。例如,处理逻辑模块202 基于识别符来搜寻存储于数据存储器210中的数据结构以便识别所需函数Func。
在方框320处,一旦判定了特权函数Func,那么调用所述特权函数Func。例如,在 一实施例中,处理逻辑模块202执行存储于代码存储器208中的指令来调用函数Func。 特权函数可运行以便打开一特定系统文件,所述系统文件含有供调用非特权应用程序使 用的数据。在一实施例中,从应用程序将另外的参数传递至特权函数。例如,所述参数 可进一步指示或界定非特权应用程序所请求的服务类型。特权函数运行以便验证这些参 数,从而确认特权函数的执行将不会超出准予应用程序的特权。例如,所述函数运行以 便验证参数,从而函数的执行将不会超出对应用程序规定的存储限制。
在方框322处,在执行函数Func之后,恢复非特权模式寄存器,包含恢复非特权模 式堆栈。如路径324处所展示,程序执行返回非特权应用程序线302。
应注意,程序流程图300仅说明一实施例,且在不背离本发明范畴的前提下可对程 序元件作出变化、添加或重新配置。
因此,尽管本文已说明并描述一函数处理系统的方法和设备的一或一个以上实施例, 但应了解在不背离所述实施例精神或本质特征的前提下可对这些实施例作出各种变化。 因此,本文中的揭示内容和描述是用来说明所附权利要求书中提出的本发明的保护范围, 而不是对其进行限定。