Estou escrevendo um módulo do kernel (no linux 2.6.32), para obter o disk_stats de todos os discos (não da partição) em uso. Em outras palavras, estou obtendo os dados da mesma forma que /sys/block/sda/stat mostra, mas no módulo do kernel.
(OBSERVAÇÃO: Por "não particionar", quero dizer que apenas manipulamos sda e ignoramos sda1/sda2/etc , por exemplo).
Existe algo como for_each_netdev ou for_each_possible_cpu para o dispositivo de bloco? Porque pode haver vários discos e preciso de uma maneira de percorrê-los. Ou, o mais tardar, como posso obter a estrutura de dados relacionada com o nome do dispositivo de bloco (como sda )?
Eu sei que podemos obter um disk_stats de um disco do hd_struct do disco, mas como eu poderia obter esse hd_struct ?
Eu li linux2.6.32 / block / genhd.c, e eu sei que o conteúdo do arquivo /sys/block/sda/stat é gerado por diskstats_show . Mas como vem o segundo argumento?
Por favor me ajude. obrigado.