Não sei se há um tutorial atualizado no mesmo estilo, mas as alterações são limitadas:
-
arch/x86/vdso
foi movido paraarch/x86/entry/vdso
; - as declarações de variáveis foram muito simplificadas .
O último significa que você só precisa declarar sua variável uma vez, em arch/x86/include/asm/vvar.h
, em um deslocamento fixo, com a macro DECLARE_VVAR
. Para defini-lo, use a macro DEFINE_VVAR
; para acessá-lo, use a macro VVAR
. O commit vinculado acima possui vários exemplos (todos os usos existentes de variáveis compartilhadas).
Você não pode recriar o comportamento de um syscall arbitrário no vDSO, pelo menos não sem chamar o kernel no modo kernel. O vDSO só é realmente útil para chamadas que podem ser manipuladas no espaço do usuário; não há muitos desses.