int main(char **argv, char **environ) { int argc = 0; for(int i = 0; argv[i]; i++) argc++; for(int i = 1; i < argc; i++) { sys_mkfifo(argv[i], 0666); } sys_exit(0); }
int ultrix_sys_mknod(struct lwp *l, const struct ultrix_sys_mknod_args *uap, register_t *retval) { if (S_ISFIFO(SCARG(uap, mode))) return sys_mkfifo(l, (const struct sys_mkfifo_args *)uap, retval); return compat_50_sys_mknod(l, (const struct compat_50_sys_mknod_args *)uap, retval); }
int mkfifo(const char *name, uint32_t open_flags) { return sys_mkfifo(name, open_flags); }
int init(void) { memset(&kb, 0, sizeof(kb)); memset(&mouse, 0, sizeof(mouse)); kb.vkeymap = &ps2_codemap[0]; #define MOUSE_WRITE(x) \ PS2_WAIT; \ outb(PS2_CTRL, 0xD4); \ PS2_WAIT; \ outb(PS2_DATA, x) #define MOUSE_READ(x) \ PS2_WAIT_0; \ x = inb(PS2_DATA) inb(0x60); PS2_WAIT; outb(PS2_CTRL, 0xA8); PS2_WAIT; outb(PS2_CTRL, 0x20); PS2_WAIT_0; int s = inb(PS2_DATA) | 2; PS2_WAIT; outb(PS2_CTRL, 0x60); PS2_WAIT; outb(PS2_DATA, s); MOUSE_WRITE(0xF6); MOUSE_READ(s); #if 0 MOUSE_WRITE(0xF3); MOUSE_READ(s); MOUSE_WRITE(200); MOUSE_READ(s); MOUSE_WRITE(0xF3); MOUSE_READ(s); MOUSE_WRITE(100); MOUSE_READ(s); MOUSE_WRITE(0xF3); MOUSE_READ(s); MOUSE_WRITE(80); MOUSE_READ(s); MOUSE_WRITE(0xF2); MOUSE_READ(s); #endif MOUSE_WRITE(0xF4); MOUSE_READ(s); mouse.speed = 1; mouse.clip.left = 0; mouse.clip.top = 0; mouse.clip.right = 0x7FFF; mouse.clip.bottom = 0x7FFF; if(sys_mkfifo(PATH_KBDEV, 0666) != 0) kprintf(ERROR "%s: cannot create FIFO device!\n", PATH_KBDEV); if(sys_mkfifo(PATH_MOUSEDEV, 0666) != 0) kprintf(ERROR "%s: cannot create FIFO device!\n", PATH_MOUSEDEV); kdid = sys_events_device_add("ps2-keyboard", EC_KEY | EC_LED); mdid = sys_events_device_add("ps2-mouse", EC_KEY | EC_REL); sys_events_device_set_enabled(kdid, 1); sys_events_device_set_enabled(mdid, 1); irq_enable(1, kb_intr); irq_enable(12, mouse_intr); return 0; }