Пример #1
0
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();
}
Пример #2
0
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);
}
Пример #3
0
int drv_init(void)
{
    return par_init(256 - sizeof(struct packet_s), 0);
}