LINUX.ORG.RU

Что значит "на уровне ядра"?. И какими стандартными методами пользуешься: shell, C++, Perl, Java?

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

Пишу драйвер устройства. Прежде чем с ним можно работать, надо записать микрокод из файла в некоторый порт.

Usenko
() автор топика

{ int retRes; char Str[n]; char Cmd[4096]; ... if(GetMicroCode(filename, Str)) { strcpy(Cmd, "cat "); strcat(Cmd, Str); strcat(Cmd, " > /dev/parport0 2>/root/port_debug.txt"); retRes = system(Cmd); } else return -1; if(retRes) printf("Error.\n"); else return 0; } Более менее так... :)

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

Стандартные библиотеки использовать нельзя. В модуле ядра можно использовать только функции ядра.

Usenko
() автор топика

Voobsheto tebe nikto ne zapreshaet polzovatsya do_open/do_read/do_close t.e. vyzyvat iz yadra sistemnye vyzovy.

master
()

Я думаю, что проще и правильнее будет сделать двух ступенчатую инициализацию:
1) запускается модуль
2) модуль создает устройство /dev/ и/или /procfs/
3) программа запускаемая юзером, inittab и т.д. просто пересылает данные из файла в модуль используя /procfs

Таким образом ты не завязываешся на конкретные вызовы ядра, да и отлаживать будет проще.

Ogr
()

ne sovsem ponyal chto znachit ne zavyazyvaeshsya na konkretnye vyzovy :) tebe pokrainey mere nado budet obsluzhivat zaprosy k sozdannomu failu Hotya soglasen eto dostatochno podrobno opisanno . Sdrugoi storony esli fail nado perechityvat to pridetsya sozdavat svoyu blokirovku hotya ya naverno gonyu dostatochno davno v yadre kovyryalsya i vse pozabyl uzhe :*(

master
()

2master: "ne sovsem ponyal chto znachit ne zavyazyvaeshsya na konkretnye vyzovy", ты завязываешся на конретную FS, а если этот самый микрокод расположен на NFS как ты собираешся стартовать и ждать когда эта самая nfs замонтируется? Не случайно модулям не доступны многие вызовы, потому как модуль должен быть быстрым (чтение через procfs это гарантрует) и быть self-contained, т.е. чем меньше завязок на определенные вызовы тем лучше.

Ogr
()

Чем открыть файл по его номеру индексного дескриптора?

Забавная задачка возникла. Есть CD, на нем названия
файлов по русски. Win давно снес, а файлы нужно
переписать. Как назло часть названий имеет одинаковое
число букв и видны из Линукса как ?????.
При этом система не видит двойников - название одинаковое,
а размеры и прочее берет от первого по списку.
Мне удалось найти номера индексного дескриптора у двойников,
но "open" работает только с именем файла.
Как открыть файл обращаясь только к его номеру индексного дескриптора?
Так чтобы к имени не было промежуточных обращений?

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