_setarch_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	if [ $COMP_CWORD -eq 1 ]; then
		COMPREPLY=( $(compgen -W "$($1 --list)" -- $cur) )
		return 0
	fi
	case $cur in
		-*)
			OPTS="--verbose
				--addr-no-randomize
				--fdpic-funcptrs
				--mmap-page-zero
				--addr-compat-layout
				--read-implies-exec
				--32bit
				--short-inode
				--whole-seconds
				--sticky-timeouts
				--3gb
				--4gb
				--uname-2.6
				--help
				--version"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	compopt -o bashdefault
	COMPREPLY=( $(compgen -c -- $cur) )
	return 0
}
complete -F _setarch_module setarch
