URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3224
[ Назад ]

Исходное сообщение
"Как из ядра замаллочить кусок памяти из userspace?"

Отправлено TeCTeP , 29-Июл-04 23:23 
и ещё по поводу макросов get_user и put_user, если им подсовывать не int или char а скажем строку, в которой точно есть место под int, сделав преобразование типа строки на int*, это работать будет?

Содержание

Сообщения в этом обсуждении
"Как из ядра замаллочить кусок памяти из userspace?"
Отправлено Murr , 01-Авг-04 16:38 
>и ещё по поводу макросов get_user и put_user, если им подсовывать не
>int или char а скажем строку, в которой точно есть место
>под int, сделав преобразование типа строки на int*, это работать будет?
>


Вопрос в теме вообще непонятен.

По поводу второго: если ты просто хочешь копировать данные, то для этого есть copy_to_user и copy_from_user, зачем для этого использовать данные непонятно.

Если же нужно именно положить первый int из строки, то:
char *mystring;
...
put_user(*(int *)mystring, ...);

это же очевидно :)


"Как из ядра замаллочить кусок памяти из userspace?"
Отправлено n1Xm4n , 03-Авг-04 15:23 
>>и ещё по поводу макросов get_user и put_user, если им подсовывать не
>>int или char а скажем строку, в которой точно есть место
>>под int, сделав преобразование типа строки на int*, это работать будет?
>>
>
>
>Вопрос в теме вообще непонятен.
>
>По поводу второго: если ты просто хочешь копировать данные, то для этого
>есть copy_to_user и copy_from_user, зачем для этого использовать данные непонятно.
>
>Если же нужно именно положить первый int из строки, то:
>char *mystring;
>...
jj
>put_user(*(int *)mystring, ...);
>
>это же очевидно :)



"Как из ядра замаллочить кусок памяти из userspace?"
Отправлено n1Xm4n , 03-Авг-04 15:08 
>и ещё по поводу макросов get_user и put_user, если им подсовывать не
>int или char а скажем строку, в которой точно есть место
>под int, сделав преобразование типа строки на int*, это работать будет?
>

1). Uzay copyin()/copyout() = et pod BSD
user_to_kernel()/kernel_to_user() = pod Linux

2). A kak je rabotaet preobrazovanie tipov? ;=)))