#include #include #include #include /* for usleep */ #include /* for inb,outb */ static void beep_on(void) { outb(inb(0x61)|3, 0x61); /* beep on */ } static void beep_off(void) { outb(inb(0x61)&0xfc, 0x61); /* beep off */ } int main(int argc, char *argv[]) { uint32_t count; if ((ioperm(0x0040, 4, 1)) || (ioperm(0x0061, 1, 1))) { perror("ioperm"); return 1; } count = 1193180/1000; /* 1000 Hz */ outb(0xb6, 0x43); /* set freq */ outb(count & 0xff, 0x42); outb((count>>8) & 0xff, 0x42); beep_on(); usleep(1000000); /* 1sec wait */ beep_off(); return 0; }