Вот этот код не собирается на Linux 3.11 и выше:
static int splash_proc_register(void)
{
proc_splash = create_proc_entry("splash", 0, 0);
if (proc_splash) {
proc_splash->read_proc = splash_read_proc;
proc_splash->write_proc = splash_write_proc;
return 0;
}
return 1;
}
Причина описана здесь. Как исправить так, чтобы работало?
Компилятор говорит вот что:
../drivers/video/bootsplash/bootsplash.c: In function ‘splash_proc_register’:
../drivers/video/bootsplash/bootsplash.c:1901:16: error: implicit declaration of function ‘create_proc_entry’ [-Werror=implicit-function-declaration]
proc_splash = create_proc_entry("splash", 0, 0);
^
../drivers/video/bootsplash/bootsplash.c:1901:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
proc_splash = create_proc_entry("splash", 0, 0);
^
../drivers/video/bootsplash/bootsplash.c:1903:14: error: dereferencing pointer to incomplete type ‘struct proc_dir_entry’
proc_splash->read_proc = splash_read_proc;
Файл вот он.