LINUX.ORG.RU

Команда outb

 ,


0

3

Здравствуйте!

Знаю, что есть такая вещь, как outb. При мне данная команда вводилась в терминале (например, outb 0x3f2 0x1c - включение двигателя НГМД). Сейчас все это вспоминаю и пытаюсь воспроизвести. Однако, ни в Debian, ни в Fedora такой команды нет (терминал говорит, что команда неизвестная). Отсюда вопрос - в какой сборке Linux она присутствует?

PS: http://man7.org/linux/man-pages/man2/outb.2.html

Заголовок тебя не смущает?

OUTB(2) Linux Programmer's Manual OUTB(2)

Это функция для С, а не софт из /usr/bin.

Напиши своё с приёмом аргументов, это будет занимать минуты две.

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

Я знаю, что это функция на C. При мне это делалось прямо из терминала. Вопрос - как?

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

Маны из категории 2 про системные вызовы, а не про программы, мог бы догадаться, если бы прочитал ман.

Держи, мне нечего было делать и я написал тебе программу.

#include <stdio.h>
#include <sys/io.h>

int main(int argc, char *argv[])
{
    if (argc != 3) {
        printf("Usage: %s 0x<port> 0x<value>\n", argv[0]);
        return 1;
    } else {
        unsigned int port;
        unsigned int value;
        int ret;
        sscanf(argv[1], "%x", &port);
        sscanf(argv[2], "%x", &value);
        ret = iopl(3);
        if (ret) { perror("iopl"); return 1; }
        outb_p((unsigned char) value, (unsigned short int) port);
        return 0;
    }
}
tiandrey ★★★★★
()
Ответ на: комментарий от tiandrey

Благодарю за программу. Однако, вопрос остается в силе. В данном случае я воспользовался gcc, скомпилировал, запустил. А в тот раз была просто введена команда и все... Есть какие-либо догадки по этому поводу?

PS: где можно найти список всех прерываний с более-менее подробным описанием?

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

в тот раз была просто введена команда и все... Есть какие-либо догадки по этому поводу?

В следующий раз можешь не компилировать её при помощи GCC, а сразу запускать (главное, не удаляй эту программу!). То есть вводишь команду и всё...

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

Ну кто-то мог точно так же программу написать, вот она и была, не? В дебьяне у меня apt-file search по outb ничего не нашёл.

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

А зачем тебе прерывания?

А ты с какой целью интересуешься?

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

Управление «железом» на низком уровне. в данном примере включение/выключение двигателя привода НГМД также есть прерывание, которое останавливает цп, отключает мышь и клавиатуру (PS/2). Больше пока не знаю, поэтому и задал вопрос - какие есть еще...

v_egorov
() автор топика
Ответ на: комментарий от rogerw

Какой дистр бро?

$ cat /etc/system-release
Fedora release 23 (Twenty Three)

P.S.

Неужели есть дистры в которых этой утилиты нет??

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

Зачем тебе это в юзерспейсе? Погружайся в ядро с головой.

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

где можно найти список всех прерываний с более-менее подробным описанием?

Ralf Brown более менее подробно все описал.

Только прерывания в ОП нет, это просто запись в порт FDC.

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