コード例 #1
0
ファイル: arenacl.c プロジェクト: sionescu/mps-temporary
static void ClientArenaVarargs(ArgStruct args[MPS_ARGS_MAX], va_list varargs)
{
  args[0].key = MPS_KEY_ARENA_SIZE;
  args[0].val.size = va_arg(varargs, Size);
  args[1].key = MPS_KEY_ARENA_CL_BASE;
  args[1].val.addr = va_arg(varargs, Addr);
  args[2].key = MPS_KEY_ARGS_END;
  AVER(ArgListCheck(args));
}
コード例 #2
0
ファイル: mpsi.c プロジェクト: alisheikh/hornet
mps_res_t mps_fmt_create_k(mps_fmt_t *mps_fmt_o,
                           mps_arena_t arena,
                           mps_arg_s args[])
{
  Format format;
  Res res;

  ArenaEnter(arena);

  AVER(mps_fmt_o != NULL);
  AVERT(Arena, arena);
  AVER(ArgListCheck(args));

  res = FormatCreate(&format, arena, args);

  ArenaLeave(arena);

  if (res != ResOK) return res;
  *mps_fmt_o = (mps_fmt_t)format;
  return MPS_RES_OK;
}
コード例 #3
0
ファイル: arg.c プロジェクト: datafueled/memory-pool-system
Bool ArgPick(ArgStruct *argOut, ArgList args, Key key) {
  Index i;
  
  AVER(argOut != NULL);
  AVER(ArgListCheck(args));
  AVERT(Key, key);

  for (i = 0; args[i].key != MPS_KEY_ARGS_END; ++i)
    if (args[i].key == key)
      goto found;
  return FALSE;

found:
  *argOut = args[i];
  for(;;) {
    args[i] = args[i + 1];
    if (args[i].key == MPS_KEY_ARGS_END)
      break;
    ++i;
  }
  return TRUE;
}
コード例 #4
0
ファイル: arg.c プロジェクト: datafueled/memory-pool-system
void ArgTrivVarargs(ArgStruct args[MPS_ARGS_MAX], va_list varargs)
{
  UNUSED(varargs);
  args[0].key = MPS_KEY_ARGS_END;
  AVER(ArgListCheck(args));
}