2016-04-10 17 views
0

Kullanıcı alanı modunda bir veri arabelleği için bir işaretçim var ve şimdi "copy_from_user" işleviyle bu verilerin değerini çekirdek moduna kopyalamak istiyorum.copy_from_user çağrısında hedef parametresine ilişkin bildirim ve bellek ayırma

Veri işaretçimin "data.ptr.buffer" olduğunu ve boyutunun "data_size" olduğunu varsayalım. "data.ptr.buffer" bildirimi şöyledir: const void *buffer;

Şimdi, çekirdek modunda veri arabelleği değerini almak için, çekirdek modunda belleğe nasıl bildirip nasıl ayırabiliyorum? Ben data_value parametreyi beyan ve buna bellek ayırabilir nasıl bilmek istiyorum Başka bir deyişle

copy_from_user(data_value, data.ptr.buffer, data_size)

(örn kzalloc, ...): my "copy_from_user" çağrısı gibi bir şey mi? Veri boyutunuzun küçük, yani 100 bayt olduğunu biliyorsanız, bir char dizisi bildirebilirseniz,

+4

Bazı * isteğe bağlı bellekler * kullanmak istiyorsanız doğru olan kmalloc() 'içine bakmak isteyebilirsiniz. – tofro

cevap

0
usigned char kernel_cmd_buf [129];
İlgili konular