int main(int argc, char *argv[]) { port_name n; int status; /* * Initialize syslog */ openlog("parallel", LOG_PID, LOG_DAEMON); if (argc != 3) { usage(); } if (!strcmp(argv[1], "par0") || (argv[1][0] == '0')) { status = par_init(&printer, 0); } else if (!strcmp(argv[1], "par1") || (argv[1][0] == '1')) { status = par_init(&printer, 1); } else if (!strcmp(argv[1], "par2") || (argv[1][0] == '2')) { status = par_init(&printer, 2); } else { usage(); } if (status) { syslog(LOG_ERR, "can't get I/O permissions"); exit(1); } par_reset(&printer); /* * Allocate handle->file hash table. 16 is just a guess * as to what we'll have to handle. */ filehash = hash_alloc(16); if (filehash == 0) { syslog(LOG_ERR, "file hash not allocated"); exit(1); } lp_port = msg_port((port_name)0, &n); if (namer_register(argv[2], n) < 0) { syslog(LOG_ERR, "unable to register name '%s'", argv[2]); exit(1); } par_main(); }
int lex_lexer(t_dtab *dtab, char *av) { t_tok tab[NB_TOK]; t_tok tok; int flag; flag = 0; par_init(tab); while (*av != '\0') { ft_bzero((void *)&tok, sizeof(t_tok)); if (!par_known(av, tab, &tok)) { if (!par_not_known(av, &tok)) return (ERR_LEX); tok.type = flag ? TOK_EXP : TOK_COEF; flag = flag ? 0 : 1; } if (tok.type != TOK_BLK && tok.type != TOK_X && tok.type != TOK_OP) { if (!(dtab_push(dtab, (void *)&tok))) return (ERR_ML); } av += tok.size; } return (NO_ERR); }
int drv_init(void) { return par_init(256 - sizeof(struct packet_s), 0); }