LINUX.ORG.RU

операции с плавающей точкой Linux

 


0

1

Ядро собранно с поддержкой NWFPE, значит ли это что я могу напрямую в модуле использовать вычисления с плавающей точкой?

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>

MODULE_LICENSE(«GPL»);
static int __init fpe_init(void)
{
printk(«Start fpe probe\n»);
float a = 3/2;
char *output;
sprintf(output,«%f»,a);
printk(«Result : %s»,output);
return 0;
}
static void __exit fpe_cleanup(void){
printk(" Exit");
}

module_init(fpe_init);
module_exit(fpe_cleanup);

При попытке реализовать подобный код получаю segmentation fault..

★★★★★

Последнее исправление: splinter (всего исправлений: 2)

char *output; это просто указатель в никуда, а ты в него печатаешь

ilovewindows ★★★★★
()

я читал, что в ядре использовать операции с плавающей точкой нельзя, ибо контекст FPU при переходе в режим ядра не сохраняется, для экономии

Harald ★★★★★
()
Ответ на: комментарий от splinter

ну теоретически можно и в модуле заиметь операции с плавающей точкой, если очень нужно. Например, дергать внутренние функции для эмуляции напрямую из NWFPE и держать контекст внутри модуля, а не создавать переменные типа float и double

Harald ★★★★★
()
Ответ на: комментарий от Harald

скорее всего придется смещениями делать.

splinter ★★★★★
() автор топика
Ответ на: комментарий от UVV

Потому что из talks перенесут, а в development такому тупняку не место.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.