Muda para a função input_get_keycode no kernel do linux (input / input.c)

4

Estou trabalhando na construção de um módulo do kernel para um dispositivo de entrada, e notei que na fonte do módulo, há algumas chamadas para input_get_keycode(data->input_dev, scancode, &keycode); Quando eu estava compilando, eu estava recebendo erros que não têm função com esse protótipo.

Olhando para o código-fonte input/input.c , essa é a definição de input_get_keycode :

int input_get_keycode(struct input_dev *dev, struct input_keymap_entry *ke)

Eu tentei procurar on-line, e encontrei algumas referências obscuras para alterar o kernel para poder lidar melhor com mapas grandes e, aparentemente, essa função foi alterada para melhor lidar com isso. Olhando para uma fonte antiga de input / input.c, a função input_get_keycode foi definida como

int input_get_keycode(struct input_dev *dev, unsigned int scancode, unsigned int *keycode)

Minha pergunta é, quando isso foi mudado. Há notas sobre a mudança? Estou construindo o ubuntu natty kernel do git, que é do meu entendimento da ramificação 2.6.37-rc3 .

Esta é uma alteração específica do Ubuntu? Ou isso é uma mudança no kernel da linha principal. Eu também tenho a maverick source do git que tem a função old style (3 input).

    
por Falmarri 30.01.2011 / 01:50

1 resposta

5

Se você está trabalhando em um módulo do kernel, eu recomendo que você obtenha uma árvore git. Obviamente, a árvore de Linus é obrigatória - também recebo as árvores estáveis. Como você está trabalhando no Ubuntu, eu verifico se eles têm uma árvore com as alterações que você pode usar.

Usando a árvore git, consegui fazer checkout em master e executar git blame drivers/input/input.c para ver que a assinatura da função input_get_keycode foi alterada pela última vez em commit 8613e4c2 .

A execução de git show 8613e4c2 me fornece a mensagem de confirmação para essa alteração (as notas que você deseja), bem como o patch que implementa a alteração. Eu posso ver que a mudança foi feita em 2010-09-09.

Iniciando o gitk (um visualizador gráfico do git) e dizendo para ele ir para o commit, eu posso ver que o commit precede a v2.6.37-rc1, informando que ele foi mesclado nessa release. Seguindo o ramo até quando Linus se fundiu, eu posso ver que ele foi fundido em 2010-10-26 no commit 3a99c631.

Esta é toda a linha principal sem olhar para os patches do Ubuntu, então parece que a mudança não tem nada a ver com o Ubuntu.

    
por 30.01.2011 / 02:40