2

私はdrv1というキャラクタードライバーを持っており、ユーザーアプリケーションはioctlそれと通信するために使用し、パラメーターを送信しますstruct file *filpdrv1のコード セグメントのアドレスを知りたいのですが、いくつかの問題に遭遇しました。

最初はstruct file *filp便利かもしれないと思ってソースコードの定義を見て、ポインタを見つけましたstruct inode *f_inode; /* cached value */。そこでざっくりと定義を調べてみましたstruct inode(tmpfsのときは詳しくないので正しいかどうかわかりませんが); struct address_space *i_mappingという名前のポインターが必要なようです。しかし、深く掘り下げて行き詰まる方法がわかりません。には、次のような複雑なデータ構造がいくつかありますstruct address_space

struct radix_tree_root  page_tree; /* radix tree of all pages */

struct rb_root  i_mmap;            /* tree of private and shared mappings */

ドライバdrv1のデータは、という形で整理されているということradix_tree_rootでしょうか。それとも、何か他のものを見逃したということですか?

4

1 に答える 1