#compdef fs_usage

local curcontext="$curcontext" state state_descr line ret=1
typeset -A opt_args

_arguments -s -C -A '-*' : \
  '-e[exclude fs_usage and the specified processes from sampling]' \
  '-w[use wider output]' \
  '*-f+[specify output filtering mode]:mode:(network filesys pathname exec diskio cachehit)' \
  '-b[annotate disk I/O events with BootCache info]' \
  '(-R -S -E)-t+[specify run timeout]:seconds' \
  '(-t)-R+[specify raw trace file to process]:raw trace file:_files' \
  '(-t)-S+[specify time to begin processing the trace file]:seconds' \
  '(-t)-E+[specify time to stop processing the trace file]:seconds' \
  '*: :->pid-or-pname' && ret=0

case $state in
  (pid-or-pname)
    if [[ -z $opt_args[-R] ]]; then
      _alternative "processes:: _pids" \
		  "processes-names:: _process_names -a" && ret=0
    else
      _message 'pid or process name in the trace file' && ret=0
    fi
    ;;
esac

return ret
