Unresolved symbols: sys_munmap

mvDELTA, mvGAMMA-G, mvSIGMA-SLC, mvSIGMA-SLG, mvSIGMA-SQ, mvTITAN-C16, mvTITAN-C8, mvTITAN-CL, mvTITAN-DIG, mvTITAN-G1, mvTITAN-RGB/G4, pcIMAGE-SC, pcIMAGE-SDIG, pcIMAGE-SG/SGVS, pcIMAGE-SRGB

Die fehlende Funktion "sys_munmap" ist in der Datei:
.......driver/os/linux/kmod/matrix_mem.c

zu finden. Wenn Sie diese Datei editieren, sehen Sie ziemlich am Anfang der Datei folgende Zeilen....

===== snip =====

#define MODULE_NAME "mv-mem"

/* from mm/mmap.c */
#if LINUX_VERSION_CODE >= KERNEL_VERSION (2,4,7)
extern asmlinkage long sys_munmap(unsigned long addr, size_t len);
#else
/* not exported from Kernel! */
asmlinkage long sys_munmap(unsigned long addr, size_t len)
{
int ret;
#if LINUX_VERSION_CODE >= KERNEL_VERSION (2,3,0)
struct mm_struct *mm = current->mm;

down_write(&mm->mmap_sem);
ret = do_munmap(mm, addr, len);
up_write(&mm->mmap_sem);
#else
ret = do_munmap(addr, len);
#endif
return ret;
}
#endif

===== snip =====

Nun sollten Sie die Bedingung "#if LINUX_VERSION_CODE >= KERNEL_VERSION (2,4,7)"
und die nächsten 2 Zeilen löschen und natürlich die Zeile mit dem dazugehörigen "#endif" auch.

Danach sieht es so aus.....

===== snip =====

#define MODULE_NAME "mv-mem"

/* from mm/mmap.c */
/* not exported from Kernel! */
asmlinkage long sys_munmap(unsigned long addr, size_t len)
{
int ret;
#if LINUX_VERSION_CODE >= KERNEL_VERSION (2,3,0)
struct mm_struct *mm = current->mm;

down_write(&mm->mmap_sem);
ret = do_munmap(mm, addr, len);
up_write(&mm->mmap_sem);
#else
ret = do_munmap(addr, len);
#endif
return ret;
}

===== snip =====

Nun können Sie das titan-Modul neu kompilieren und auch ohne Fehler laden.

Zurück