ユーザーランドエミュレーターでgettimeofdayにアクセスするための1つのアプローチを実装しようとしており、可能なすべてのポインターが必要です。カーネル空間からユーザー空間 (64 ビット) に読み取り専用領域をマップしようとしています。ユーザー空間では、オーバーヘッドをあまりかけずに gettimeofday () 値を直接ポーリングして読み取ることができます。これは VSYSCALL/VDSO 実装に似ていますが、ここでは、関数ポインターまたは *gettimeofday ラッパーを使用する代わりに、ユーザー空間からメモリ (VDSO 共有ページ) の内容を取得する専用プログラムを 1 つ用意しようとしています。
現在の流れ:
エミュレータ -> Gettimeofday -> トラップ -> Emulate() -> GLIBC -> 時間を更新 struct() -> エミュレータに戻る
達成しようとしています: Kernel/TSC/TImer -> update time_memory();
エミュレータ -> Gettimeofday -> read time_memory();
まず、このようなことを考えることがどれほど論理的かは 100% 確信が持てませんが、それでも何らかの方法で実行可能だと感じています..
以下のリンクに出会いましたが、さらに先に進むには、さらに多くの (または) 考えられる情報が必要です。
プラットフォーム: Linux アーチ: PowerpC カーネル: 2.6.34
前もって感謝します。