Example #1
0
/*
** fork
** Cree un nouveau processeur en tout point identique a celui qui execute
** le fork a l'exception du registre Z qui vaudra 0 dans l'un et 1
** dans l'autre. Le fonctionnement est independant de P.
*/
int		my_fork(t_func_arg *arg)
{
  t_proc	*proc;
  int		i;

  if (!arg || !arg->proc || !arg->vm)
    return 2;
  if (arg->vm->proc_per_player[arg->proc->num - 1] > arg->vm->max_proc)
    return 1;
  proc = my_malloc(sizeof (t_proc));
  proc->wbuf = my_malloc(sizeof (t_wbuf));
  proc->rw = my_malloc(sizeof (t_rw));
  proc->pc[0] = arg->proc->pc[0];
  proc->pc[1] = arg->proc->pc[1];
  proc->num = arg->proc->num;
  for (i = 0; i < 16; i++)
    proc->reg[i][0] = arg->proc->reg[i][0];
  for (i = 0; i < 16; i++)
    proc->reg[i][1] = arg->proc->reg[i][1];
  proc->p = arg->proc->p;
  proc->live = 0;
  proc->z = arg->proc->z ? 0 : 1;
  fill_struct(proc, arg);
  add_proc_tmp_in_vm(arg->vm, proc);
  arg->proc->rw->delay = 0;
  arg->proc->cur_work = WAIT_AFTER;
  return 0;
}
Example #2
0
int main(int argc, char **argv, char **env)
{
	(void)argc;
	(void)argv;

	t_env e;
	fill_struct(&e, env);
	display_prompt(&e);
	return (0);
}
Example #3
0
int
requeueEParse (struct requeueEStruct **rquest, char *reqstr, int *error)
{
    int numStruct, exitV;
    char mode, *word;

    numAlloc =16;
    *error =0;
    mode = RQE_NORMAL;

    if (!(*rquest=(struct requeueEStruct *)
        malloc(numAlloc*sizeof (struct requeueEStruct))))
        return 0;
    (*rquest)[0].type = RQE_END;
    for (numStruct = 0;;) {
        if (!(word = a_getNextWord_(&reqstr)))
            break;
        if (isint_(word)) {
            if ((exitV=my_atoi(word,256,-1))!=INFINIT_INT) {
                if (!fill_struct (rquest, numStruct, exitV, mode))

                    numStruct ++;
                else
                    *error =1;
            }
            else
                *error =1;
        }
        else if (strncasecmp(word,"EXCLUDE(",8)==0)
            mode = RQE_EXCLUDE;
        else if (*word==')')
            mode = RQE_NORMAL;
    }
    if (numStruct)
        *rquest=(struct requeueEStruct *)
            realloc(*rquest, (numStruct+1)*sizeof (struct requeueEStruct));
    return numStruct;
}