В общем проблема такая. Нужно реализовать в проге, работющей под OpenBSD soft-верный watchdog таймер. Железяка работает на платформе Vortex86. На сайте производителя есть пример реализации под linux
следующего содержания:
#include <stdio.h>
#include <sys/io.h>
#define outpw(a,b) outw(b,a)
#define inpw(a) inw(a)
#define outp(a,b) outb(b,a)
#define inp(a) inb(a)
void main() {
int nTime = 5;
iopl(3);
/* set time out */
outp(0x84a, nTime);
/* set timer clock to 1 second and "Timer Expiration Event 0/1" to reset system. */
outp(0x84b, 0x9c);
printf("System will be reset after %d seconds.\n", nTime * 4); }Как переложить это на OpenBSD. Есть ли аналоги для outw&inw и нужно ли лезть в ядро?
Под *nix писать начал недавно.
Комманды inb, outb, inw... не из ядра, а с Х-сов.
Реализация в xorg-server-x.x.x/hw/xfree86/utils/ioport
>Комманды inb, outb, inw... не из ядра, а с Х-сов.
>Реализация в xorg-server-x.x.x/hw/xfree86/utils/ioportГлупость не говорите.
Признаю, глупость,
#include <sys/io.h> для inb... или в /dev/port читать, писать.
В FreeBSD есть "/dev/io", в который можно писать/читать, как в порты. Есть такое в OpenBSD?
>В FreeBSD есть "/dev/io", в который можно писать/читать, как в порты. Есть
>такое в OpenBSD?К сожелению не нашел. Долго не отвечал т.к. случился аврал на работе.
>>В FreeBSD есть "/dev/io", в который можно писать/читать, как в порты. Есть
>>такое в OpenBSD?
>
>К сожелению не нашел. Долго не отвечал т.к. случился аврал на работе.
>м-м, предположение основанное на поверхностном гуглении - sysarch()?
OpenBSD driver for vortex86 watchdog stosu.ru/vortex>[оверквотинг удален]
> iopl(3);
> /* set time out */
> outp(0x84a, nTime);
> /* set timer clock to 1 second and "Timer Expiration Event 0/1"
> to reset system. */
> outp(0x84b, 0x9c);
> printf("System will be reset after %d seconds.\n", nTime * 4); }
> Как переложить это на OpenBSD. Есть ли аналоги для outw&inw и нужно
> ли лезть в ядро?
> Под *nix писать начал недавно.