openbsd tweaks
This commit is contained in:
		
							parent
							
								
									49962904ed
								
							
						
					
					
						commit
						37d9c1af0c
					
				@ -278,7 +278,7 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    mem->total = mem_total;
 | 
					    mem->total = mem_total;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef DARWIN
 | 
					#if defined(DARWIN)
 | 
				
			||||||
    status = host_statistics(sigar->mach_port, HOST_VM_INFO,
 | 
					    status = host_statistics(sigar->mach_port, HOST_VM_INFO,
 | 
				
			||||||
                             (host_info_t)&vmstat, &count);
 | 
					                             (host_info_t)&vmstat, &count);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -287,7 +287,7 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mem->free = vmstat.free_count * sigar->pagesize;
 | 
					    mem->free = vmstat.free_count * sigar->pagesize;
 | 
				
			||||||
#else
 | 
					#elif defined(__FreeBSD__)
 | 
				
			||||||
    len = sizeof(mem_free);
 | 
					    len = sizeof(mem_free);
 | 
				
			||||||
    if (sysctlbyname("vm.stats.vm.v_free_count",
 | 
					    if (sysctlbyname("vm.stats.vm.v_free_count",
 | 
				
			||||||
                     &mem_free, &len, NULL, 0) == -1)
 | 
					                     &mem_free, &len, NULL, 0) == -1)
 | 
				
			||||||
@ -298,6 +298,8 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
 | 
				
			|||||||
        mem->free = mem_free;
 | 
					        mem->free = mem_free;
 | 
				
			||||||
        mem->free *= sigar->pagesize;
 | 
					        mem->free *= sigar->pagesize;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    mem->free = -1; /*XXX OpenBSD*/
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mem->used = mem->total - mem->free;
 | 
					    mem->used = mem->total - mem->free;
 | 
				
			||||||
