void cmd_pin(char *str, t_server *serv, const int fd) { char *tab[3]; char *tok; int i; (void)serv; if (str && strlen(str) > 3 && fd) { i = 1; if ((tok = strdup(str)) == ((char*)0)) { fprintf(stderr, "Error: strdup failed.\n"); return ; } tab[0] = strtok(tok, " "); while (i < 2 && (tab[i] = strtok((char*)0, " ")) != ((char*)0)) ++i; if ((strtok((char*)0, " ")) != ((char*)0)) cmd_invalid_args(fd); else display_pin(tab, fd); } else cmd_invalid(str, fd); }
void UPD765A::process_cmd(int cmd) { switch(cmd & 0x1f) { case 0x02: cmd_read_diagnostic(); break; case 0x03: cmd_specify(); break; case 0x04: cmd_sence_devstat(); break; case 0x05: case 0x09: cmd_write_data(); break; case 0x06: case 0x0c: cmd_read_data(); break; case 0x07: cmd_recalib(); break; case 0x08: cmd_sence_intstat(); break; case 0x0a: cmd_read_id(); break; case 0x0d: cmd_write_id(); break; case 0x0f: cmd_seek(); break; case 0x11: case 0x19: case 0x1d: cmd_scan(); break; default: cmd_invalid(); break; } }