github.com/opencontainers/runc@v1.2.0-rc.1.0.20240520010911-492dc558cdd6/rlimit_linux.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "golang.org/x/sys/unix" 7 ) 8 9 var rlimitMap = map[string]int{ 10 "RLIMIT_CPU": unix.RLIMIT_CPU, 11 "RLIMIT_FSIZE": unix.RLIMIT_FSIZE, 12 "RLIMIT_DATA": unix.RLIMIT_DATA, 13 "RLIMIT_STACK": unix.RLIMIT_STACK, 14 "RLIMIT_CORE": unix.RLIMIT_CORE, 15 "RLIMIT_RSS": unix.RLIMIT_RSS, 16 "RLIMIT_NPROC": unix.RLIMIT_NPROC, 17 "RLIMIT_NOFILE": unix.RLIMIT_NOFILE, 18 "RLIMIT_MEMLOCK": unix.RLIMIT_MEMLOCK, 19 "RLIMIT_AS": unix.RLIMIT_AS, 20 "RLIMIT_LOCKS": unix.RLIMIT_LOCKS, 21 "RLIMIT_SIGPENDING": unix.RLIMIT_SIGPENDING, 22 "RLIMIT_MSGQUEUE": unix.RLIMIT_MSGQUEUE, 23 "RLIMIT_NICE": unix.RLIMIT_NICE, 24 "RLIMIT_RTPRIO": unix.RLIMIT_RTPRIO, 25 "RLIMIT_RTTIME": unix.RLIMIT_RTTIME, 26 } 27 28 func strToRlimit(key string) (int, error) { 29 rl, ok := rlimitMap[key] 30 if !ok { 31 return 0, fmt.Errorf("wrong rlimit value: %s", key) 32 } 33 return rl, nil 34 }