Exemple #1
0
void f_async_write(){
    function_to_call_t *cb = get_cb();
    process_efun_callback(3, cb, F_ASYNC_WRITE);
    cb->f.fp->hdr.ref++;
    add_write(check_valid_path((sp-3)->u.string, current_object, "write_file", 1), (sp-2)->u.string, strlen((sp-2)->u.string), (sp-1)->u.number, cb);
    pop_n_elems(4);
}
Exemple #2
0
static void	my_store(t_func_arg *arg)
{
  int		pos;
  char		qrt;

  qrt = arg->proc->wbuf->buf[arg->proc->wbuf->place / 2];
  if (arg->proc->wbuf->place % 2)
    qrt <<= 4;
  pos = (pc2int(arg->proc->pc) +
	 neg_mod(reg2int(arg->proc->reg[arg->rx - 1]) + 3 -
		 arg->proc->wbuf->place, IDX_MOD));
  while (pos < 0)
    pos += arg->vm->size;
  pos %= arg->vm->size;
  add_write(pos, qrt, arg);
  (arg->proc->wbuf->place)--;
  if (arg->proc->wbuf->place < 3 - arg->proc->p)
    {
      arg->proc->wbuf->place = -1;
      arg->proc->cur_work = WAIT_AFTER;
      arg->proc->rw->delay = 0;
    }
}