1

ユーザーランドエミュレーターでgettimeofdayにアクセスするための1つのアプローチを実装しようとしており、可能なすべてのポインターが必要です。カーネル空間からユーザー空間 (64 ビット) に読み取り専用領域をマップしようとしています。ユーザー空間では、オーバーヘッドをあまりかけずに gettimeofday () 値を直接ポーリングして読み取ることができます。これは VSYSCALL/VDSO 実装に似ていますが、ここでは、関数ポインターまたは *gettimeofday ラッパーを使用する代わりに、ユーザー空間からメモリ (VDSO 共有ページ) の内容を取得する専用プログラムを 1 つ用意しようとしています。

現在の流れ:

エミュレータ -> Gettimeofday -> トラップ -> Emulate() -> GLIBC -> 時間を更新 struct() -> エミュレータに戻る

達成しようとしています: Kernel/TSC/TImer -> update time_memory();

エミュレータ -> Gettimeofday -> read time_memory();

まず、このようなことを考えることがどれほど論理的かは 100% 確信が持てませんが、それでも何らかの方法で実行可能だと感じています..

以下のリンクに出会いましたが、さらに先に進むには、さらに多くの (または) 考えられる情報が必要です。

http://lwn.net/Articles/9266/

プラットフォーム: Linux アーチ: PowerpC カーネル: 2.6.34

前もって感謝します。

4

0 に答える 0