Onde estão os cabeçalhos com números IOCTL para o ext4?

1

Estou procurando ext4.h , ou outro arquivo que contenha EXT4_IOC_* . Não há nada em /usr/include ou /usr/src . Eu tenho linux-headers-generic instalado. Eu estou no Kubuntu 14.10. Onde estão os cabeçalhos?

Editar: Usando pesquisa do pacote Ubuntu , definitivamente não há pacotes que contenham o ext4.h. Misterioso.

    
por Mark Raymond 01.02.2015 / 11:39

1 resposta

2

Algumas das definições de EXT4_IOC_ parecem ser expostas via /usr/include/ext2fs/ext2_fs.h , que é fornecido pelo pacote e2fslibs-dev .

Para obter o cabeçalho ext4.h real AFAIK, você precisará fazer o download do pacote source do kernel, em vez de apenas os cabeçalhos do kernel: ativando repositórios de origem e executando algo como

apt-get source linux-image-'uname -r'

ou verificando diretamente do repositório git. Você deve então encontrar ext4.h no subdiretório fs/ext4 :

find linux-3.2.0/ -name 'ext4.h'
linux-3.2.0/fs/ext4/ext4.h
linux-3.2.0/include/trace/events/ext4.h

No entanto, você provavelmente não deve confiar nos cabeçalhos de origem do kernel se estiver escrevendo código de espaço do usuário - se algo não for exposto através do pacote de desenvolvimento ou cabeçalhos de kernel, então você não deve usando-o fora do kernel.

    
por steeldriver 01.02.2015 / 19:49