1

ユーザー ランド ライブラリにソース コードがない古いハードウェアをサポートする必要がありますが、デバイス ドライバーのソース コードはあります。したがって、IA-32 モードのユーザー ランド バイナリをサポートするようにデバイス ドライバーを書き直す必要があります。

ioctl 呼び出しの場合、ユーザー ランドで IA-32 をサポートするために compat_ioctl が追加されます。しかし、32 ビット ライブラリは mmap 呼び出しを行い、(もちろん) アドレスの半分しか返しません。私の質問は、compat_ioctl と ioctl に似た mmap のサポートはありますか? compat_mmap がない場合、IA-32 ユーザーランド mmap 呼び出しをサポートする方法は?

あなたの助けに感謝!

4

1 に答える 1

3

心配する必要はありません。関数が呼び出されると、呼び出し元のタスクに対して既に正しく配置されているf_op->mmap()a が渡されます。struct vm_area_struct

(x86-64 では、arch_get_unmapped_area()関数がこれを処理します。返される領域が 未満であることを保証しTASK_SIZETASK_SIZEタスクにTIF_ADDR32フラグが設定されているかどうかによって異なります)。

于 2013-02-26T23:33:43.480 に答える