port to freebsd 5.3
This commit is contained in:
		
							parent
							
								
									6ad0b561e7
								
							
						
					
					
						commit
						af9741da30
					
				@ -33,7 +33,36 @@
 | 
			
		||||
 | 
			
		||||
#define NMIB(mib) (sizeof(mib)/sizeof(mib[0]))
 | 
			
		||||
 | 
			
		||||
#if defined (__FreeBSD__) && (__FreeBSD_version >= 500013)
 | 
			
		||||
 | 
			
		||||
#define KI_PID  ki_pid
 | 
			
		||||
#define KI_PPID ki_ppid
 | 
			
		||||
#define KI_PRI  ki_pri.pri_user
 | 
			
		||||
#define KI_NICE ki_nice
 | 
			
		||||
#define KI_COMM ki_comm
 | 
			
		||||
#define KI_STAT ki_stat
 | 
			
		||||
#define KI_UID  ki_ruid
 | 
			
		||||
#define KI_GID  ki_rgid
 | 
			
		||||
#define KI_EUID ki_svuid
 | 
			
		||||
#define KI_EGID ki_svgid
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#define KI_PID  kp_proc.p_pid
 | 
			
		||||
#define KI_PPID kp_eproc.e_ppid
 | 
			
		||||
#define KI_PRI  kp_proc.p_priority
 | 
			
		||||
#define KI_NICE kp_proc.p_nice
 | 
			
		||||
#define KI_COMM kp_proc.p_comm
 | 
			
		||||
#define KI_STAT kp_proc.p_stat
 | 
			
		||||
#define KI_UID  kp_eproc.e_pcred.p_ruid
 | 
			
		||||
#define KI_GID  kp_eproc.e_pcred.p_rgid
 | 
			
		||||
#define KI_EUID kp_eproc.e_pcred.p_svuid
 | 
			
		||||
#define KI_EGID kp_eproc.e_pcred.p_svgid
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef DARWIN
 | 
			
		||||
 | 
			
		||||
static int get_koffsets(sigar_t *sigar)
 | 
			
		||||
{
 | 
			
		||||
    int i;
 | 
			
		||||
@ -378,7 +407,7 @@ int sigar_proc_list_get(sigar_t *sigar,
 | 
			
		||||
    proclist->data = malloc(sizeof(*(proclist->data)) * num);
 | 
			
		||||
 | 
			
		||||
    for (i=0; i<num; i++) {
 | 
			
		||||
        proclist->data[proclist->number++] = proc[i].kp_proc.p_pid;
 | 
			
		||||
        proclist->data[proclist->number++] = proc[i].KI_PID;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    free(proc);
 | 
			
		||||
@ -399,7 +428,7 @@ int sigar_proc_list_get(sigar_t *sigar,
 | 
			
		||||
    proclist->data = malloc(sizeof(*(proclist->data)) * num);
 | 
			
		||||
 | 
			
		||||
    for (i=0; i<num; i++) {
 | 
			
		||||
        proclist->data[proclist->number++] = proc[i].kp_proc.p_pid;
 | 
			
		||||
        proclist->data[proclist->number++] = proc[i].KI_PID;
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -504,10 +533,10 @@ int sigar_proc_cred_get(sigar_t *sigar, sigar_pid_t pid,
 | 
			
		||||
        return status;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    proccred->uid  = pinfo->kp_eproc.e_pcred.p_ruid;
 | 
			
		||||
    proccred->gid  = pinfo->kp_eproc.e_pcred.p_rgid;
 | 
			
		||||
    proccred->euid = pinfo->kp_eproc.e_pcred.p_svuid;
 | 
			
		||||
    proccred->egid = pinfo->kp_eproc.e_pcred.p_svgid;
 | 
			
		||||
    proccred->uid  = pinfo->KI_UID;
 | 
			
		||||
    proccred->gid  = pinfo->KI_GID;
 | 
			
		||||
    proccred->euid = pinfo->KI_EUID;
 | 
			
		||||
    proccred->egid = pinfo->KI_EGID;
 | 
			
		||||
 | 
			
		||||
    return SIGAR_OK;
 | 
			
		||||
}
 | 
			
		||||
@ -611,13 +640,13 @@ int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
 | 
			
		||||
        return status;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    SIGAR_SSTRCPY(procstate->name, pinfo->kp_proc.p_comm);
 | 
			
		||||
    procstate->ppid     = pinfo->kp_eproc.e_ppid;
 | 
			
		||||
    procstate->priority = pinfo->kp_proc.p_priority;
 | 
			
		||||
    procstate->nice     = pinfo->kp_proc.p_nice;
 | 
			
		||||
    SIGAR_SSTRCPY(procstate->name, pinfo->KI_COMM);
 | 
			
		||||
    procstate->ppid     = pinfo->KI_PPID;
 | 
			
		||||
    procstate->priority = pinfo->KI_PRI;
 | 
			
		||||
    procstate->nice     = pinfo->KI_NICE;
 | 
			
		||||
    procstate->tty      = SIGAR_FIELD_NOTIMPL; /*XXX*/
 | 
			
		||||
 | 
			
		||||
    switch (pinfo->kp_proc.p_stat) {
 | 
			
		||||
    switch (pinfo->KI_STAT) {
 | 
			
		||||
      case SIDL:
 | 
			
		||||
        procstate->state = 'D';
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user