Esempio n. 1
0
static sg_error
sg_mem_init_comp(unsigned id) {
	ssize_t pagesize;
#if defined(HAVE_STRUCT_VMTOTAL) && \
    !(defined(HAVE_STRUCT_UVMEXP_SYSCTL) && defined(VM_UVMEXP2)) && \
    !(defined(HAVE_STRUCT_UVMEXP) && defined(VM_UVMEXP)) && \
    !defined(DARWIN)
	size_t len = lengthof(vmtotal_mib);
#endif
	GLOBAL_SET_ID(mem,id);

#if defined(HAVE_STRUCT_VMTOTAL) && \
    !(defined(HAVE_STRUCT_UVMEXP_SYSCTL) && defined(VM_UVMEXP2)) && \
    !(defined(HAVE_STRUCT_UVMEXP) && defined(VM_UVMEXP)) && \
    !defined(DARWIN)
	if( -1 == sysctlnametomib( "vm.vmtotal", vmtotal_mib, &len ) ) {
		RETURN_WITH_SET_ERROR_WITH_ERRNO("mem", SG_ERROR_SYSCTLNAMETOMIB, "vm.vmtotal");
	}
#endif

	if((pagesize = sg_get_sys_page_size()) == -1) {
		RETURN_WITH_SET_ERROR_WITH_ERRNO("mem", SG_ERROR_SYSCONF, "_SC_PAGESIZE");
	}

#if defined(HAVE_HOST_STATISTICS) || defined(HAVE_HOST_STATISTICS64)
	self_host_port = mach_host_self();
#endif

	return SG_ERROR_NONE;
}
Esempio n. 2
0
static sg_error
sg_swap_init_comp(unsigned id) {
	ssize_t pagesize;
#if defined(HAVE_STRUCT_XSWDEV)
	size_t len = lengthof(swapinfo_mib);
#endif
	GLOBAL_SET_ID(swap,id);

	if((pagesize = sg_get_sys_page_size()) == -1) {
		RETURN_WITH_SET_ERROR_WITH_ERRNO("swap", SG_ERROR_SYSCONF, "_SC_PAGESIZE");
	}

#if defined(HAVE_STRUCT_XSWDEV)
	if( sysctlnametomib("vm.swap_info", swapinfo_mib, &len) < 0 ) {
		if( sysctlnametomib("vm.swap_info_array", swapinfo_mib, &len) < 0 ) {
			RETURN_WITH_SET_ERROR_WITH_ERRNO("mem", SG_ERROR_SYSCTLNAMETOMIB, "vm.swap_info + vm.swap_info_array");
		}
		else {
			swapinfo_array = true;
			swapinfo_sysctl_name = "vm.swap_info_array";
		}
	}
	else {
		swapinfo_array = false;
		swapinfo_sysctl_name = "vm.swap_info";
	}
#endif

	return SG_ERROR_NONE;
}