wie ist der richtige Weg, um copy_from_user?

Ich versuche einen Wert kopieren von user-space kernel-space mit der Funktion:

static ssize_t device_write(struct file *filp, const char *buff, size_t len, loff_t  *off) 
{

    unsigned long copy=0;
    int desp=0; 

    copy = copy_from_user(&desp, &len, 4);  

    printk(KERN_ALERT "copy: %lx\n", copy);      
    printk(KERN_ALERT "desp: %d\n", desp);
}

wo "len" ist die variable, die vorhanden ist in den user-space, und ich möchte um es zu kopieren "desp" in den kernel-space

dem Aufruf der Funktion mache ich aus dem user-space ist (schreiben ist device_write nach struct file_operations):

 write (fd,buffer,8, &off);

wenn ich drucken Sie den Wert, der gespeichert werden soll in der "desp" ist immer 0 (8).
Was ist das problem in meinem code? Ich habe gesehen, einige Beispiele und ich implementiert, viele Varianten, aber keiner funktioniert.

InformationsquelleAutor eduardosufan | 2013-07-05

Schreibe einen Kommentar