Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > memcpy в kernelspace


Автор: SiTox_ 10.5.2007, 22:36
какую функцию можно использовать вместо memcpy в Модуле Ядра ? 
ибо при использовании memcpy : implicit declaration of function `memcpy` :(

Автор: MAKCim 10.5.2007, 22:39
SiTox_, 
memcpy лежит в <linux/string.h>

Автор: SiTox_ 10.5.2007, 23:12
а она будет правельно работать если мне нужно скопировать данные из константы которая объявлена в модуле в переменную которая находиться в userspace и у меня есть на неё тока поинтер или надо делать get_user ? 

Автор: MAKCim 11.5.2007, 08:17
SiTox_, 
тогда уж put_user, это раз
во-вторых, если точно знаешь размер target-буфера в userspace, копировать напрямую не запрещено (благо запись в user-страницы из kernel-страниц позволяется, в конце концов put_user()/get_user() в сущности так и делают)

Автор: pakulo 17.7.2007, 10:37
Код

void *
memcpy (void *destaddr, void const *srcaddr, size_t len)
{
  char *dest = destaddr;
  char const *src = srcaddr;

  while (len-- > 0)
    *dest++ = *src++;
  return destaddr;
}
/* Written by Jim Meyering */


 smile 

Автор: GrayCardinal 17.7.2007, 14:45
pakulo, 
Зачет  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)