Problem med at lave en enhedsdriver til Virtex 4 PowerPC

P

priestnot

Guest
Hej der ... Jeg forsøger at gøre en enhedsdriver (Kernel module) for en Virtex4 PowerPC, og jeg har et lille problem ... Den powerpc er byte adresserbar (lille endian), men jeg min kerne fungerer som at returnere en int (32 bit s) Jeg har allerede et funktionelt modul, men er ikke optimeret
Code:
 ssize_t fpga_write (struct file * spejlvende, int * buf, size_t tæller, loff_t * f_pos) {void * tilføje, int * kbuf; kbuf = kmalloc (tæller, GFP_KERNEL); int RET = copy_from_user (kbuf, BUF, tælle), int i, for (i = * f_pos / 4; i <count / 4 + * f_pos / 4; i + +) {tilføje = io_base + (i * 4), __ raw_writel (kbuf [i - * f_pos], add);} kfree (kbuf); tilbagevenden 1;}
Hvad jeg Wold lide at gøre, er at få en int uden at gøre * og / (de tager meget CPU-tid). Jeg tror, ​​der er en vej med nogle masker med FFFFFFFC ved hjælp af en OG. Er det muligt jeg ikke forstå hvordan det virker ... Er der nogen der har nogen ideer?
 

Welcome to EDABoard.com

Sponsor

Back
Top