internal static CpuInformation[] GetInfo() { IntPtr info; int count; var error = uv_cpu_info(out info, out count); CpuInformation[] ret = new CpuInformation[count]; for (int i = 0; i < count; i++) { uv_cpu_info_t *cpuinfo = (uv_cpu_info_t *)((IntPtr)(((long)info) + (long)i * sizeof(uv_cpu_info_t))); ret[i] = new CpuInformation(cpuinfo); } uv_free_cpu_info(info, count); Ensure.Success(error); return(ret); }
internal static CpuInformation[] GetInfo() { IntPtr info; int count; int r = uv_cpu_info(out info, out count); Ensure.Success(r); CpuInformation[] ret = new CpuInformation[count]; for (int i = 0; i < count; i++) { uv_cpu_info_t *cpuinfo = (uv_cpu_info_t *)(info.ToInt64() + i * sizeof(uv_cpu_info_t)); ret[i] = new CpuInformation(cpuinfo); } uv_free_cpu_info(info, count); return(ret); }
internal CpuInformation(uv_cpu_info_t *info) { Name = Marshal.PtrToStringAnsi(info->model); Speed = info->speed; Times = new CpuTimes(info->cpu_times); }