@ -395,7 +397,7 @@ static int getswapinfo_sysctl(struct kvm_swap *swap_ary,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
 | 
					int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef DARWIN
 | 
					#if defined(DARWIN)
 | 
				
			||||||
    DIR *dirp;
 | 
					    DIR *dirp;
 | 
				
			||||||
    struct dirent *ent;
 | 
					    struct dirent *ent;
 | 
				
			||||||
    char swapfile[SSTRLEN(VM_DIR) + SSTRLEN("/") + SSTRLEN(SWAPFILE) + 12];
 | 
					    char swapfile[SSTRLEN(VM_DIR) + SSTRLEN("/") + SSTRLEN(SWAPFILE) + 12];
 | 
				
			||||||
@ -448,7 +450,7 @@ int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    swap->free = swap->total - swap->used;
 | 
					    swap->free = swap->total - swap->used;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else
 | 
					#elif defined(__FreeBSD__)
 | 
				
			||||||
    struct kvm_swap kswap[1];
 | 
					    struct kvm_swap kswap[1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (getswapinfo_sysctl(kswap, 1) != SIGAR_OK) {
 | 
					    if (getswapinfo_sysctl(kswap, 1) != SIGAR_OK) {
 | 
				
			||||||
@ -471,6 +473,8 @@ int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
 | 
				
			|||||||
    swap->total = kswap[0].ksw_total * sigar->pagesize;
 | 
					    swap->total = kswap[0].ksw_total * sigar->pagesize;
 | 
				
			||||||
    swap->used  = kswap[0].ksw_used * sigar->pagesize;
 | 
					    swap->used  = kswap[0].ksw_used * sigar->pagesize;
 | 
				
			||||||
    swap->free  = swap->total - swap->used;
 | 
					    swap->free  = swap->total - swap->used;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    /*XXX OpenBSD*/
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return SIGAR_OK;
 | 
					    return SIGAR_OK;
 | 
				
			||||||
@ -478,7 +482,7 @@ int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
 | 
					int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef DARWIN
 | 
					#if defined(DARWIN)
 | 
				
			||||||
    kern_return_t status;
 | 
					    kern_return_t status;
 | 
				
			||||||
    mach_msg_type_number_t count = HOST_CPU_LOAD_INFO_COUNT;
 | 
					    mach_msg_type_number_t count = HOST_CPU_LOAD_INFO_COUNT;
 | 
				
			||||||
    host_cpu_load_info_data_t cpuload;
 | 
					    host_cpu_load_info_data_t cpuload;
 | 
				
			||||||
@ -497,7 +501,7 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
 | 
				
			|||||||
    cpu->wait = 0; /*N/A*/
 | 
					    cpu->wait = 0; /*N/A*/
 | 
				
			||||||
    cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
 | 
					    cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else
 | 
					#elif defined(__FreeBSD__)
 | 
				
			||||||
    int status;
 | 
					    int status;
 | 
				
			||||||
    unsigned long cp_time[CPUSTATES];
 | 
					    unsigned long cp_time[CPUSTATES];
 | 
				
			||||||
    size_t size = sizeof(cp_time);
 | 
					    size_t size = sizeof(cp_time);
 | 
				
			||||||
@ -521,6 +525,8 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
 | 
				
			|||||||
    cpu->idle = SIGAR_TICK2MSEC(cp_time[CP_IDLE]);
 | 
					    cpu->idle = SIGAR_TICK2MSEC(cp_time[CP_IDLE]);
 | 
				
			||||||
    cpu->wait = 0; /*N/A*/
 | 
					    cpu->wait = 0; /*N/A*/
 | 
				
			||||||
    cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
 | 
					    cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    /*XXX OpenBSD*/
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return SIGAR_OK;
 | 
					    return SIGAR_OK;
 | 
				
			||||||
@ -859,7 +865,7 @@ int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
 | 
				
			|||||||
    proctime->sys   = tv2msec(pinfo->ki_rusage.ru_stime);
 | 
					    proctime->sys   = tv2msec(pinfo->ki_rusage.ru_stime);
 | 
				
			||||||
    proctime->total = proctime->user + proctime->sys;
 | 
					    proctime->total = proctime->user + proctime->sys;
 | 
				
			||||||
    proctime->start_time = tv2msec(pinfo->KI_START);
 | 
					    proctime->start_time = tv2msec(pinfo->KI_START);
 | 
				
			||||||
#else
 | 
					#elif defined(SIGAR_FREEBSD4)
 | 
				
			||||||
    if (!sigar->kmem) {
 | 
					    if (!sigar->kmem) {
 | 
				
			||||||
        return SIGAR_EPERM_KMEM;
 | 
					        return SIGAR_EPERM_KMEM;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -874,6 +880,8 @@ int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
 | 
				
			|||||||
    proctime->sys   = tv2msec(user.u_stats.p_ru.ru_stime);
 | 
					    proctime->sys   = tv2msec(user.u_stats.p_ru.ru_stime);
 | 
				
			||||||
    proctime->total = proctime->user + proctime->sys;
 | 
					    proctime->total = proctime->user + proctime->sys;
 | 
				
			||||||
    proctime->start_time = tv2msec(user.u_stats.p_start);
 | 
					    proctime->start_time = tv2msec(user.u_stats.p_start);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    /*XXX OpenBSD*/
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return SIGAR_OK;
 | 
					    return SIGAR_OK;
 | 
				
			||||||
@ -1222,7 +1230,7 @@ int sigar_proc_env_get(sigar_t *sigar, sigar_pid_t pid,
 | 
				
			|||||||
int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
 | 
					int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
 | 
				
			||||||
                      sigar_proc_fd_t *procfd)
 | 
					                      sigar_proc_fd_t *procfd)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifndef DARWIN
 | 
					#ifdef __FreeBSD__
 | 
				
			||||||
    int status;
 | 
					    int status;
 | 
				
			||||||
    struct kinfo_proc *pinfo;
 | 
					    struct kinfo_proc *pinfo;
 | 
				
			||||||
    struct filedesc filed;
 | 
					    struct filedesc filed;
 | 
				
			||||||
@ -1482,14 +1490,14 @@ int sigar_file_system_usage_get(sigar_t *sigar,
 | 
				
			|||||||
    fsusage->free_files = buf.f_ffree;
 | 
					    fsusage->free_files = buf.f_ffree;
 | 
				
			||||||
    fsusage->use_percent = sigar_file_system_usage_calc_used(sigar, fsusage);
 | 
					    fsusage->use_percent = sigar_file_system_usage_calc_used(sigar, fsusage);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef DARWIN
 | 
					#ifdef __FreeBSD__
 | 
				
			||||||
    SIGAR_DISK_STATS_NOTIMPL(fsusage);
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
    fsusage->disk_reads  = buf.f_syncreads + buf.f_asyncreads;
 | 
					    fsusage->disk_reads  = buf.f_syncreads + buf.f_asyncreads;
 | 
				
			||||||
    fsusage->disk_writes = buf.f_syncwrites + buf.f_asyncwrites;
 | 
					    fsusage->disk_writes = buf.f_syncwrites + buf.f_asyncwrites;
 | 
				
			||||||
    fsusage->disk_read_bytes  = SIGAR_FIELD_NOTIMPL;
 | 
					    fsusage->disk_read_bytes  = SIGAR_FIELD_NOTIMPL;
 | 
				
			||||||
    fsusage->disk_write_bytes = SIGAR_FIELD_NOTIMPL;
 | 
					    fsusage->disk_write_bytes = SIGAR_FIELD_NOTIMPL;
 | 
				
			||||||
    fsusage->disk_queue       = SIGAR_FIELD_NOTIMPL;
 | 
					    fsusage->disk_queue       = SIGAR_FIELD_NOTIMPL;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    SIGAR_DISK_STATS_NOTIMPL(fsusage);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return SIGAR_OK;
 | 
					    return SIGAR_OK;
 | 
				
			||||||
@ -1513,7 +1521,7 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    size = sizeof(mhz);
 | 
					    size = sizeof(mhz);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef DARWIN
 | 
					#if defined(DARWIN)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        int mib[] = { CTL_HW, HW_CPU_FREQ };
 | 
					        int mib[] = { CTL_HW, HW_CPU_FREQ };
 | 
				
			||||||
        size = sizeof(mhz);
 | 
					        size = sizeof(mhz);
 | 
				
			||||||
@ -1521,16 +1529,22 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
 | 
				
			|||||||
            mhz = SIGAR_FIELD_NOTIMPL;
 | 
					            mhz = SIGAR_FIELD_NOTIMPL;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
#else
 | 
					#elif defined(__FreeBSD__)
 | 
				
			||||||
    if (sysctlbyname(CTL_HW_FREQ, &mhz, &size, NULL, 0) < 0) {
 | 
					    if (sysctlbyname(CTL_HW_FREQ, &mhz, &size, NULL, 0) < 0) {
 | 
				
			||||||
        mhz = SIGAR_FIELD_NOTIMPL;
 | 
					        mhz = SIGAR_FIELD_NOTIMPL;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    /*XXX OpenBSD*/
 | 
				
			||||||
 | 
					    mhz = SIGAR_FIELD_NOTIMPL;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (mhz != SIGAR_FIELD_NOTIMPL) {
 | 
					    if (mhz != SIGAR_FIELD_NOTIMPL) {
 | 
				
			||||||
        mhz /= 1000000;
 | 
					        mhz /= 1000000;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __OpenBSD__
 | 
				
			||||||
 | 
					    strcpy(model, "Unknown");
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
    size = sizeof(model);
 | 
					    size = sizeof(model);
 | 
				
			||||||
    if (sysctlbyname("hw.model", &model, &size, NULL, 0) < 0) {
 | 
					    if (sysctlbyname("hw.model", &model, &size, NULL, 0) < 0) {
 | 
				
			||||||
        int mib[] = { CTL_HW, HW_MODEL };
 | 
					        int mib[] = { CTL_HW, HW_MODEL };
 | 
				
			||||||
@ -1543,6 +1557,7 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (mhz == SIGAR_FIELD_NOTIMPL) {
 | 
					    if (mhz == SIGAR_FIELD_NOTIMPL) {
 | 
				
			||||||
        /* freebsd4 */
 | 
					        /* freebsd4 */
 | 
				
			||||||
@ -1948,6 +1963,7 @@ int sigar_net_interface_stat_get(sigar_t *sigar, const char *name,
 | 
				
			|||||||
    return SIGAR_OK;
 | 
					    return SIGAR_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __OpenBSD__
 | 
				
			||||||
#include <sys/socketvar.h>
 | 
					#include <sys/socketvar.h>
 | 
				
			||||||
#include <netinet/tcp.h>
 | 
					#include <netinet/tcp.h>
 | 
				
			||||||
#include <netinet/in_pcb.h>
 | 
					#include <netinet/in_pcb.h>
 | 
				
			||||||
@ -2125,8 +2141,14 @@ int sigar_net_connection_walk(sigar_net_connection_walker_t *walker)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    return SIGAR_OK;
 | 
					    return SIGAR_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int sigar_net_connection_walk(sigar_net_connection_walker_t *walker)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return SIGAR_ENOTIMPL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef DARWIN
 | 
					#ifdef __FreeBSD__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define _KERNEL
 | 
					#define _KERNEL
 | 
				
			||||||
#include <sys/file.h>
 | 
					#include <sys/file.h>
 | 
				
			||||||
@ -2330,7 +2352,13 @@ int sigar_os_sys_info_get(sigar_t *sigar,
 | 
				
			|||||||
#else
 | 
					#else
 | 
				
			||||||
    char *ptr;
 | 
					    char *ptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__FreeBSD__)
 | 
				
			||||||
    SIGAR_SSTRCPY(sysinfo->name, "FreeBSD");
 | 
					    SIGAR_SSTRCPY(sysinfo->name, "FreeBSD");
 | 
				
			||||||
 | 
					#elif defined(__OpenBSD__)
 | 
				
			||||||
 | 
					    SIGAR_SSTRCPY(sysinfo->name, "OpenBSD");
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    SIGAR_SSTRCPY(sysinfo->name, "Unknown");
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
    SIGAR_SSTRCPY(sysinfo->vendor_name, sysinfo->name);
 | 
					    SIGAR_SSTRCPY(sysinfo->vendor_name, sysinfo->name);
 | 
				
			||||||
    SIGAR_SSTRCPY(sysinfo->vendor, sysinfo->name);
 | 
					    SIGAR_SSTRCPY(sysinfo->vendor, sysinfo->name);
 | 
				
			||||||
    SIGAR_SSTRCPY(sysinfo->vendor_version,
 | 
					    SIGAR_SSTRCPY(sysinfo->vendor_version,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user