Esempio n. 1
0
/* Do not free the returned pointer */
const char *
sysapi_ckptpltfrm_raw(void)
{
	const char *opsys;
	const char *arch;
	const char *kernel_version;
	const char *memory_model;
#ifndef WIN32
	const char *vsyscall_page;
#endif
	int size;

	/* compute the checkpointing signature of this machine, each thing
		you want to detect should be defined in some form for every platform. */
	opsys = sysapi_opsys();
	arch = sysapi_condor_arch();
	kernel_version = sysapi_kernel_version();
	memory_model = sysapi_kernel_memory_model();
#ifndef WIN32
	vsyscall_page = sysapi_vsyscall_gate_addr();
#endif

/* Currently, windows doesn't support condor_ckpt_probe, so don't put in
	the vsyscall page information. */
#ifndef WIN32
	size = strlen(opsys) + 1 /*space*/ +
			strlen(arch) + 1 /*space*/ +
			strlen(kernel_version) + 1 /*space*/ +
			strlen(memory_model) + 1 /*space*/ +
			strlen(vsyscall_page) + 1 /*nul*/;
#else
	size = strlen(opsys) + 1 /*space*/ +
			strlen(arch) + 1 /*space*/ +
			strlen(kernel_version) + 1 /*space*/ +
			strlen(memory_model) + 1; /*space*/
#endif
	
	/* this will always be NULL when this function is entered */
	_sysapi_ckptpltfrm = (char*)malloc(sizeof(char) * size);
	if (_sysapi_ckptpltfrm == NULL) {
		EXCEPT("Out of memory!");
	}

	strcpy(_sysapi_ckptpltfrm, opsys);
	strcat(_sysapi_ckptpltfrm, " ");
	strcat(_sysapi_ckptpltfrm, arch);
	strcat(_sysapi_ckptpltfrm, " ");
	strcat(_sysapi_ckptpltfrm, kernel_version);
	strcat(_sysapi_ckptpltfrm, " ");
	strcat(_sysapi_ckptpltfrm, memory_model);
#ifndef WIN32
	strcat(_sysapi_ckptpltfrm, " ");
	strcat(_sysapi_ckptpltfrm, vsyscall_page);
#endif

	return _sysapi_ckptpltfrm;
}
Esempio n. 2
0
int arch_test(int trials)
{
	const char *foo = NULL, *foo2 = NULL;
	const char *bar = NULL, *bar2 = NULL;
	int		return_val = 0;
	int i;

	foo = sysapi_condor_arch();
	dprintf(D_ALWAYS, "SysAPI: sysapi_condor_arch -> %s\n", foo);
	bar = sysapi_uname_arch();
	dprintf(D_ALWAYS, "SysAPI: sysapi_uname_arch -> %s\n", bar);

	if (foo == NULL || strlen(foo) <= 0 || (strcmp(foo, "UNKNOWN")==0)) {
		return_val = return_val || 1;
		dprintf(D_ALWAYS, "SysAPI: ERROR! sysapi_condor_arch returned a bad or unknown string");
	}
	if (bar == NULL || strlen(bar) <= 0 || (strcmp(bar, "UNKNOWN")==0)) {
		return_val = return_val || 1;
		dprintf(D_ALWAYS, "SysAPI: ERROR! sysapi_uname_arch returned a bad string");
	}


	dprintf(D_ALWAYS, "SysAPI: Testing arch %d times for consistency.\n", trials);
	for (i=0; i<trials && return_val==0; i++) {
		if (i%2 == 0) {
			foo2 = sysapi_condor_arch();
			bar2 = sysapi_uname_arch();
		} else{
			foo = sysapi_condor_arch();
			bar = sysapi_uname_arch();
		}

		if (strcmp(foo, foo2) != 0) {
			dprintf(D_ALWAYS, "SysAPI: ERROR: sysapi_condor_arch() returned a different value!\n");
			return_val = return_val || 1;
		}
		if (strcmp(bar, bar2) != 0) {
			dprintf(D_ALWAYS, "SysAPI: ERROR: sysapi_condor_arch_raw() returned a different value!\n");
			return_val = return_val || 1;
		}
	}

	foo = sysapi_condor_arch();
	dprintf(D_ALWAYS, "SysAPI: sysapi_condor_arch -> %s\n", foo);
	bar = sysapi_uname_arch();
	dprintf(D_ALWAYS, "SysAPI: sysapi_uname_arch -> %s\n", bar);
	foo = sysapi_opsys();
	dprintf(D_ALWAYS, "SysAPI: sysapi_opsys -> %s\n", foo);

	return return_val;
}
Esempio n. 3
0
const char *
sysapi_uname_opsys(void)
{
	return sysapi_opsys();
}
Esempio n. 4
0
/* this function calls every function in sysapi that makes sense to call and
   prints out its value */
