(57)【要約】デバイス内の特権機能を呼出すためのシステム。そのシステムはデバイス上で機能を呼出すことを可能にする方法を含み、そこではデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、その機能は特権モードで実行する。その方法は機能を呼出すためにアプリケーションから要求を受取ること、及びアプリケーションの動作モードを決定することを含む。アプリケーションが非特権モードで実行中であれば、その方法はまた割込みを使用して機能を呼出すことを含み、そこではその機能はアプリケーションと同じタスク内で実行される。アプリケーションが特権モードで実行中であれば、その方法はまた機能を直接呼出すことを含む。【選択図】      図３
2007510236.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションがデバイスで機能を呼出すことを可能にする方法であって、そのデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、機能は特権モードで実行し、
機能を呼出すためにアプリケーションから要求を受取ること、
アプリケーションの動作モードを決定すること、
その機能はアプリケーションと同じタスク内で実行されており、アプリケーションが非特権モードで実行中であれば、割込みを使用して機能を呼出すこと、及び
アプリケーションが特権モードで実行中であれば、機能を直接呼出すことを含む方法。
【請求項２】
割込みはソフトウェア割込みである、請求項１記載の方法。
【請求項３】
要求によって渡される識別子に基づいて機能を決定することをさらに含む、請求項１記載の方法。
【請求項４】
機能の実行が完了するとき、アプリケーションに戻ることをさらに含む、請求項１記載の方法。
【請求項５】
そのデバイスは無線デバイスである、請求項１記載の方法。
【請求項６】
アプリケーションがデバイスで機能を呼出すことを可能にする装置であって、そのデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、機能は特権モードで実行し、
機能を呼出すためにアプリケーションから要求を受取る論理、
アプリケーションの動作モードを決定する論理、
その機能はアプリケーションと同じタスク内で実行されており、アプリケーションが非特権モードで実行中であれば、割込みを使用して機能を呼出す論理、及び
アプリケーションが特権モードで実行中であれば、機能を直接呼出す論理を具備する装置。
【請求項７】
割込みはソフトウェア割込みである、請求項６記載の装置。
【請求項８】
機能を識別する要求に関連する識別子をさらに含む、請求項６記載の装置。
【請求項９】
そのデバイスは無線デバイスである、請求項６記載の装置。
【請求項１０】
アプリケーションがデバイスで機能を呼出すことを可能にする装置であって、そのデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、機能は特権モードで実行し、
機能を呼出すためにアプリケーションから要求を受取る手段、
アプリケーションの動作モードを決定する手段、
その機能はアプリケーションと同じタスク内で実行されており、アプリケーションが非特権モードで実行中であれば、割込みを使用して機能を呼出す手段、及び
アプリケーションが特権モードで実行中であれば、機能を直接呼出す手段を具備する装置。
【請求項１１】
割込みはソフトウェア割込みである、請求項１０記載の装置。
【請求項１２】
機能を識別する識別手段を具備する、請求項１０記載の装置。
【請求項１３】
そのデバイスは無線デバイスである、請求項１０記載の装置。
【請求項１４】
デバイス内のプロセッサによって実行されるとき、アプリケーションがデバイス上で機能を呼出すことを可能にするように動作する命令を含むコンピュータ可読媒体であって、そのデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、機能は特権モードで実行し、
機能を呼出すためにアプリケーションから要求を受取る命令、
アプリケーションの動作モードを決定する命令、
その機能はアプリケーションと同じタスク内で実行されており、アプリケーションが非特権モード で実行中であれば、割込みを使用して機能を呼出す命令、及び
アプリケーションが特権モードで実行中であれば、機能を直接呼出す命令を含むコンピュータ可読媒体。
【請求項１５】
割込みはソフトウェア割込みである、請求項１４記載のコンピュータ可読媒体。
【請求項１６】
要求によって渡される識別子に基づいて機能を決定する指示をさらに含む、請求項１４記載のコンピュータ可読媒体。
【請求項１７】
機能の実行が完了するとき、アプリケーションに戻る指示をさらに含む、請求項１４記載のコンピュータ可読媒体。
【請求項１８】
そのデバイスは無線デバイスである、請求項１４記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデバイスの効率的な動作に関係し、特にデバイスにおける特権機能（a privileged function）を呼出すためのシステムに関する。
【背景技術】
【０００２】
技術の進歩は家庭、オフィス、及び個人使用の様々なデバイスの発展をもたらしてきた。例えば、デスクトップ、ノートブック、及びタブレット・コンピュータといったコンピュータ・システムは家庭もしくはオフィス環境における使用に関して強力なツールとなった。無線電話、携帯情報機器（ＰＤＡ）、及びページング・デバイスのような個人用デバイスもまた強力になり、今や広く使用されている。
【０００３】
多くのデバイスは今やＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）といったオペレーティング・システム、または同様のオペレーティング・システムを動かす複雑なハードウェア及びソフトウェアを含んでいる。一般に、これらのオペレーティング・システムは多数の動作モードを提供する。例えば、大部分のシステムは特権及び非特権動作モードを提供する。特権動作モードにおいて実行するプログラムは無制限にメモリ及びシステム資源にアクセスすることが可能である。非特権モードにおいて実行するプログラムはあるメモリ領域及び／またはデバイス・システムにアクセスすることを制限される。この構成は重要なメモリまたはデバイス機能に保護レベルを提供する。例えば、非特権的モードで第三者のアプリケーションを実行することによって、大切なメモリ領域及びデバイス機能は不許可アクセスから保護される。また、そのような配置はシステムが実行の間に欠陥を分離することを可能にする。
【０００４】
しかしながら、いくつかの状況では、特権モード機能が特権もしくは非特権モードのいずれかにおいて実行するアプリケーションから呼出されることを可能にすることが望ましい。例えば、特権モード・アプリケーションが特権モード機能へアクセスできることは望ましいが、非特権モードにおいて実行するアプリケーションが同じ特権機能へアクセスができることもまた望ましい。例えば、アプリケーションが選択されたシステム・ファイルへ、またはデバイス・モデムのようなデバイス・ハードウェアへアクセスすることを可能にすることは望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
あいにく、個別の特権モード「核（kernel）」タスクが要求された動作を行うとき、従来のシステムは非特権アプリケーションの実行を保留するためにトラップを利用する。その結果、新しい特権モード・タスクは別の予定計画を立てる複雑さ及びオーバーヘッドが生じる。またディスパッチャ待ち時間（dispatcher latency）の形で追加システムの遅延がある。さらに、新しいタスクはそれが呼び出された非特権アプリケーションと異なる優先権で実行し、それによってさらにシステムの予定計画及び動作を複雑にする。
【０００６】
従って、アプリケーションと同じタスク内で実行する特権機能を呼出すために特権もしくは非特権モードのいずれかにおいて実行し、それによっていずれかのモードのもとで実行するアプリケーションへの特権モード・フックにアクセスを提供するアプリケーションのための方法を提供するシステムが必要である。
【課題を解決するための手段】
【０００７】
一以上の実施例では、方法及び／または装置を含むシステムは特権もしくは非特権モードのいずれかにおいて実行するアプリケーションから特権モード・フックにアクセスするために動作する。例えば、一実施例では、非特権モードで実行中のアプリケーションが同じタスク（もしくは、実行スレッド）内で特権モード機能を実行することを可能にし、それによってタスク構築、予定計画及びディスパッチャの待ち時間を回避する機能ハンドラー（a function handler）をシステムは提供する。機能ハンドラーはまたそれらのアプリケーションが特権機能を実行することを可能にするために特権アプリケーションにアクセス可能である。このように、特権モード機能へのアクセスは現存のソフトウェア・モデルを変えないで達成できるために、システムは現存ソフトウェアにうまく割付けられる。
【０００８】
一以上の実施例では、機能ハンドラーは呼出しアプリケーションが特権もしくは非特権モードで実行中であるかどうかを決定するように動作する。呼出アプリケーションが特権モードで実行中であれば、機能ハンドラーは特権機能を直接呼出す。呼出アプリケーションが非特権モードで実行中であれば、機能ハンドラーは、例えば、特権機能が呼出非特権アプリケーションと同じタスク内で呼出し可能にする移行システムによって処理される割込みを生成する。このように、機能ハンドラーは特権機能フックを特権及び非特権アプリケーションの双方に提供するために動作する。
【０００９】
一実施例では、呼出アプリケーションは機能識別子（a function identifier）を機能ハンドラーに渡す。機能識別子は実行に利用可能である機能を識別する。
【００１０】
一実施例では、機能ハンドラーは識別子から機能を決定し、そして機能を直接呼出す。
【００１１】
別の実施例では、機能ハンドラーは割込みを生成し、そして移行システムに識別子を渡し、それは適切な検証の後で要求機能を呼出すために識別子を使用する。その割込みはソフトウェア、ハードウェア、もしくは例外による割込みであってもよい。
【００１２】
一実施例では、アプリケーションがデバイス上で機能を呼出すことを可能にする方法が提供され、そこではデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、機能は特権モードで実行する。その方法は機能を呼出すためにアプリケーションから要求を受取ること、及びアプリケーションの動作モードを決定することを含む。そのアプリケーションが非特権モードで実行中であれば、その方法はまた割込みを用いて機能を呼出すことを含み、ここではその機能はアプリケーションと同じタスク内で実行される。そのアプリケーションが特権モードで実行中であれば、その方法は機能を直接呼出すことを含む。
【００１３】
別の実施例では、アプリケーションがデバイス上で機能を呼出すことを可能にする装置が提供され、ここではデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、機能は特権モードで実行する。その装置は機能を呼出すためにアプリケーションから要求を受取る論理を含む。その装置はまたアプリケーションの動作モードを決定する論理を含む。アプリケーションが非特権モードで実行中であれば、その装置はまた割込みを使用して機能を呼び出す論理を含み、ここではその機能はアプリケーションと同じタスク内で実行される。アプリケーションが特権モードで実行中であれば、その装置はまた機能を直接呼び出す論理を含む。
【００１４】
別の実施例では、アプリケーションがデバイス上で機能を呼出すことを可能にする装置が提供され、ここではデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、機能は特権モードで実行する。装置は機能を呼び出すためにアプリケーションからの要求を受取る手段及びアプリケーションの動作モードを決定する手段を含む。アプリケーションが非特権モードで実行中であれば、その装置はまた割込みを使用して機能を呼出す手段を含み、ここではその機能はアプリケーションと同じタスク内で実行される。アプリケーションが特権モードで実行中であれば、その装置はまた機能を直接呼出す手段を含む。
【００１５】
別の実施例では、命令（instructions）を含むコンピュータ可読媒体が提供され、それはデバイス内のプロセッサによって実行されるとき、アプリケーションがデバイス上で機能を呼出すことを可能にするように動作し、ここではデバイスは特権モード及び非特権モードを含む少なくとも二つの動作モードを含み、機能は特権モードで実行する。コンピュータ可読媒体は機能を呼出すアプリケーションからの要求を受取る命令及びアプリケーションの動作モードを決定する命令を含む。アプリケーションが非特権モードで実行中であれば、コンピュータ可読媒体はまた割込みを使用して機能を呼出す命令を含み、ここではその機能はアプリケーションと同じタスク内で実行される。アプリケーションが特権モードで実行中であれば、コンピュータ可読媒体はまた機能を直接呼出す命令を含む。
【００１６】
本発明の他の形態、利点、及び特徴は下記で説明される図面の簡単な説明、発明の詳細な説明、及び請求項の記述から明らかになるであろう。
【００１７】
ここに述べられた実施例の前述の形態及び付随の利点は付属図面と関連して取られる以下に始まる詳細な記述からさらに明らかになるであろう。
【発明を実施するための最良の形態】
【００１８】
次の詳細な説明は特権機能フックを特権及び非特権アプリケーションに提供する機能ハンドラー・システムを述べている。例えば、システムは特権及び非特権アプリケーションから機能呼出を受取るように動作し、その後で呼出アプリケーションの動作モードが決定され、特権機能への迅速、且つ効率的な移行が行われる。機能は呼出アプリケーションと同じ実行スレッド内で実行する。このように、機能ハンドラーは特権機能フックを特権及び非特権的アプリケーション双方に提供し、それは生成される新しいタスクなしで特権機能を呼出し、それによって新しいタスク生成、予定計画及びディスパッチャの待ち時間のオーバーヘッドを回避することができる。
【００１９】
一以上の実施例では、機能ハンドラー・システムは、例えばデバイス特化資源に対する一般呼出を行うことによって、デバイスの動作を単純化するために使用されるデバイス上で実行するランタイム環境 （或いは、オペレーティング・システム）と相互作用する。そのような一つのランタイム環境はカリフォルニア州サンディエゴ市のＱＵＡＬＣＯＭＭ社によって開発された無線のためのバイナリ・ランタイム環境（ＢＲＥＷ(登録商標）)ソフトウェア・プラットフォームである。下記の説明はＢＲＥＷ(登録商標）ソフトウェア・プラットフォームのようなランタイム環境を実行するデバイスを述べる。しかしながら、一以上の実施例では、登録システムは生成システム或いは他の制御または監視プログラムを含めて、様々なデバイスにおける特権機能フックの高速、且つ効率的な登録を行うために他形式のランタイム環境との使用に適している。例えば、デバイスはデスクトップ・コンピュータ、ノートブック・コンピュータ、携帯用コンピュータ、及び無線電話、ポケットベル、ＰＤＡ、電子メール・デバイス、タブレット・コンピュータ、または他形式の計算デバイスといった可搬式デバイスを含むが、それに限定されない。
【００２０】
図１はデバイス１０２上で実行する特権及び非特権アプリケーションに特権機能フックを提供する機能ハンドラー・システム１００の一実施例を示す。システム１００は家庭用コンピュータ、オフィス用コンピュータ、または無線電話もしくはＰＤＡ、または他形式の計算デバイスのようなパーソナル・デバイスの一部である。動作の間、一以上のアプリケーションはデバイス１０２上で実行し、情報、機能、及び／またはサービスをデバイス１０２に提供するために動作する。例えば、アプリケーションの一形式はデバイス１０２が映画、ニュース、または他形式のマルチメディア内容を表示することを可能にするために動作する視聴アプリケーションである。
【００２１】
一実施例では、デバイス１０２は少なくとも二つの動作モード、即ち非特権モード（ＮＰ）及び特権モード（Ｐ）を提供するランタイム環境１０４（即ち、ＢＲＥＷ(登録商標））を含む。動作の非特権モードはデバイス上で動くアプリケーションのアクセスを制限し、且つ故障検知を提供するために使用される。例えば、非特権モードにおいて動くアプリケーションは選択メモリ領域に制限され、デバイス・レジスタまたは他の資源に対するアクセスを拒絶される。特権モード動作はこのモードの下で動くアプリケーションが制限なしでメモリまたはデバイス資源にアクセスすることを可能にする。
【００２２】
アプリケーションがデバイス１０２上で実行するとき、それは所望の機能を提供するランタイム環境の下で動く。例えば、アプリケーション１０６は非特権モード（ＮＰ）の下でデバイス１０２上で動き、アプリケーション１０８は特権モード（Ｐ）でデバイス１０２上で動く。これらのアプリケーションのいずれも特権機能１１０を通して利用可能な機能またはシステム・サービスを必要とする。例えば、アプリケーションは特権メモリまたはデバイス・ハードウェア資源にアクセスする必要がある。これらの機能またはサービスを得るために、機能ハンドラー・システム１００はいずれのアプリケーション（１０６、１０８）も機能ハンドラー１１２によって特権機能を呼出すことを可能にする機構を提供する。機能ハンドラー１１２を通じて呼出されたとき、機能１１０は呼出アプリケーションと同じ実行スレッド内で実行する。機能１１０が要求されたサービスを行った後で、プログラム制御は呼出アプリケーションに戻る。
【００２３】
結果として、機能ハンドラー・システム１００はランタイム環境によって実行に関して生成され、且つ予定計画された新しいタスクを必要とすることなく特権及び非特権アプリケーションが特権機能を実行するのを可能にする高速且つ効率的な機構を提供し、それによってスケジューラの複雑さ及び関連するディスパッチャ待ち時間を除去する。
【００２４】
図２は機能ハンドラー・システムの一実施例を含むデバイス１０２の詳細なブロック図を示す。デバイス１０２は処理論理２０２と、内部データバス２０４に接続されるデバイス資源２０６を含む。デバイス資源２０６はハードウェア、ソフトウェア、メモリ、論理、またはデバイスが様々な内部及び外部資源、デバイス、またはシステムに接続することを可能にする他の資源を含む。また、符号メモリ（code memory）２０８及びデータ・メモリ２１０に処理論理２０２が接続されている。
【００２５】
一以上の実施例では、処理論理２０２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ素子、仮想マシン、ソフトウェア、Ｉ／Ｏインタフェース、及び／またはハードウェア及びソフトウェアのあらゆる組合せを含む。このように、処理論理２０２はマシン可読命令を実行するために一般に論理を含む。例えば、命令はフロッピー(登録商標)・ディスク、ＣＤ−ＲＯＭ、フラッシュ・メモリ、またはデバイス資源２０６を介してデバイス１０２へ接続する他のコンピュータ可読媒体といったコンピュータ可読媒体からデバイス１０２に装荷される。別の実施例では、命令はデバイス資源２０６を経由してデバイス１０２に接続する網サーバまたは他形式の網資源といった網資源からデバイス１０２にダウンロードされる。命令は、処理論理２０２によって実行されるとき、ここに述べられたような一以上の機能ハンドラー・システムの実施例を提供する。
【００２６】
一実施例では、符号メモリ（code memory）２０８はＲＡＭ 、ＲＯＭ、ＦＬＡＳＨ、ＥＥＲＯＭ、または他の適当な形式のメモリ、またはその組合せ含む。符号メモリ２０８はメモリ管理ユニット（ＭＭＵ）２１６の操作によって特権領域（Ｐ）２１２及び非特権領域（ＮＰ）２１４に分割される。ＭＭＵ２１６は非特権符号がアクセス権を符号メモリ２０８の選択領域に制限したように非特権プログラム符号の操作を制限するように動作する。
【００２７】
特権領域２１２は実行されたときデバイス１０２のメモリまたは他のシステムへのアクセスを制限しなかったプログラム符号を含む。例えば、特権符号領域２１２はオペレーティング・システム符号（ＯＳ）、ユーザー・インタフェース符号（ＵＩ）、検証符号、アプリケーション符号（Ａｐｐ−Ｐ）１０８及び特権機能符号ＦＵＮＣ１１０を含む。特権符号領域２１２において示された符号はデバイス１０２に含まれる特権符号の形式を表す。特権符号領域２１２がデバイス１０２上の実行に関する他形式の特権符号を含むことも可能である。
【００２８】
非特権符号領域２１４は実行されたとき選択記憶領域のみをアクセスすることに制限される、プログラム符号を含む。例えば、非特権符号領域２１４はＯＳ符号及びアプリケーション符号（Ａｐｐ−ＮＰ）１０６、及び機能ハンドラー１１２を含む。一以上の実施例では、ＦＨ１１２は網またはシステムからデバイス１０２へダウンロードされ、デバイス製造所でインストールされ、もしくはコンピュータ可読媒体からデバイスに付加される。
【００２９】
一実施例では、データ・メモリ２１０は特権領域２１６及び非特権領域２１８を含む。特権領域２１６は特権プログラム符号によってのみアクセスされるデータ領域を含む。例えば、特権データ領域２１６はＯＳ、ＵＩ、検証、Ａｐｐ−Ｐ及びＦＵＮＣ符号によって使用されるデータを含む。非特権データ領域２１８は非特権プログラム符号によってアクセスされるデータ領域を含む。例えば、非特権データ領域２１８は非特権ＯＳ、Ａｐｐ−ＮＰ、及びＦＨプログラム符号によって使用されるデータを含む。また、メモリ管理ユニット（ＭＭＵ）２２０がデータ・メモリ２１０に接続される。ＭＭＵ２２０は非特権及び特権データ領域へのアクセスを制限するように動作する。例えば、非特権アプリケーションは特権データ領域２１６におけるデータ、または非特権データ領域２１８における他の非特権アプリケーションに属するデータにアクセスすることを制限される。
【００３０】
処理論理２０２はモード論理２２２及び割込み論理２２４を含む。モード論理２２２はＣＰＵ、プロセッサ、論理、デバイス・レジスタ、ソフトウェア、またはデバイス１０２の動作モードの間のモード変化を可能にするように動作するソフトウェアとハードウェアとのあらゆる組合せ含む。例えば、 一実施例では、モード論理２２２はそのビットが動作モードを設定するレジスタを含む。例えば、特権モードから非特権モードに切換えるために、レジスタ内の選択ビットが設定され、それは非特権スタックに復元され、非特権モードにおけるプログラム実行が継続する結果となる。
【００３１】
割込み論理２２４はＣＰＵ、プロセッサ、論理、ソフトウェア、または割込みが処理論理２０２によって受取られ且つ処理されることを可能にするように動作するソフトウェアとハードウェアのあらゆる組合せを含む。例えば、割込み論理２２４は処理論理２０２によって実行されるプログラム符号によって生成されるソフトウェア割込みを受取る。一実施例では、機能ハンドラー・システムは非特権プログラム符号が同じタスク及び優先権の中で特権機能を実行することを可能にするためにソフトウェア割込みを使用する。一実施例では、割込み論理２２４はソフトウェア割込み、ハードウェア割込み、プログラム例外、または機能ハンドラー・システムの動作の一部として他形式の任意の割込みを処理する。
【００３２】
デバイス１０２の構成は説明された機能ハンドラー・システムを実施するためのほんの一つの適当な構成であることを注目すべきである。本発明の範囲内で他のデバイス構成、機能要素または要素構成を使用して機能ハンドラー・システムの一以上の実施例を実施することもまた可能である。
【００３３】
デバイス１０２の動作の間、処理論理２０２は非特権アプリケーション符号（即ち、Ａｐｐ−ＮＰ）及び／または特権アプリケーション符号（Ａｐｐ−Ｐ）を実行する。いずれかのアプリケーションがＦｕｎｃ１１０のような特権機能のサービスを必要とするとき、それぞれのアプリケーションは所望の機能（即ち、Ｆｕｎｃ）を識別する識別子と共にＦＨ符号１１２を呼出す。
【００３４】
ＦＨ符号１１２は非特権符号であり、従ってそれは特権或いは非特権アプリケーションのいずれかからも呼出される。
【００３５】
ＦＨ符号は呼出アプリケーションの動作モードを決定し、決定されたモードに基づいて、新しいタスクを造らずに要求されたサービスを行う特権機能Ｆｕｎｃを呼出すために選択された手続きを実行する。下記は、特権機能のサービスの要求に応じるためにＦＨ１１２によって使用される手続きの要約である。
【００３６】
１．要求によって渡される識別子に関連する機能を実行するためにアプリケーションから要求を受取る。
【００３７】
２．要求アプリケーションの動作モードを決定する。
【００３８】
３．要求アプリケーションが特権動作モードで実行中であれば：
ａ．識別子に基づいて要求された特権機能を調べる。
【００３９】
ｂ．特権機能を呼出す。
【００４０】
ｃ．呼出特権アプリケーションに戻る。
【００４１】
４．要求アプリケーションが非特権動作モードで実行中であれば：
ａ．ソフトウェア割込みを生成し、識別子を渡す。
【００４２】
ｂ．特権モード割込みハンドラーへ移行する。
【００４３】
ｃ．識別子に基づいて要求された特権機能を調べる。
【００４４】
ｄ．特権機能を呼出す。
【００４５】
ｅ．特権機能が実行した後、非特権レジスタを復元する。
【００４６】
ｆ．呼出非特権アプリケーションに戻る。
【００４７】
一実施例では、説明された機能ハンドラー・システムはコンピュータ可読媒体に記憶されたプログラム命令を含み、それは処理論理によって実行されたとき、ここに述べられた機能を提供する。一以上の実施例では、コンピュータ可読媒体はフロッピー（登録商標）・ディスク、ＣＤ、メモリ・カード、ＦＬＡＳＨメモリ・デバイス、ＲＡＭ、ＲＯＭ、または他形式の任意のメモリ・デバイスを含む。
【００４８】
図３はデバイス、例えばデバイス１０２において使用される機能ハンドラー・システムの一実施例の動作を例示するフローチャート３００を示す。明確にするために、フローチャート３００は図２で示されたデバイスに関して述べる。デバイスは実行スレッド３０２を生成するために動作するＢＲＥＷ(登録商標）ランタイム環境を実行していることを仮定する。実行スレッド３０２はデバイス上の特権もしくは非特権アプリケーションの実行を表す。
【００４９】
システム・スケジューラ（示されてない）は実行スレッド３０２を形成するためアプリケーションの実行を予定計画するように動作する。一般的に、スケジューラは優先権に基づいて実行を予定計画するように動作するが、他の基準に基づいて実行を予定計画するように動作することもある。しかしながら、ここに示された機能ハンドラー・システムは呼出アプリケーションと同じ実行スレッド内で動作し、それによって新しいタスク生成、関連するスケジューラの複雑さ、及び考えられるディスパッチャ待ち時間を回避する機能ハンドラーを提供する。
【００５０】
実行スレッド３０２は特権アプリケーション（Ａｐｐ−Ｐ）または非特権アプリケーション（Ａｐｐ−ＮＰ）のいずれかの実行を表す。実行アプリケーションはデバイスが様々なマルチメディア内容をデバイス・ユーザーに表示することを可能にする視聴アプリケーションである。そのアプリケーションが実行すると、特権機能（Ｆｕｎｃ）のサービスの要求が発生する。特権機能からサービスを獲得するために、そのアプリケーションはＦＨ３０４を呼出し、特権機能Ｆｕｎｃを識別する識別子を渡す。システムにおいて利用可能な特権機能は実行アプリケーションによって発見できる関連の識別子を持っていることを仮定する。一以上の実施例では、次の機能は符号メモリ２０８に記憶されたプログラム命令を実行する処理論理２０２によって行われ、それはまたデータ・メモリ２１０におけるデータを処理する。
【００５１】
ブロック３０６で、ＦＨ３０４は特権機能 Ｆｕｎｃを識別する識別子を得る。例えば、識別子は処理論理２０２またはデータ・メモリ２１０における他のメモリ位置と関連するレジスタ内のＦＨに渡される。
【００５２】
ブロック３０８で、呼出アプリケーションが特権もしくは非特権モードにおいて実行中であるかどうかを決定するためにテストが行われる。例えば、処理論理はプロセッサ状態レジスタを推定することによってアプリケーションの現在の処理モードを決定する。呼出アプリケーションが非特権モードで実行中であれば、その方法はブロック３１０に進む。呼出アプリケーションが特権モードで実行中であれば、その方法はブロック３１２に進む。
【００５３】
ブロック３１２で、アプリケーションが特権モードで実行中であることが決定された。ＦＨ符号３０４は受取られた識別子に基づいて要求された特権機能（即ち、Ｆｕｎｃ）を調べる。例えば、処理論理 202 は呼出しアプリケーションによって要求された機能を決定するために利用可能な機能を識別子に写像するデータ構造にアクセスするために識別子を使用する。データ構造はデータ・メモリ２１０に記憶される。
【００５４】
ブロック３１４で、特権機能Ｆｕｎｃが要求されたサービスを行うために呼出される。例えば、特権機能はシステム・ファイルまたはハードウェア資源をアクセスする。一実施例では、処理論理は特権機能Ｆｕｎｃを呼出すためにプログラム命令を実行する。実行に関して、機能Ｆｕｎｃはまた呼出アプリケーションが正当、且つ有効なパラメータを渡したことを証明するために様々なパラメータ検査及び検証を行う。いったん、機能Ｆｕｎｃが実行を完了すれば、プログラムの流れは実行スレッド３０２に戻る。
【００５５】
従って、特権アプリケーションがＦＨ３０４を通して機能Ｆｕｎｃを呼出せば、ＦＨ３０４は識別子に基づいて、要求された機能を決定し、要求されたサービスを実行するためにその機能を呼出すように動作する。非特権アプリケーションがＦＨ３０４を通して機能Ｆｕｎｃを呼出せば、ＦＨ３０４は要求されたサービスを提供するために次のように動作する。
【００５６】
ブロック３１０で、特権機能Ｆｕｎｃが実行できるように、ＦＨ３０４はデバイスの動作モードが特権モードに移行することを要求するように動作する割込みを生成する。割込みはソフトウェア割込み、またはＦＨ３０４によって生成されるあらゆる他形式の割込みである。割込みは呼出アプリケーションから渡された識別子を含む。例えば、割込みは図２に示された割込み論理２２４によって生成及び／または処理される。
【００５７】
割込みが生成された後、プログラム実行は特権モード・プログラム符号３１６に進み、ここで特権機能Ｆｕｎｃは呼出アプリケーションと同じタスク内の呼出である。
【００５８】
プログラム符号３１６の動作の簡単な説明は下記で行われる。しかしながら、プログラム符号３１６の動作のさらに詳細な説明について、読者は代理人明細書番号０３０６２０を有する「デバイスの動作モード間の移行を行うシステム（SYSTEM FOR PROVIDING TRANSITIONS BETWEEN OPERATING MODES OF A DEVICE）と題する米国特許出願を参照し、それは引用文献としてここに組込まれている。
【００５９】
特権モード・スタックへの切換え及び渡された機能識別子の検証の後、プログラム実行はブロック３１８に進む。
【００６０】
ブロック３１８で、所望の特権機能は渡された識別子に基づいて決定される。例えば、データ・メモリ２１０に記憶されたデータ構造は所望の機能Ｆｕｎｃを識別する識別子に基づいて処理論理２０２によって検索される。
【００６１】
ブロック３２０で、いったん特権機能Ｆｕｎｃが決定されると。それは呼出される。例えば、 一実施例では、処理論理２０２は機能Ｆｕｎｃを呼出すために符号メモリ２０８に記憶された命令を実行する。特権機能は呼出非特権アプリケーションによって使用されるデータを含む特定のシステム・ファイルを開くように動作する。一実施例では、追加パラメータがアプリケーションから特権機能に渡される。例えば、そのパラメータは非特権アプリケーションによって要求されるサービスの形式をさらに指示もしくは定義する。特権機能は特権機能の実行がアプリケーションに与えられた特権を越えないことを証明するためにこれらのパラメータを有効とするように動作する。例えば、その機能は機能の実行がアプリケーションに置かれたメモリ制限を越えないようにパラメータを有効とするように動作する。
【００６２】
ブロック３２２で、機能Ｆｕｎｃが実行された後、非特権モード・スタックを含めて、非特権モード・レジスタが復元される。経路３２４で示されたように、プログラム実行は非特権アプリケーション・スレッド３０２に戻る。
【００６３】
プログラム・フローチャート３００は一つの実施例を例示したものであり、プログラム要素の変更、追加、または再配列は発明の範囲から逸脱することなく行われることは注目すべきである。
【００６４】
従って、機能ハンドラー・システムに関する方法及び装置の一以上の実施例がここに例示、且つ述べられてきたが、それらの精神または本質的特性から逸脱することなく実施例に対して様々な変更が行われることは理解されるであろう。従って、ここにおける開示及び記述は本発明の範囲の例示であり、限定するものでないことを意図しており、それは請求項において説明される。
【図面の簡単な説明】
【００６５】
【図１】特権機能フックをデバイス１０２上で実行する特権及び非特権アプリケーションに提供する機能ハンドラー・システムの一実施例を示す。
【図２】機能ハンドラー・システムの一実施例を含むデバイスの詳細なブロック図を示す。
【図３】デバイスで使用される機能ハンドラー・システムの一実施例の動作を例示するフローチャートを示す。
【図１】
2007510236.tif 000003
【図２】
2007510236.tif 000004
【図３】
2007510236.tif 000005
【国際調査報告】
2007510236.tif 000006