| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563 |
- #
- # Copyright © 2018-2022 Inria. All rights reserved.
- # See COPYING in top-level directory.
- #
- # This file is also compatible with zsh (once bashcompinit is enabled)
- # bash < 4 doesn't support compopt
- [[ -z "$ZSH_VERSION" ]] && [[ "${BASH_VERSINFO[0]:-0}" -lt 4 ]] && return
- # TODO only disable the nospace completion of "--filter"
- _lstopo() {
- local INPUT_FORMAT=(xml synthetic fsroot cpuid)
- local OUTPUT_FORMAT=(default window console ascii tikz tex fig pdf nativesvg cairosvg ps png svg xml shmem synthetic)
- local TYPES=("Machine" "Misc" "Group" "NUMANode" "MemCache" "Package" "Die" "L1" "L2" "L3" "L4" "L5" "L1i" "L2i" "L3i" "Core" "Bridge" "PCIDev" "OSDev" "PU")
- local FILTERKINDS=("none" "all" "structure" "important")
- local OPTIONS=(-l --logical
- -p --physical
- --logical-index-prefix
- --os-index-prefix
- --output-format --of
- -f --force
- --only
- -v --verbose
- -s --silent
- --distances
- --distances-transform
- --memattrs
- --cpukinds
- --windows-processor-groups
- -c --cpuset
- -C --cpuset-only
- --taskset
- --filter --ignore
- --no-caches
- --no-useless-caches
- --no-icaches
- --merge
- --no-collapse
- --factorize --factorize=
- --no-factorize --no-factorize=
- --restrict
- --restrict-flags
- --no-io
- --no-bridges
- --whole-io
- --input -i
- --input-format --if
- --no-smt
- --thissystem
- --pid
- --disallowed --whole-system
- --allow
- --flags
- --children-order
- --no-cpukinds
- --fontsize
- --gridsize
- --linespacing
- --thickness
- --horiz --horiz=
- --vert --vert=
- --rect --rect=
- --text --text=
- --no-text --no-text=
- --index --index=
- --no-index --no-index=
- --attrs --attrs=
- --no-attrs --no-attrs=
- --no-legend
- --no-default-legend
- --append-legend
- --grey --greyscale
- --palette
- --binding-color
- --disallowed-color
- --top-color
- --export-xml-flags
- --export-synthetic-flags
- --ps --top
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- local prev=${COMP_WORDS[COMP_CWORD-1]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- elif [[ $COMP_CWORD -ge 3 && "${COMP_WORDS[COMP_CWORD-2]}" == "--filter" && "$cur" == ":" ]] ; then
- COMPREPLY=( `compgen -W "${FILTERKINDS[*]}"` )
- elif [[ $COMP_CWORD -ge 4 && "${COMP_WORDS[COMP_CWORD-3]}" == "--filter" && "$prev" == ":" ]] ; then
- COMPREPLY=( `compgen -W "${FILTERKINDS[*]}" -- "$cur"` )
- elif [[ "$cur" == "=" && " --horiz --vert --rect --text --no-text --index --no-index --attrs --no-attrs --no-factorize " =~ " $prev " ]] ; then
- COMPREPLY=( `compgen -W "${TYPES[*]}"` )
- # we could also support "<type1>,<type2>,..." for --index/attrs/text but "," is not a completion word separator
- elif [[ $COMP_CWORD -ge 3 && "$prev" == "=" && " --horiz --vert --rect --text --no-text --index --no-index --attrs --no-attrs --no-factorize --factorize " =~ " ${COMP_WORDS[COMP_CWORD-2]} " ]] ; then
- COMPREPLY=( `compgen -W "${TYPES[*]}" -- "$cur"` )
- elif [[ "$cur" == "=" && "--factorize" = "$prev" ]] ; then
- COMPREPLY=( `compgen -W "${TYPES[*]}"` "<N>" "<N,F,L>" )
- else
- case "$prev" in
- --of | --output-format)
- COMPREPLY=( `compgen -W "${OUTPUT_FORMAT[*]}" -- "$cur"` )
- ;;
- --only | --ignore)
- COMPREPLY=( `compgen -W "${TYPES[*]}" -- "$cur"` )
- ;;
- --filter)
- COMPREPLY=( `compgen -W "${TYPES[*]/%/:} cache: icache: io:" -- "$cur"` ) && compopt -o nospace
- ;;
- --restrict)
- COMPREPLY=( `compgen -W "binding <cpuset>" -- "$cur"` )
- ;;
- --logical-index-prefix | --os-index-prefix)
- COMPREPLY=( "<string>" "" )
- ;;
- -i | --input)
- _filedir xml
- ;;
- --if | --input-format)
- COMPREPLY=( `compgen -W "${INPUT_FORMAT[*]}" -- "$cur"` )
- ;;
- --pid)
- COMPREPLY=( "<pid>" "" )
- ;;
- --allow)
- COMPREPLY=( `compgen -W "all local <mask> nodeset=<mask>" -- "$cur"` )
- ;;
- --restrict-flags | --export-xml-flags | --export-synthetic-flags | --fontsize | --gridsize | --linespacing | --thickness)
- COMPREPLY=( "<integer>" "" )
- ;;
- --append-legend)
- COMPREPLY=( "<line of text>" "" )
- ;;
- --palette)
- COMPREPLY=( `compgen -W "grey" "greyscale" "default" "colors" "white" "none" -- "$cur"` )
- ;;
- --binding-color | --disallowed-color | --top-color)
- COMPREPLY=( `compgen -W "none <#rrggbb>" -- "$cur"` )
- ;;
- --children-order)
- COMPREPLY=( `compgen -W "plain memoryabove" -- "$cur"` )
- ;;
- --distances-transform)
- COMPREPLY=( `compgen -W "links merge-switch-ports transitive-closure" -- "$cur"` )
- ;;
- esac
- fi
- }
- complete -F _lstopo lstopo
- complete -F _lstopo lstopo-no-graphics
- complete -F _lstopo hwloc-ls
- _hwloc_info(){
- local TYPES=("Machine" "Misc" "Group" "NUMANode" "MemCache" "Package" "Die" "L1" "L2" "L3" "L4" "L5" "L1i" "L2i" "L3i" "Core" "Bridge" "PCIDev" "OSDev" "PU")
- local FILTERKINDS=("none" "all" "structure" "important")
- local OPTIONS=(--objects
- --topology
- --support
- -v --verbose
- -s --silent
- --ancestors
- --ancestor
- --children
- --descendants
- --local-memory
- --local-memory-flags
- --best-memattr
- -n
- --restrict
- --restrict-flags
- --filter
- --no-icaches
- --no-io
- --no-bridges
- --whole-io
- --input -i
- --input-format --if
- --thissystem
- --pid
- --disallowed --whole-system
- -l --logical
- -p --physical
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- local prev=${COMP_WORDS[COMP_CWORD-1]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- elif [[ $COMP_CWORD -ge 3 && "${COMP_WORDS[COMP_CWORD-2]}" == "--filter" && "$cur" == ":" ]] ; then
- COMPREPLY=( `compgen -W "${FILTERKINDS[*]}"` )
- elif [[ $COMP_CWORD -ge 4 && "${COMP_WORDS[COMP_CWORD-3]}" == "--filter" && "$prev" == ":" ]] ; then
- COMPREPLY=( `compgen -W "${FILTERKINDS[*]}" -- "$cur"` )
- else
- case "$prev" in
- --restrict)
- COMPREPLY=( `compgen -W "binding <cpuset>" -- "$cur"` )
- ;;
- --restrict-flags)
- COMPREPLY=( "<integer>" "" )
- ;;
- -i | --input)
- _filedir xml
- ;;
- --if | --input-format)
- COMPREPLY=( `compgen -W "${INPUT_FORMAT[*]}" -- "$cur"` )
- ;;
- --pid)
- COMPREPLY=( "<pid>" "" )
- ;;
- --filter)
- COMPREPLY=( `compgen -W "${TYPES[*]/%/:} cache: icache: io:" -- "$cur"` ) && compopt -o nospace
- ;;
- --ancestor | --descendants)
- COMPREPLY=( `compgen -W "${TYPES[*]}" -- "$cur"` )
- ;;
- --local-memory-flags)
- COMPREPLY=( "<flags>" "" )
- ;;
- --best-memattr)
- COMPREPLY=( "<memattr>" "" )
- ;;
- esac
- fi
- }
- complete -F _hwloc_info hwloc-info
- _hwloc_bind(){
- local OPTIONS=(--cpubind
- --membind
- --mempolicy
- --best-memattr
- --logical -l
- --physical -p
- --single
- --strict
- --get
- -e --get-last-cpu-location
- --nodeset
- --pid
- --tid
- --taskset
- --restrict
- --restrict-flags
- --disallowed --whole-system
- --hbm
- --no-hbm
- --no-smt --no-smt=N
- -f --force
- -q --quiet
- -v --verbose
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- local prev=${COMP_WORDS[COMP_CWORD-1]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- else
- case "$prev" in
- --mempolicy)
- COMPREPLY=( `compgen -W "default firsttouch bind interleave nexttouch" -- "$cur"` )
- ;;
- --pid)
- COMPREPLY=( "<pid>" "" )
- ;;
- --tid)
- COMPREPLY=( "<tid>" "" )
- ;;
- --restrict)
- COMPREPLY=( "<bitmask>" "" )
- ;;
- --restrict-flags)
- COMPREPLY=( "<integer>" "" )
- ;;
- --best-memattr)
- COMPREPLY=( "<memattr>" "" )
- ;;
- esac
- fi
- }
- complete -F _hwloc_bind hwloc-bind
- _hwloc_calc(){
- local TYPES=("Machine" "Misc" "Group" "NUMANode" "MemCache" "Package" "Die" "L1" "L2" "L3" "L4" "L5" "L1i" "L2i" "L3i" "Core" "Bridge" "PCIDev" "OSDev" "PU")
- local OPTIONS=(-N --number-of
- -I --intersect
- -H --hierarchical
- --largest
- --local-memory
- --local-memory-flags
- --best-memattr
- -l --logical
- -p --physical
- --li --logical-input
- --lo --logical-output
- --pi --physical-input
- --po --physical-output
- -n --nodeset
- --ni --nodeset-input
- --no --nodeset-output
- --sep
- --taskset
- --single
- --restrict
- --restrict-flags
- --disallowed --whole-system
- --cpukind
- --input -i
- --input-format --if
- --no-smt --no-smt=N
- -q --quiet
- -v --verbose
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- local prev=${COMP_WORDS[COMP_CWORD-1]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- else
- case "$prev" in
- -N | --number-of | -I | --intersect)
- COMPREPLY=( `compgen -W "${TYPES[*]}" -- "$cur"` )
- ;;
- -H | --hierarchical)
- COMPREPLY=( "<type1>.<type2>..." "" )
- ;;
- --sep)
- COMPREPLY=( "<separator>" "" )
- ;;
- -i | --input)
- _filedir xml
- ;;
- --if | --input-format)
- COMPREPLY=( `compgen -W "${INPUT_FORMAT[*]}" -- "$cur"` )
- ;;
- --restrict)
- COMPREPLY=( "<bitmask>" "" )
- ;;
- --restrict-flags)
- COMPREPLY=( "<integer>" "" )
- ;;
- --local-memory-flags)
- COMPREPLY=( "<flags>" "" )
- ;;
- --best-memattr)
- COMPREPLY=( "<memattr>" "" )
- ;;
- --cpukind)
- COMPREPLY=( "<name>=<value>" "<n>" "" )
- ;;
- esac
- fi
- }
- complete -F _hwloc_calc hwloc-calc
- _hwloc_annotate(){
- local OPTIONS=(--ci --ri --cu --cd --version -h --help)
- local cur=${COMP_WORDS[COMP_CWORD]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"`)
- fi
- _filedir xml
- }
- complete -F _hwloc_annotate hwloc-annotate
- _hwloc_diff(){
- local OPTIONS=(--refname
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- local prev=${COMP_WORDS[COMP_CWORD-1]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- else
- case "$prev" in
- --refname)
- COMPREPLY=( "<reference topology identifier>" "")
- return
- ;;
- esac
- fi
- _filedir xml
- }
- complete -F _hwloc_diff hwloc-diff
- _hwloc_patch(){
- local OPTIONS=(--R --reverse
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- fi
- _filedir xml
- }
- complete -F _hwloc_patch hwloc-patch
- _hwloc_compress_dir(){
- local OPTIONS=(-R --reverse
- -v --verbose
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- fi
- _filedir -d
- }
- complete -F _hwloc_compress_dir hwloc-compress-dir
- _hwloc_distrib(){
- local TYPES=("Machine" "Misc" "Group" "NUMANode" "MemCache" "Package" "Die" "L1" "L2" "L3" "L4" "L5" "L1i" "L2i" "L3i" "Core" "Bridge" "PCIDev" "OSDev" "PU")
- local OPTIONS=(--ignore
- --from
- --to
- --at
- --reverse
- --restrict
- --restrict-flags
- --disallowed --whole-system
- --input -i
- --input-format --if
- --single
- --taskset
- -v --verbose
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- local prev=${COMP_WORDS[COMP_CWORD-1]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- else
- case "$prev" in
- --ignore | --from | --to | --at)
- COMPREPLY=( `compgen -W "${TYPES[*]}" -- "$cur"` )
- ;;
- -i | --input)
- _filedir xml
- ;;
- --if | --input-format)
- COMPREPLY=( `compgen -W "${INPUT_FORMAT[*]}" -- "$cur"` )
- ;;
- --restrict)
- COMPREPLY=( "<bitmask>" "" )
- ;;
- --restrict-flags)
- COMPREPLY=( "<integer>" "" )
- ;;
- esac
- fi
- }
- complete -F _hwloc_distrib hwloc-distrib
- _hwloc_ps(){
- local OPTIONS=(-a
- --pid
- --name
- --uid
- -l --logical
- -p --physical
- -c --cpuset
- --single-ancestor
- -t --threads
- -e --get-last-cpu-location
- --pid-cmd
- --short-name
- --disallowed --whole-system
- --json-server
- --json-port
- -v --verbose
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- local prev=${COMP_WORDS[COMP_CWORD-1]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- else
- case "$prev" in
- --name)
- COMPREPLY=( "<task name>" "" )
- ;;
- --uid)
- COMPREPLY=( "<uid>" "all" "" )
- ;;
- --pid)
- COMPREPLY=( "<pid>" "" )
- ;;
- --pid-cmd)
- _filedir
- ;;
- --json-port)
- COMPREPLY=( "<port>" "" )
- ;;
- esac
- fi
- }
- complete -F _hwloc_ps hwloc-ps
- _hwloc_gather_cpuid(){
- local OPTIONS=(-c
- -s --silent
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- local prev=${COMP_WORDS[COMP_CWORD-1]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- else
- case "$prev" in
- -c)
- COMPREPLY=( "<index of cpu to operate on>" "" )
- ;;
- esac
- fi
- }
- complete -F _hwloc_gather_cpuid hwloc-gather-cpuid
- _hwloc_gather_topology(){
- local OPTIONS=(--io
- --dmi
- --no-cpuid
- --keep
- --version
- -h --help
- )
- local cur=${COMP_WORDS[COMP_CWORD]}
- if [[ $COMP_CWORD == 1 || $cur == -* ]] ; then
- COMPREPLY=( `compgen -W "${OPTIONS[*]}" -- "$cur"` )
- fi
- }
- complete -F _hwloc_gather_topology hwloc-gather-topology
|