This patch mostly removes MINIX3-specific workarounds for missing sysctl support. Change-Id: I21e35e887359619ba72c252aa43d9017301a46ac
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _W_MINIX_PROC_H
 | 
						|
#define _W_MINIX_PROC_H
 | 
						|
 | 
						|
/*
 | 
						|
 * This header file is tailored very specifically to the needs of w(1), which
 | 
						|
 * needs process information but uses a BSD infrastructure (namely, the Kernel
 | 
						|
 * Data Access Library or, eh, KVM.. huh?) which we cannot implement in MINIX3
 | 
						|
 * without making a very, very large number of changes all over the place.
 | 
						|
 *
 | 
						|
 * In order to allow w(1) to function on MINIX3, we override some of the KVM
 | 
						|
 * functionality with MINIX3 implementations, by means of #defines. While that
 | 
						|
 * is indeed butt ugly, this approach does have advantages: we are able to
 | 
						|
 * implement the full expected functionality with minimal changes to w(1)
 | 
						|
 * itself, and whenever w(1) uses a KVM function or a process information field
 | 
						|
 * that this header does not supply, w(1) will break during compilation.
 | 
						|
 */
 | 
						|
 | 
						|
struct minix_proc {
 | 
						|
	pid_t p_pid;		/* process ID */
 | 
						|
	pid_t p__pgid;		/* process group ID */
 | 
						|
	pid_t p_tpgid;		/* tty process group ID (= p_pgid or 0) */
 | 
						|
	dev_t p_tdev;		/* controlling terminal (= tty rdev or 0) */
 | 
						|
	char p_minix_state;	/* minix specific: process kernel state */
 | 
						|
	char p_minix_pstate;	/* minix specific: process PM state */
 | 
						|
	char p_comm[256];	/* simple command line (= process name) */
 | 
						|
};
 | 
						|
#undef kinfo_proc2
 | 
						|
#define kinfo_proc2 minix_proc
 | 
						|
 | 
						|
struct minix_proc *minix_getproc(void *dummy, int op, int arg, int elemsize,
 | 
						|
	int *cnt);
 | 
						|
#undef kvm_getproc2
 | 
						|
#define kvm_getproc2 minix_getproc
 | 
						|
 | 
						|
#undef kvm_geterr
 | 
						|
#define kvm_geterr(dummy) strerror(errno)
 | 
						|
 | 
						|
char **minix_getargv(void *dummy, const struct minix_proc *p, int nchr);
 | 
						|
#undef kvm_getargv2
 | 
						|
#define kvm_getargv2 minix_getargv
 | 
						|
 | 
						|
int minix_proc_compare(const struct minix_proc *p1,
 | 
						|
	const struct minix_proc *p2);
 | 
						|
#undef proc_compare_wrapper
 | 
						|
#define proc_compare_wrapper minix_proc_compare
 | 
						|
 | 
						|
#endif /* !_W_MINIX_PROC_H */
 |