JNIEXPORT jboolean JNICALL Java_jp_co_acroquest_endosnipe_javelin_resource_proc_SolarisResourceReader_collectQueryData
  (JNIEnv *env, jobject obj)
{
  jboolean result_system;
  jboolean result_process;
  
  g_system_info_prev = g_system_info;
  result_system = getsysinfo(&g_system_info);
  result_process = getprocessinfo(&g_process_info);

  return (result_system == JNI_TRUE) && (result_process == JNI_TRUE);
}
int main(int argc, char *argv[]) 
{
  int index = 0;
  struct system_info  info_prev;
  struct system_info  info;

  {
    jobject obj;
    Java_jp_co_acroquest_endosnipe_javelin_resource_proc_SolarisResourceReader_openQuery(NULL, obj);
  }

  getsysinfo(&info_prev);
  sleep(2);
  for (index = 0; index < 100; index++)
  {
	long update_delta;
	long swap_avail;
	long swap_free;
    struct process_info info2;

    getsysinfo(&info);
    update_delta = info.updates - info_prev.updates;
    swap_avail = info.swap_avail - info_prev.swap_avail;
    swap_free = info.swap_free - info_prev.swap_free;

    printf("sys  cpu(%lld/%lld/%lld), memory(%lld/%lld), swap(%ld/%ld), page(%lld/%lld)\n",
           info.cpu_user, info.cpu_sys, info.cpu_total,
           info.mem_total, 
           info.mem_total - info.mem_free,
           swap_avail / update_delta / 1024, 
           (swap_avail + swap_free) / update_delta / 1024, 
           info.page_in, info.page_out);

    getprocessinfo(&info2);
    printf("proc cpu(%lld/%lld/%lld), memory(%lld/%lld), thread(%d), majflt(%d)\n",
           info2.cpu_user, info2.cpu_sys, info2.cpu_total,
           info2.mem_virtual, info2.mem_physical,
           info2.threads,
           info2.majar_fault);

    info_prev = info;
    sleep(1);
  }  
}
int
main(void)
{
  getprocessinfo();
  exit();
}