デバイス名のソースコード

デバイス名のソースコード

Linuxシステムにはたくさんデバイス名下から見ることができます/dev。これは、Linuxカーネルのソースコード、udevコード、デバイスツリー、またはドライバコードのどこかに定義する必要があります。

fdたとえば、フロッピードライブをで起動するか、ハードディスクをで起動するかを決定するソースコードはどこにありますかsd

答え1

/dev/nullまたはのようなものが簡単に見つかります/dev/zero。そのような人のために見てください${kernel_root}/drivers/char/mem.c。 4.9.6(しばらくこの方法であった可能性があります)の場合、配列の各項目がメモリデバイスに対応するstruct memdev配列があります。devlist

...
[3] = { "null", 0666, &null_fops, 0 },
...
[5] = { "zero", 0666, &zero_fops, 0 },
...

null_fopsそのデバイスを含むzero_fopsファイル操作構造が含まれています。

答え2

一部はLXR(Linux相互参照)プロジェクトここでカーネルバージョンを選択してコードを検索できます。

(注:古いhttp://lxr.linux.no少なくとも私には、更新されたカーネルバージョンの検索が中止されました。 )

「floppy」(引用符を除く)を検索し、「fd」(引用符を含む)をgrepしようとすると、フロッピーブロックデバイス(カーネル4.9)の実装が見つかりました。

http://lxr.free-electrons.com/source/drivers/block/floppy.c#L4219

これで、相互参照としてregister_blkdev使用される他の場所に従うことができます。

関連情報