complete -c ulimit -s S -l soft -d "Set or get soft limit"
complete -c ulimit -s H -l hard -d "Set or get hard limit"

complete -c ulimit -s a -l all -d "Get all current limits"
complete -c ulimit -s b -l socket-buffers -d "Maximum size of socket buffers"
complete -c ulimit -s c -l core-size -d "Maximum size of core files created"
complete -c ulimit -s d -l data-size -d "Maximum size of a process's data segment"
complete -c ulimit -s e -l nice -d "Control of maximum nice priority"
complete -c ulimit -s f -l file-size -d "Maximum size of files created by the shell"
complete -c ulimit -s i -l pending-signals -d "Maximum number of pending signals"
complete -c ulimit -s l -l lock-size -d "Maximum size that may be locked into memory"
complete -c ulimit -s m -l resident-set-size -d "Maximum resident set size"
complete -c ulimit -s n -l file-descriptor-count -d "Maximum number of open file descriptors"
complete -c ulimit -s q -l queue-size -d "Maximum bytes in POSIX message queues"
complete -c ulimit -s r -l realtime-priority -d "Maximum realtime scheduling priority"
complete -c ulimit -s s -l stack-size -d "Maximum stack size"
complete -c ulimit -s t -l cpu-time -d "Maximum amount of cpu time in seconds"
complete -c ulimit -s u -l process-count -d "Maximum number of processes available to a single user"
complete -c ulimit -s v -l virtual-memory-size -d "Maximum amount of virtual memory available to the shell"
complete -c ulimit -s w -l swap-size -d "Maximum swap space"
complete -c ulimit -s y -l realtime-maxtime -d "Maximum contiguous realtime CPU time"
complete -c ulimit -s K -l kernel-queues -d "Maximum number of kqueues"
complete -c ulimit -s P -l ptys -d "Maximum number of pseudo-terminals"
complete -c ulimit -s T -l threads -d "Maximum number of simultaneous threads"

complete -c ulimit -s h -l help -d "Display help and exit"

complete -c ulimit -a "unlimited soft hard" -d "New resource limit"
