mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef vmstat
 | |
| 
 | |
| local -a specs
 | |
| case $OSTYPE in
 | |
|   *linux*)
 | |
|     specs=(
 | |
|       '(-a --active)'{-a,--active}'[active/inactive memory]'
 | |
|       '(-f --forks)'{-f,--forks}'[number of forks since boot]'
 | |
|       '(-m --slabs)'{-m,--slabs}'[slabinfo]'
 | |
|       '(-n --one-header)'{-n,--one-header}'[do not redisplay header]'
 | |
|       '(-s --stats)'{-s,--stats}'[event counter statistics]'
 | |
|       '(-d --disk)'{-d,--disk}'[disk statistics]'
 | |
|       '(-D --disk-sum)'{-D,--disk-sum}'[summarize disk statistics]'
 | |
|       '(-p --partition)'{-p,--partition}'[partition specific statistics]:partition:_files'
 | |
|       '(-S --unit)'{-S+,--unit}'[define display unit]:unit prefix:(( k\:1000 K\:1024 m\:1000000 M\:1048576 ))'
 | |
|       '(-w --wide)'{-w,--wide}'[wide output]'
 | |
|       '(-t --timestamp)'{-t,--timestamp}'[show timestamp]'
 | |
|       '1:delay' '2:count'
 | |
|     )
 | |
|   ;;
 | |
|   freebsd*|openbsd*)
 | |
|     specs=(
 | |
|       '-c[number of times to refresh the display]:count'
 | |
|       '-f[report on the number fork syscalls since boot and pages of virtual memory for each]'
 | |
|       '-i[report the number of interrupts taken by devices since boot]'
 | |
|       '-M[source file to extract values associated with the name list from]:core:_files'
 | |
|       '-N[source file to extract the name list from]:system:_files'
 | |
|       '-w[specify delay between each display]:delay (seconds)'
 | |
|       '*:disk:_files'
 | |
|     )
 | |
|   ;|
 | |
|   freebsd*)
 | |
|     specs+=(
 | |
|       '-a[include statistics about all interrupts]'
 | |
|       '-h[human readable memory columns output]'
 | |
|       '-H[scriptable memory columns output]'
 | |
|       '-m[report on the usage of kernel dynamic memory allocated using malloc(9) by type]'
 | |
|       '-n[change the maximum number of disks to display]:number of disks to display'
 | |
|       '-o[list virtual memory objects]'
 | |
|       '-P[report per-cpu system/user/idle cpu statistics]'
 | |
|       '-p[specify which types of devices to display]: :->devices'
 | |
|       '-s[display the contents of the SUM structure]:sum'
 | |
|       '-z[report on memory used by the kernel zone allocator, uma(9), by zone]'
 | |
|     )
 | |
|   ;;
 | |
|   openbsd*)
 | |
|     specs+=(
 | |
|       '-m[report usage of kernel dynamic memory listed first by size of allocation then type of usage]'
 | |
|       '-s[display the contents of the UVMEXP structure]:uvmexp'
 | |
|       '-t[report on the number of page in and page reclaims since boot]'
 | |
|       '-v[print more verbose information]'
 | |
|       '-z[include statistics about all interrupts]'
 | |
|     )
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| if (( $#specs )); then
 | |
|   local curcontext=$curcontext state state_descr line ret=1
 | |
|   typeset -A {opt,val}_args
 | |
| 
 | |
|   _arguments -C -s -w -A '-*' : "$specs[@]" && ret=0
 | |
| 
 | |
|   if [[ $state == devices ]]; then
 | |
|     local -a types
 | |
|     types=(
 | |
|       'da[direct access devices]' 'sa[sequential access devices]'
 | |
|       'printer[printers]' 'proc[processor devices]'
 | |
|       'worm[write once read multiple devices]' 'cd[CD devices]'
 | |
|       'scanner[scanner devices]' 'optical[optical memory devices]'
 | |
|       'changer[medium changer devices]' 'comm[communication devices]'
 | |
|       'array[storage array devices]' 'enclosure[enclosure services devices]'
 | |
|       'floppy[floppy devices]' 'IDE[Integrated Drive Electronics devices]'
 | |
|       'SCSI[Small Computer System Interface devices]'
 | |
|       'other[any other device interface]' 'pass[passthrough devices]'
 | |
|     )
 | |
|     _values -C -s , 'device type' "$types[@]" && ret=0
 | |
|   fi
 | |
|   return ret
 | |
| fi
 | |
| 
 | |
| _default
 |