extern "C" void
sysapi_test_dump_functions(void)
{
	int foo = 0;
	long long loo = 0;
	float bar = 0;
	const char *qux = NULL;
	time_t t0, t1;

	dprintf(D_ALWAYS, "SysAPI: Calling SysAPI functions....\n");

	qux = sysapi_ckptpltfrm_raw();
	dprintf(D_ALWAYS, "SysAPI: sysapi_ckptpltfrm_raw -> %s\n", qux);
	qux = sysapi_ckptpltfrm();
	dprintf(D_ALWAYS, "SysAPI: sysapi_ckptpltfrm -> %s\n", qux);

	foo = sysapi_phys_memory_raw();
	dprintf(D_ALWAYS, "SysAPI: sysapi_phys_memory_raw() -> %d\n", foo);
	foo = sysapi_phys_memory();
	dprintf(D_ALWAYS, "SysAPI: sysapi_phys_memory() -> %d\n", foo);

	loo = sysapi_disk_space_raw("/");
	dprintf(D_ALWAYS, "SysAPI: sysapi_disk_space_raw() -> %" PRIi64 "\n", loo);
	loo = sysapi_disk_space("/");
	dprintf(D_ALWAYS, "SysAPI: sysapi_disk_space() -> %" PRIi64 "\n", loo);

	sysapi_ncpus_raw(&foo,NULL);
	dprintf(D_ALWAYS, "SysAPI: sysapi_ncpus_raw() -> %d\n", foo);
	sysapi_ncpus_raw(&foo, NULL);
	dprintf(D_ALWAYS, "SysAPI: sysapi_ncpus() -> %d\n", foo);

	foo = sysapi_mips_raw();
	dprintf(D_ALWAYS, "SysAPI: sysapi_mips_raw() -> %d\n", foo);
	foo = sysapi_mips();
	dprintf(D_ALWAYS, "SysAPI: sysapi_mips() -> %d\n", foo);

	foo = sysapi_kflops_raw();
	dprintf(D_ALWAYS, "SysAPI: sysapi_kflops_raw() -> %d\n", foo);
	foo = sysapi_kflops();
	dprintf(D_ALWAYS, "SysAPI: sysapi_kflops() -> %d\n", foo);

	sysapi_idle_time_raw(&t0, &t1);
	dprintf(D_ALWAYS,"SysAPI: sysapi_idle_time_raw() -> (%f,%f)\n",(float)t0,(float)t1);
	sysapi_idle_time(&t0, &t1);
	dprintf(D_ALWAYS, "SysAPI: sysapi_idle_time() -> (%f,%f)\n", (float)t0, (float)t1);

	bar = sysapi_load_avg_raw();
	dprintf(D_ALWAYS, "SysAPI: sysapi_load_avg_raw() -> %f\n", bar);
	bar = sysapi_load_avg();
	dprintf(D_ALWAYS, "SysAPI: sysapi_load_avg() -> %f\n", bar);

	qux = sysapi_condor_arch();
	dprintf(D_ALWAYS, "SysAPI: sysapi_condor_arch -> %s\n", qux);

	qux = sysapi_uname_arch();
	dprintf(D_ALWAYS, "SysAPI: sysapi_uname_arch -> %s\n", qux);

	qux = sysapi_opsys();
	dprintf(D_ALWAYS, "SysAPI: sysapi_opsys -> %s\n", qux);

	foo = sysapi_swap_space_raw();
	dprintf(D_ALWAYS, "SysAPI: sysapi_swap_space_raw() -> %d\n", foo);
	foo = sysapi_swap_space();
	dprintf(D_ALWAYS, "SysAPI: sysapi_swap_space() -> %d\n", foo);
}