/* * abort_key - enable or disable L1-A abort sequence. * for sun workstations * Usage: abort_key y|n */ #include #include #include #include main(argc,argv) int argc; char *argv[]; { struct kiockey key; int fd; int mode; char *c; if (argc != 2) { printf("\nUsage: abort_key y|n\n\n"); exit(1); } switch (*(c= argv[1])) { case 'y': mode = 1; break; case 'n': mode = 0; break; default: printf("\nInvalid Argument\n"); printf("Usage: abort_key y|n \n\n"); exit(1); } fd = open("/dev/kbd", 1); if (fd < 0) { perror("OPEN"); exit(1); } key.kio_tablemask = KIOCABORT1; ioctl( fd, KIOCGETKEY, &key); /* read abort key entry */ if (key.kio_station == 0) printf("L1-A reset sequence was disabled\n"); else if (key.kio_station == 1) printf("L1-A reset sequence was enabled\n"); if (mode == 1) key.kio_station = 1; else key.kio_station = 0; ioctl(fd, KIOCSETKEY, &key); /* map it to a 'hole' in map */ if (key.kio_station == 0) printf("L1-A reset sequence now disabled\n"); else if (key.kio_station == 1) printf("L1-A reset sequence now enabled\n"); }