├── syscallpp.go ├── README.md ├── LICENSE ├── ppgen ├── genlinux.go └── gen.go ├── syscallpp_openbsd_386.go ├── syscallpp_openbsd_amd64.go ├── syscallpp_openbsd_arm.go ├── syscallpp_linux_arm64.go └── syscallpp_linux_amd64.go /syscallpp.go: -------------------------------------------------------------------------------- 1 | package syscallpp 2 | 3 | //go:generate go run ppgen/gen.go ppgen/genlinux.go 4 | 5 | type ArgType uint 6 | 7 | const ( 8 | ARG_INT ArgType = iota 9 | ARG_STR 10 | ARG_PTR 11 | ) 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Syscall Pretty Printer 2 | ====================== 3 | 4 | Helps you to convert syscall numbers to syscall names and back. Also can be 5 | helpful for parsing ptrace. 6 | 7 | # Example 8 | 9 | ```go 10 | package main 11 | 12 | import ( 13 | "fmt" 14 | 15 | "github.com/LK4D4/syscallpp" 16 | ) 17 | 18 | func main() { 19 | name := syscallpp.GetName(0) 20 | num := syscallpp.GetNum("readahead") 21 | fmt.Printf("%s: %d\n", name, 0) 22 | fmt.Printf("%s: %d\n", "readahead", num) 23 | } 24 | ``` 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Alexander Morozov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /ppgen/genlinux.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bufio" 5 | "bytes" 6 | "flag" 7 | "fmt" 8 | "os/exec" 9 | "path/filepath" 10 | "strconv" 11 | "strings" 12 | ) 13 | 14 | var archNumFiles = map[string]string{ 15 | "386": "arch/x86/include/generated/uapi/asm/unistd_32.h", 16 | "amd64": "arch/x86/include/generated/uapi/asm/unistd_64.h", 17 | "arm": "arch/arm/include/uapi/asm/unistd.h", 18 | "arm64": "include/uapi/asm-generic/unistd.h", 19 | "ppc64": "arch/powerpc/include/uapi/asm/unistd.h", 20 | } 21 | var srcPath string 22 | 23 | func init() { 24 | flag.StringVar(&srcPath, "linux-src", "/usr/src/linux", "path to linux sources") 25 | } 26 | 27 | func parseSimpleNumber(ln string) (sc, error) { 28 | parts := strings.Fields(ln) 29 | num, err := strconv.Atoi(parts[1]) 30 | if err != nil { 31 | return sc{}, err 32 | } 33 | return sc{ 34 | name: parts[0], 35 | number: num, 36 | }, nil 37 | } 38 | 39 | func parseSimpleArchNumbers(s *bufio.Scanner) ([]sc, error) { 40 | const numPrefix = "#define __NR_" 41 | 42 | var scs []sc 43 | for s.Scan() { 44 | ln := s.Text() 45 | if !strings.HasPrefix(ln, numPrefix) { 46 | continue 47 | } 48 | parsedSc, err := parseSimpleNumber(ln[len(numPrefix):]) 49 | if err != nil { 50 | return nil, err 51 | } 52 | scs = append(scs, parsedSc) 53 | } 54 | if s.Err() != nil { 55 | return nil, s.Err() 56 | } 57 | return scs, nil 58 | } 59 | 60 | func parseArm64Numbers(s *bufio.Scanner) ([]sc, error) { 61 | const numPrefix = "#define __NR_" 62 | const sc3264Prefix = "__NR3264_" 63 | const num3264Prefix = "#define " + sc3264Prefix 64 | cache3264 := map[string]int{} 65 | mapScTo3264 := map[string]string{} 66 | var scs []sc 67 | for s.Scan() { 68 | ln := s.Text() 69 | if strings.HasPrefix(ln, numPrefix+"syscalls") { 70 | continue 71 | } 72 | if strings.HasPrefix(ln, numPrefix) { 73 | ln = ln[len(numPrefix):] 74 | parts := strings.Fields(ln) 75 | if strings.HasPrefix(parts[1], sc3264Prefix) { 76 | mapScTo3264[parts[0]] = parts[1][len(sc3264Prefix):] 77 | continue 78 | } 79 | num, err := strconv.Atoi(parts[1]) 80 | if err != nil { 81 | return nil, err 82 | } 83 | scs = append(scs, sc{name: parts[0], number: num}) 84 | } 85 | if strings.HasPrefix(ln, num3264Prefix) { 86 | ln = ln[len(num3264Prefix):] 87 | parts := strings.Fields(ln) 88 | num, err := strconv.Atoi(parts[1]) 89 | if err != nil { 90 | return nil, err 91 | } 92 | cache3264[parts[0]] = num 93 | } 94 | } 95 | for real, sc3264 := range mapScTo3264 { 96 | scs = append(scs, sc{name: real, number: cache3264[sc3264]}) 97 | } 98 | if s.Err() != nil { 99 | return nil, s.Err() 100 | } 101 | return scs, nil 102 | } 103 | 104 | func parseArm32Numbers(s *bufio.Scanner) ([]sc, error) { 105 | const numPrefix = "#define __NR_" 106 | 107 | var scs []sc 108 | for s.Scan() { 109 | ln := s.Text() 110 | if !strings.HasPrefix(ln, numPrefix) { 111 | continue 112 | } 113 | ln = ln[len(numPrefix):] 114 | parts := strings.SplitN(ln, " ", 2) 115 | if strings.HasSuffix(parts[0], "SYSCALL_BASE") { 116 | continue 117 | } 118 | if parts[0] == "sync_file_range2" { 119 | for _, psc := range scs { 120 | if psc.name == "arm_sync_file_range" { 121 | scs = append(scs, sc{name: "sync_file_range2", number: psc.number}) 122 | } 123 | } 124 | continue 125 | } 126 | strNum := parts[1][len("(__NR_SYSCALL_BASE+"):] 127 | strNum = strings.Trim(strNum, " )") 128 | num, err := strconv.Atoi(strNum) 129 | if err != nil { 130 | return nil, err 131 | } 132 | scs = append(scs, sc{name: parts[0], number: num}) 133 | } 134 | if s.Err() != nil { 135 | return nil, s.Err() 136 | } 137 | return scs, nil 138 | } 139 | 140 | func parseLinuxNumbers(arch string) ([]sc, error) { 141 | fName, ok := archNumFiles[arch] 142 | if !ok { 143 | return nil, fmt.Errorf("Unsupported arch: %s", arch) 144 | } 145 | fName = filepath.Join(srcPath, fName) 146 | cmd := exec.Command("gcc", "-E", "-dD", fName) 147 | var stdout bytes.Buffer 148 | cmd.Stdout = &stdout 149 | if err := cmd.Run(); err != nil { 150 | return nil, err 151 | } 152 | s := bufio.NewScanner(&stdout) 153 | switch arch { 154 | case "386", "amd64", "ppc64": 155 | return parseSimpleArchNumbers(s) 156 | case "arm64": 157 | return parseArm64Numbers(s) 158 | case "arm": 159 | return parseArm32Numbers(s) 160 | default: 161 | return nil, fmt.Errorf("Unsupported arch: %s", arch) 162 | } 163 | } 164 | -------------------------------------------------------------------------------- /ppgen/gen.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bytes" 5 | "fmt" 6 | "go/ast" 7 | "go/format" 8 | "go/parser" 9 | "go/token" 10 | "io/ioutil" 11 | "os" 12 | "path/filepath" 13 | "sort" 14 | "strings" 15 | ) 16 | 17 | var osArches = map[string][]string{ 18 | "linux": { 19 | "386", 20 | "amd64", 21 | "arm", 22 | "arm64", 23 | "ppc64", 24 | "ppc64le", 25 | }, 26 | "darwin": { 27 | "386", 28 | "amd64", 29 | "arm", 30 | "arm64", 31 | }, 32 | "freebsd": { 33 | "386", 34 | "amd64", 35 | "arm", 36 | }, 37 | "openbsd": { 38 | "386", 39 | "amd64", 40 | "arm", 41 | }, 42 | } 43 | 44 | var ( 45 | numFileName = filepath.Join(os.Getenv("GOROOT"), "src/syscall/zsysnum_%s_%s.go") 46 | funcOSFileName = filepath.Join(os.Getenv("GOROOT"), "src/syscall/syscall_%s.go") 47 | funcArchFileName = filepath.Join(os.Getenv("GOROOT"), "src/syscall/zsyscall_%s_%s.go") 48 | outFileName = "syscallpp_%s_%s.go" 49 | ) 50 | 51 | type sc struct { 52 | name string 53 | number int 54 | argsTypes []string 55 | } 56 | 57 | type numSort []sc 58 | 59 | func (s numSort) Len() int { 60 | return len(s) 61 | } 62 | 63 | func (s numSort) Less(i, j int) bool { 64 | return s[i].number < s[j].number 65 | } 66 | 67 | func (s numSort) Swap(i, j int) { 68 | s[i], s[j] = s[j], s[i] 69 | } 70 | 71 | type generator struct { 72 | buf bytes.Buffer 73 | syscalls []sc 74 | arch string 75 | OS string 76 | } 77 | 78 | func (g *generator) writeHeader() { 79 | g.buf.WriteString("// generated file; DO NOT EDIT - use go generate in directory with source\n") 80 | g.buf.WriteString("\n") 81 | g.buf.WriteString("// +build ") 82 | g.buf.WriteString(g.arch) 83 | g.buf.WriteString(",") 84 | g.buf.WriteString(g.OS) 85 | g.buf.WriteString("\n\n") 86 | g.buf.WriteString("package syscallpp") 87 | } 88 | 89 | func (g *generator) writeGetNameFunc() { 90 | g.buf.WriteString("\n") 91 | g.buf.WriteString("func GetName(num int) string {\n") 92 | g.buf.WriteString("switch num {\n") 93 | for _, s := range g.syscalls { 94 | fmt.Fprintf(&g.buf, "case %d:\n", s.number) 95 | fmt.Fprintf(&g.buf, "return \"%s\"\n", s.name) 96 | } 97 | g.buf.WriteString("}\n") 98 | g.buf.WriteString("return \"unknown\"\n") 99 | g.buf.WriteString("}\n") 100 | } 101 | 102 | func (g *generator) writeGetNumFunc() { 103 | g.buf.WriteString("\n") 104 | g.buf.WriteString("func GetNum(name string) int {\n") 105 | g.buf.WriteString("switch name {\n") 106 | for _, s := range g.syscalls { 107 | fmt.Fprintf(&g.buf, "case \"%s\":\n", s.name) 108 | fmt.Fprintf(&g.buf, "return %d\n", s.number) 109 | } 110 | g.buf.WriteString("}\n") 111 | g.buf.WriteString("return -1\n") 112 | g.buf.WriteString("}\n") 113 | } 114 | 115 | func (g *generator) writeGetArgsTypesFunc() { 116 | g.buf.WriteString("\n") 117 | g.buf.WriteString("func GetArgsTypes(name string) []ArgType {\n") 118 | g.buf.WriteString("switch name {\n") 119 | for _, s := range g.syscalls { 120 | fmt.Fprintf(&g.buf, "case \"%s\":\n", s.name) 121 | strTypes := fmt.Sprintf("%#v", s.argsTypes) 122 | strTypes = strings.Replace(strTypes, `"`, "", -1) 123 | strTypes = strings.Replace(strTypes, "string", "ArgType", -1) 124 | fmt.Fprintf(&g.buf, "return %s\n", strTypes) 125 | } 126 | g.buf.WriteString("}\n") 127 | g.buf.WriteString("return nil\n") 128 | g.buf.WriteString("}\n") 129 | } 130 | 131 | func parseFuncsFromFile(path string) (map[string][]string, error) { 132 | fs := token.NewFileSet() 133 | parsedFile, err := parser.ParseFile(fs, path, nil, 0) 134 | if err != nil { 135 | return nil, err 136 | } 137 | funcs := make(map[string][]string) 138 | for _, decl := range parsedFile.Decls { 139 | decl, ok := decl.(*ast.FuncDecl) 140 | if !ok { 141 | continue 142 | } 143 | name := strings.ToLower(decl.Name.Name) 144 | var ps []string 145 | for _, p := range decl.Type.Params.List { 146 | t := fmt.Sprintf("%s", p.Type) 147 | if strings.HasPrefix(t, "uint") { 148 | t = "int" 149 | } 150 | if t != "int" && t != "string" { 151 | t = "ptr" 152 | } 153 | switch t { 154 | case "int": 155 | t = "ARG_INT" 156 | case "string": 157 | t = "ARG_STR" 158 | case "ptr": 159 | t = "ARG_PTR" 160 | } 161 | ps = append(ps, t) 162 | } 163 | funcs[name] = ps 164 | } 165 | return funcs, nil 166 | 167 | } 168 | 169 | func parseFuncs(OS, arch string) (map[string][]string, error) { 170 | funcOSFile := fmt.Sprintf(funcOSFileName, OS) 171 | funcArchFile := fmt.Sprintf(funcArchFileName, OS, arch) 172 | common, err := parseFuncsFromFile(funcOSFile) 173 | if err != nil { 174 | return nil, err 175 | } 176 | archSpec, err := parseFuncsFromFile(funcArchFile) 177 | if err != nil { 178 | return nil, err 179 | } 180 | // don't care about duplicates 181 | for f, args := range archSpec { 182 | common[f] = args 183 | } 184 | return common, nil 185 | } 186 | 187 | func parseSyscalls(OS, arch string) ([]sc, error) { 188 | numFile := fmt.Sprintf(numFileName, OS, arch) 189 | fs := token.NewFileSet() 190 | parsedFile, err := parser.ParseFile(fs, numFile, nil, 0) 191 | if err != nil { 192 | return nil, err 193 | } 194 | funcs, err := parseFuncs(OS, arch) 195 | if err != nil { 196 | return nil, err 197 | } 198 | var syscalls []sc 199 | if OS == "linux" && (arch != "ppc64le") { 200 | scs, err := parseLinuxNumbers(arch) 201 | if err != nil { 202 | return nil, err 203 | } 204 | syscalls = scs 205 | } else { 206 | for _, decl := range parsedFile.Decls { 207 | decl, ok := decl.(*ast.GenDecl) 208 | if !ok || decl.Tok != token.CONST { 209 | continue 210 | } 211 | for _, spec := range decl.Specs { 212 | vspec := spec.(*ast.ValueSpec) 213 | name := vspec.Names[0].Name 214 | if strings.HasPrefix(name, "SYS_") { 215 | number, ok := vspec.Names[0].Obj.Data.(int) 216 | if !ok { 217 | return nil, fmt.Errorf("Unexpected type of constant %T", number) 218 | } 219 | name := strings.ToLower(name[4:]) 220 | s := sc{ 221 | name: name, 222 | number: number, 223 | } 224 | syscalls = append(syscalls, s) 225 | } 226 | } 227 | } 228 | } 229 | for i := range syscalls { 230 | args, ok := funcs[syscalls[i].name] 231 | if ok { 232 | syscalls[i].argsTypes = args 233 | } 234 | } 235 | return syscalls, nil 236 | } 237 | 238 | func writePkg(OS, arch string) error { 239 | outFile := fmt.Sprintf(outFileName, OS, arch) 240 | scs, err := parseSyscalls(OS, arch) 241 | if err != nil { 242 | return err 243 | } 244 | sort.Sort(numSort(scs)) 245 | g := &generator{ 246 | syscalls: scs, 247 | arch: arch, 248 | OS: OS, 249 | } 250 | g.writeHeader() 251 | g.writeGetNameFunc() 252 | g.writeGetNumFunc() 253 | g.writeGetArgsTypesFunc() 254 | src, err := format.Source(g.buf.Bytes()) 255 | if err != nil { 256 | fmt.Println("generated invalid Go code") 257 | fmt.Println(g.buf.String()) 258 | return err 259 | } 260 | var perm os.FileMode 261 | fi, err := os.Stat(outFile) 262 | if err != nil { 263 | if !os.IsNotExist(err) { 264 | return err 265 | } 266 | perm = 0644 267 | } else { 268 | perm = fi.Mode().Perm() 269 | } 270 | if err := ioutil.WriteFile(outFile, src, perm); err != nil { 271 | return err 272 | } 273 | return nil 274 | } 275 | 276 | func main() { 277 | for OS, arches := range osArches { 278 | for _, arch := range arches { 279 | if err := writePkg(OS, arch); err != nil { 280 | panic(err) 281 | } 282 | } 283 | } 284 | } 285 | -------------------------------------------------------------------------------- /syscallpp_openbsd_386.go: -------------------------------------------------------------------------------- 1 | // generated file; DO NOT EDIT - use go generate in directory with source 2 | 3 | // +build 386,openbsd 4 | 5 | package syscallpp 6 | 7 | func GetName(num int) string { 8 | switch num { 9 | case 0: 10 | return "exit" 11 | case 1: 12 | return "fork" 13 | case 2: 14 | return "read" 15 | case 3: 16 | return "write" 17 | case 4: 18 | return "open" 19 | case 5: 20 | return "close" 21 | case 6: 22 | return "__tfork" 23 | case 7: 24 | return "link" 25 | case 8: 26 | return "unlink" 27 | case 9: 28 | return "wait4" 29 | case 10: 30 | return "chdir" 31 | case 11: 32 | return "fchdir" 33 | case 12: 34 | return "mknod" 35 | case 13: 36 | return "chmod" 37 | case 14: 38 | return "chown" 39 | case 15: 40 | return "obreak" 41 | case 16: 42 | return "getdtablecount" 43 | case 17: 44 | return "getrusage" 45 | case 18: 46 | return "getpid" 47 | case 19: 48 | return "mount" 49 | case 20: 50 | return "unmount" 51 | case 21: 52 | return "setuid" 53 | case 22: 54 | return "getuid" 55 | case 23: 56 | return "geteuid" 57 | case 24: 58 | return "ptrace" 59 | case 25: 60 | return "recvmsg" 61 | case 26: 62 | return "sendmsg" 63 | case 27: 64 | return "recvfrom" 65 | case 28: 66 | return "accept" 67 | case 29: 68 | return "getpeername" 69 | case 30: 70 | return "getsockname" 71 | case 31: 72 | return "access" 73 | case 32: 74 | return "chflags" 75 | case 33: 76 | return "fchflags" 77 | case 34: 78 | return "sync" 79 | case 35: 80 | return "kill" 81 | case 36: 82 | return "stat" 83 | case 37: 84 | return "getppid" 85 | case 38: 86 | return "lstat" 87 | case 39: 88 | return "dup" 89 | case 40: 90 | return "fstatat" 91 | case 41: 92 | return "getegid" 93 | case 42: 94 | return "profil" 95 | case 43: 96 | return "ktrace" 97 | case 44: 98 | return "sigaction" 99 | case 45: 100 | return "getgid" 101 | case 46: 102 | return "sigprocmask" 103 | case 47: 104 | return "getlogin" 105 | case 48: 106 | return "setlogin" 107 | case 49: 108 | return "acct" 109 | case 50: 110 | return "sigpending" 111 | case 51: 112 | return "fstat" 113 | case 52: 114 | return "ioctl" 115 | case 53: 116 | return "reboot" 117 | case 54: 118 | return "revoke" 119 | case 55: 120 | return "symlink" 121 | case 56: 122 | return "readlink" 123 | case 57: 124 | return "execve" 125 | case 58: 126 | return "umask" 127 | case 59: 128 | return "chroot" 129 | case 60: 130 | return "getfsstat" 131 | case 61: 132 | return "statfs" 133 | case 62: 134 | return "fstatfs" 135 | case 63: 136 | return "fhstatfs" 137 | case 64: 138 | return "vfork" 139 | case 65: 140 | return "gettimeofday" 141 | case 66: 142 | return "settimeofday" 143 | case 67: 144 | return "setitimer" 145 | case 68: 146 | return "getitimer" 147 | case 69: 148 | return "select" 149 | case 70: 150 | return "kevent" 151 | case 71: 152 | return "munmap" 153 | case 72: 154 | return "mprotect" 155 | case 73: 156 | return "madvise" 157 | case 74: 158 | return "utimes" 159 | case 75: 160 | return "futimes" 161 | case 76: 162 | return "mincore" 163 | case 77: 164 | return "getgroups" 165 | case 78: 166 | return "setgroups" 167 | case 79: 168 | return "getpgrp" 169 | case 80: 170 | return "setpgid" 171 | case 81: 172 | return "utimensat" 173 | case 82: 174 | return "futimens" 175 | case 83: 176 | return "clock_gettime" 177 | case 84: 178 | return "clock_settime" 179 | case 85: 180 | return "clock_getres" 181 | case 86: 182 | return "dup2" 183 | case 87: 184 | return "nanosleep" 185 | case 88: 186 | return "fcntl" 187 | case 89: 188 | return "__thrsleep" 189 | case 90: 190 | return "fsync" 191 | case 91: 192 | return "setpriority" 193 | case 92: 194 | return "socket" 195 | case 93: 196 | return "connect" 197 | case 94: 198 | return "getdents" 199 | case 95: 200 | return "getpriority" 201 | case 96: 202 | return "sigreturn" 203 | case 97: 204 | return "bind" 205 | case 98: 206 | return "setsockopt" 207 | case 99: 208 | return "listen" 209 | case 100: 210 | return "ppoll" 211 | case 101: 212 | return "pselect" 213 | case 102: 214 | return "sigsuspend" 215 | case 103: 216 | return "getsockopt" 217 | case 104: 218 | return "readv" 219 | case 105: 220 | return "writev" 221 | case 106: 222 | return "fchown" 223 | case 107: 224 | return "fchmod" 225 | case 108: 226 | return "setreuid" 227 | case 109: 228 | return "setregid" 229 | case 110: 230 | return "rename" 231 | case 111: 232 | return "flock" 233 | case 112: 234 | return "mkfifo" 235 | case 113: 236 | return "sendto" 237 | case 114: 238 | return "shutdown" 239 | case 115: 240 | return "socketpair" 241 | case 116: 242 | return "mkdir" 243 | case 117: 244 | return "rmdir" 245 | case 118: 246 | return "adjtime" 247 | case 119: 248 | return "setsid" 249 | case 120: 250 | return "quotactl" 251 | case 121: 252 | return "nfssvc" 253 | case 122: 254 | return "getfh" 255 | case 123: 256 | return "sysarch" 257 | case 124: 258 | return "pread" 259 | case 125: 260 | return "pwrite" 261 | case 126: 262 | return "setgid" 263 | case 127: 264 | return "setegid" 265 | case 128: 266 | return "seteuid" 267 | case 129: 268 | return "pathconf" 269 | case 130: 270 | return "fpathconf" 271 | case 131: 272 | return "swapctl" 273 | case 132: 274 | return "getrlimit" 275 | case 133: 276 | return "setrlimit" 277 | case 134: 278 | return "mmap" 279 | case 135: 280 | return "lseek" 281 | case 136: 282 | return "truncate" 283 | case 137: 284 | return "ftruncate" 285 | case 138: 286 | return "__sysctl" 287 | case 139: 288 | return "mlock" 289 | case 140: 290 | return "munlock" 291 | case 141: 292 | return "getpgid" 293 | case 142: 294 | return "utrace" 295 | case 143: 296 | return "semget" 297 | case 144: 298 | return "msgget" 299 | case 145: 300 | return "msgsnd" 301 | case 146: 302 | return "msgrcv" 303 | case 147: 304 | return "shmat" 305 | case 148: 306 | return "shmdt" 307 | case 149: 308 | return "minherit" 309 | case 150: 310 | return "poll" 311 | case 151: 312 | return "issetugid" 313 | case 152: 314 | return "lchown" 315 | case 153: 316 | return "getsid" 317 | case 154: 318 | return "msync" 319 | case 155: 320 | return "pipe" 321 | case 156: 322 | return "fhopen" 323 | case 157: 324 | return "preadv" 325 | case 158: 326 | return "pwritev" 327 | case 159: 328 | return "kqueue" 329 | case 160: 330 | return "mlockall" 331 | case 161: 332 | return "munlockall" 333 | case 162: 334 | return "getresuid" 335 | case 163: 336 | return "setresuid" 337 | case 164: 338 | return "getresgid" 339 | case 165: 340 | return "setresgid" 341 | case 166: 342 | return "mquery" 343 | case 167: 344 | return "closefrom" 345 | case 168: 346 | return "sigaltstack" 347 | case 169: 348 | return "shmget" 349 | case 170: 350 | return "semop" 351 | case 171: 352 | return "fhstat" 353 | case 172: 354 | return "__semctl" 355 | case 173: 356 | return "shmctl" 357 | case 174: 358 | return "msgctl" 359 | case 175: 360 | return "sched_yield" 361 | case 176: 362 | return "getthrid" 363 | case 177: 364 | return "__thrwakeup" 365 | case 178: 366 | return "__threxit" 367 | case 179: 368 | return "__thrsigdivert" 369 | case 180: 370 | return "__getcwd" 371 | case 181: 372 | return "adjfreq" 373 | case 182: 374 | return "setrtable" 375 | case 183: 376 | return "getrtable" 377 | case 184: 378 | return "faccessat" 379 | case 185: 380 | return "fchmodat" 381 | case 186: 382 | return "fchownat" 383 | case 187: 384 | return "linkat" 385 | case 188: 386 | return "mkdirat" 387 | case 189: 388 | return "mkfifoat" 389 | case 190: 390 | return "mknodat" 391 | case 191: 392 | return "openat" 393 | case 192: 394 | return "readlinkat" 395 | case 193: 396 | return "renameat" 397 | case 194: 398 | return "symlinkat" 399 | case 195: 400 | return "unlinkat" 401 | case 196: 402 | return "__set_tcb" 403 | case 197: 404 | return "__get_tcb" 405 | } 406 | return "unknown" 407 | } 408 | 409 | func GetNum(name string) int { 410 | switch name { 411 | case "exit": 412 | return 0 413 | case "fork": 414 | return 1 415 | case "read": 416 | return 2 417 | case "write": 418 | return 3 419 | case "open": 420 | return 4 421 | case "close": 422 | return 5 423 | case "__tfork": 424 | return 6 425 | case "link": 426 | return 7 427 | case "unlink": 428 | return 8 429 | case "wait4": 430 | return 9 431 | case "chdir": 432 | return 10 433 | case "fchdir": 434 | return 11 435 | case "mknod": 436 | return 12 437 | case "chmod": 438 | return 13 439 | case "chown": 440 | return 14 441 | case "obreak": 442 | return 15 443 | case "getdtablecount": 444 | return 16 445 | case "getrusage": 446 | return 17 447 | case "getpid": 448 | return 18 449 | case "mount": 450 | return 19 451 | case "unmount": 452 | return 20 453 | case "setuid": 454 | return 21 455 | case "getuid": 456 | return 22 457 | case "geteuid": 458 | return 23 459 | case "ptrace": 460 | return 24 461 | case "recvmsg": 462 | return 25 463 | case "sendmsg": 464 | return 26 465 | case "recvfrom": 466 | return 27 467 | case "accept": 468 | return 28 469 | case "getpeername": 470 | return 29 471 | case "getsockname": 472 | return 30 473 | case "access": 474 | return 31 475 | case "chflags": 476 | return 32 477 | case "fchflags": 478 | return 33 479 | case "sync": 480 | return 34 481 | case "kill": 482 | return 35 483 | case "stat": 484 | return 36 485 | case "getppid": 486 | return 37 487 | case "lstat": 488 | return 38 489 | case "dup": 490 | return 39 491 | case "fstatat": 492 | return 40 493 | case "getegid": 494 | return 41 495 | case "profil": 496 | return 42 497 | case "ktrace": 498 | return 43 499 | case "sigaction": 500 | return 44 501 | case "getgid": 502 | return 45 503 | case "sigprocmask": 504 | return 46 505 | case "getlogin": 506 | return 47 507 | case "setlogin": 508 | return 48 509 | case "acct": 510 | return 49 511 | case "sigpending": 512 | return 50 513 | case "fstat": 514 | return 51 515 | case "ioctl": 516 | return 52 517 | case "reboot": 518 | return 53 519 | case "revoke": 520 | return 54 521 | case "symlink": 522 | return 55 523 | case "readlink": 524 | return 56 525 | case "execve": 526 | return 57 527 | case "umask": 528 | return 58 529 | case "chroot": 530 | return 59 531 | case "getfsstat": 532 | return 60 533 | case "statfs": 534 | return 61 535 | case "fstatfs": 536 | return 62 537 | case "fhstatfs": 538 | return 63 539 | case "vfork": 540 | return 64 541 | case "gettimeofday": 542 | return 65 543 | case "settimeofday": 544 | return 66 545 | case "setitimer": 546 | return 67 547 | case "getitimer": 548 | return 68 549 | case "select": 550 | return 69 551 | case "kevent": 552 | return 70 553 | case "munmap": 554 | return 71 555 | case "mprotect": 556 | return 72 557 | case "madvise": 558 | return 73 559 | case "utimes": 560 | return 74 561 | case "futimes": 562 | return 75 563 | case "mincore": 564 | return 76 565 | case "getgroups": 566 | return 77 567 | case "setgroups": 568 | return 78 569 | case "getpgrp": 570 | return 79 571 | case "setpgid": 572 | return 80 573 | case "utimensat": 574 | return 81 575 | case "futimens": 576 | return 82 577 | case "clock_gettime": 578 | return 83 579 | case "clock_settime": 580 | return 84 581 | case "clock_getres": 582 | return 85 583 | case "dup2": 584 | return 86 585 | case "nanosleep": 586 | return 87 587 | case "fcntl": 588 | return 88 589 | case "__thrsleep": 590 | return 89 591 | case "fsync": 592 | return 90 593 | case "setpriority": 594 | return 91 595 | case "socket": 596 | return 92 597 | case "connect": 598 | return 93 599 | case "getdents": 600 | return 94 601 | case "getpriority": 602 | return 95 603 | case "sigreturn": 604 | return 96 605 | case "bind": 606 | return 97 607 | case "setsockopt": 608 | return 98 609 | case "listen": 610 | return 99 611 | case "ppoll": 612 | return 100 613 | case "pselect": 614 | return 101 615 | case "sigsuspend": 616 | return 102 617 | case "getsockopt": 618 | return 103 619 | case "readv": 620 | return 104 621 | case "writev": 622 | return 105 623 | case "fchown": 624 | return 106 625 | case "fchmod": 626 | return 107 627 | case "setreuid": 628 | return 108 629 | case "setregid": 630 | return 109 631 | case "rename": 632 | return 110 633 | case "flock": 634 | return 111 635 | case "mkfifo": 636 | return 112 637 | case "sendto": 638 | return 113 639 | case "shutdown": 640 | return 114 641 | case "socketpair": 642 | return 115 643 | case "mkdir": 644 | return 116 645 | case "rmdir": 646 | return 117 647 | case "adjtime": 648 | return 118 649 | case "setsid": 650 | return 119 651 | case "quotactl": 652 | return 120 653 | case "nfssvc": 654 | return 121 655 | case "getfh": 656 | return 122 657 | case "sysarch": 658 | return 123 659 | case "pread": 660 | return 124 661 | case "pwrite": 662 | return 125 663 | case "setgid": 664 | return 126 665 | case "setegid": 666 | return 127 667 | case "seteuid": 668 | return 128 669 | case "pathconf": 670 | return 129 671 | case "fpathconf": 672 | return 130 673 | case "swapctl": 674 | return 131 675 | case "getrlimit": 676 | return 132 677 | case "setrlimit": 678 | return 133 679 | case "mmap": 680 | return 134 681 | case "lseek": 682 | return 135 683 | case "truncate": 684 | return 136 685 | case "ftruncate": 686 | return 137 687 | case "__sysctl": 688 | return 138 689 | case "mlock": 690 | return 139 691 | case "munlock": 692 | return 140 693 | case "getpgid": 694 | return 141 695 | case "utrace": 696 | return 142 697 | case "semget": 698 | return 143 699 | case "msgget": 700 | return 144 701 | case "msgsnd": 702 | return 145 703 | case "msgrcv": 704 | return 146 705 | case "shmat": 706 | return 147 707 | case "shmdt": 708 | return 148 709 | case "minherit": 710 | return 149 711 | case "poll": 712 | return 150 713 | case "issetugid": 714 | return 151 715 | case "lchown": 716 | return 152 717 | case "getsid": 718 | return 153 719 | case "msync": 720 | return 154 721 | case "pipe": 722 | return 155 723 | case "fhopen": 724 | return 156 725 | case "preadv": 726 | return 157 727 | case "pwritev": 728 | return 158 729 | case "kqueue": 730 | return 159 731 | case "mlockall": 732 | return 160 733 | case "munlockall": 734 | return 161 735 | case "getresuid": 736 | return 162 737 | case "setresuid": 738 | return 163 739 | case "getresgid": 740 | return 164 741 | case "setresgid": 742 | return 165 743 | case "mquery": 744 | return 166 745 | case "closefrom": 746 | return 167 747 | case "sigaltstack": 748 | return 168 749 | case "shmget": 750 | return 169 751 | case "semop": 752 | return 170 753 | case "fhstat": 754 | return 171 755 | case "__semctl": 756 | return 172 757 | case "shmctl": 758 | return 173 759 | case "msgctl": 760 | return 174 761 | case "sched_yield": 762 | return 175 763 | case "getthrid": 764 | return 176 765 | case "__thrwakeup": 766 | return 177 767 | case "__threxit": 768 | return 178 769 | case "__thrsigdivert": 770 | return 179 771 | case "__getcwd": 772 | return 180 773 | case "adjfreq": 774 | return 181 775 | case "setrtable": 776 | return 182 777 | case "getrtable": 778 | return 183 779 | case "faccessat": 780 | return 184 781 | case "fchmodat": 782 | return 185 783 | case "fchownat": 784 | return 186 785 | case "linkat": 786 | return 187 787 | case "mkdirat": 788 | return 188 789 | case "mkfifoat": 790 | return 189 791 | case "mknodat": 792 | return 190 793 | case "openat": 794 | return 191 795 | case "readlinkat": 796 | return 192 797 | case "renameat": 798 | return 193 799 | case "symlinkat": 800 | return 194 801 | case "unlinkat": 802 | return 195 803 | case "__set_tcb": 804 | return 196 805 | case "__get_tcb": 806 | return 197 807 | } 808 | return -1 809 | } 810 | 811 | func GetArgsTypes(name string) []ArgType { 812 | switch name { 813 | case "exit": 814 | return []ArgType{ARG_INT} 815 | case "fork": 816 | return []ArgType(nil) 817 | case "read": 818 | return []ArgType{ARG_INT, ARG_PTR} 819 | case "write": 820 | return []ArgType{ARG_INT, ARG_PTR} 821 | case "open": 822 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 823 | case "close": 824 | return []ArgType{ARG_INT} 825 | case "__tfork": 826 | return []ArgType(nil) 827 | case "link": 828 | return []ArgType{ARG_STR, ARG_STR} 829 | case "unlink": 830 | return []ArgType{ARG_STR} 831 | case "wait4": 832 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR} 833 | case "chdir": 834 | return []ArgType{ARG_STR} 835 | case "fchdir": 836 | return []ArgType{ARG_INT} 837 | case "mknod": 838 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 839 | case "chmod": 840 | return []ArgType{ARG_STR, ARG_INT} 841 | case "chown": 842 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 843 | case "obreak": 844 | return []ArgType(nil) 845 | case "getdtablecount": 846 | return []ArgType(nil) 847 | case "getrusage": 848 | return []ArgType{ARG_INT, ARG_PTR} 849 | case "getpid": 850 | return []ArgType(nil) 851 | case "mount": 852 | return []ArgType(nil) 853 | case "unmount": 854 | return []ArgType{ARG_STR, ARG_INT} 855 | case "setuid": 856 | return []ArgType{ARG_INT} 857 | case "getuid": 858 | return []ArgType(nil) 859 | case "geteuid": 860 | return []ArgType(nil) 861 | case "ptrace": 862 | return []ArgType(nil) 863 | case "recvmsg": 864 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 865 | case "sendmsg": 866 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 867 | case "recvfrom": 868 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 869 | case "accept": 870 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 871 | case "getpeername": 872 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 873 | case "getsockname": 874 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 875 | case "access": 876 | return []ArgType{ARG_STR, ARG_INT} 877 | case "chflags": 878 | return []ArgType{ARG_STR, ARG_INT} 879 | case "fchflags": 880 | return []ArgType{ARG_INT, ARG_INT} 881 | case "sync": 882 | return []ArgType(nil) 883 | case "kill": 884 | return []ArgType{ARG_INT, ARG_PTR} 885 | case "stat": 886 | return []ArgType{ARG_STR, ARG_PTR} 887 | case "getppid": 888 | return []ArgType(nil) 889 | case "lstat": 890 | return []ArgType{ARG_STR, ARG_PTR} 891 | case "dup": 892 | return []ArgType{ARG_INT} 893 | case "fstatat": 894 | return []ArgType(nil) 895 | case "getegid": 896 | return []ArgType(nil) 897 | case "profil": 898 | return []ArgType(nil) 899 | case "ktrace": 900 | return []ArgType(nil) 901 | case "sigaction": 902 | return []ArgType(nil) 903 | case "getgid": 904 | return []ArgType(nil) 905 | case "sigprocmask": 906 | return []ArgType(nil) 907 | case "getlogin": 908 | return []ArgType(nil) 909 | case "setlogin": 910 | return []ArgType{ARG_STR} 911 | case "acct": 912 | return []ArgType(nil) 913 | case "sigpending": 914 | return []ArgType(nil) 915 | case "fstat": 916 | return []ArgType{ARG_INT, ARG_PTR} 917 | case "ioctl": 918 | return []ArgType(nil) 919 | case "reboot": 920 | return []ArgType(nil) 921 | case "revoke": 922 | return []ArgType{ARG_STR} 923 | case "symlink": 924 | return []ArgType{ARG_STR, ARG_STR} 925 | case "readlink": 926 | return []ArgType{ARG_STR, ARG_PTR} 927 | case "execve": 928 | return []ArgType(nil) 929 | case "umask": 930 | return []ArgType{ARG_INT} 931 | case "chroot": 932 | return []ArgType{ARG_STR} 933 | case "getfsstat": 934 | return []ArgType{ARG_PTR, ARG_INT} 935 | case "statfs": 936 | return []ArgType{ARG_STR, ARG_PTR} 937 | case "fstatfs": 938 | return []ArgType{ARG_INT, ARG_PTR} 939 | case "fhstatfs": 940 | return []ArgType(nil) 941 | case "vfork": 942 | return []ArgType(nil) 943 | case "gettimeofday": 944 | return []ArgType{ARG_PTR} 945 | case "settimeofday": 946 | return []ArgType{ARG_PTR} 947 | case "setitimer": 948 | return []ArgType(nil) 949 | case "getitimer": 950 | return []ArgType(nil) 951 | case "select": 952 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR, ARG_PTR, ARG_PTR} 953 | case "kevent": 954 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_INT, ARG_PTR} 955 | case "munmap": 956 | return []ArgType{ARG_INT, ARG_INT} 957 | case "mprotect": 958 | return []ArgType(nil) 959 | case "madvise": 960 | return []ArgType(nil) 961 | case "utimes": 962 | return []ArgType{ARG_STR, ARG_PTR} 963 | case "futimes": 964 | return []ArgType{ARG_INT, ARG_PTR} 965 | case "mincore": 966 | return []ArgType(nil) 967 | case "getgroups": 968 | return []ArgType{ARG_INT, ARG_PTR} 969 | case "setgroups": 970 | return []ArgType{ARG_INT, ARG_PTR} 971 | case "getpgrp": 972 | return []ArgType(nil) 973 | case "setpgid": 974 | return []ArgType{ARG_INT, ARG_INT} 975 | case "utimensat": 976 | return []ArgType(nil) 977 | case "futimens": 978 | return []ArgType(nil) 979 | case "clock_gettime": 980 | return []ArgType(nil) 981 | case "clock_settime": 982 | return []ArgType(nil) 983 | case "clock_getres": 984 | return []ArgType(nil) 985 | case "dup2": 986 | return []ArgType{ARG_INT, ARG_INT} 987 | case "nanosleep": 988 | return []ArgType{ARG_PTR, ARG_PTR} 989 | case "fcntl": 990 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 991 | case "__thrsleep": 992 | return []ArgType(nil) 993 | case "fsync": 994 | return []ArgType{ARG_INT} 995 | case "setpriority": 996 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 997 | case "socket": 998 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 999 | case "connect": 1000 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1001 | case "getdents": 1002 | return []ArgType{ARG_INT, ARG_PTR} 1003 | case "getpriority": 1004 | return []ArgType{ARG_INT, ARG_INT} 1005 | case "sigreturn": 1006 | return []ArgType(nil) 1007 | case "bind": 1008 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1009 | case "setsockopt": 1010 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_INT} 1011 | case "listen": 1012 | return []ArgType{ARG_INT, ARG_INT} 1013 | case "ppoll": 1014 | return []ArgType(nil) 1015 | case "pselect": 1016 | return []ArgType(nil) 1017 | case "sigsuspend": 1018 | return []ArgType(nil) 1019 | case "getsockopt": 1020 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_PTR} 1021 | case "readv": 1022 | return []ArgType(nil) 1023 | case "writev": 1024 | return []ArgType(nil) 1025 | case "fchown": 1026 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1027 | case "fchmod": 1028 | return []ArgType{ARG_INT, ARG_INT} 1029 | case "setreuid": 1030 | return []ArgType{ARG_INT, ARG_INT} 1031 | case "setregid": 1032 | return []ArgType{ARG_INT, ARG_INT} 1033 | case "rename": 1034 | return []ArgType{ARG_STR, ARG_STR} 1035 | case "flock": 1036 | return []ArgType{ARG_INT, ARG_INT} 1037 | case "mkfifo": 1038 | return []ArgType{ARG_STR, ARG_INT} 1039 | case "sendto": 1040 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 1041 | case "shutdown": 1042 | return []ArgType{ARG_INT, ARG_INT} 1043 | case "socketpair": 1044 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1045 | case "mkdir": 1046 | return []ArgType{ARG_STR, ARG_INT} 1047 | case "rmdir": 1048 | return []ArgType{ARG_STR} 1049 | case "adjtime": 1050 | return []ArgType{ARG_PTR, ARG_PTR} 1051 | case "setsid": 1052 | return []ArgType(nil) 1053 | case "quotactl": 1054 | return []ArgType(nil) 1055 | case "nfssvc": 1056 | return []ArgType(nil) 1057 | case "getfh": 1058 | return []ArgType(nil) 1059 | case "sysarch": 1060 | return []ArgType(nil) 1061 | case "pread": 1062 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1063 | case "pwrite": 1064 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1065 | case "setgid": 1066 | return []ArgType{ARG_INT} 1067 | case "setegid": 1068 | return []ArgType{ARG_INT} 1069 | case "seteuid": 1070 | return []ArgType{ARG_INT} 1071 | case "pathconf": 1072 | return []ArgType{ARG_STR, ARG_INT} 1073 | case "fpathconf": 1074 | return []ArgType{ARG_INT, ARG_INT} 1075 | case "swapctl": 1076 | return []ArgType(nil) 1077 | case "getrlimit": 1078 | return []ArgType{ARG_INT, ARG_PTR} 1079 | case "setrlimit": 1080 | return []ArgType{ARG_INT, ARG_PTR} 1081 | case "mmap": 1082 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1083 | case "lseek": 1084 | return []ArgType(nil) 1085 | case "truncate": 1086 | return []ArgType{ARG_STR, ARG_PTR} 1087 | case "ftruncate": 1088 | return []ArgType{ARG_INT, ARG_PTR} 1089 | case "__sysctl": 1090 | return []ArgType(nil) 1091 | case "mlock": 1092 | return []ArgType(nil) 1093 | case "munlock": 1094 | return []ArgType(nil) 1095 | case "getpgid": 1096 | return []ArgType{ARG_INT} 1097 | case "utrace": 1098 | return []ArgType(nil) 1099 | case "semget": 1100 | return []ArgType(nil) 1101 | case "msgget": 1102 | return []ArgType(nil) 1103 | case "msgsnd": 1104 | return []ArgType(nil) 1105 | case "msgrcv": 1106 | return []ArgType(nil) 1107 | case "shmat": 1108 | return []ArgType(nil) 1109 | case "shmdt": 1110 | return []ArgType(nil) 1111 | case "minherit": 1112 | return []ArgType(nil) 1113 | case "poll": 1114 | return []ArgType(nil) 1115 | case "issetugid": 1116 | return []ArgType(nil) 1117 | case "lchown": 1118 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 1119 | case "getsid": 1120 | return []ArgType{ARG_INT} 1121 | case "msync": 1122 | return []ArgType(nil) 1123 | case "pipe": 1124 | return []ArgType{ARG_PTR} 1125 | case "fhopen": 1126 | return []ArgType(nil) 1127 | case "preadv": 1128 | return []ArgType(nil) 1129 | case "pwritev": 1130 | return []ArgType(nil) 1131 | case "kqueue": 1132 | return []ArgType(nil) 1133 | case "mlockall": 1134 | return []ArgType(nil) 1135 | case "munlockall": 1136 | return []ArgType(nil) 1137 | case "getresuid": 1138 | return []ArgType(nil) 1139 | case "setresuid": 1140 | return []ArgType(nil) 1141 | case "getresgid": 1142 | return []ArgType(nil) 1143 | case "setresgid": 1144 | return []ArgType(nil) 1145 | case "mquery": 1146 | return []ArgType(nil) 1147 | case "closefrom": 1148 | return []ArgType(nil) 1149 | case "sigaltstack": 1150 | return []ArgType(nil) 1151 | case "shmget": 1152 | return []ArgType(nil) 1153 | case "semop": 1154 | return []ArgType(nil) 1155 | case "fhstat": 1156 | return []ArgType(nil) 1157 | case "__semctl": 1158 | return []ArgType(nil) 1159 | case "shmctl": 1160 | return []ArgType(nil) 1161 | case "msgctl": 1162 | return []ArgType(nil) 1163 | case "sched_yield": 1164 | return []ArgType(nil) 1165 | case "getthrid": 1166 | return []ArgType(nil) 1167 | case "__thrwakeup": 1168 | return []ArgType(nil) 1169 | case "__threxit": 1170 | return []ArgType(nil) 1171 | case "__thrsigdivert": 1172 | return []ArgType(nil) 1173 | case "__getcwd": 1174 | return []ArgType(nil) 1175 | case "adjfreq": 1176 | return []ArgType(nil) 1177 | case "setrtable": 1178 | return []ArgType(nil) 1179 | case "getrtable": 1180 | return []ArgType(nil) 1181 | case "faccessat": 1182 | return []ArgType(nil) 1183 | case "fchmodat": 1184 | return []ArgType(nil) 1185 | case "fchownat": 1186 | return []ArgType(nil) 1187 | case "linkat": 1188 | return []ArgType(nil) 1189 | case "mkdirat": 1190 | return []ArgType(nil) 1191 | case "mkfifoat": 1192 | return []ArgType(nil) 1193 | case "mknodat": 1194 | return []ArgType(nil) 1195 | case "openat": 1196 | return []ArgType(nil) 1197 | case "readlinkat": 1198 | return []ArgType(nil) 1199 | case "renameat": 1200 | return []ArgType(nil) 1201 | case "symlinkat": 1202 | return []ArgType(nil) 1203 | case "unlinkat": 1204 | return []ArgType(nil) 1205 | case "__set_tcb": 1206 | return []ArgType(nil) 1207 | case "__get_tcb": 1208 | return []ArgType(nil) 1209 | } 1210 | return nil 1211 | } 1212 | -------------------------------------------------------------------------------- /syscallpp_openbsd_amd64.go: -------------------------------------------------------------------------------- 1 | // generated file; DO NOT EDIT - use go generate in directory with source 2 | 3 | // +build amd64,openbsd 4 | 5 | package syscallpp 6 | 7 | func GetName(num int) string { 8 | switch num { 9 | case 0: 10 | return "exit" 11 | case 1: 12 | return "fork" 13 | case 2: 14 | return "read" 15 | case 3: 16 | return "write" 17 | case 4: 18 | return "open" 19 | case 5: 20 | return "close" 21 | case 6: 22 | return "__tfork" 23 | case 7: 24 | return "link" 25 | case 8: 26 | return "unlink" 27 | case 9: 28 | return "wait4" 29 | case 10: 30 | return "chdir" 31 | case 11: 32 | return "fchdir" 33 | case 12: 34 | return "mknod" 35 | case 13: 36 | return "chmod" 37 | case 14: 38 | return "chown" 39 | case 15: 40 | return "obreak" 41 | case 16: 42 | return "getdtablecount" 43 | case 17: 44 | return "getrusage" 45 | case 18: 46 | return "getpid" 47 | case 19: 48 | return "mount" 49 | case 20: 50 | return "unmount" 51 | case 21: 52 | return "setuid" 53 | case 22: 54 | return "getuid" 55 | case 23: 56 | return "geteuid" 57 | case 24: 58 | return "ptrace" 59 | case 25: 60 | return "recvmsg" 61 | case 26: 62 | return "sendmsg" 63 | case 27: 64 | return "recvfrom" 65 | case 28: 66 | return "accept" 67 | case 29: 68 | return "getpeername" 69 | case 30: 70 | return "getsockname" 71 | case 31: 72 | return "access" 73 | case 32: 74 | return "chflags" 75 | case 33: 76 | return "fchflags" 77 | case 34: 78 | return "sync" 79 | case 35: 80 | return "kill" 81 | case 36: 82 | return "stat" 83 | case 37: 84 | return "getppid" 85 | case 38: 86 | return "lstat" 87 | case 39: 88 | return "dup" 89 | case 40: 90 | return "fstatat" 91 | case 41: 92 | return "getegid" 93 | case 42: 94 | return "profil" 95 | case 43: 96 | return "ktrace" 97 | case 44: 98 | return "sigaction" 99 | case 45: 100 | return "getgid" 101 | case 46: 102 | return "sigprocmask" 103 | case 47: 104 | return "getlogin" 105 | case 48: 106 | return "setlogin" 107 | case 49: 108 | return "acct" 109 | case 50: 110 | return "sigpending" 111 | case 51: 112 | return "fstat" 113 | case 52: 114 | return "ioctl" 115 | case 53: 116 | return "reboot" 117 | case 54: 118 | return "revoke" 119 | case 55: 120 | return "symlink" 121 | case 56: 122 | return "readlink" 123 | case 57: 124 | return "execve" 125 | case 58: 126 | return "umask" 127 | case 59: 128 | return "chroot" 129 | case 60: 130 | return "getfsstat" 131 | case 61: 132 | return "statfs" 133 | case 62: 134 | return "fstatfs" 135 | case 63: 136 | return "fhstatfs" 137 | case 64: 138 | return "vfork" 139 | case 65: 140 | return "gettimeofday" 141 | case 66: 142 | return "settimeofday" 143 | case 67: 144 | return "setitimer" 145 | case 68: 146 | return "getitimer" 147 | case 69: 148 | return "select" 149 | case 70: 150 | return "kevent" 151 | case 71: 152 | return "munmap" 153 | case 72: 154 | return "mprotect" 155 | case 73: 156 | return "madvise" 157 | case 74: 158 | return "utimes" 159 | case 75: 160 | return "futimes" 161 | case 76: 162 | return "mincore" 163 | case 77: 164 | return "getgroups" 165 | case 78: 166 | return "setgroups" 167 | case 79: 168 | return "getpgrp" 169 | case 80: 170 | return "setpgid" 171 | case 81: 172 | return "utimensat" 173 | case 82: 174 | return "futimens" 175 | case 83: 176 | return "clock_gettime" 177 | case 84: 178 | return "clock_settime" 179 | case 85: 180 | return "clock_getres" 181 | case 86: 182 | return "dup2" 183 | case 87: 184 | return "nanosleep" 185 | case 88: 186 | return "fcntl" 187 | case 89: 188 | return "__thrsleep" 189 | case 90: 190 | return "fsync" 191 | case 91: 192 | return "setpriority" 193 | case 92: 194 | return "socket" 195 | case 93: 196 | return "connect" 197 | case 94: 198 | return "getdents" 199 | case 95: 200 | return "getpriority" 201 | case 96: 202 | return "sigreturn" 203 | case 97: 204 | return "bind" 205 | case 98: 206 | return "setsockopt" 207 | case 99: 208 | return "listen" 209 | case 100: 210 | return "ppoll" 211 | case 101: 212 | return "pselect" 213 | case 102: 214 | return "sigsuspend" 215 | case 103: 216 | return "getsockopt" 217 | case 104: 218 | return "readv" 219 | case 105: 220 | return "writev" 221 | case 106: 222 | return "fchown" 223 | case 107: 224 | return "fchmod" 225 | case 108: 226 | return "setreuid" 227 | case 109: 228 | return "setregid" 229 | case 110: 230 | return "rename" 231 | case 111: 232 | return "flock" 233 | case 112: 234 | return "mkfifo" 235 | case 113: 236 | return "sendto" 237 | case 114: 238 | return "shutdown" 239 | case 115: 240 | return "socketpair" 241 | case 116: 242 | return "mkdir" 243 | case 117: 244 | return "rmdir" 245 | case 118: 246 | return "adjtime" 247 | case 119: 248 | return "setsid" 249 | case 120: 250 | return "quotactl" 251 | case 121: 252 | return "nfssvc" 253 | case 122: 254 | return "getfh" 255 | case 123: 256 | return "sysarch" 257 | case 124: 258 | return "pread" 259 | case 125: 260 | return "pwrite" 261 | case 126: 262 | return "setgid" 263 | case 127: 264 | return "setegid" 265 | case 128: 266 | return "seteuid" 267 | case 129: 268 | return "pathconf" 269 | case 130: 270 | return "fpathconf" 271 | case 131: 272 | return "swapctl" 273 | case 132: 274 | return "getrlimit" 275 | case 133: 276 | return "setrlimit" 277 | case 134: 278 | return "mmap" 279 | case 135: 280 | return "lseek" 281 | case 136: 282 | return "truncate" 283 | case 137: 284 | return "ftruncate" 285 | case 138: 286 | return "__sysctl" 287 | case 139: 288 | return "mlock" 289 | case 140: 290 | return "munlock" 291 | case 141: 292 | return "getpgid" 293 | case 142: 294 | return "utrace" 295 | case 143: 296 | return "semget" 297 | case 144: 298 | return "msgget" 299 | case 145: 300 | return "msgsnd" 301 | case 146: 302 | return "msgrcv" 303 | case 147: 304 | return "shmat" 305 | case 148: 306 | return "shmdt" 307 | case 149: 308 | return "minherit" 309 | case 150: 310 | return "poll" 311 | case 151: 312 | return "issetugid" 313 | case 152: 314 | return "lchown" 315 | case 153: 316 | return "getsid" 317 | case 154: 318 | return "msync" 319 | case 155: 320 | return "pipe" 321 | case 156: 322 | return "fhopen" 323 | case 157: 324 | return "preadv" 325 | case 158: 326 | return "pwritev" 327 | case 159: 328 | return "kqueue" 329 | case 160: 330 | return "mlockall" 331 | case 161: 332 | return "munlockall" 333 | case 162: 334 | return "getresuid" 335 | case 163: 336 | return "setresuid" 337 | case 164: 338 | return "getresgid" 339 | case 165: 340 | return "setresgid" 341 | case 166: 342 | return "mquery" 343 | case 167: 344 | return "closefrom" 345 | case 168: 346 | return "sigaltstack" 347 | case 169: 348 | return "shmget" 349 | case 170: 350 | return "semop" 351 | case 171: 352 | return "fhstat" 353 | case 172: 354 | return "__semctl" 355 | case 173: 356 | return "shmctl" 357 | case 174: 358 | return "msgctl" 359 | case 175: 360 | return "sched_yield" 361 | case 176: 362 | return "getthrid" 363 | case 177: 364 | return "__thrwakeup" 365 | case 178: 366 | return "__threxit" 367 | case 179: 368 | return "__thrsigdivert" 369 | case 180: 370 | return "__getcwd" 371 | case 181: 372 | return "adjfreq" 373 | case 182: 374 | return "setrtable" 375 | case 183: 376 | return "getrtable" 377 | case 184: 378 | return "faccessat" 379 | case 185: 380 | return "fchmodat" 381 | case 186: 382 | return "fchownat" 383 | case 187: 384 | return "linkat" 385 | case 188: 386 | return "mkdirat" 387 | case 189: 388 | return "mkfifoat" 389 | case 190: 390 | return "mknodat" 391 | case 191: 392 | return "openat" 393 | case 192: 394 | return "readlinkat" 395 | case 193: 396 | return "renameat" 397 | case 194: 398 | return "symlinkat" 399 | case 195: 400 | return "unlinkat" 401 | case 196: 402 | return "__set_tcb" 403 | case 197: 404 | return "__get_tcb" 405 | } 406 | return "unknown" 407 | } 408 | 409 | func GetNum(name string) int { 410 | switch name { 411 | case "exit": 412 | return 0 413 | case "fork": 414 | return 1 415 | case "read": 416 | return 2 417 | case "write": 418 | return 3 419 | case "open": 420 | return 4 421 | case "close": 422 | return 5 423 | case "__tfork": 424 | return 6 425 | case "link": 426 | return 7 427 | case "unlink": 428 | return 8 429 | case "wait4": 430 | return 9 431 | case "chdir": 432 | return 10 433 | case "fchdir": 434 | return 11 435 | case "mknod": 436 | return 12 437 | case "chmod": 438 | return 13 439 | case "chown": 440 | return 14 441 | case "obreak": 442 | return 15 443 | case "getdtablecount": 444 | return 16 445 | case "getrusage": 446 | return 17 447 | case "getpid": 448 | return 18 449 | case "mount": 450 | return 19 451 | case "unmount": 452 | return 20 453 | case "setuid": 454 | return 21 455 | case "getuid": 456 | return 22 457 | case "geteuid": 458 | return 23 459 | case "ptrace": 460 | return 24 461 | case "recvmsg": 462 | return 25 463 | case "sendmsg": 464 | return 26 465 | case "recvfrom": 466 | return 27 467 | case "accept": 468 | return 28 469 | case "getpeername": 470 | return 29 471 | case "getsockname": 472 | return 30 473 | case "access": 474 | return 31 475 | case "chflags": 476 | return 32 477 | case "fchflags": 478 | return 33 479 | case "sync": 480 | return 34 481 | case "kill": 482 | return 35 483 | case "stat": 484 | return 36 485 | case "getppid": 486 | return 37 487 | case "lstat": 488 | return 38 489 | case "dup": 490 | return 39 491 | case "fstatat": 492 | return 40 493 | case "getegid": 494 | return 41 495 | case "profil": 496 | return 42 497 | case "ktrace": 498 | return 43 499 | case "sigaction": 500 | return 44 501 | case "getgid": 502 | return 45 503 | case "sigprocmask": 504 | return 46 505 | case "getlogin": 506 | return 47 507 | case "setlogin": 508 | return 48 509 | case "acct": 510 | return 49 511 | case "sigpending": 512 | return 50 513 | case "fstat": 514 | return 51 515 | case "ioctl": 516 | return 52 517 | case "reboot": 518 | return 53 519 | case "revoke": 520 | return 54 521 | case "symlink": 522 | return 55 523 | case "readlink": 524 | return 56 525 | case "execve": 526 | return 57 527 | case "umask": 528 | return 58 529 | case "chroot": 530 | return 59 531 | case "getfsstat": 532 | return 60 533 | case "statfs": 534 | return 61 535 | case "fstatfs": 536 | return 62 537 | case "fhstatfs": 538 | return 63 539 | case "vfork": 540 | return 64 541 | case "gettimeofday": 542 | return 65 543 | case "settimeofday": 544 | return 66 545 | case "setitimer": 546 | return 67 547 | case "getitimer": 548 | return 68 549 | case "select": 550 | return 69 551 | case "kevent": 552 | return 70 553 | case "munmap": 554 | return 71 555 | case "mprotect": 556 | return 72 557 | case "madvise": 558 | return 73 559 | case "utimes": 560 | return 74 561 | case "futimes": 562 | return 75 563 | case "mincore": 564 | return 76 565 | case "getgroups": 566 | return 77 567 | case "setgroups": 568 | return 78 569 | case "getpgrp": 570 | return 79 571 | case "setpgid": 572 | return 80 573 | case "utimensat": 574 | return 81 575 | case "futimens": 576 | return 82 577 | case "clock_gettime": 578 | return 83 579 | case "clock_settime": 580 | return 84 581 | case "clock_getres": 582 | return 85 583 | case "dup2": 584 | return 86 585 | case "nanosleep": 586 | return 87 587 | case "fcntl": 588 | return 88 589 | case "__thrsleep": 590 | return 89 591 | case "fsync": 592 | return 90 593 | case "setpriority": 594 | return 91 595 | case "socket": 596 | return 92 597 | case "connect": 598 | return 93 599 | case "getdents": 600 | return 94 601 | case "getpriority": 602 | return 95 603 | case "sigreturn": 604 | return 96 605 | case "bind": 606 | return 97 607 | case "setsockopt": 608 | return 98 609 | case "listen": 610 | return 99 611 | case "ppoll": 612 | return 100 613 | case "pselect": 614 | return 101 615 | case "sigsuspend": 616 | return 102 617 | case "getsockopt": 618 | return 103 619 | case "readv": 620 | return 104 621 | case "writev": 622 | return 105 623 | case "fchown": 624 | return 106 625 | case "fchmod": 626 | return 107 627 | case "setreuid": 628 | return 108 629 | case "setregid": 630 | return 109 631 | case "rename": 632 | return 110 633 | case "flock": 634 | return 111 635 | case "mkfifo": 636 | return 112 637 | case "sendto": 638 | return 113 639 | case "shutdown": 640 | return 114 641 | case "socketpair": 642 | return 115 643 | case "mkdir": 644 | return 116 645 | case "rmdir": 646 | return 117 647 | case "adjtime": 648 | return 118 649 | case "setsid": 650 | return 119 651 | case "quotactl": 652 | return 120 653 | case "nfssvc": 654 | return 121 655 | case "getfh": 656 | return 122 657 | case "sysarch": 658 | return 123 659 | case "pread": 660 | return 124 661 | case "pwrite": 662 | return 125 663 | case "setgid": 664 | return 126 665 | case "setegid": 666 | return 127 667 | case "seteuid": 668 | return 128 669 | case "pathconf": 670 | return 129 671 | case "fpathconf": 672 | return 130 673 | case "swapctl": 674 | return 131 675 | case "getrlimit": 676 | return 132 677 | case "setrlimit": 678 | return 133 679 | case "mmap": 680 | return 134 681 | case "lseek": 682 | return 135 683 | case "truncate": 684 | return 136 685 | case "ftruncate": 686 | return 137 687 | case "__sysctl": 688 | return 138 689 | case "mlock": 690 | return 139 691 | case "munlock": 692 | return 140 693 | case "getpgid": 694 | return 141 695 | case "utrace": 696 | return 142 697 | case "semget": 698 | return 143 699 | case "msgget": 700 | return 144 701 | case "msgsnd": 702 | return 145 703 | case "msgrcv": 704 | return 146 705 | case "shmat": 706 | return 147 707 | case "shmdt": 708 | return 148 709 | case "minherit": 710 | return 149 711 | case "poll": 712 | return 150 713 | case "issetugid": 714 | return 151 715 | case "lchown": 716 | return 152 717 | case "getsid": 718 | return 153 719 | case "msync": 720 | return 154 721 | case "pipe": 722 | return 155 723 | case "fhopen": 724 | return 156 725 | case "preadv": 726 | return 157 727 | case "pwritev": 728 | return 158 729 | case "kqueue": 730 | return 159 731 | case "mlockall": 732 | return 160 733 | case "munlockall": 734 | return 161 735 | case "getresuid": 736 | return 162 737 | case "setresuid": 738 | return 163 739 | case "getresgid": 740 | return 164 741 | case "setresgid": 742 | return 165 743 | case "mquery": 744 | return 166 745 | case "closefrom": 746 | return 167 747 | case "sigaltstack": 748 | return 168 749 | case "shmget": 750 | return 169 751 | case "semop": 752 | return 170 753 | case "fhstat": 754 | return 171 755 | case "__semctl": 756 | return 172 757 | case "shmctl": 758 | return 173 759 | case "msgctl": 760 | return 174 761 | case "sched_yield": 762 | return 175 763 | case "getthrid": 764 | return 176 765 | case "__thrwakeup": 766 | return 177 767 | case "__threxit": 768 | return 178 769 | case "__thrsigdivert": 770 | return 179 771 | case "__getcwd": 772 | return 180 773 | case "adjfreq": 774 | return 181 775 | case "setrtable": 776 | return 182 777 | case "getrtable": 778 | return 183 779 | case "faccessat": 780 | return 184 781 | case "fchmodat": 782 | return 185 783 | case "fchownat": 784 | return 186 785 | case "linkat": 786 | return 187 787 | case "mkdirat": 788 | return 188 789 | case "mkfifoat": 790 | return 189 791 | case "mknodat": 792 | return 190 793 | case "openat": 794 | return 191 795 | case "readlinkat": 796 | return 192 797 | case "renameat": 798 | return 193 799 | case "symlinkat": 800 | return 194 801 | case "unlinkat": 802 | return 195 803 | case "__set_tcb": 804 | return 196 805 | case "__get_tcb": 806 | return 197 807 | } 808 | return -1 809 | } 810 | 811 | func GetArgsTypes(name string) []ArgType { 812 | switch name { 813 | case "exit": 814 | return []ArgType{ARG_INT} 815 | case "fork": 816 | return []ArgType(nil) 817 | case "read": 818 | return []ArgType{ARG_INT, ARG_PTR} 819 | case "write": 820 | return []ArgType{ARG_INT, ARG_PTR} 821 | case "open": 822 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 823 | case "close": 824 | return []ArgType{ARG_INT} 825 | case "__tfork": 826 | return []ArgType(nil) 827 | case "link": 828 | return []ArgType{ARG_STR, ARG_STR} 829 | case "unlink": 830 | return []ArgType{ARG_STR} 831 | case "wait4": 832 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR} 833 | case "chdir": 834 | return []ArgType{ARG_STR} 835 | case "fchdir": 836 | return []ArgType{ARG_INT} 837 | case "mknod": 838 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 839 | case "chmod": 840 | return []ArgType{ARG_STR, ARG_INT} 841 | case "chown": 842 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 843 | case "obreak": 844 | return []ArgType(nil) 845 | case "getdtablecount": 846 | return []ArgType(nil) 847 | case "getrusage": 848 | return []ArgType{ARG_INT, ARG_PTR} 849 | case "getpid": 850 | return []ArgType(nil) 851 | case "mount": 852 | return []ArgType(nil) 853 | case "unmount": 854 | return []ArgType{ARG_STR, ARG_INT} 855 | case "setuid": 856 | return []ArgType{ARG_INT} 857 | case "getuid": 858 | return []ArgType(nil) 859 | case "geteuid": 860 | return []ArgType(nil) 861 | case "ptrace": 862 | return []ArgType(nil) 863 | case "recvmsg": 864 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 865 | case "sendmsg": 866 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 867 | case "recvfrom": 868 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 869 | case "accept": 870 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 871 | case "getpeername": 872 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 873 | case "getsockname": 874 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 875 | case "access": 876 | return []ArgType{ARG_STR, ARG_INT} 877 | case "chflags": 878 | return []ArgType{ARG_STR, ARG_INT} 879 | case "fchflags": 880 | return []ArgType{ARG_INT, ARG_INT} 881 | case "sync": 882 | return []ArgType(nil) 883 | case "kill": 884 | return []ArgType{ARG_INT, ARG_PTR} 885 | case "stat": 886 | return []ArgType{ARG_STR, ARG_PTR} 887 | case "getppid": 888 | return []ArgType(nil) 889 | case "lstat": 890 | return []ArgType{ARG_STR, ARG_PTR} 891 | case "dup": 892 | return []ArgType{ARG_INT} 893 | case "fstatat": 894 | return []ArgType(nil) 895 | case "getegid": 896 | return []ArgType(nil) 897 | case "profil": 898 | return []ArgType(nil) 899 | case "ktrace": 900 | return []ArgType(nil) 901 | case "sigaction": 902 | return []ArgType(nil) 903 | case "getgid": 904 | return []ArgType(nil) 905 | case "sigprocmask": 906 | return []ArgType(nil) 907 | case "getlogin": 908 | return []ArgType(nil) 909 | case "setlogin": 910 | return []ArgType{ARG_STR} 911 | case "acct": 912 | return []ArgType(nil) 913 | case "sigpending": 914 | return []ArgType(nil) 915 | case "fstat": 916 | return []ArgType{ARG_INT, ARG_PTR} 917 | case "ioctl": 918 | return []ArgType(nil) 919 | case "reboot": 920 | return []ArgType(nil) 921 | case "revoke": 922 | return []ArgType{ARG_STR} 923 | case "symlink": 924 | return []ArgType{ARG_STR, ARG_STR} 925 | case "readlink": 926 | return []ArgType{ARG_STR, ARG_PTR} 927 | case "execve": 928 | return []ArgType(nil) 929 | case "umask": 930 | return []ArgType{ARG_INT} 931 | case "chroot": 932 | return []ArgType{ARG_STR} 933 | case "getfsstat": 934 | return []ArgType{ARG_PTR, ARG_INT} 935 | case "statfs": 936 | return []ArgType{ARG_STR, ARG_PTR} 937 | case "fstatfs": 938 | return []ArgType{ARG_INT, ARG_PTR} 939 | case "fhstatfs": 940 | return []ArgType(nil) 941 | case "vfork": 942 | return []ArgType(nil) 943 | case "gettimeofday": 944 | return []ArgType{ARG_PTR} 945 | case "settimeofday": 946 | return []ArgType{ARG_PTR} 947 | case "setitimer": 948 | return []ArgType(nil) 949 | case "getitimer": 950 | return []ArgType(nil) 951 | case "select": 952 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR, ARG_PTR, ARG_PTR} 953 | case "kevent": 954 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_INT, ARG_PTR} 955 | case "munmap": 956 | return []ArgType{ARG_INT, ARG_INT} 957 | case "mprotect": 958 | return []ArgType(nil) 959 | case "madvise": 960 | return []ArgType(nil) 961 | case "utimes": 962 | return []ArgType{ARG_STR, ARG_PTR} 963 | case "futimes": 964 | return []ArgType{ARG_INT, ARG_PTR} 965 | case "mincore": 966 | return []ArgType(nil) 967 | case "getgroups": 968 | return []ArgType{ARG_INT, ARG_PTR} 969 | case "setgroups": 970 | return []ArgType{ARG_INT, ARG_PTR} 971 | case "getpgrp": 972 | return []ArgType(nil) 973 | case "setpgid": 974 | return []ArgType{ARG_INT, ARG_INT} 975 | case "utimensat": 976 | return []ArgType(nil) 977 | case "futimens": 978 | return []ArgType(nil) 979 | case "clock_gettime": 980 | return []ArgType(nil) 981 | case "clock_settime": 982 | return []ArgType(nil) 983 | case "clock_getres": 984 | return []ArgType(nil) 985 | case "dup2": 986 | return []ArgType{ARG_INT, ARG_INT} 987 | case "nanosleep": 988 | return []ArgType{ARG_PTR, ARG_PTR} 989 | case "fcntl": 990 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 991 | case "__thrsleep": 992 | return []ArgType(nil) 993 | case "fsync": 994 | return []ArgType{ARG_INT} 995 | case "setpriority": 996 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 997 | case "socket": 998 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 999 | case "connect": 1000 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1001 | case "getdents": 1002 | return []ArgType{ARG_INT, ARG_PTR} 1003 | case "getpriority": 1004 | return []ArgType{ARG_INT, ARG_INT} 1005 | case "sigreturn": 1006 | return []ArgType(nil) 1007 | case "bind": 1008 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1009 | case "setsockopt": 1010 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_INT} 1011 | case "listen": 1012 | return []ArgType{ARG_INT, ARG_INT} 1013 | case "ppoll": 1014 | return []ArgType(nil) 1015 | case "pselect": 1016 | return []ArgType(nil) 1017 | case "sigsuspend": 1018 | return []ArgType(nil) 1019 | case "getsockopt": 1020 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_PTR} 1021 | case "readv": 1022 | return []ArgType(nil) 1023 | case "writev": 1024 | return []ArgType(nil) 1025 | case "fchown": 1026 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1027 | case "fchmod": 1028 | return []ArgType{ARG_INT, ARG_INT} 1029 | case "setreuid": 1030 | return []ArgType{ARG_INT, ARG_INT} 1031 | case "setregid": 1032 | return []ArgType{ARG_INT, ARG_INT} 1033 | case "rename": 1034 | return []ArgType{ARG_STR, ARG_STR} 1035 | case "flock": 1036 | return []ArgType{ARG_INT, ARG_INT} 1037 | case "mkfifo": 1038 | return []ArgType{ARG_STR, ARG_INT} 1039 | case "sendto": 1040 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 1041 | case "shutdown": 1042 | return []ArgType{ARG_INT, ARG_INT} 1043 | case "socketpair": 1044 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1045 | case "mkdir": 1046 | return []ArgType{ARG_STR, ARG_INT} 1047 | case "rmdir": 1048 | return []ArgType{ARG_STR} 1049 | case "adjtime": 1050 | return []ArgType{ARG_PTR, ARG_PTR} 1051 | case "setsid": 1052 | return []ArgType(nil) 1053 | case "quotactl": 1054 | return []ArgType(nil) 1055 | case "nfssvc": 1056 | return []ArgType(nil) 1057 | case "getfh": 1058 | return []ArgType(nil) 1059 | case "sysarch": 1060 | return []ArgType(nil) 1061 | case "pread": 1062 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1063 | case "pwrite": 1064 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1065 | case "setgid": 1066 | return []ArgType{ARG_INT} 1067 | case "setegid": 1068 | return []ArgType{ARG_INT} 1069 | case "seteuid": 1070 | return []ArgType{ARG_INT} 1071 | case "pathconf": 1072 | return []ArgType{ARG_STR, ARG_INT} 1073 | case "fpathconf": 1074 | return []ArgType{ARG_INT, ARG_INT} 1075 | case "swapctl": 1076 | return []ArgType(nil) 1077 | case "getrlimit": 1078 | return []ArgType{ARG_INT, ARG_PTR} 1079 | case "setrlimit": 1080 | return []ArgType{ARG_INT, ARG_PTR} 1081 | case "mmap": 1082 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1083 | case "lseek": 1084 | return []ArgType(nil) 1085 | case "truncate": 1086 | return []ArgType{ARG_STR, ARG_PTR} 1087 | case "ftruncate": 1088 | return []ArgType{ARG_INT, ARG_PTR} 1089 | case "__sysctl": 1090 | return []ArgType(nil) 1091 | case "mlock": 1092 | return []ArgType(nil) 1093 | case "munlock": 1094 | return []ArgType(nil) 1095 | case "getpgid": 1096 | return []ArgType{ARG_INT} 1097 | case "utrace": 1098 | return []ArgType(nil) 1099 | case "semget": 1100 | return []ArgType(nil) 1101 | case "msgget": 1102 | return []ArgType(nil) 1103 | case "msgsnd": 1104 | return []ArgType(nil) 1105 | case "msgrcv": 1106 | return []ArgType(nil) 1107 | case "shmat": 1108 | return []ArgType(nil) 1109 | case "shmdt": 1110 | return []ArgType(nil) 1111 | case "minherit": 1112 | return []ArgType(nil) 1113 | case "poll": 1114 | return []ArgType(nil) 1115 | case "issetugid": 1116 | return []ArgType(nil) 1117 | case "lchown": 1118 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 1119 | case "getsid": 1120 | return []ArgType{ARG_INT} 1121 | case "msync": 1122 | return []ArgType(nil) 1123 | case "pipe": 1124 | return []ArgType{ARG_PTR} 1125 | case "fhopen": 1126 | return []ArgType(nil) 1127 | case "preadv": 1128 | return []ArgType(nil) 1129 | case "pwritev": 1130 | return []ArgType(nil) 1131 | case "kqueue": 1132 | return []ArgType(nil) 1133 | case "mlockall": 1134 | return []ArgType(nil) 1135 | case "munlockall": 1136 | return []ArgType(nil) 1137 | case "getresuid": 1138 | return []ArgType(nil) 1139 | case "setresuid": 1140 | return []ArgType(nil) 1141 | case "getresgid": 1142 | return []ArgType(nil) 1143 | case "setresgid": 1144 | return []ArgType(nil) 1145 | case "mquery": 1146 | return []ArgType(nil) 1147 | case "closefrom": 1148 | return []ArgType(nil) 1149 | case "sigaltstack": 1150 | return []ArgType(nil) 1151 | case "shmget": 1152 | return []ArgType(nil) 1153 | case "semop": 1154 | return []ArgType(nil) 1155 | case "fhstat": 1156 | return []ArgType(nil) 1157 | case "__semctl": 1158 | return []ArgType(nil) 1159 | case "shmctl": 1160 | return []ArgType(nil) 1161 | case "msgctl": 1162 | return []ArgType(nil) 1163 | case "sched_yield": 1164 | return []ArgType(nil) 1165 | case "getthrid": 1166 | return []ArgType(nil) 1167 | case "__thrwakeup": 1168 | return []ArgType(nil) 1169 | case "__threxit": 1170 | return []ArgType(nil) 1171 | case "__thrsigdivert": 1172 | return []ArgType(nil) 1173 | case "__getcwd": 1174 | return []ArgType(nil) 1175 | case "adjfreq": 1176 | return []ArgType(nil) 1177 | case "setrtable": 1178 | return []ArgType(nil) 1179 | case "getrtable": 1180 | return []ArgType(nil) 1181 | case "faccessat": 1182 | return []ArgType(nil) 1183 | case "fchmodat": 1184 | return []ArgType(nil) 1185 | case "fchownat": 1186 | return []ArgType(nil) 1187 | case "linkat": 1188 | return []ArgType(nil) 1189 | case "mkdirat": 1190 | return []ArgType(nil) 1191 | case "mkfifoat": 1192 | return []ArgType(nil) 1193 | case "mknodat": 1194 | return []ArgType(nil) 1195 | case "openat": 1196 | return []ArgType(nil) 1197 | case "readlinkat": 1198 | return []ArgType(nil) 1199 | case "renameat": 1200 | return []ArgType(nil) 1201 | case "symlinkat": 1202 | return []ArgType(nil) 1203 | case "unlinkat": 1204 | return []ArgType(nil) 1205 | case "__set_tcb": 1206 | return []ArgType(nil) 1207 | case "__get_tcb": 1208 | return []ArgType(nil) 1209 | } 1210 | return nil 1211 | } 1212 | -------------------------------------------------------------------------------- /syscallpp_openbsd_arm.go: -------------------------------------------------------------------------------- 1 | // generated file; DO NOT EDIT - use go generate in directory with source 2 | 3 | // +build arm,openbsd 4 | 5 | package syscallpp 6 | 7 | func GetName(num int) string { 8 | switch num { 9 | case 0: 10 | return "exit" 11 | case 1: 12 | return "fork" 13 | case 2: 14 | return "read" 15 | case 3: 16 | return "write" 17 | case 4: 18 | return "open" 19 | case 5: 20 | return "close" 21 | case 6: 22 | return "getentropy" 23 | case 7: 24 | return "__tfork" 25 | case 8: 26 | return "link" 27 | case 9: 28 | return "unlink" 29 | case 10: 30 | return "wait4" 31 | case 11: 32 | return "chdir" 33 | case 12: 34 | return "fchdir" 35 | case 13: 36 | return "mknod" 37 | case 14: 38 | return "chmod" 39 | case 15: 40 | return "chown" 41 | case 16: 42 | return "obreak" 43 | case 17: 44 | return "getdtablecount" 45 | case 18: 46 | return "getrusage" 47 | case 19: 48 | return "getpid" 49 | case 20: 50 | return "mount" 51 | case 21: 52 | return "unmount" 53 | case 22: 54 | return "setuid" 55 | case 23: 56 | return "getuid" 57 | case 24: 58 | return "geteuid" 59 | case 25: 60 | return "ptrace" 61 | case 26: 62 | return "recvmsg" 63 | case 27: 64 | return "sendmsg" 65 | case 28: 66 | return "recvfrom" 67 | case 29: 68 | return "accept" 69 | case 30: 70 | return "getpeername" 71 | case 31: 72 | return "getsockname" 73 | case 32: 74 | return "access" 75 | case 33: 76 | return "chflags" 77 | case 34: 78 | return "fchflags" 79 | case 35: 80 | return "sync" 81 | case 36: 82 | return "kill" 83 | case 37: 84 | return "stat" 85 | case 38: 86 | return "getppid" 87 | case 39: 88 | return "lstat" 89 | case 40: 90 | return "dup" 91 | case 41: 92 | return "fstatat" 93 | case 42: 94 | return "getegid" 95 | case 43: 96 | return "profil" 97 | case 44: 98 | return "ktrace" 99 | case 45: 100 | return "sigaction" 101 | case 46: 102 | return "getgid" 103 | case 47: 104 | return "sigprocmask" 105 | case 48: 106 | return "getlogin" 107 | case 49: 108 | return "setlogin" 109 | case 50: 110 | return "acct" 111 | case 51: 112 | return "sigpending" 113 | case 52: 114 | return "fstat" 115 | case 53: 116 | return "ioctl" 117 | case 54: 118 | return "reboot" 119 | case 55: 120 | return "revoke" 121 | case 56: 122 | return "symlink" 123 | case 57: 124 | return "readlink" 125 | case 58: 126 | return "execve" 127 | case 59: 128 | return "umask" 129 | case 60: 130 | return "chroot" 131 | case 61: 132 | return "getfsstat" 133 | case 62: 134 | return "statfs" 135 | case 63: 136 | return "fstatfs" 137 | case 64: 138 | return "fhstatfs" 139 | case 65: 140 | return "vfork" 141 | case 66: 142 | return "gettimeofday" 143 | case 67: 144 | return "settimeofday" 145 | case 68: 146 | return "setitimer" 147 | case 69: 148 | return "getitimer" 149 | case 70: 150 | return "select" 151 | case 71: 152 | return "kevent" 153 | case 72: 154 | return "munmap" 155 | case 73: 156 | return "mprotect" 157 | case 74: 158 | return "madvise" 159 | case 75: 160 | return "utimes" 161 | case 76: 162 | return "futimes" 163 | case 77: 164 | return "mincore" 165 | case 78: 166 | return "getgroups" 167 | case 79: 168 | return "setgroups" 169 | case 80: 170 | return "getpgrp" 171 | case 81: 172 | return "setpgid" 173 | case 82: 174 | return "sendsyslog" 175 | case 83: 176 | return "utimensat" 177 | case 84: 178 | return "futimens" 179 | case 85: 180 | return "clock_gettime" 181 | case 86: 182 | return "clock_settime" 183 | case 87: 184 | return "clock_getres" 185 | case 88: 186 | return "dup2" 187 | case 89: 188 | return "nanosleep" 189 | case 90: 190 | return "fcntl" 191 | case 91: 192 | return "accept4" 193 | case 92: 194 | return "__thrsleep" 195 | case 93: 196 | return "fsync" 197 | case 94: 198 | return "setpriority" 199 | case 95: 200 | return "socket" 201 | case 96: 202 | return "connect" 203 | case 97: 204 | return "getdents" 205 | case 98: 206 | return "getpriority" 207 | case 99: 208 | return "pipe2" 209 | case 100: 210 | return "dup3" 211 | case 101: 212 | return "sigreturn" 213 | case 102: 214 | return "bind" 215 | case 103: 216 | return "setsockopt" 217 | case 104: 218 | return "listen" 219 | case 105: 220 | return "chflagsat" 221 | case 106: 222 | return "ppoll" 223 | case 107: 224 | return "pselect" 225 | case 108: 226 | return "sigsuspend" 227 | case 109: 228 | return "getsockopt" 229 | case 110: 230 | return "readv" 231 | case 111: 232 | return "writev" 233 | case 112: 234 | return "fchown" 235 | case 113: 236 | return "fchmod" 237 | case 114: 238 | return "setreuid" 239 | case 115: 240 | return "setregid" 241 | case 116: 242 | return "rename" 243 | case 117: 244 | return "flock" 245 | case 118: 246 | return "mkfifo" 247 | case 119: 248 | return "sendto" 249 | case 120: 250 | return "shutdown" 251 | case 121: 252 | return "socketpair" 253 | case 122: 254 | return "mkdir" 255 | case 123: 256 | return "rmdir" 257 | case 124: 258 | return "adjtime" 259 | case 125: 260 | return "setsid" 261 | case 126: 262 | return "quotactl" 263 | case 127: 264 | return "nfssvc" 265 | case 128: 266 | return "getfh" 267 | case 129: 268 | return "sysarch" 269 | case 130: 270 | return "pread" 271 | case 131: 272 | return "pwrite" 273 | case 132: 274 | return "setgid" 275 | case 133: 276 | return "setegid" 277 | case 134: 278 | return "seteuid" 279 | case 135: 280 | return "pathconf" 281 | case 136: 282 | return "fpathconf" 283 | case 137: 284 | return "swapctl" 285 | case 138: 286 | return "getrlimit" 287 | case 139: 288 | return "setrlimit" 289 | case 140: 290 | return "mmap" 291 | case 141: 292 | return "lseek" 293 | case 142: 294 | return "truncate" 295 | case 143: 296 | return "ftruncate" 297 | case 144: 298 | return "__sysctl" 299 | case 145: 300 | return "mlock" 301 | case 146: 302 | return "munlock" 303 | case 147: 304 | return "getpgid" 305 | case 148: 306 | return "utrace" 307 | case 149: 308 | return "semget" 309 | case 150: 310 | return "msgget" 311 | case 151: 312 | return "msgsnd" 313 | case 152: 314 | return "msgrcv" 315 | case 153: 316 | return "shmat" 317 | case 154: 318 | return "shmdt" 319 | case 155: 320 | return "minherit" 321 | case 156: 322 | return "poll" 323 | case 157: 324 | return "issetugid" 325 | case 158: 326 | return "lchown" 327 | case 159: 328 | return "getsid" 329 | case 160: 330 | return "msync" 331 | case 161: 332 | return "pipe" 333 | case 162: 334 | return "fhopen" 335 | case 163: 336 | return "preadv" 337 | case 164: 338 | return "pwritev" 339 | case 165: 340 | return "kqueue" 341 | case 166: 342 | return "mlockall" 343 | case 167: 344 | return "munlockall" 345 | case 168: 346 | return "getresuid" 347 | case 169: 348 | return "setresuid" 349 | case 170: 350 | return "getresgid" 351 | case 171: 352 | return "setresgid" 353 | case 172: 354 | return "mquery" 355 | case 173: 356 | return "closefrom" 357 | case 174: 358 | return "sigaltstack" 359 | case 175: 360 | return "shmget" 361 | case 176: 362 | return "semop" 363 | case 177: 364 | return "fhstat" 365 | case 178: 366 | return "__semctl" 367 | case 179: 368 | return "shmctl" 369 | case 180: 370 | return "msgctl" 371 | case 181: 372 | return "sched_yield" 373 | case 182: 374 | return "getthrid" 375 | case 183: 376 | return "__thrwakeup" 377 | case 184: 378 | return "__threxit" 379 | case 185: 380 | return "__thrsigdivert" 381 | case 186: 382 | return "__getcwd" 383 | case 187: 384 | return "adjfreq" 385 | case 188: 386 | return "setrtable" 387 | case 189: 388 | return "getrtable" 389 | case 190: 390 | return "faccessat" 391 | case 191: 392 | return "fchmodat" 393 | case 192: 394 | return "fchownat" 395 | case 193: 396 | return "linkat" 397 | case 194: 398 | return "mkdirat" 399 | case 195: 400 | return "mkfifoat" 401 | case 196: 402 | return "mknodat" 403 | case 197: 404 | return "openat" 405 | case 198: 406 | return "readlinkat" 407 | case 199: 408 | return "renameat" 409 | case 200: 410 | return "symlinkat" 411 | case 201: 412 | return "unlinkat" 413 | case 202: 414 | return "__set_tcb" 415 | case 203: 416 | return "__get_tcb" 417 | } 418 | return "unknown" 419 | } 420 | 421 | func GetNum(name string) int { 422 | switch name { 423 | case "exit": 424 | return 0 425 | case "fork": 426 | return 1 427 | case "read": 428 | return 2 429 | case "write": 430 | return 3 431 | case "open": 432 | return 4 433 | case "close": 434 | return 5 435 | case "getentropy": 436 | return 6 437 | case "__tfork": 438 | return 7 439 | case "link": 440 | return 8 441 | case "unlink": 442 | return 9 443 | case "wait4": 444 | return 10 445 | case "chdir": 446 | return 11 447 | case "fchdir": 448 | return 12 449 | case "mknod": 450 | return 13 451 | case "chmod": 452 | return 14 453 | case "chown": 454 | return 15 455 | case "obreak": 456 | return 16 457 | case "getdtablecount": 458 | return 17 459 | case "getrusage": 460 | return 18 461 | case "getpid": 462 | return 19 463 | case "mount": 464 | return 20 465 | case "unmount": 466 | return 21 467 | case "setuid": 468 | return 22 469 | case "getuid": 470 | return 23 471 | case "geteuid": 472 | return 24 473 | case "ptrace": 474 | return 25 475 | case "recvmsg": 476 | return 26 477 | case "sendmsg": 478 | return 27 479 | case "recvfrom": 480 | return 28 481 | case "accept": 482 | return 29 483 | case "getpeername": 484 | return 30 485 | case "getsockname": 486 | return 31 487 | case "access": 488 | return 32 489 | case "chflags": 490 | return 33 491 | case "fchflags": 492 | return 34 493 | case "sync": 494 | return 35 495 | case "kill": 496 | return 36 497 | case "stat": 498 | return 37 499 | case "getppid": 500 | return 38 501 | case "lstat": 502 | return 39 503 | case "dup": 504 | return 40 505 | case "fstatat": 506 | return 41 507 | case "getegid": 508 | return 42 509 | case "profil": 510 | return 43 511 | case "ktrace": 512 | return 44 513 | case "sigaction": 514 | return 45 515 | case "getgid": 516 | return 46 517 | case "sigprocmask": 518 | return 47 519 | case "getlogin": 520 | return 48 521 | case "setlogin": 522 | return 49 523 | case "acct": 524 | return 50 525 | case "sigpending": 526 | return 51 527 | case "fstat": 528 | return 52 529 | case "ioctl": 530 | return 53 531 | case "reboot": 532 | return 54 533 | case "revoke": 534 | return 55 535 | case "symlink": 536 | return 56 537 | case "readlink": 538 | return 57 539 | case "execve": 540 | return 58 541 | case "umask": 542 | return 59 543 | case "chroot": 544 | return 60 545 | case "getfsstat": 546 | return 61 547 | case "statfs": 548 | return 62 549 | case "fstatfs": 550 | return 63 551 | case "fhstatfs": 552 | return 64 553 | case "vfork": 554 | return 65 555 | case "gettimeofday": 556 | return 66 557 | case "settimeofday": 558 | return 67 559 | case "setitimer": 560 | return 68 561 | case "getitimer": 562 | return 69 563 | case "select": 564 | return 70 565 | case "kevent": 566 | return 71 567 | case "munmap": 568 | return 72 569 | case "mprotect": 570 | return 73 571 | case "madvise": 572 | return 74 573 | case "utimes": 574 | return 75 575 | case "futimes": 576 | return 76 577 | case "mincore": 578 | return 77 579 | case "getgroups": 580 | return 78 581 | case "setgroups": 582 | return 79 583 | case "getpgrp": 584 | return 80 585 | case "setpgid": 586 | return 81 587 | case "sendsyslog": 588 | return 82 589 | case "utimensat": 590 | return 83 591 | case "futimens": 592 | return 84 593 | case "clock_gettime": 594 | return 85 595 | case "clock_settime": 596 | return 86 597 | case "clock_getres": 598 | return 87 599 | case "dup2": 600 | return 88 601 | case "nanosleep": 602 | return 89 603 | case "fcntl": 604 | return 90 605 | case "accept4": 606 | return 91 607 | case "__thrsleep": 608 | return 92 609 | case "fsync": 610 | return 93 611 | case "setpriority": 612 | return 94 613 | case "socket": 614 | return 95 615 | case "connect": 616 | return 96 617 | case "getdents": 618 | return 97 619 | case "getpriority": 620 | return 98 621 | case "pipe2": 622 | return 99 623 | case "dup3": 624 | return 100 625 | case "sigreturn": 626 | return 101 627 | case "bind": 628 | return 102 629 | case "setsockopt": 630 | return 103 631 | case "listen": 632 | return 104 633 | case "chflagsat": 634 | return 105 635 | case "ppoll": 636 | return 106 637 | case "pselect": 638 | return 107 639 | case "sigsuspend": 640 | return 108 641 | case "getsockopt": 642 | return 109 643 | case "readv": 644 | return 110 645 | case "writev": 646 | return 111 647 | case "fchown": 648 | return 112 649 | case "fchmod": 650 | return 113 651 | case "setreuid": 652 | return 114 653 | case "setregid": 654 | return 115 655 | case "rename": 656 | return 116 657 | case "flock": 658 | return 117 659 | case "mkfifo": 660 | return 118 661 | case "sendto": 662 | return 119 663 | case "shutdown": 664 | return 120 665 | case "socketpair": 666 | return 121 667 | case "mkdir": 668 | return 122 669 | case "rmdir": 670 | return 123 671 | case "adjtime": 672 | return 124 673 | case "setsid": 674 | return 125 675 | case "quotactl": 676 | return 126 677 | case "nfssvc": 678 | return 127 679 | case "getfh": 680 | return 128 681 | case "sysarch": 682 | return 129 683 | case "pread": 684 | return 130 685 | case "pwrite": 686 | return 131 687 | case "setgid": 688 | return 132 689 | case "setegid": 690 | return 133 691 | case "seteuid": 692 | return 134 693 | case "pathconf": 694 | return 135 695 | case "fpathconf": 696 | return 136 697 | case "swapctl": 698 | return 137 699 | case "getrlimit": 700 | return 138 701 | case "setrlimit": 702 | return 139 703 | case "mmap": 704 | return 140 705 | case "lseek": 706 | return 141 707 | case "truncate": 708 | return 142 709 | case "ftruncate": 710 | return 143 711 | case "__sysctl": 712 | return 144 713 | case "mlock": 714 | return 145 715 | case "munlock": 716 | return 146 717 | case "getpgid": 718 | return 147 719 | case "utrace": 720 | return 148 721 | case "semget": 722 | return 149 723 | case "msgget": 724 | return 150 725 | case "msgsnd": 726 | return 151 727 | case "msgrcv": 728 | return 152 729 | case "shmat": 730 | return 153 731 | case "shmdt": 732 | return 154 733 | case "minherit": 734 | return 155 735 | case "poll": 736 | return 156 737 | case "issetugid": 738 | return 157 739 | case "lchown": 740 | return 158 741 | case "getsid": 742 | return 159 743 | case "msync": 744 | return 160 745 | case "pipe": 746 | return 161 747 | case "fhopen": 748 | return 162 749 | case "preadv": 750 | return 163 751 | case "pwritev": 752 | return 164 753 | case "kqueue": 754 | return 165 755 | case "mlockall": 756 | return 166 757 | case "munlockall": 758 | return 167 759 | case "getresuid": 760 | return 168 761 | case "setresuid": 762 | return 169 763 | case "getresgid": 764 | return 170 765 | case "setresgid": 766 | return 171 767 | case "mquery": 768 | return 172 769 | case "closefrom": 770 | return 173 771 | case "sigaltstack": 772 | return 174 773 | case "shmget": 774 | return 175 775 | case "semop": 776 | return 176 777 | case "fhstat": 778 | return 177 779 | case "__semctl": 780 | return 178 781 | case "shmctl": 782 | return 179 783 | case "msgctl": 784 | return 180 785 | case "sched_yield": 786 | return 181 787 | case "getthrid": 788 | return 182 789 | case "__thrwakeup": 790 | return 183 791 | case "__threxit": 792 | return 184 793 | case "__thrsigdivert": 794 | return 185 795 | case "__getcwd": 796 | return 186 797 | case "adjfreq": 798 | return 187 799 | case "setrtable": 800 | return 188 801 | case "getrtable": 802 | return 189 803 | case "faccessat": 804 | return 190 805 | case "fchmodat": 806 | return 191 807 | case "fchownat": 808 | return 192 809 | case "linkat": 810 | return 193 811 | case "mkdirat": 812 | return 194 813 | case "mkfifoat": 814 | return 195 815 | case "mknodat": 816 | return 196 817 | case "openat": 818 | return 197 819 | case "readlinkat": 820 | return 198 821 | case "renameat": 822 | return 199 823 | case "symlinkat": 824 | return 200 825 | case "unlinkat": 826 | return 201 827 | case "__set_tcb": 828 | return 202 829 | case "__get_tcb": 830 | return 203 831 | } 832 | return -1 833 | } 834 | 835 | func GetArgsTypes(name string) []ArgType { 836 | switch name { 837 | case "exit": 838 | return []ArgType{ARG_INT} 839 | case "fork": 840 | return []ArgType(nil) 841 | case "read": 842 | return []ArgType{ARG_INT, ARG_PTR} 843 | case "write": 844 | return []ArgType{ARG_INT, ARG_PTR} 845 | case "open": 846 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 847 | case "close": 848 | return []ArgType{ARG_INT} 849 | case "getentropy": 850 | return []ArgType(nil) 851 | case "__tfork": 852 | return []ArgType(nil) 853 | case "link": 854 | return []ArgType{ARG_STR, ARG_STR} 855 | case "unlink": 856 | return []ArgType{ARG_STR} 857 | case "wait4": 858 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR} 859 | case "chdir": 860 | return []ArgType{ARG_STR} 861 | case "fchdir": 862 | return []ArgType{ARG_INT} 863 | case "mknod": 864 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 865 | case "chmod": 866 | return []ArgType{ARG_STR, ARG_INT} 867 | case "chown": 868 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 869 | case "obreak": 870 | return []ArgType(nil) 871 | case "getdtablecount": 872 | return []ArgType(nil) 873 | case "getrusage": 874 | return []ArgType{ARG_INT, ARG_PTR} 875 | case "getpid": 876 | return []ArgType(nil) 877 | case "mount": 878 | return []ArgType(nil) 879 | case "unmount": 880 | return []ArgType{ARG_STR, ARG_INT} 881 | case "setuid": 882 | return []ArgType{ARG_INT} 883 | case "getuid": 884 | return []ArgType(nil) 885 | case "geteuid": 886 | return []ArgType(nil) 887 | case "ptrace": 888 | return []ArgType(nil) 889 | case "recvmsg": 890 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 891 | case "sendmsg": 892 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 893 | case "recvfrom": 894 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 895 | case "accept": 896 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 897 | case "getpeername": 898 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 899 | case "getsockname": 900 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 901 | case "access": 902 | return []ArgType{ARG_STR, ARG_INT} 903 | case "chflags": 904 | return []ArgType{ARG_STR, ARG_INT} 905 | case "fchflags": 906 | return []ArgType{ARG_INT, ARG_INT} 907 | case "sync": 908 | return []ArgType(nil) 909 | case "kill": 910 | return []ArgType{ARG_INT, ARG_PTR} 911 | case "stat": 912 | return []ArgType{ARG_STR, ARG_PTR} 913 | case "getppid": 914 | return []ArgType(nil) 915 | case "lstat": 916 | return []ArgType{ARG_STR, ARG_PTR} 917 | case "dup": 918 | return []ArgType{ARG_INT} 919 | case "fstatat": 920 | return []ArgType(nil) 921 | case "getegid": 922 | return []ArgType(nil) 923 | case "profil": 924 | return []ArgType(nil) 925 | case "ktrace": 926 | return []ArgType(nil) 927 | case "sigaction": 928 | return []ArgType(nil) 929 | case "getgid": 930 | return []ArgType(nil) 931 | case "sigprocmask": 932 | return []ArgType(nil) 933 | case "getlogin": 934 | return []ArgType(nil) 935 | case "setlogin": 936 | return []ArgType{ARG_STR} 937 | case "acct": 938 | return []ArgType(nil) 939 | case "sigpending": 940 | return []ArgType(nil) 941 | case "fstat": 942 | return []ArgType{ARG_INT, ARG_PTR} 943 | case "ioctl": 944 | return []ArgType(nil) 945 | case "reboot": 946 | return []ArgType(nil) 947 | case "revoke": 948 | return []ArgType{ARG_STR} 949 | case "symlink": 950 | return []ArgType{ARG_STR, ARG_STR} 951 | case "readlink": 952 | return []ArgType{ARG_STR, ARG_PTR} 953 | case "execve": 954 | return []ArgType(nil) 955 | case "umask": 956 | return []ArgType{ARG_INT} 957 | case "chroot": 958 | return []ArgType{ARG_STR} 959 | case "getfsstat": 960 | return []ArgType{ARG_PTR, ARG_INT} 961 | case "statfs": 962 | return []ArgType{ARG_STR, ARG_PTR} 963 | case "fstatfs": 964 | return []ArgType{ARG_INT, ARG_PTR} 965 | case "fhstatfs": 966 | return []ArgType(nil) 967 | case "vfork": 968 | return []ArgType(nil) 969 | case "gettimeofday": 970 | return []ArgType{ARG_PTR} 971 | case "settimeofday": 972 | return []ArgType{ARG_PTR} 973 | case "setitimer": 974 | return []ArgType(nil) 975 | case "getitimer": 976 | return []ArgType(nil) 977 | case "select": 978 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR, ARG_PTR, ARG_PTR} 979 | case "kevent": 980 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_INT, ARG_PTR} 981 | case "munmap": 982 | return []ArgType{ARG_INT, ARG_INT} 983 | case "mprotect": 984 | return []ArgType(nil) 985 | case "madvise": 986 | return []ArgType(nil) 987 | case "utimes": 988 | return []ArgType{ARG_STR, ARG_PTR} 989 | case "futimes": 990 | return []ArgType{ARG_INT, ARG_PTR} 991 | case "mincore": 992 | return []ArgType(nil) 993 | case "getgroups": 994 | return []ArgType{ARG_INT, ARG_PTR} 995 | case "setgroups": 996 | return []ArgType{ARG_INT, ARG_PTR} 997 | case "getpgrp": 998 | return []ArgType(nil) 999 | case "setpgid": 1000 | return []ArgType{ARG_INT, ARG_INT} 1001 | case "sendsyslog": 1002 | return []ArgType(nil) 1003 | case "utimensat": 1004 | return []ArgType(nil) 1005 | case "futimens": 1006 | return []ArgType(nil) 1007 | case "clock_gettime": 1008 | return []ArgType(nil) 1009 | case "clock_settime": 1010 | return []ArgType(nil) 1011 | case "clock_getres": 1012 | return []ArgType(nil) 1013 | case "dup2": 1014 | return []ArgType{ARG_INT, ARG_INT} 1015 | case "nanosleep": 1016 | return []ArgType{ARG_PTR, ARG_PTR} 1017 | case "fcntl": 1018 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1019 | case "accept4": 1020 | return []ArgType(nil) 1021 | case "__thrsleep": 1022 | return []ArgType(nil) 1023 | case "fsync": 1024 | return []ArgType{ARG_INT} 1025 | case "setpriority": 1026 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1027 | case "socket": 1028 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1029 | case "connect": 1030 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1031 | case "getdents": 1032 | return []ArgType{ARG_INT, ARG_PTR} 1033 | case "getpriority": 1034 | return []ArgType{ARG_INT, ARG_INT} 1035 | case "pipe2": 1036 | return []ArgType(nil) 1037 | case "dup3": 1038 | return []ArgType(nil) 1039 | case "sigreturn": 1040 | return []ArgType(nil) 1041 | case "bind": 1042 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1043 | case "setsockopt": 1044 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_INT} 1045 | case "listen": 1046 | return []ArgType{ARG_INT, ARG_INT} 1047 | case "chflagsat": 1048 | return []ArgType(nil) 1049 | case "ppoll": 1050 | return []ArgType(nil) 1051 | case "pselect": 1052 | return []ArgType(nil) 1053 | case "sigsuspend": 1054 | return []ArgType(nil) 1055 | case "getsockopt": 1056 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_PTR} 1057 | case "readv": 1058 | return []ArgType(nil) 1059 | case "writev": 1060 | return []ArgType(nil) 1061 | case "fchown": 1062 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1063 | case "fchmod": 1064 | return []ArgType{ARG_INT, ARG_INT} 1065 | case "setreuid": 1066 | return []ArgType{ARG_INT, ARG_INT} 1067 | case "setregid": 1068 | return []ArgType{ARG_INT, ARG_INT} 1069 | case "rename": 1070 | return []ArgType{ARG_STR, ARG_STR} 1071 | case "flock": 1072 | return []ArgType{ARG_INT, ARG_INT} 1073 | case "mkfifo": 1074 | return []ArgType{ARG_STR, ARG_INT} 1075 | case "sendto": 1076 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 1077 | case "shutdown": 1078 | return []ArgType{ARG_INT, ARG_INT} 1079 | case "socketpair": 1080 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1081 | case "mkdir": 1082 | return []ArgType{ARG_STR, ARG_INT} 1083 | case "rmdir": 1084 | return []ArgType{ARG_STR} 1085 | case "adjtime": 1086 | return []ArgType{ARG_PTR, ARG_PTR} 1087 | case "setsid": 1088 | return []ArgType(nil) 1089 | case "quotactl": 1090 | return []ArgType(nil) 1091 | case "nfssvc": 1092 | return []ArgType(nil) 1093 | case "getfh": 1094 | return []ArgType(nil) 1095 | case "sysarch": 1096 | return []ArgType(nil) 1097 | case "pread": 1098 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1099 | case "pwrite": 1100 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1101 | case "setgid": 1102 | return []ArgType{ARG_INT} 1103 | case "setegid": 1104 | return []ArgType{ARG_INT} 1105 | case "seteuid": 1106 | return []ArgType{ARG_INT} 1107 | case "pathconf": 1108 | return []ArgType{ARG_STR, ARG_INT} 1109 | case "fpathconf": 1110 | return []ArgType{ARG_INT, ARG_INT} 1111 | case "swapctl": 1112 | return []ArgType(nil) 1113 | case "getrlimit": 1114 | return []ArgType{ARG_INT, ARG_PTR} 1115 | case "setrlimit": 1116 | return []ArgType{ARG_INT, ARG_PTR} 1117 | case "mmap": 1118 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1119 | case "lseek": 1120 | return []ArgType(nil) 1121 | case "truncate": 1122 | return []ArgType{ARG_STR, ARG_PTR} 1123 | case "ftruncate": 1124 | return []ArgType{ARG_INT, ARG_PTR} 1125 | case "__sysctl": 1126 | return []ArgType(nil) 1127 | case "mlock": 1128 | return []ArgType(nil) 1129 | case "munlock": 1130 | return []ArgType(nil) 1131 | case "getpgid": 1132 | return []ArgType{ARG_INT} 1133 | case "utrace": 1134 | return []ArgType(nil) 1135 | case "semget": 1136 | return []ArgType(nil) 1137 | case "msgget": 1138 | return []ArgType(nil) 1139 | case "msgsnd": 1140 | return []ArgType(nil) 1141 | case "msgrcv": 1142 | return []ArgType(nil) 1143 | case "shmat": 1144 | return []ArgType(nil) 1145 | case "shmdt": 1146 | return []ArgType(nil) 1147 | case "minherit": 1148 | return []ArgType(nil) 1149 | case "poll": 1150 | return []ArgType(nil) 1151 | case "issetugid": 1152 | return []ArgType(nil) 1153 | case "lchown": 1154 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 1155 | case "getsid": 1156 | return []ArgType{ARG_INT} 1157 | case "msync": 1158 | return []ArgType(nil) 1159 | case "pipe": 1160 | return []ArgType{ARG_PTR} 1161 | case "fhopen": 1162 | return []ArgType(nil) 1163 | case "preadv": 1164 | return []ArgType(nil) 1165 | case "pwritev": 1166 | return []ArgType(nil) 1167 | case "kqueue": 1168 | return []ArgType(nil) 1169 | case "mlockall": 1170 | return []ArgType(nil) 1171 | case "munlockall": 1172 | return []ArgType(nil) 1173 | case "getresuid": 1174 | return []ArgType(nil) 1175 | case "setresuid": 1176 | return []ArgType(nil) 1177 | case "getresgid": 1178 | return []ArgType(nil) 1179 | case "setresgid": 1180 | return []ArgType(nil) 1181 | case "mquery": 1182 | return []ArgType(nil) 1183 | case "closefrom": 1184 | return []ArgType(nil) 1185 | case "sigaltstack": 1186 | return []ArgType(nil) 1187 | case "shmget": 1188 | return []ArgType(nil) 1189 | case "semop": 1190 | return []ArgType(nil) 1191 | case "fhstat": 1192 | return []ArgType(nil) 1193 | case "__semctl": 1194 | return []ArgType(nil) 1195 | case "shmctl": 1196 | return []ArgType(nil) 1197 | case "msgctl": 1198 | return []ArgType(nil) 1199 | case "sched_yield": 1200 | return []ArgType(nil) 1201 | case "getthrid": 1202 | return []ArgType(nil) 1203 | case "__thrwakeup": 1204 | return []ArgType(nil) 1205 | case "__threxit": 1206 | return []ArgType(nil) 1207 | case "__thrsigdivert": 1208 | return []ArgType(nil) 1209 | case "__getcwd": 1210 | return []ArgType(nil) 1211 | case "adjfreq": 1212 | return []ArgType(nil) 1213 | case "setrtable": 1214 | return []ArgType(nil) 1215 | case "getrtable": 1216 | return []ArgType(nil) 1217 | case "faccessat": 1218 | return []ArgType(nil) 1219 | case "fchmodat": 1220 | return []ArgType(nil) 1221 | case "fchownat": 1222 | return []ArgType(nil) 1223 | case "linkat": 1224 | return []ArgType(nil) 1225 | case "mkdirat": 1226 | return []ArgType(nil) 1227 | case "mkfifoat": 1228 | return []ArgType(nil) 1229 | case "mknodat": 1230 | return []ArgType(nil) 1231 | case "openat": 1232 | return []ArgType(nil) 1233 | case "readlinkat": 1234 | return []ArgType(nil) 1235 | case "renameat": 1236 | return []ArgType(nil) 1237 | case "symlinkat": 1238 | return []ArgType(nil) 1239 | case "unlinkat": 1240 | return []ArgType(nil) 1241 | case "__set_tcb": 1242 | return []ArgType(nil) 1243 | case "__get_tcb": 1244 | return []ArgType(nil) 1245 | } 1246 | return nil 1247 | } 1248 | -------------------------------------------------------------------------------- /syscallpp_linux_arm64.go: -------------------------------------------------------------------------------- 1 | // generated file; DO NOT EDIT - use go generate in directory with source 2 | 3 | // +build arm64,linux 4 | 5 | package syscallpp 6 | 7 | func GetName(num int) string { 8 | switch num { 9 | case 0: 10 | return "io_setup" 11 | case 1: 12 | return "io_destroy" 13 | case 2: 14 | return "io_submit" 15 | case 3: 16 | return "io_cancel" 17 | case 4: 18 | return "io_getevents" 19 | case 5: 20 | return "setxattr" 21 | case 6: 22 | return "lsetxattr" 23 | case 7: 24 | return "fsetxattr" 25 | case 8: 26 | return "getxattr" 27 | case 9: 28 | return "lgetxattr" 29 | case 10: 30 | return "fgetxattr" 31 | case 11: 32 | return "listxattr" 33 | case 12: 34 | return "llistxattr" 35 | case 13: 36 | return "flistxattr" 37 | case 14: 38 | return "removexattr" 39 | case 15: 40 | return "lremovexattr" 41 | case 16: 42 | return "fremovexattr" 43 | case 17: 44 | return "getcwd" 45 | case 18: 46 | return "lookup_dcookie" 47 | case 19: 48 | return "eventfd2" 49 | case 20: 50 | return "epoll_create1" 51 | case 21: 52 | return "epoll_ctl" 53 | case 22: 54 | return "epoll_pwait" 55 | case 23: 56 | return "dup" 57 | case 24: 58 | return "dup3" 59 | case 25: 60 | return "fcntl" 61 | case 26: 62 | return "inotify_init1" 63 | case 27: 64 | return "inotify_add_watch" 65 | case 28: 66 | return "inotify_rm_watch" 67 | case 29: 68 | return "ioctl" 69 | case 30: 70 | return "ioprio_set" 71 | case 31: 72 | return "ioprio_get" 73 | case 32: 74 | return "flock" 75 | case 33: 76 | return "mknodat" 77 | case 34: 78 | return "mkdirat" 79 | case 35: 80 | return "unlinkat" 81 | case 36: 82 | return "symlinkat" 83 | case 37: 84 | return "linkat" 85 | case 38: 86 | return "renameat" 87 | case 39: 88 | return "umount2" 89 | case 40: 90 | return "mount" 91 | case 41: 92 | return "pivot_root" 93 | case 42: 94 | return "nfsservctl" 95 | case 43: 96 | return "statfs" 97 | case 44: 98 | return "fstatfs" 99 | case 45: 100 | return "truncate" 101 | case 46: 102 | return "ftruncate" 103 | case 47: 104 | return "fallocate" 105 | case 48: 106 | return "faccessat" 107 | case 49: 108 | return "chdir" 109 | case 50: 110 | return "fchdir" 111 | case 51: 112 | return "chroot" 113 | case 52: 114 | return "fchmod" 115 | case 53: 116 | return "fchmodat" 117 | case 54: 118 | return "fchownat" 119 | case 55: 120 | return "fchown" 121 | case 56: 122 | return "openat" 123 | case 57: 124 | return "close" 125 | case 58: 126 | return "vhangup" 127 | case 59: 128 | return "pipe2" 129 | case 60: 130 | return "quotactl" 131 | case 61: 132 | return "getdents64" 133 | case 62: 134 | return "lseek" 135 | case 63: 136 | return "read" 137 | case 64: 138 | return "write" 139 | case 65: 140 | return "readv" 141 | case 66: 142 | return "writev" 143 | case 67: 144 | return "pread64" 145 | case 68: 146 | return "pwrite64" 147 | case 69: 148 | return "preadv" 149 | case 70: 150 | return "pwritev" 151 | case 71: 152 | return "sendfile" 153 | case 72: 154 | return "pselect6" 155 | case 73: 156 | return "ppoll" 157 | case 74: 158 | return "signalfd4" 159 | case 75: 160 | return "vmsplice" 161 | case 76: 162 | return "splice" 163 | case 77: 164 | return "tee" 165 | case 78: 166 | return "readlinkat" 167 | case 79: 168 | return "newfstatat" 169 | case 80: 170 | return "fstat" 171 | case 81: 172 | return "sync" 173 | case 82: 174 | return "fsync" 175 | case 83: 176 | return "fdatasync" 177 | case 84: 178 | return "sync_file_range" 179 | case 85: 180 | return "timerfd_create" 181 | case 86: 182 | return "timerfd_settime" 183 | case 87: 184 | return "timerfd_gettime" 185 | case 88: 186 | return "utimensat" 187 | case 89: 188 | return "acct" 189 | case 90: 190 | return "capget" 191 | case 91: 192 | return "capset" 193 | case 92: 194 | return "personality" 195 | case 93: 196 | return "exit" 197 | case 94: 198 | return "exit_group" 199 | case 95: 200 | return "waitid" 201 | case 96: 202 | return "set_tid_address" 203 | case 97: 204 | return "unshare" 205 | case 98: 206 | return "futex" 207 | case 99: 208 | return "set_robust_list" 209 | case 100: 210 | return "get_robust_list" 211 | case 101: 212 | return "nanosleep" 213 | case 102: 214 | return "getitimer" 215 | case 103: 216 | return "setitimer" 217 | case 104: 218 | return "kexec_load" 219 | case 105: 220 | return "init_module" 221 | case 106: 222 | return "delete_module" 223 | case 107: 224 | return "timer_create" 225 | case 108: 226 | return "timer_gettime" 227 | case 109: 228 | return "timer_getoverrun" 229 | case 110: 230 | return "timer_settime" 231 | case 111: 232 | return "timer_delete" 233 | case 112: 234 | return "clock_settime" 235 | case 113: 236 | return "clock_gettime" 237 | case 114: 238 | return "clock_getres" 239 | case 115: 240 | return "clock_nanosleep" 241 | case 116: 242 | return "syslog" 243 | case 117: 244 | return "ptrace" 245 | case 118: 246 | return "sched_setparam" 247 | case 119: 248 | return "sched_setscheduler" 249 | case 120: 250 | return "sched_getscheduler" 251 | case 121: 252 | return "sched_getparam" 253 | case 122: 254 | return "sched_setaffinity" 255 | case 123: 256 | return "sched_getaffinity" 257 | case 124: 258 | return "sched_yield" 259 | case 125: 260 | return "sched_get_priority_max" 261 | case 126: 262 | return "sched_get_priority_min" 263 | case 127: 264 | return "sched_rr_get_interval" 265 | case 128: 266 | return "restart_syscall" 267 | case 129: 268 | return "kill" 269 | case 130: 270 | return "tkill" 271 | case 131: 272 | return "tgkill" 273 | case 132: 274 | return "sigaltstack" 275 | case 133: 276 | return "rt_sigsuspend" 277 | case 134: 278 | return "rt_sigaction" 279 | case 135: 280 | return "rt_sigprocmask" 281 | case 136: 282 | return "rt_sigpending" 283 | case 137: 284 | return "rt_sigtimedwait" 285 | case 138: 286 | return "rt_sigqueueinfo" 287 | case 139: 288 | return "rt_sigreturn" 289 | case 140: 290 | return "setpriority" 291 | case 141: 292 | return "getpriority" 293 | case 142: 294 | return "reboot" 295 | case 143: 296 | return "setregid" 297 | case 144: 298 | return "setgid" 299 | case 145: 300 | return "setreuid" 301 | case 146: 302 | return "setuid" 303 | case 147: 304 | return "setresuid" 305 | case 148: 306 | return "getresuid" 307 | case 149: 308 | return "setresgid" 309 | case 150: 310 | return "getresgid" 311 | case 151: 312 | return "setfsuid" 313 | case 152: 314 | return "setfsgid" 315 | case 153: 316 | return "times" 317 | case 154: 318 | return "setpgid" 319 | case 155: 320 | return "getpgid" 321 | case 156: 322 | return "getsid" 323 | case 157: 324 | return "setsid" 325 | case 158: 326 | return "getgroups" 327 | case 159: 328 | return "setgroups" 329 | case 160: 330 | return "uname" 331 | case 161: 332 | return "sethostname" 333 | case 162: 334 | return "setdomainname" 335 | case 163: 336 | return "getrlimit" 337 | case 164: 338 | return "setrlimit" 339 | case 165: 340 | return "getrusage" 341 | case 166: 342 | return "umask" 343 | case 167: 344 | return "prctl" 345 | case 168: 346 | return "getcpu" 347 | case 169: 348 | return "gettimeofday" 349 | case 170: 350 | return "settimeofday" 351 | case 171: 352 | return "adjtimex" 353 | case 172: 354 | return "getpid" 355 | case 173: 356 | return "getppid" 357 | case 174: 358 | return "getuid" 359 | case 175: 360 | return "geteuid" 361 | case 176: 362 | return "getgid" 363 | case 177: 364 | return "getegid" 365 | case 178: 366 | return "gettid" 367 | case 179: 368 | return "sysinfo" 369 | case 180: 370 | return "mq_open" 371 | case 181: 372 | return "mq_unlink" 373 | case 182: 374 | return "mq_timedsend" 375 | case 183: 376 | return "mq_timedreceive" 377 | case 184: 378 | return "mq_notify" 379 | case 185: 380 | return "mq_getsetattr" 381 | case 186: 382 | return "msgget" 383 | case 187: 384 | return "msgctl" 385 | case 188: 386 | return "msgrcv" 387 | case 189: 388 | return "msgsnd" 389 | case 190: 390 | return "semget" 391 | case 191: 392 | return "semctl" 393 | case 192: 394 | return "semtimedop" 395 | case 193: 396 | return "semop" 397 | case 194: 398 | return "shmget" 399 | case 195: 400 | return "shmctl" 401 | case 196: 402 | return "shmat" 403 | case 197: 404 | return "shmdt" 405 | case 198: 406 | return "socket" 407 | case 199: 408 | return "socketpair" 409 | case 200: 410 | return "bind" 411 | case 201: 412 | return "listen" 413 | case 202: 414 | return "accept" 415 | case 203: 416 | return "connect" 417 | case 204: 418 | return "getsockname" 419 | case 205: 420 | return "getpeername" 421 | case 206: 422 | return "sendto" 423 | case 207: 424 | return "recvfrom" 425 | case 208: 426 | return "setsockopt" 427 | case 209: 428 | return "getsockopt" 429 | case 210: 430 | return "shutdown" 431 | case 211: 432 | return "sendmsg" 433 | case 212: 434 | return "recvmsg" 435 | case 213: 436 | return "readahead" 437 | case 214: 438 | return "brk" 439 | case 215: 440 | return "munmap" 441 | case 216: 442 | return "mremap" 443 | case 217: 444 | return "add_key" 445 | case 218: 446 | return "request_key" 447 | case 219: 448 | return "keyctl" 449 | case 220: 450 | return "clone" 451 | case 221: 452 | return "execve" 453 | case 222: 454 | return "mmap" 455 | case 223: 456 | return "fadvise64" 457 | case 224: 458 | return "swapon" 459 | case 225: 460 | return "swapoff" 461 | case 226: 462 | return "mprotect" 463 | case 227: 464 | return "msync" 465 | case 228: 466 | return "mlock" 467 | case 229: 468 | return "munlock" 469 | case 230: 470 | return "mlockall" 471 | case 231: 472 | return "munlockall" 473 | case 232: 474 | return "mincore" 475 | case 233: 476 | return "madvise" 477 | case 234: 478 | return "remap_file_pages" 479 | case 235: 480 | return "mbind" 481 | case 236: 482 | return "get_mempolicy" 483 | case 237: 484 | return "set_mempolicy" 485 | case 238: 486 | return "migrate_pages" 487 | case 239: 488 | return "move_pages" 489 | case 240: 490 | return "rt_tgsigqueueinfo" 491 | case 241: 492 | return "perf_event_open" 493 | case 242: 494 | return "accept4" 495 | case 243: 496 | return "recvmmsg" 497 | case 244: 498 | return "arch_specific_syscall" 499 | case 260: 500 | return "wait4" 501 | case 261: 502 | return "prlimit64" 503 | case 262: 504 | return "fanotify_init" 505 | case 263: 506 | return "fanotify_mark" 507 | case 264: 508 | return "name_to_handle_at" 509 | case 265: 510 | return "open_by_handle_at" 511 | case 266: 512 | return "clock_adjtime" 513 | case 267: 514 | return "syncfs" 515 | case 268: 516 | return "setns" 517 | case 269: 518 | return "sendmmsg" 519 | case 270: 520 | return "process_vm_readv" 521 | case 271: 522 | return "process_vm_writev" 523 | case 272: 524 | return "kcmp" 525 | case 273: 526 | return "finit_module" 527 | case 274: 528 | return "sched_setattr" 529 | case 275: 530 | return "sched_getattr" 531 | case 276: 532 | return "renameat2" 533 | case 277: 534 | return "seccomp" 535 | case 278: 536 | return "getrandom" 537 | case 279: 538 | return "memfd_create" 539 | case 280: 540 | return "bpf" 541 | case 281: 542 | return "execveat" 543 | case 282: 544 | return "userfaultfd" 545 | case 283: 546 | return "membarrier" 547 | } 548 | return "unknown" 549 | } 550 | 551 | func GetNum(name string) int { 552 | switch name { 553 | case "io_setup": 554 | return 0 555 | case "io_destroy": 556 | return 1 557 | case "io_submit": 558 | return 2 559 | case "io_cancel": 560 | return 3 561 | case "io_getevents": 562 | return 4 563 | case "setxattr": 564 | return 5 565 | case "lsetxattr": 566 | return 6 567 | case "fsetxattr": 568 | return 7 569 | case "getxattr": 570 | return 8 571 | case "lgetxattr": 572 | return 9 573 | case "fgetxattr": 574 | return 10 575 | case "listxattr": 576 | return 11 577 | case "llistxattr": 578 | return 12 579 | case "flistxattr": 580 | return 13 581 | case "removexattr": 582 | return 14 583 | case "lremovexattr": 584 | return 15 585 | case "fremovexattr": 586 | return 16 587 | case "getcwd": 588 | return 17 589 | case "lookup_dcookie": 590 | return 18 591 | case "eventfd2": 592 | return 19 593 | case "epoll_create1": 594 | return 20 595 | case "epoll_ctl": 596 | return 21 597 | case "epoll_pwait": 598 | return 22 599 | case "dup": 600 | return 23 601 | case "dup3": 602 | return 24 603 | case "fcntl": 604 | return 25 605 | case "inotify_init1": 606 | return 26 607 | case "inotify_add_watch": 608 | return 27 609 | case "inotify_rm_watch": 610 | return 28 611 | case "ioctl": 612 | return 29 613 | case "ioprio_set": 614 | return 30 615 | case "ioprio_get": 616 | return 31 617 | case "flock": 618 | return 32 619 | case "mknodat": 620 | return 33 621 | case "mkdirat": 622 | return 34 623 | case "unlinkat": 624 | return 35 625 | case "symlinkat": 626 | return 36 627 | case "linkat": 628 | return 37 629 | case "renameat": 630 | return 38 631 | case "umount2": 632 | return 39 633 | case "mount": 634 | return 40 635 | case "pivot_root": 636 | return 41 637 | case "nfsservctl": 638 | return 42 639 | case "statfs": 640 | return 43 641 | case "fstatfs": 642 | return 44 643 | case "truncate": 644 | return 45 645 | case "ftruncate": 646 | return 46 647 | case "fallocate": 648 | return 47 649 | case "faccessat": 650 | return 48 651 | case "chdir": 652 | return 49 653 | case "fchdir": 654 | return 50 655 | case "chroot": 656 | return 51 657 | case "fchmod": 658 | return 52 659 | case "fchmodat": 660 | return 53 661 | case "fchownat": 662 | return 54 663 | case "fchown": 664 | return 55 665 | case "openat": 666 | return 56 667 | case "close": 668 | return 57 669 | case "vhangup": 670 | return 58 671 | case "pipe2": 672 | return 59 673 | case "quotactl": 674 | return 60 675 | case "getdents64": 676 | return 61 677 | case "lseek": 678 | return 62 679 | case "read": 680 | return 63 681 | case "write": 682 | return 64 683 | case "readv": 684 | return 65 685 | case "writev": 686 | return 66 687 | case "pread64": 688 | return 67 689 | case "pwrite64": 690 | return 68 691 | case "preadv": 692 | return 69 693 | case "pwritev": 694 | return 70 695 | case "sendfile": 696 | return 71 697 | case "pselect6": 698 | return 72 699 | case "ppoll": 700 | return 73 701 | case "signalfd4": 702 | return 74 703 | case "vmsplice": 704 | return 75 705 | case "splice": 706 | return 76 707 | case "tee": 708 | return 77 709 | case "readlinkat": 710 | return 78 711 | case "newfstatat": 712 | return 79 713 | case "fstat": 714 | return 80 715 | case "sync": 716 | return 81 717 | case "fsync": 718 | return 82 719 | case "fdatasync": 720 | return 83 721 | case "sync_file_range": 722 | return 84 723 | case "timerfd_create": 724 | return 85 725 | case "timerfd_settime": 726 | return 86 727 | case "timerfd_gettime": 728 | return 87 729 | case "utimensat": 730 | return 88 731 | case "acct": 732 | return 89 733 | case "capget": 734 | return 90 735 | case "capset": 736 | return 91 737 | case "personality": 738 | return 92 739 | case "exit": 740 | return 93 741 | case "exit_group": 742 | return 94 743 | case "waitid": 744 | return 95 745 | case "set_tid_address": 746 | return 96 747 | case "unshare": 748 | return 97 749 | case "futex": 750 | return 98 751 | case "set_robust_list": 752 | return 99 753 | case "get_robust_list": 754 | return 100 755 | case "nanosleep": 756 | return 101 757 | case "getitimer": 758 | return 102 759 | case "setitimer": 760 | return 103 761 | case "kexec_load": 762 | return 104 763 | case "init_module": 764 | return 105 765 | case "delete_module": 766 | return 106 767 | case "timer_create": 768 | return 107 769 | case "timer_gettime": 770 | return 108 771 | case "timer_getoverrun": 772 | return 109 773 | case "timer_settime": 774 | return 110 775 | case "timer_delete": 776 | return 111 777 | case "clock_settime": 778 | return 112 779 | case "clock_gettime": 780 | return 113 781 | case "clock_getres": 782 | return 114 783 | case "clock_nanosleep": 784 | return 115 785 | case "syslog": 786 | return 116 787 | case "ptrace": 788 | return 117 789 | case "sched_setparam": 790 | return 118 791 | case "sched_setscheduler": 792 | return 119 793 | case "sched_getscheduler": 794 | return 120 795 | case "sched_getparam": 796 | return 121 797 | case "sched_setaffinity": 798 | return 122 799 | case "sched_getaffinity": 800 | return 123 801 | case "sched_yield": 802 | return 124 803 | case "sched_get_priority_max": 804 | return 125 805 | case "sched_get_priority_min": 806 | return 126 807 | case "sched_rr_get_interval": 808 | return 127 809 | case "restart_syscall": 810 | return 128 811 | case "kill": 812 | return 129 813 | case "tkill": 814 | return 130 815 | case "tgkill": 816 | return 131 817 | case "sigaltstack": 818 | return 132 819 | case "rt_sigsuspend": 820 | return 133 821 | case "rt_sigaction": 822 | return 134 823 | case "rt_sigprocmask": 824 | return 135 825 | case "rt_sigpending": 826 | return 136 827 | case "rt_sigtimedwait": 828 | return 137 829 | case "rt_sigqueueinfo": 830 | return 138 831 | case "rt_sigreturn": 832 | return 139 833 | case "setpriority": 834 | return 140 835 | case "getpriority": 836 | return 141 837 | case "reboot": 838 | return 142 839 | case "setregid": 840 | return 143 841 | case "setgid": 842 | return 144 843 | case "setreuid": 844 | return 145 845 | case "setuid": 846 | return 146 847 | case "setresuid": 848 | return 147 849 | case "getresuid": 850 | return 148 851 | case "setresgid": 852 | return 149 853 | case "getresgid": 854 | return 150 855 | case "setfsuid": 856 | return 151 857 | case "setfsgid": 858 | return 152 859 | case "times": 860 | return 153 861 | case "setpgid": 862 | return 154 863 | case "getpgid": 864 | return 155 865 | case "getsid": 866 | return 156 867 | case "setsid": 868 | return 157 869 | case "getgroups": 870 | return 158 871 | case "setgroups": 872 | return 159 873 | case "uname": 874 | return 160 875 | case "sethostname": 876 | return 161 877 | case "setdomainname": 878 | return 162 879 | case "getrlimit": 880 | return 163 881 | case "setrlimit": 882 | return 164 883 | case "getrusage": 884 | return 165 885 | case "umask": 886 | return 166 887 | case "prctl": 888 | return 167 889 | case "getcpu": 890 | return 168 891 | case "gettimeofday": 892 | return 169 893 | case "settimeofday": 894 | return 170 895 | case "adjtimex": 896 | return 171 897 | case "getpid": 898 | return 172 899 | case "getppid": 900 | return 173 901 | case "getuid": 902 | return 174 903 | case "geteuid": 904 | return 175 905 | case "getgid": 906 | return 176 907 | case "getegid": 908 | return 177 909 | case "gettid": 910 | return 178 911 | case "sysinfo": 912 | return 179 913 | case "mq_open": 914 | return 180 915 | case "mq_unlink": 916 | return 181 917 | case "mq_timedsend": 918 | return 182 919 | case "mq_timedreceive": 920 | return 183 921 | case "mq_notify": 922 | return 184 923 | case "mq_getsetattr": 924 | return 185 925 | case "msgget": 926 | return 186 927 | case "msgctl": 928 | return 187 929 | case "msgrcv": 930 | return 188 931 | case "msgsnd": 932 | return 189 933 | case "semget": 934 | return 190 935 | case "semctl": 936 | return 191 937 | case "semtimedop": 938 | return 192 939 | case "semop": 940 | return 193 941 | case "shmget": 942 | return 194 943 | case "shmctl": 944 | return 195 945 | case "shmat": 946 | return 196 947 | case "shmdt": 948 | return 197 949 | case "socket": 950 | return 198 951 | case "socketpair": 952 | return 199 953 | case "bind": 954 | return 200 955 | case "listen": 956 | return 201 957 | case "accept": 958 | return 202 959 | case "connect": 960 | return 203 961 | case "getsockname": 962 | return 204 963 | case "getpeername": 964 | return 205 965 | case "sendto": 966 | return 206 967 | case "recvfrom": 968 | return 207 969 | case "setsockopt": 970 | return 208 971 | case "getsockopt": 972 | return 209 973 | case "shutdown": 974 | return 210 975 | case "sendmsg": 976 | return 211 977 | case "recvmsg": 978 | return 212 979 | case "readahead": 980 | return 213 981 | case "brk": 982 | return 214 983 | case "munmap": 984 | return 215 985 | case "mremap": 986 | return 216 987 | case "add_key": 988 | return 217 989 | case "request_key": 990 | return 218 991 | case "keyctl": 992 | return 219 993 | case "clone": 994 | return 220 995 | case "execve": 996 | return 221 997 | case "mmap": 998 | return 222 999 | case "fadvise64": 1000 | return 223 1001 | case "swapon": 1002 | return 224 1003 | case "swapoff": 1004 | return 225 1005 | case "mprotect": 1006 | return 226 1007 | case "msync": 1008 | return 227 1009 | case "mlock": 1010 | return 228 1011 | case "munlock": 1012 | return 229 1013 | case "mlockall": 1014 | return 230 1015 | case "munlockall": 1016 | return 231 1017 | case "mincore": 1018 | return 232 1019 | case "madvise": 1020 | return 233 1021 | case "remap_file_pages": 1022 | return 234 1023 | case "mbind": 1024 | return 235 1025 | case "get_mempolicy": 1026 | return 236 1027 | case "set_mempolicy": 1028 | return 237 1029 | case "migrate_pages": 1030 | return 238 1031 | case "move_pages": 1032 | return 239 1033 | case "rt_tgsigqueueinfo": 1034 | return 240 1035 | case "perf_event_open": 1036 | return 241 1037 | case "accept4": 1038 | return 242 1039 | case "recvmmsg": 1040 | return 243 1041 | case "arch_specific_syscall": 1042 | return 244 1043 | case "wait4": 1044 | return 260 1045 | case "prlimit64": 1046 | return 261 1047 | case "fanotify_init": 1048 | return 262 1049 | case "fanotify_mark": 1050 | return 263 1051 | case "name_to_handle_at": 1052 | return 264 1053 | case "open_by_handle_at": 1054 | return 265 1055 | case "clock_adjtime": 1056 | return 266 1057 | case "syncfs": 1058 | return 267 1059 | case "setns": 1060 | return 268 1061 | case "sendmmsg": 1062 | return 269 1063 | case "process_vm_readv": 1064 | return 270 1065 | case "process_vm_writev": 1066 | return 271 1067 | case "kcmp": 1068 | return 272 1069 | case "finit_module": 1070 | return 273 1071 | case "sched_setattr": 1072 | return 274 1073 | case "sched_getattr": 1074 | return 275 1075 | case "renameat2": 1076 | return 276 1077 | case "seccomp": 1078 | return 277 1079 | case "getrandom": 1080 | return 278 1081 | case "memfd_create": 1082 | return 279 1083 | case "bpf": 1084 | return 280 1085 | case "execveat": 1086 | return 281 1087 | case "userfaultfd": 1088 | return 282 1089 | case "membarrier": 1090 | return 283 1091 | } 1092 | return -1 1093 | } 1094 | 1095 | func GetArgsTypes(name string) []ArgType { 1096 | switch name { 1097 | case "io_setup": 1098 | return []ArgType(nil) 1099 | case "io_destroy": 1100 | return []ArgType(nil) 1101 | case "io_submit": 1102 | return []ArgType(nil) 1103 | case "io_cancel": 1104 | return []ArgType(nil) 1105 | case "io_getevents": 1106 | return []ArgType(nil) 1107 | case "setxattr": 1108 | return []ArgType{ARG_STR, ARG_STR, ARG_PTR, ARG_INT} 1109 | case "lsetxattr": 1110 | return []ArgType(nil) 1111 | case "fsetxattr": 1112 | return []ArgType(nil) 1113 | case "getxattr": 1114 | return []ArgType{ARG_STR, ARG_STR, ARG_PTR} 1115 | case "lgetxattr": 1116 | return []ArgType(nil) 1117 | case "fgetxattr": 1118 | return []ArgType(nil) 1119 | case "listxattr": 1120 | return []ArgType{ARG_STR, ARG_PTR} 1121 | case "llistxattr": 1122 | return []ArgType(nil) 1123 | case "flistxattr": 1124 | return []ArgType(nil) 1125 | case "removexattr": 1126 | return []ArgType{ARG_STR, ARG_STR} 1127 | case "lremovexattr": 1128 | return []ArgType(nil) 1129 | case "fremovexattr": 1130 | return []ArgType(nil) 1131 | case "getcwd": 1132 | return []ArgType{ARG_PTR} 1133 | case "lookup_dcookie": 1134 | return []ArgType(nil) 1135 | case "eventfd2": 1136 | return []ArgType(nil) 1137 | case "epoll_create1": 1138 | return []ArgType(nil) 1139 | case "epoll_ctl": 1140 | return []ArgType(nil) 1141 | case "epoll_pwait": 1142 | return []ArgType(nil) 1143 | case "dup": 1144 | return []ArgType{ARG_INT} 1145 | case "dup3": 1146 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1147 | case "fcntl": 1148 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1149 | case "inotify_init1": 1150 | return []ArgType(nil) 1151 | case "inotify_add_watch": 1152 | return []ArgType(nil) 1153 | case "inotify_rm_watch": 1154 | return []ArgType(nil) 1155 | case "ioctl": 1156 | return []ArgType(nil) 1157 | case "ioprio_set": 1158 | return []ArgType(nil) 1159 | case "ioprio_get": 1160 | return []ArgType(nil) 1161 | case "flock": 1162 | return []ArgType{ARG_INT, ARG_INT} 1163 | case "mknodat": 1164 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT} 1165 | case "mkdirat": 1166 | return []ArgType{ARG_INT, ARG_STR, ARG_INT} 1167 | case "unlinkat": 1168 | return []ArgType{ARG_INT, ARG_STR, ARG_INT} 1169 | case "symlinkat": 1170 | return []ArgType{ARG_STR, ARG_INT, ARG_STR} 1171 | case "linkat": 1172 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_STR, ARG_INT} 1173 | case "renameat": 1174 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_STR} 1175 | case "umount2": 1176 | return []ArgType(nil) 1177 | case "mount": 1178 | return []ArgType{ARG_STR, ARG_STR, ARG_STR, ARG_INT, ARG_PTR} 1179 | case "pivot_root": 1180 | return []ArgType(nil) 1181 | case "nfsservctl": 1182 | return []ArgType(nil) 1183 | case "statfs": 1184 | return []ArgType{ARG_STR, ARG_PTR} 1185 | case "fstatfs": 1186 | return []ArgType{ARG_INT, ARG_PTR} 1187 | case "truncate": 1188 | return []ArgType{ARG_STR, ARG_PTR} 1189 | case "ftruncate": 1190 | return []ArgType{ARG_INT, ARG_PTR} 1191 | case "fallocate": 1192 | return []ArgType{ARG_INT, ARG_INT, ARG_PTR, ARG_PTR} 1193 | case "faccessat": 1194 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT} 1195 | case "chdir": 1196 | return []ArgType{ARG_STR} 1197 | case "fchdir": 1198 | return []ArgType{ARG_INT} 1199 | case "chroot": 1200 | return []ArgType{ARG_STR} 1201 | case "fchmod": 1202 | return []ArgType{ARG_INT, ARG_INT} 1203 | case "fchmodat": 1204 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT} 1205 | case "fchownat": 1206 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT, ARG_INT} 1207 | case "fchown": 1208 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1209 | case "openat": 1210 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT} 1211 | case "close": 1212 | return []ArgType{ARG_INT} 1213 | case "vhangup": 1214 | return []ArgType(nil) 1215 | case "pipe2": 1216 | return []ArgType{ARG_PTR, ARG_INT} 1217 | case "quotactl": 1218 | return []ArgType(nil) 1219 | case "getdents64": 1220 | return []ArgType(nil) 1221 | case "lseek": 1222 | return []ArgType(nil) 1223 | case "read": 1224 | return []ArgType{ARG_INT, ARG_PTR} 1225 | case "write": 1226 | return []ArgType{ARG_INT, ARG_PTR} 1227 | case "readv": 1228 | return []ArgType(nil) 1229 | case "writev": 1230 | return []ArgType(nil) 1231 | case "pread64": 1232 | return []ArgType(nil) 1233 | case "pwrite64": 1234 | return []ArgType(nil) 1235 | case "preadv": 1236 | return []ArgType(nil) 1237 | case "pwritev": 1238 | return []ArgType(nil) 1239 | case "sendfile": 1240 | return []ArgType{ARG_INT, ARG_INT, ARG_PTR, ARG_INT} 1241 | case "pselect6": 1242 | return []ArgType(nil) 1243 | case "ppoll": 1244 | return []ArgType(nil) 1245 | case "signalfd4": 1246 | return []ArgType(nil) 1247 | case "vmsplice": 1248 | return []ArgType(nil) 1249 | case "splice": 1250 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_INT, ARG_INT} 1251 | case "tee": 1252 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT} 1253 | case "readlinkat": 1254 | return []ArgType{ARG_INT, ARG_STR, ARG_PTR} 1255 | case "newfstatat": 1256 | return []ArgType(nil) 1257 | case "fstat": 1258 | return []ArgType{ARG_INT, ARG_PTR} 1259 | case "sync": 1260 | return []ArgType(nil) 1261 | case "fsync": 1262 | return []ArgType{ARG_INT} 1263 | case "fdatasync": 1264 | return []ArgType{ARG_INT} 1265 | case "sync_file_range": 1266 | return []ArgType(nil) 1267 | case "timerfd_create": 1268 | return []ArgType(nil) 1269 | case "timerfd_settime": 1270 | return []ArgType(nil) 1271 | case "timerfd_gettime": 1272 | return []ArgType(nil) 1273 | case "utimensat": 1274 | return []ArgType{ARG_INT, ARG_STR, ARG_PTR} 1275 | case "acct": 1276 | return []ArgType{ARG_STR} 1277 | case "capget": 1278 | return []ArgType(nil) 1279 | case "capset": 1280 | return []ArgType(nil) 1281 | case "personality": 1282 | return []ArgType(nil) 1283 | case "exit": 1284 | return []ArgType{ARG_INT} 1285 | case "exit_group": 1286 | return []ArgType(nil) 1287 | case "waitid": 1288 | return []ArgType(nil) 1289 | case "set_tid_address": 1290 | return []ArgType(nil) 1291 | case "unshare": 1292 | return []ArgType{ARG_INT} 1293 | case "futex": 1294 | return []ArgType(nil) 1295 | case "set_robust_list": 1296 | return []ArgType(nil) 1297 | case "get_robust_list": 1298 | return []ArgType(nil) 1299 | case "nanosleep": 1300 | return []ArgType{ARG_PTR, ARG_PTR} 1301 | case "getitimer": 1302 | return []ArgType(nil) 1303 | case "setitimer": 1304 | return []ArgType(nil) 1305 | case "kexec_load": 1306 | return []ArgType(nil) 1307 | case "init_module": 1308 | return []ArgType(nil) 1309 | case "delete_module": 1310 | return []ArgType(nil) 1311 | case "timer_create": 1312 | return []ArgType(nil) 1313 | case "timer_gettime": 1314 | return []ArgType(nil) 1315 | case "timer_getoverrun": 1316 | return []ArgType(nil) 1317 | case "timer_settime": 1318 | return []ArgType(nil) 1319 | case "timer_delete": 1320 | return []ArgType(nil) 1321 | case "clock_settime": 1322 | return []ArgType(nil) 1323 | case "clock_gettime": 1324 | return []ArgType(nil) 1325 | case "clock_getres": 1326 | return []ArgType(nil) 1327 | case "clock_nanosleep": 1328 | return []ArgType(nil) 1329 | case "syslog": 1330 | return []ArgType(nil) 1331 | case "ptrace": 1332 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT} 1333 | case "sched_setparam": 1334 | return []ArgType(nil) 1335 | case "sched_setscheduler": 1336 | return []ArgType(nil) 1337 | case "sched_getscheduler": 1338 | return []ArgType(nil) 1339 | case "sched_getparam": 1340 | return []ArgType(nil) 1341 | case "sched_setaffinity": 1342 | return []ArgType(nil) 1343 | case "sched_getaffinity": 1344 | return []ArgType(nil) 1345 | case "sched_yield": 1346 | return []ArgType(nil) 1347 | case "sched_get_priority_max": 1348 | return []ArgType(nil) 1349 | case "sched_get_priority_min": 1350 | return []ArgType(nil) 1351 | case "sched_rr_get_interval": 1352 | return []ArgType(nil) 1353 | case "restart_syscall": 1354 | return []ArgType(nil) 1355 | case "kill": 1356 | return []ArgType{ARG_INT, ARG_PTR} 1357 | case "tkill": 1358 | return []ArgType(nil) 1359 | case "tgkill": 1360 | return []ArgType{ARG_INT, ARG_INT, ARG_PTR} 1361 | case "sigaltstack": 1362 | return []ArgType(nil) 1363 | case "rt_sigsuspend": 1364 | return []ArgType(nil) 1365 | case "rt_sigaction": 1366 | return []ArgType(nil) 1367 | case "rt_sigprocmask": 1368 | return []ArgType(nil) 1369 | case "rt_sigpending": 1370 | return []ArgType(nil) 1371 | case "rt_sigtimedwait": 1372 | return []ArgType(nil) 1373 | case "rt_sigqueueinfo": 1374 | return []ArgType(nil) 1375 | case "rt_sigreturn": 1376 | return []ArgType(nil) 1377 | case "setpriority": 1378 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1379 | case "getpriority": 1380 | return []ArgType{ARG_INT, ARG_INT} 1381 | case "reboot": 1382 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_STR} 1383 | case "setregid": 1384 | return []ArgType{ARG_INT, ARG_INT} 1385 | case "setgid": 1386 | return []ArgType{ARG_INT} 1387 | case "setreuid": 1388 | return []ArgType{ARG_INT, ARG_INT} 1389 | case "setuid": 1390 | return []ArgType{ARG_INT} 1391 | case "setresuid": 1392 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1393 | case "getresuid": 1394 | return []ArgType(nil) 1395 | case "setresgid": 1396 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1397 | case "getresgid": 1398 | return []ArgType(nil) 1399 | case "setfsuid": 1400 | return []ArgType{ARG_INT} 1401 | case "setfsgid": 1402 | return []ArgType{ARG_INT} 1403 | case "times": 1404 | return []ArgType{ARG_PTR} 1405 | case "setpgid": 1406 | return []ArgType{ARG_INT, ARG_INT} 1407 | case "getpgid": 1408 | return []ArgType{ARG_INT} 1409 | case "getsid": 1410 | return []ArgType(nil) 1411 | case "setsid": 1412 | return []ArgType(nil) 1413 | case "getgroups": 1414 | return []ArgType{ARG_INT, ARG_PTR} 1415 | case "setgroups": 1416 | return []ArgType{ARG_INT, ARG_PTR} 1417 | case "uname": 1418 | return []ArgType{ARG_PTR} 1419 | case "sethostname": 1420 | return []ArgType{ARG_PTR} 1421 | case "setdomainname": 1422 | return []ArgType{ARG_PTR} 1423 | case "getrlimit": 1424 | return []ArgType{ARG_INT, ARG_PTR} 1425 | case "setrlimit": 1426 | return []ArgType{ARG_INT, ARG_PTR} 1427 | case "getrusage": 1428 | return []ArgType{ARG_INT, ARG_PTR} 1429 | case "umask": 1430 | return []ArgType{ARG_INT} 1431 | case "prctl": 1432 | return []ArgType(nil) 1433 | case "getcpu": 1434 | return []ArgType(nil) 1435 | case "gettimeofday": 1436 | return []ArgType{ARG_PTR} 1437 | case "settimeofday": 1438 | return []ArgType{ARG_PTR} 1439 | case "adjtimex": 1440 | return []ArgType{ARG_PTR} 1441 | case "getpid": 1442 | return []ArgType(nil) 1443 | case "getppid": 1444 | return []ArgType(nil) 1445 | case "getuid": 1446 | return []ArgType(nil) 1447 | case "geteuid": 1448 | return []ArgType(nil) 1449 | case "getgid": 1450 | return []ArgType(nil) 1451 | case "getegid": 1452 | return []ArgType(nil) 1453 | case "gettid": 1454 | return []ArgType(nil) 1455 | case "sysinfo": 1456 | return []ArgType{ARG_PTR} 1457 | case "mq_open": 1458 | return []ArgType(nil) 1459 | case "mq_unlink": 1460 | return []ArgType(nil) 1461 | case "mq_timedsend": 1462 | return []ArgType(nil) 1463 | case "mq_timedreceive": 1464 | return []ArgType(nil) 1465 | case "mq_notify": 1466 | return []ArgType(nil) 1467 | case "mq_getsetattr": 1468 | return []ArgType(nil) 1469 | case "msgget": 1470 | return []ArgType(nil) 1471 | case "msgctl": 1472 | return []ArgType(nil) 1473 | case "msgrcv": 1474 | return []ArgType(nil) 1475 | case "msgsnd": 1476 | return []ArgType(nil) 1477 | case "semget": 1478 | return []ArgType(nil) 1479 | case "semctl": 1480 | return []ArgType(nil) 1481 | case "semtimedop": 1482 | return []ArgType(nil) 1483 | case "semop": 1484 | return []ArgType(nil) 1485 | case "shmget": 1486 | return []ArgType(nil) 1487 | case "shmctl": 1488 | return []ArgType(nil) 1489 | case "shmat": 1490 | return []ArgType(nil) 1491 | case "shmdt": 1492 | return []ArgType(nil) 1493 | case "socket": 1494 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1495 | case "socketpair": 1496 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1497 | case "bind": 1498 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1499 | case "listen": 1500 | return []ArgType{ARG_INT, ARG_INT} 1501 | case "accept": 1502 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1503 | case "connect": 1504 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1505 | case "getsockname": 1506 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1507 | case "getpeername": 1508 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1509 | case "sendto": 1510 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 1511 | case "recvfrom": 1512 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 1513 | case "setsockopt": 1514 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_INT} 1515 | case "getsockopt": 1516 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_PTR} 1517 | case "shutdown": 1518 | return []ArgType{ARG_INT, ARG_INT} 1519 | case "sendmsg": 1520 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 1521 | case "recvmsg": 1522 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 1523 | case "readahead": 1524 | return []ArgType(nil) 1525 | case "brk": 1526 | return []ArgType(nil) 1527 | case "munmap": 1528 | return []ArgType{ARG_INT, ARG_INT} 1529 | case "mremap": 1530 | return []ArgType(nil) 1531 | case "add_key": 1532 | return []ArgType(nil) 1533 | case "request_key": 1534 | return []ArgType(nil) 1535 | case "keyctl": 1536 | return []ArgType(nil) 1537 | case "clone": 1538 | return []ArgType(nil) 1539 | case "execve": 1540 | return []ArgType(nil) 1541 | case "mmap": 1542 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1543 | case "fadvise64": 1544 | return []ArgType(nil) 1545 | case "swapon": 1546 | return []ArgType(nil) 1547 | case "swapoff": 1548 | return []ArgType(nil) 1549 | case "mprotect": 1550 | return []ArgType{ARG_PTR, ARG_INT} 1551 | case "msync": 1552 | return []ArgType(nil) 1553 | case "mlock": 1554 | return []ArgType{ARG_PTR} 1555 | case "munlock": 1556 | return []ArgType{ARG_PTR} 1557 | case "mlockall": 1558 | return []ArgType{ARG_INT} 1559 | case "munlockall": 1560 | return []ArgType(nil) 1561 | case "mincore": 1562 | return []ArgType(nil) 1563 | case "madvise": 1564 | return []ArgType{ARG_PTR, ARG_INT} 1565 | case "remap_file_pages": 1566 | return []ArgType(nil) 1567 | case "mbind": 1568 | return []ArgType(nil) 1569 | case "get_mempolicy": 1570 | return []ArgType(nil) 1571 | case "set_mempolicy": 1572 | return []ArgType(nil) 1573 | case "migrate_pages": 1574 | return []ArgType(nil) 1575 | case "move_pages": 1576 | return []ArgType(nil) 1577 | case "rt_tgsigqueueinfo": 1578 | return []ArgType(nil) 1579 | case "perf_event_open": 1580 | return []ArgType(nil) 1581 | case "accept4": 1582 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR, ARG_INT} 1583 | case "recvmmsg": 1584 | return []ArgType(nil) 1585 | case "arch_specific_syscall": 1586 | return []ArgType(nil) 1587 | case "wait4": 1588 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR} 1589 | case "prlimit64": 1590 | return []ArgType(nil) 1591 | case "fanotify_init": 1592 | return []ArgType(nil) 1593 | case "fanotify_mark": 1594 | return []ArgType(nil) 1595 | case "name_to_handle_at": 1596 | return []ArgType(nil) 1597 | case "open_by_handle_at": 1598 | return []ArgType(nil) 1599 | case "clock_adjtime": 1600 | return []ArgType(nil) 1601 | case "syncfs": 1602 | return []ArgType(nil) 1603 | case "setns": 1604 | return []ArgType(nil) 1605 | case "sendmmsg": 1606 | return []ArgType(nil) 1607 | case "process_vm_readv": 1608 | return []ArgType(nil) 1609 | case "process_vm_writev": 1610 | return []ArgType(nil) 1611 | case "kcmp": 1612 | return []ArgType(nil) 1613 | case "finit_module": 1614 | return []ArgType(nil) 1615 | case "sched_setattr": 1616 | return []ArgType(nil) 1617 | case "sched_getattr": 1618 | return []ArgType(nil) 1619 | case "renameat2": 1620 | return []ArgType(nil) 1621 | case "seccomp": 1622 | return []ArgType(nil) 1623 | case "getrandom": 1624 | return []ArgType(nil) 1625 | case "memfd_create": 1626 | return []ArgType(nil) 1627 | case "bpf": 1628 | return []ArgType(nil) 1629 | case "execveat": 1630 | return []ArgType(nil) 1631 | case "userfaultfd": 1632 | return []ArgType(nil) 1633 | case "membarrier": 1634 | return []ArgType(nil) 1635 | } 1636 | return nil 1637 | } 1638 | -------------------------------------------------------------------------------- /syscallpp_linux_amd64.go: -------------------------------------------------------------------------------- 1 | // generated file; DO NOT EDIT - use go generate in directory with source 2 | 3 | // +build amd64,linux 4 | 5 | package syscallpp 6 | 7 | func GetName(num int) string { 8 | switch num { 9 | case 0: 10 | return "read" 11 | case 1: 12 | return "write" 13 | case 2: 14 | return "open" 15 | case 3: 16 | return "close" 17 | case 4: 18 | return "stat" 19 | case 5: 20 | return "fstat" 21 | case 6: 22 | return "lstat" 23 | case 7: 24 | return "poll" 25 | case 8: 26 | return "lseek" 27 | case 9: 28 | return "mmap" 29 | case 10: 30 | return "mprotect" 31 | case 11: 32 | return "munmap" 33 | case 12: 34 | return "brk" 35 | case 13: 36 | return "rt_sigaction" 37 | case 14: 38 | return "rt_sigprocmask" 39 | case 15: 40 | return "rt_sigreturn" 41 | case 16: 42 | return "ioctl" 43 | case 17: 44 | return "pread64" 45 | case 18: 46 | return "pwrite64" 47 | case 19: 48 | return "readv" 49 | case 20: 50 | return "writev" 51 | case 21: 52 | return "access" 53 | case 22: 54 | return "pipe" 55 | case 23: 56 | return "select" 57 | case 24: 58 | return "sched_yield" 59 | case 25: 60 | return "mremap" 61 | case 26: 62 | return "msync" 63 | case 27: 64 | return "mincore" 65 | case 28: 66 | return "madvise" 67 | case 29: 68 | return "shmget" 69 | case 30: 70 | return "shmat" 71 | case 31: 72 | return "shmctl" 73 | case 32: 74 | return "dup" 75 | case 33: 76 | return "dup2" 77 | case 34: 78 | return "pause" 79 | case 35: 80 | return "nanosleep" 81 | case 36: 82 | return "getitimer" 83 | case 37: 84 | return "alarm" 85 | case 38: 86 | return "setitimer" 87 | case 39: 88 | return "getpid" 89 | case 40: 90 | return "sendfile" 91 | case 41: 92 | return "socket" 93 | case 42: 94 | return "connect" 95 | case 43: 96 | return "accept" 97 | case 44: 98 | return "sendto" 99 | case 45: 100 | return "recvfrom" 101 | case 46: 102 | return "sendmsg" 103 | case 47: 104 | return "recvmsg" 105 | case 48: 106 | return "shutdown" 107 | case 49: 108 | return "bind" 109 | case 50: 110 | return "listen" 111 | case 51: 112 | return "getsockname" 113 | case 52: 114 | return "getpeername" 115 | case 53: 116 | return "socketpair" 117 | case 54: 118 | return "setsockopt" 119 | case 55: 120 | return "getsockopt" 121 | case 56: 122 | return "clone" 123 | case 57: 124 | return "fork" 125 | case 58: 126 | return "vfork" 127 | case 59: 128 | return "execve" 129 | case 60: 130 | return "exit" 131 | case 61: 132 | return "wait4" 133 | case 62: 134 | return "kill" 135 | case 63: 136 | return "uname" 137 | case 64: 138 | return "semget" 139 | case 65: 140 | return "semop" 141 | case 66: 142 | return "semctl" 143 | case 67: 144 | return "shmdt" 145 | case 68: 146 | return "msgget" 147 | case 69: 148 | return "msgsnd" 149 | case 70: 150 | return "msgrcv" 151 | case 71: 152 | return "msgctl" 153 | case 72: 154 | return "fcntl" 155 | case 73: 156 | return "flock" 157 | case 74: 158 | return "fsync" 159 | case 75: 160 | return "fdatasync" 161 | case 76: 162 | return "truncate" 163 | case 77: 164 | return "ftruncate" 165 | case 78: 166 | return "getdents" 167 | case 79: 168 | return "getcwd" 169 | case 80: 170 | return "chdir" 171 | case 81: 172 | return "fchdir" 173 | case 82: 174 | return "rename" 175 | case 83: 176 | return "mkdir" 177 | case 84: 178 | return "rmdir" 179 | case 85: 180 | return "creat" 181 | case 86: 182 | return "link" 183 | case 87: 184 | return "unlink" 185 | case 88: 186 | return "symlink" 187 | case 89: 188 | return "readlink" 189 | case 90: 190 | return "chmod" 191 | case 91: 192 | return "fchmod" 193 | case 92: 194 | return "chown" 195 | case 93: 196 | return "fchown" 197 | case 94: 198 | return "lchown" 199 | case 95: 200 | return "umask" 201 | case 96: 202 | return "gettimeofday" 203 | case 97: 204 | return "getrlimit" 205 | case 98: 206 | return "getrusage" 207 | case 99: 208 | return "sysinfo" 209 | case 100: 210 | return "times" 211 | case 101: 212 | return "ptrace" 213 | case 102: 214 | return "getuid" 215 | case 103: 216 | return "syslog" 217 | case 104: 218 | return "getgid" 219 | case 105: 220 | return "setuid" 221 | case 106: 222 | return "setgid" 223 | case 107: 224 | return "geteuid" 225 | case 108: 226 | return "getegid" 227 | case 109: 228 | return "setpgid" 229 | case 110: 230 | return "getppid" 231 | case 111: 232 | return "getpgrp" 233 | case 112: 234 | return "setsid" 235 | case 113: 236 | return "setreuid" 237 | case 114: 238 | return "setregid" 239 | case 115: 240 | return "getgroups" 241 | case 116: 242 | return "setgroups" 243 | case 117: 244 | return "setresuid" 245 | case 118: 246 | return "getresuid" 247 | case 119: 248 | return "setresgid" 249 | case 120: 250 | return "getresgid" 251 | case 121: 252 | return "getpgid" 253 | case 122: 254 | return "setfsuid" 255 | case 123: 256 | return "setfsgid" 257 | case 124: 258 | return "getsid" 259 | case 125: 260 | return "capget" 261 | case 126: 262 | return "capset" 263 | case 127: 264 | return "rt_sigpending" 265 | case 128: 266 | return "rt_sigtimedwait" 267 | case 129: 268 | return "rt_sigqueueinfo" 269 | case 130: 270 | return "rt_sigsuspend" 271 | case 131: 272 | return "sigaltstack" 273 | case 132: 274 | return "utime" 275 | case 133: 276 | return "mknod" 277 | case 134: 278 | return "uselib" 279 | case 135: 280 | return "personality" 281 | case 136: 282 | return "ustat" 283 | case 137: 284 | return "statfs" 285 | case 138: 286 | return "fstatfs" 287 | case 139: 288 | return "sysfs" 289 | case 140: 290 | return "getpriority" 291 | case 141: 292 | return "setpriority" 293 | case 142: 294 | return "sched_setparam" 295 | case 143: 296 | return "sched_getparam" 297 | case 144: 298 | return "sched_setscheduler" 299 | case 145: 300 | return "sched_getscheduler" 301 | case 146: 302 | return "sched_get_priority_max" 303 | case 147: 304 | return "sched_get_priority_min" 305 | case 148: 306 | return "sched_rr_get_interval" 307 | case 149: 308 | return "mlock" 309 | case 150: 310 | return "munlock" 311 | case 151: 312 | return "mlockall" 313 | case 152: 314 | return "munlockall" 315 | case 153: 316 | return "vhangup" 317 | case 154: 318 | return "modify_ldt" 319 | case 155: 320 | return "pivot_root" 321 | case 156: 322 | return "_sysctl" 323 | case 157: 324 | return "prctl" 325 | case 158: 326 | return "arch_prctl" 327 | case 159: 328 | return "adjtimex" 329 | case 160: 330 | return "setrlimit" 331 | case 161: 332 | return "chroot" 333 | case 162: 334 | return "sync" 335 | case 163: 336 | return "acct" 337 | case 164: 338 | return "settimeofday" 339 | case 165: 340 | return "mount" 341 | case 166: 342 | return "umount2" 343 | case 167: 344 | return "swapon" 345 | case 168: 346 | return "swapoff" 347 | case 169: 348 | return "reboot" 349 | case 170: 350 | return "sethostname" 351 | case 171: 352 | return "setdomainname" 353 | case 172: 354 | return "iopl" 355 | case 173: 356 | return "ioperm" 357 | case 174: 358 | return "create_module" 359 | case 175: 360 | return "init_module" 361 | case 176: 362 | return "delete_module" 363 | case 177: 364 | return "get_kernel_syms" 365 | case 178: 366 | return "query_module" 367 | case 179: 368 | return "quotactl" 369 | case 180: 370 | return "nfsservctl" 371 | case 181: 372 | return "getpmsg" 373 | case 182: 374 | return "putpmsg" 375 | case 183: 376 | return "afs_syscall" 377 | case 184: 378 | return "tuxcall" 379 | case 185: 380 | return "security" 381 | case 186: 382 | return "gettid" 383 | case 187: 384 | return "readahead" 385 | case 188: 386 | return "setxattr" 387 | case 189: 388 | return "lsetxattr" 389 | case 190: 390 | return "fsetxattr" 391 | case 191: 392 | return "getxattr" 393 | case 192: 394 | return "lgetxattr" 395 | case 193: 396 | return "fgetxattr" 397 | case 194: 398 | return "listxattr" 399 | case 195: 400 | return "llistxattr" 401 | case 196: 402 | return "flistxattr" 403 | case 197: 404 | return "removexattr" 405 | case 198: 406 | return "lremovexattr" 407 | case 199: 408 | return "fremovexattr" 409 | case 200: 410 | return "tkill" 411 | case 201: 412 | return "time" 413 | case 202: 414 | return "futex" 415 | case 203: 416 | return "sched_setaffinity" 417 | case 204: 418 | return "sched_getaffinity" 419 | case 205: 420 | return "set_thread_area" 421 | case 206: 422 | return "io_setup" 423 | case 207: 424 | return "io_destroy" 425 | case 208: 426 | return "io_getevents" 427 | case 209: 428 | return "io_submit" 429 | case 210: 430 | return "io_cancel" 431 | case 211: 432 | return "get_thread_area" 433 | case 212: 434 | return "lookup_dcookie" 435 | case 213: 436 | return "epoll_create" 437 | case 214: 438 | return "epoll_ctl_old" 439 | case 215: 440 | return "epoll_wait_old" 441 | case 216: 442 | return "remap_file_pages" 443 | case 217: 444 | return "getdents64" 445 | case 218: 446 | return "set_tid_address" 447 | case 219: 448 | return "restart_syscall" 449 | case 220: 450 | return "semtimedop" 451 | case 221: 452 | return "fadvise64" 453 | case 222: 454 | return "timer_create" 455 | case 223: 456 | return "timer_settime" 457 | case 224: 458 | return "timer_gettime" 459 | case 225: 460 | return "timer_getoverrun" 461 | case 226: 462 | return "timer_delete" 463 | case 227: 464 | return "clock_settime" 465 | case 228: 466 | return "clock_gettime" 467 | case 229: 468 | return "clock_getres" 469 | case 230: 470 | return "clock_nanosleep" 471 | case 231: 472 | return "exit_group" 473 | case 232: 474 | return "epoll_wait" 475 | case 233: 476 | return "epoll_ctl" 477 | case 234: 478 | return "tgkill" 479 | case 235: 480 | return "utimes" 481 | case 236: 482 | return "vserver" 483 | case 237: 484 | return "mbind" 485 | case 238: 486 | return "set_mempolicy" 487 | case 239: 488 | return "get_mempolicy" 489 | case 240: 490 | return "mq_open" 491 | case 241: 492 | return "mq_unlink" 493 | case 242: 494 | return "mq_timedsend" 495 | case 243: 496 | return "mq_timedreceive" 497 | case 244: 498 | return "mq_notify" 499 | case 245: 500 | return "mq_getsetattr" 501 | case 246: 502 | return "kexec_load" 503 | case 247: 504 | return "waitid" 505 | case 248: 506 | return "add_key" 507 | case 249: 508 | return "request_key" 509 | case 250: 510 | return "keyctl" 511 | case 251: 512 | return "ioprio_set" 513 | case 252: 514 | return "ioprio_get" 515 | case 253: 516 | return "inotify_init" 517 | case 254: 518 | return "inotify_add_watch" 519 | case 255: 520 | return "inotify_rm_watch" 521 | case 256: 522 | return "migrate_pages" 523 | case 257: 524 | return "openat" 525 | case 258: 526 | return "mkdirat" 527 | case 259: 528 | return "mknodat" 529 | case 260: 530 | return "fchownat" 531 | case 261: 532 | return "futimesat" 533 | case 262: 534 | return "newfstatat" 535 | case 263: 536 | return "unlinkat" 537 | case 264: 538 | return "renameat" 539 | case 265: 540 | return "linkat" 541 | case 266: 542 | return "symlinkat" 543 | case 267: 544 | return "readlinkat" 545 | case 268: 546 | return "fchmodat" 547 | case 269: 548 | return "faccessat" 549 | case 270: 550 | return "pselect6" 551 | case 271: 552 | return "ppoll" 553 | case 272: 554 | return "unshare" 555 | case 273: 556 | return "set_robust_list" 557 | case 274: 558 | return "get_robust_list" 559 | case 275: 560 | return "splice" 561 | case 276: 562 | return "tee" 563 | case 277: 564 | return "sync_file_range" 565 | case 278: 566 | return "vmsplice" 567 | case 279: 568 | return "move_pages" 569 | case 280: 570 | return "utimensat" 571 | case 281: 572 | return "epoll_pwait" 573 | case 282: 574 | return "signalfd" 575 | case 283: 576 | return "timerfd_create" 577 | case 284: 578 | return "eventfd" 579 | case 285: 580 | return "fallocate" 581 | case 286: 582 | return "timerfd_settime" 583 | case 287: 584 | return "timerfd_gettime" 585 | case 288: 586 | return "accept4" 587 | case 289: 588 | return "signalfd4" 589 | case 290: 590 | return "eventfd2" 591 | case 291: 592 | return "epoll_create1" 593 | case 292: 594 | return "dup3" 595 | case 293: 596 | return "pipe2" 597 | case 294: 598 | return "inotify_init1" 599 | case 295: 600 | return "preadv" 601 | case 296: 602 | return "pwritev" 603 | case 297: 604 | return "rt_tgsigqueueinfo" 605 | case 298: 606 | return "perf_event_open" 607 | case 299: 608 | return "recvmmsg" 609 | case 300: 610 | return "fanotify_init" 611 | case 301: 612 | return "fanotify_mark" 613 | case 302: 614 | return "prlimit64" 615 | case 303: 616 | return "name_to_handle_at" 617 | case 304: 618 | return "open_by_handle_at" 619 | case 305: 620 | return "clock_adjtime" 621 | case 306: 622 | return "syncfs" 623 | case 307: 624 | return "sendmmsg" 625 | case 308: 626 | return "setns" 627 | case 309: 628 | return "getcpu" 629 | case 310: 630 | return "process_vm_readv" 631 | case 311: 632 | return "process_vm_writev" 633 | case 312: 634 | return "kcmp" 635 | case 313: 636 | return "finit_module" 637 | case 314: 638 | return "sched_setattr" 639 | case 315: 640 | return "sched_getattr" 641 | case 316: 642 | return "renameat2" 643 | case 317: 644 | return "seccomp" 645 | case 318: 646 | return "getrandom" 647 | case 319: 648 | return "memfd_create" 649 | case 320: 650 | return "kexec_file_load" 651 | case 321: 652 | return "bpf" 653 | case 322: 654 | return "execveat" 655 | case 323: 656 | return "userfaultfd" 657 | case 324: 658 | return "membarrier" 659 | } 660 | return "unknown" 661 | } 662 | 663 | func GetNum(name string) int { 664 | switch name { 665 | case "read": 666 | return 0 667 | case "write": 668 | return 1 669 | case "open": 670 | return 2 671 | case "close": 672 | return 3 673 | case "stat": 674 | return 4 675 | case "fstat": 676 | return 5 677 | case "lstat": 678 | return 6 679 | case "poll": 680 | return 7 681 | case "lseek": 682 | return 8 683 | case "mmap": 684 | return 9 685 | case "mprotect": 686 | return 10 687 | case "munmap": 688 | return 11 689 | case "brk": 690 | return 12 691 | case "rt_sigaction": 692 | return 13 693 | case "rt_sigprocmask": 694 | return 14 695 | case "rt_sigreturn": 696 | return 15 697 | case "ioctl": 698 | return 16 699 | case "pread64": 700 | return 17 701 | case "pwrite64": 702 | return 18 703 | case "readv": 704 | return 19 705 | case "writev": 706 | return 20 707 | case "access": 708 | return 21 709 | case "pipe": 710 | return 22 711 | case "select": 712 | return 23 713 | case "sched_yield": 714 | return 24 715 | case "mremap": 716 | return 25 717 | case "msync": 718 | return 26 719 | case "mincore": 720 | return 27 721 | case "madvise": 722 | return 28 723 | case "shmget": 724 | return 29 725 | case "shmat": 726 | return 30 727 | case "shmctl": 728 | return 31 729 | case "dup": 730 | return 32 731 | case "dup2": 732 | return 33 733 | case "pause": 734 | return 34 735 | case "nanosleep": 736 | return 35 737 | case "getitimer": 738 | return 36 739 | case "alarm": 740 | return 37 741 | case "setitimer": 742 | return 38 743 | case "getpid": 744 | return 39 745 | case "sendfile": 746 | return 40 747 | case "socket": 748 | return 41 749 | case "connect": 750 | return 42 751 | case "accept": 752 | return 43 753 | case "sendto": 754 | return 44 755 | case "recvfrom": 756 | return 45 757 | case "sendmsg": 758 | return 46 759 | case "recvmsg": 760 | return 47 761 | case "shutdown": 762 | return 48 763 | case "bind": 764 | return 49 765 | case "listen": 766 | return 50 767 | case "getsockname": 768 | return 51 769 | case "getpeername": 770 | return 52 771 | case "socketpair": 772 | return 53 773 | case "setsockopt": 774 | return 54 775 | case "getsockopt": 776 | return 55 777 | case "clone": 778 | return 56 779 | case "fork": 780 | return 57 781 | case "vfork": 782 | return 58 783 | case "execve": 784 | return 59 785 | case "exit": 786 | return 60 787 | case "wait4": 788 | return 61 789 | case "kill": 790 | return 62 791 | case "uname": 792 | return 63 793 | case "semget": 794 | return 64 795 | case "semop": 796 | return 65 797 | case "semctl": 798 | return 66 799 | case "shmdt": 800 | return 67 801 | case "msgget": 802 | return 68 803 | case "msgsnd": 804 | return 69 805 | case "msgrcv": 806 | return 70 807 | case "msgctl": 808 | return 71 809 | case "fcntl": 810 | return 72 811 | case "flock": 812 | return 73 813 | case "fsync": 814 | return 74 815 | case "fdatasync": 816 | return 75 817 | case "truncate": 818 | return 76 819 | case "ftruncate": 820 | return 77 821 | case "getdents": 822 | return 78 823 | case "getcwd": 824 | return 79 825 | case "chdir": 826 | return 80 827 | case "fchdir": 828 | return 81 829 | case "rename": 830 | return 82 831 | case "mkdir": 832 | return 83 833 | case "rmdir": 834 | return 84 835 | case "creat": 836 | return 85 837 | case "link": 838 | return 86 839 | case "unlink": 840 | return 87 841 | case "symlink": 842 | return 88 843 | case "readlink": 844 | return 89 845 | case "chmod": 846 | return 90 847 | case "fchmod": 848 | return 91 849 | case "chown": 850 | return 92 851 | case "fchown": 852 | return 93 853 | case "lchown": 854 | return 94 855 | case "umask": 856 | return 95 857 | case "gettimeofday": 858 | return 96 859 | case "getrlimit": 860 | return 97 861 | case "getrusage": 862 | return 98 863 | case "sysinfo": 864 | return 99 865 | case "times": 866 | return 100 867 | case "ptrace": 868 | return 101 869 | case "getuid": 870 | return 102 871 | case "syslog": 872 | return 103 873 | case "getgid": 874 | return 104 875 | case "setuid": 876 | return 105 877 | case "setgid": 878 | return 106 879 | case "geteuid": 880 | return 107 881 | case "getegid": 882 | return 108 883 | case "setpgid": 884 | return 109 885 | case "getppid": 886 | return 110 887 | case "getpgrp": 888 | return 111 889 | case "setsid": 890 | return 112 891 | case "setreuid": 892 | return 113 893 | case "setregid": 894 | return 114 895 | case "getgroups": 896 | return 115 897 | case "setgroups": 898 | return 116 899 | case "setresuid": 900 | return 117 901 | case "getresuid": 902 | return 118 903 | case "setresgid": 904 | return 119 905 | case "getresgid": 906 | return 120 907 | case "getpgid": 908 | return 121 909 | case "setfsuid": 910 | return 122 911 | case "setfsgid": 912 | return 123 913 | case "getsid": 914 | return 124 915 | case "capget": 916 | return 125 917 | case "capset": 918 | return 126 919 | case "rt_sigpending": 920 | return 127 921 | case "rt_sigtimedwait": 922 | return 128 923 | case "rt_sigqueueinfo": 924 | return 129 925 | case "rt_sigsuspend": 926 | return 130 927 | case "sigaltstack": 928 | return 131 929 | case "utime": 930 | return 132 931 | case "mknod": 932 | return 133 933 | case "uselib": 934 | return 134 935 | case "personality": 936 | return 135 937 | case "ustat": 938 | return 136 939 | case "statfs": 940 | return 137 941 | case "fstatfs": 942 | return 138 943 | case "sysfs": 944 | return 139 945 | case "getpriority": 946 | return 140 947 | case "setpriority": 948 | return 141 949 | case "sched_setparam": 950 | return 142 951 | case "sched_getparam": 952 | return 143 953 | case "sched_setscheduler": 954 | return 144 955 | case "sched_getscheduler": 956 | return 145 957 | case "sched_get_priority_max": 958 | return 146 959 | case "sched_get_priority_min": 960 | return 147 961 | case "sched_rr_get_interval": 962 | return 148 963 | case "mlock": 964 | return 149 965 | case "munlock": 966 | return 150 967 | case "mlockall": 968 | return 151 969 | case "munlockall": 970 | return 152 971 | case "vhangup": 972 | return 153 973 | case "modify_ldt": 974 | return 154 975 | case "pivot_root": 976 | return 155 977 | case "_sysctl": 978 | return 156 979 | case "prctl": 980 | return 157 981 | case "arch_prctl": 982 | return 158 983 | case "adjtimex": 984 | return 159 985 | case "setrlimit": 986 | return 160 987 | case "chroot": 988 | return 161 989 | case "sync": 990 | return 162 991 | case "acct": 992 | return 163 993 | case "settimeofday": 994 | return 164 995 | case "mount": 996 | return 165 997 | case "umount2": 998 | return 166 999 | case "swapon": 1000 | return 167 1001 | case "swapoff": 1002 | return 168 1003 | case "reboot": 1004 | return 169 1005 | case "sethostname": 1006 | return 170 1007 | case "setdomainname": 1008 | return 171 1009 | case "iopl": 1010 | return 172 1011 | case "ioperm": 1012 | return 173 1013 | case "create_module": 1014 | return 174 1015 | case "init_module": 1016 | return 175 1017 | case "delete_module": 1018 | return 176 1019 | case "get_kernel_syms": 1020 | return 177 1021 | case "query_module": 1022 | return 178 1023 | case "quotactl": 1024 | return 179 1025 | case "nfsservctl": 1026 | return 180 1027 | case "getpmsg": 1028 | return 181 1029 | case "putpmsg": 1030 | return 182 1031 | case "afs_syscall": 1032 | return 183 1033 | case "tuxcall": 1034 | return 184 1035 | case "security": 1036 | return 185 1037 | case "gettid": 1038 | return 186 1039 | case "readahead": 1040 | return 187 1041 | case "setxattr": 1042 | return 188 1043 | case "lsetxattr": 1044 | return 189 1045 | case "fsetxattr": 1046 | return 190 1047 | case "getxattr": 1048 | return 191 1049 | case "lgetxattr": 1050 | return 192 1051 | case "fgetxattr": 1052 | return 193 1053 | case "listxattr": 1054 | return 194 1055 | case "llistxattr": 1056 | return 195 1057 | case "flistxattr": 1058 | return 196 1059 | case "removexattr": 1060 | return 197 1061 | case "lremovexattr": 1062 | return 198 1063 | case "fremovexattr": 1064 | return 199 1065 | case "tkill": 1066 | return 200 1067 | case "time": 1068 | return 201 1069 | case "futex": 1070 | return 202 1071 | case "sched_setaffinity": 1072 | return 203 1073 | case "sched_getaffinity": 1074 | return 204 1075 | case "set_thread_area": 1076 | return 205 1077 | case "io_setup": 1078 | return 206 1079 | case "io_destroy": 1080 | return 207 1081 | case "io_getevents": 1082 | return 208 1083 | case "io_submit": 1084 | return 209 1085 | case "io_cancel": 1086 | return 210 1087 | case "get_thread_area": 1088 | return 211 1089 | case "lookup_dcookie": 1090 | return 212 1091 | case "epoll_create": 1092 | return 213 1093 | case "epoll_ctl_old": 1094 | return 214 1095 | case "epoll_wait_old": 1096 | return 215 1097 | case "remap_file_pages": 1098 | return 216 1099 | case "getdents64": 1100 | return 217 1101 | case "set_tid_address": 1102 | return 218 1103 | case "restart_syscall": 1104 | return 219 1105 | case "semtimedop": 1106 | return 220 1107 | case "fadvise64": 1108 | return 221 1109 | case "timer_create": 1110 | return 222 1111 | case "timer_settime": 1112 | return 223 1113 | case "timer_gettime": 1114 | return 224 1115 | case "timer_getoverrun": 1116 | return 225 1117 | case "timer_delete": 1118 | return 226 1119 | case "clock_settime": 1120 | return 227 1121 | case "clock_gettime": 1122 | return 228 1123 | case "clock_getres": 1124 | return 229 1125 | case "clock_nanosleep": 1126 | return 230 1127 | case "exit_group": 1128 | return 231 1129 | case "epoll_wait": 1130 | return 232 1131 | case "epoll_ctl": 1132 | return 233 1133 | case "tgkill": 1134 | return 234 1135 | case "utimes": 1136 | return 235 1137 | case "vserver": 1138 | return 236 1139 | case "mbind": 1140 | return 237 1141 | case "set_mempolicy": 1142 | return 238 1143 | case "get_mempolicy": 1144 | return 239 1145 | case "mq_open": 1146 | return 240 1147 | case "mq_unlink": 1148 | return 241 1149 | case "mq_timedsend": 1150 | return 242 1151 | case "mq_timedreceive": 1152 | return 243 1153 | case "mq_notify": 1154 | return 244 1155 | case "mq_getsetattr": 1156 | return 245 1157 | case "kexec_load": 1158 | return 246 1159 | case "waitid": 1160 | return 247 1161 | case "add_key": 1162 | return 248 1163 | case "request_key": 1164 | return 249 1165 | case "keyctl": 1166 | return 250 1167 | case "ioprio_set": 1168 | return 251 1169 | case "ioprio_get": 1170 | return 252 1171 | case "inotify_init": 1172 | return 253 1173 | case "inotify_add_watch": 1174 | return 254 1175 | case "inotify_rm_watch": 1176 | return 255 1177 | case "migrate_pages": 1178 | return 256 1179 | case "openat": 1180 | return 257 1181 | case "mkdirat": 1182 | return 258 1183 | case "mknodat": 1184 | return 259 1185 | case "fchownat": 1186 | return 260 1187 | case "futimesat": 1188 | return 261 1189 | case "newfstatat": 1190 | return 262 1191 | case "unlinkat": 1192 | return 263 1193 | case "renameat": 1194 | return 264 1195 | case "linkat": 1196 | return 265 1197 | case "symlinkat": 1198 | return 266 1199 | case "readlinkat": 1200 | return 267 1201 | case "fchmodat": 1202 | return 268 1203 | case "faccessat": 1204 | return 269 1205 | case "pselect6": 1206 | return 270 1207 | case "ppoll": 1208 | return 271 1209 | case "unshare": 1210 | return 272 1211 | case "set_robust_list": 1212 | return 273 1213 | case "get_robust_list": 1214 | return 274 1215 | case "splice": 1216 | return 275 1217 | case "tee": 1218 | return 276 1219 | case "sync_file_range": 1220 | return 277 1221 | case "vmsplice": 1222 | return 278 1223 | case "move_pages": 1224 | return 279 1225 | case "utimensat": 1226 | return 280 1227 | case "epoll_pwait": 1228 | return 281 1229 | case "signalfd": 1230 | return 282 1231 | case "timerfd_create": 1232 | return 283 1233 | case "eventfd": 1234 | return 284 1235 | case "fallocate": 1236 | return 285 1237 | case "timerfd_settime": 1238 | return 286 1239 | case "timerfd_gettime": 1240 | return 287 1241 | case "accept4": 1242 | return 288 1243 | case "signalfd4": 1244 | return 289 1245 | case "eventfd2": 1246 | return 290 1247 | case "epoll_create1": 1248 | return 291 1249 | case "dup3": 1250 | return 292 1251 | case "pipe2": 1252 | return 293 1253 | case "inotify_init1": 1254 | return 294 1255 | case "preadv": 1256 | return 295 1257 | case "pwritev": 1258 | return 296 1259 | case "rt_tgsigqueueinfo": 1260 | return 297 1261 | case "perf_event_open": 1262 | return 298 1263 | case "recvmmsg": 1264 | return 299 1265 | case "fanotify_init": 1266 | return 300 1267 | case "fanotify_mark": 1268 | return 301 1269 | case "prlimit64": 1270 | return 302 1271 | case "name_to_handle_at": 1272 | return 303 1273 | case "open_by_handle_at": 1274 | return 304 1275 | case "clock_adjtime": 1276 | return 305 1277 | case "syncfs": 1278 | return 306 1279 | case "sendmmsg": 1280 | return 307 1281 | case "setns": 1282 | return 308 1283 | case "getcpu": 1284 | return 309 1285 | case "process_vm_readv": 1286 | return 310 1287 | case "process_vm_writev": 1288 | return 311 1289 | case "kcmp": 1290 | return 312 1291 | case "finit_module": 1292 | return 313 1293 | case "sched_setattr": 1294 | return 314 1295 | case "sched_getattr": 1296 | return 315 1297 | case "renameat2": 1298 | return 316 1299 | case "seccomp": 1300 | return 317 1301 | case "getrandom": 1302 | return 318 1303 | case "memfd_create": 1304 | return 319 1305 | case "kexec_file_load": 1306 | return 320 1307 | case "bpf": 1308 | return 321 1309 | case "execveat": 1310 | return 322 1311 | case "userfaultfd": 1312 | return 323 1313 | case "membarrier": 1314 | return 324 1315 | } 1316 | return -1 1317 | } 1318 | 1319 | func GetArgsTypes(name string) []ArgType { 1320 | switch name { 1321 | case "read": 1322 | return []ArgType{ARG_INT, ARG_PTR} 1323 | case "write": 1324 | return []ArgType{ARG_INT, ARG_PTR} 1325 | case "open": 1326 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 1327 | case "close": 1328 | return []ArgType{ARG_INT} 1329 | case "stat": 1330 | return []ArgType{ARG_STR, ARG_PTR} 1331 | case "fstat": 1332 | return []ArgType{ARG_INT, ARG_PTR} 1333 | case "lstat": 1334 | return []ArgType{ARG_STR, ARG_PTR} 1335 | case "poll": 1336 | return []ArgType(nil) 1337 | case "lseek": 1338 | return []ArgType(nil) 1339 | case "mmap": 1340 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1341 | case "mprotect": 1342 | return []ArgType{ARG_PTR, ARG_INT} 1343 | case "munmap": 1344 | return []ArgType{ARG_INT, ARG_INT} 1345 | case "brk": 1346 | return []ArgType(nil) 1347 | case "rt_sigaction": 1348 | return []ArgType(nil) 1349 | case "rt_sigprocmask": 1350 | return []ArgType(nil) 1351 | case "rt_sigreturn": 1352 | return []ArgType(nil) 1353 | case "ioctl": 1354 | return []ArgType(nil) 1355 | case "pread64": 1356 | return []ArgType(nil) 1357 | case "pwrite64": 1358 | return []ArgType(nil) 1359 | case "readv": 1360 | return []ArgType(nil) 1361 | case "writev": 1362 | return []ArgType(nil) 1363 | case "access": 1364 | return []ArgType{ARG_STR, ARG_INT} 1365 | case "pipe": 1366 | return []ArgType{ARG_PTR} 1367 | case "select": 1368 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR, ARG_PTR, ARG_PTR} 1369 | case "sched_yield": 1370 | return []ArgType(nil) 1371 | case "mremap": 1372 | return []ArgType(nil) 1373 | case "msync": 1374 | return []ArgType(nil) 1375 | case "mincore": 1376 | return []ArgType(nil) 1377 | case "madvise": 1378 | return []ArgType{ARG_PTR, ARG_INT} 1379 | case "shmget": 1380 | return []ArgType(nil) 1381 | case "shmat": 1382 | return []ArgType(nil) 1383 | case "shmctl": 1384 | return []ArgType(nil) 1385 | case "dup": 1386 | return []ArgType{ARG_INT} 1387 | case "dup2": 1388 | return []ArgType{ARG_INT, ARG_INT} 1389 | case "pause": 1390 | return []ArgType(nil) 1391 | case "nanosleep": 1392 | return []ArgType{ARG_PTR, ARG_PTR} 1393 | case "getitimer": 1394 | return []ArgType(nil) 1395 | case "alarm": 1396 | return []ArgType(nil) 1397 | case "setitimer": 1398 | return []ArgType(nil) 1399 | case "getpid": 1400 | return []ArgType(nil) 1401 | case "sendfile": 1402 | return []ArgType{ARG_INT, ARG_INT, ARG_PTR, ARG_INT} 1403 | case "socket": 1404 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1405 | case "connect": 1406 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1407 | case "accept": 1408 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1409 | case "sendto": 1410 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 1411 | case "recvfrom": 1412 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_PTR} 1413 | case "sendmsg": 1414 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 1415 | case "recvmsg": 1416 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT} 1417 | case "shutdown": 1418 | return []ArgType{ARG_INT, ARG_INT} 1419 | case "bind": 1420 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1421 | case "listen": 1422 | return []ArgType{ARG_INT, ARG_INT} 1423 | case "getsockname": 1424 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1425 | case "getpeername": 1426 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1427 | case "socketpair": 1428 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR} 1429 | case "setsockopt": 1430 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_INT} 1431 | case "getsockopt": 1432 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_PTR, ARG_PTR} 1433 | case "clone": 1434 | return []ArgType(nil) 1435 | case "fork": 1436 | return []ArgType(nil) 1437 | case "vfork": 1438 | return []ArgType(nil) 1439 | case "execve": 1440 | return []ArgType(nil) 1441 | case "exit": 1442 | return []ArgType{ARG_INT} 1443 | case "wait4": 1444 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR} 1445 | case "kill": 1446 | return []ArgType{ARG_INT, ARG_PTR} 1447 | case "uname": 1448 | return []ArgType{ARG_PTR} 1449 | case "semget": 1450 | return []ArgType(nil) 1451 | case "semop": 1452 | return []ArgType(nil) 1453 | case "semctl": 1454 | return []ArgType(nil) 1455 | case "shmdt": 1456 | return []ArgType(nil) 1457 | case "msgget": 1458 | return []ArgType(nil) 1459 | case "msgsnd": 1460 | return []ArgType(nil) 1461 | case "msgrcv": 1462 | return []ArgType(nil) 1463 | case "msgctl": 1464 | return []ArgType(nil) 1465 | case "fcntl": 1466 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1467 | case "flock": 1468 | return []ArgType{ARG_INT, ARG_INT} 1469 | case "fsync": 1470 | return []ArgType{ARG_INT} 1471 | case "fdatasync": 1472 | return []ArgType{ARG_INT} 1473 | case "truncate": 1474 | return []ArgType{ARG_STR, ARG_PTR} 1475 | case "ftruncate": 1476 | return []ArgType{ARG_INT, ARG_PTR} 1477 | case "getdents": 1478 | return []ArgType{ARG_INT, ARG_PTR} 1479 | case "getcwd": 1480 | return []ArgType{ARG_PTR} 1481 | case "chdir": 1482 | return []ArgType{ARG_STR} 1483 | case "fchdir": 1484 | return []ArgType{ARG_INT} 1485 | case "rename": 1486 | return []ArgType{ARG_STR, ARG_STR} 1487 | case "mkdir": 1488 | return []ArgType{ARG_STR, ARG_INT} 1489 | case "rmdir": 1490 | return []ArgType{ARG_STR} 1491 | case "creat": 1492 | return []ArgType{ARG_STR, ARG_INT} 1493 | case "link": 1494 | return []ArgType{ARG_STR, ARG_STR} 1495 | case "unlink": 1496 | return []ArgType{ARG_STR} 1497 | case "symlink": 1498 | return []ArgType{ARG_STR, ARG_STR} 1499 | case "readlink": 1500 | return []ArgType{ARG_STR, ARG_PTR} 1501 | case "chmod": 1502 | return []ArgType{ARG_STR, ARG_INT} 1503 | case "fchmod": 1504 | return []ArgType{ARG_INT, ARG_INT} 1505 | case "chown": 1506 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 1507 | case "fchown": 1508 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1509 | case "lchown": 1510 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 1511 | case "umask": 1512 | return []ArgType{ARG_INT} 1513 | case "gettimeofday": 1514 | return []ArgType(nil) 1515 | case "getrlimit": 1516 | return []ArgType{ARG_INT, ARG_PTR} 1517 | case "getrusage": 1518 | return []ArgType{ARG_INT, ARG_PTR} 1519 | case "sysinfo": 1520 | return []ArgType{ARG_PTR} 1521 | case "times": 1522 | return []ArgType{ARG_PTR} 1523 | case "ptrace": 1524 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT} 1525 | case "getuid": 1526 | return []ArgType(nil) 1527 | case "syslog": 1528 | return []ArgType(nil) 1529 | case "getgid": 1530 | return []ArgType(nil) 1531 | case "setuid": 1532 | return []ArgType{ARG_INT} 1533 | case "setgid": 1534 | return []ArgType{ARG_INT} 1535 | case "geteuid": 1536 | return []ArgType(nil) 1537 | case "getegid": 1538 | return []ArgType(nil) 1539 | case "setpgid": 1540 | return []ArgType{ARG_INT, ARG_INT} 1541 | case "getppid": 1542 | return []ArgType(nil) 1543 | case "getpgrp": 1544 | return []ArgType(nil) 1545 | case "setsid": 1546 | return []ArgType(nil) 1547 | case "setreuid": 1548 | return []ArgType{ARG_INT, ARG_INT} 1549 | case "setregid": 1550 | return []ArgType{ARG_INT, ARG_INT} 1551 | case "getgroups": 1552 | return []ArgType{ARG_INT, ARG_PTR} 1553 | case "setgroups": 1554 | return []ArgType{ARG_INT, ARG_PTR} 1555 | case "setresuid": 1556 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1557 | case "getresuid": 1558 | return []ArgType(nil) 1559 | case "setresgid": 1560 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1561 | case "getresgid": 1562 | return []ArgType(nil) 1563 | case "getpgid": 1564 | return []ArgType{ARG_INT} 1565 | case "setfsuid": 1566 | return []ArgType{ARG_INT} 1567 | case "setfsgid": 1568 | return []ArgType{ARG_INT} 1569 | case "getsid": 1570 | return []ArgType(nil) 1571 | case "capget": 1572 | return []ArgType(nil) 1573 | case "capset": 1574 | return []ArgType(nil) 1575 | case "rt_sigpending": 1576 | return []ArgType(nil) 1577 | case "rt_sigtimedwait": 1578 | return []ArgType(nil) 1579 | case "rt_sigqueueinfo": 1580 | return []ArgType(nil) 1581 | case "rt_sigsuspend": 1582 | return []ArgType(nil) 1583 | case "sigaltstack": 1584 | return []ArgType(nil) 1585 | case "utime": 1586 | return []ArgType{ARG_STR, ARG_PTR} 1587 | case "mknod": 1588 | return []ArgType{ARG_STR, ARG_INT, ARG_INT} 1589 | case "uselib": 1590 | return []ArgType(nil) 1591 | case "personality": 1592 | return []ArgType(nil) 1593 | case "ustat": 1594 | return []ArgType{ARG_INT, ARG_PTR} 1595 | case "statfs": 1596 | return []ArgType{ARG_STR, ARG_PTR} 1597 | case "fstatfs": 1598 | return []ArgType{ARG_INT, ARG_PTR} 1599 | case "sysfs": 1600 | return []ArgType(nil) 1601 | case "getpriority": 1602 | return []ArgType{ARG_INT, ARG_INT} 1603 | case "setpriority": 1604 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1605 | case "sched_setparam": 1606 | return []ArgType(nil) 1607 | case "sched_getparam": 1608 | return []ArgType(nil) 1609 | case "sched_setscheduler": 1610 | return []ArgType(nil) 1611 | case "sched_getscheduler": 1612 | return []ArgType(nil) 1613 | case "sched_get_priority_max": 1614 | return []ArgType(nil) 1615 | case "sched_get_priority_min": 1616 | return []ArgType(nil) 1617 | case "sched_rr_get_interval": 1618 | return []ArgType(nil) 1619 | case "mlock": 1620 | return []ArgType{ARG_PTR} 1621 | case "munlock": 1622 | return []ArgType{ARG_PTR} 1623 | case "mlockall": 1624 | return []ArgType{ARG_INT} 1625 | case "munlockall": 1626 | return []ArgType(nil) 1627 | case "vhangup": 1628 | return []ArgType(nil) 1629 | case "modify_ldt": 1630 | return []ArgType(nil) 1631 | case "pivot_root": 1632 | return []ArgType(nil) 1633 | case "_sysctl": 1634 | return []ArgType(nil) 1635 | case "prctl": 1636 | return []ArgType(nil) 1637 | case "arch_prctl": 1638 | return []ArgType(nil) 1639 | case "adjtimex": 1640 | return []ArgType{ARG_PTR} 1641 | case "setrlimit": 1642 | return []ArgType{ARG_INT, ARG_PTR} 1643 | case "chroot": 1644 | return []ArgType{ARG_STR} 1645 | case "sync": 1646 | return []ArgType(nil) 1647 | case "acct": 1648 | return []ArgType{ARG_STR} 1649 | case "settimeofday": 1650 | return []ArgType{ARG_PTR} 1651 | case "mount": 1652 | return []ArgType{ARG_STR, ARG_STR, ARG_STR, ARG_INT, ARG_PTR} 1653 | case "umount2": 1654 | return []ArgType(nil) 1655 | case "swapon": 1656 | return []ArgType(nil) 1657 | case "swapoff": 1658 | return []ArgType(nil) 1659 | case "reboot": 1660 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_STR} 1661 | case "sethostname": 1662 | return []ArgType{ARG_PTR} 1663 | case "setdomainname": 1664 | return []ArgType{ARG_PTR} 1665 | case "iopl": 1666 | return []ArgType{ARG_INT} 1667 | case "ioperm": 1668 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1669 | case "create_module": 1670 | return []ArgType(nil) 1671 | case "init_module": 1672 | return []ArgType(nil) 1673 | case "delete_module": 1674 | return []ArgType(nil) 1675 | case "get_kernel_syms": 1676 | return []ArgType(nil) 1677 | case "query_module": 1678 | return []ArgType(nil) 1679 | case "quotactl": 1680 | return []ArgType(nil) 1681 | case "nfsservctl": 1682 | return []ArgType(nil) 1683 | case "getpmsg": 1684 | return []ArgType(nil) 1685 | case "putpmsg": 1686 | return []ArgType(nil) 1687 | case "afs_syscall": 1688 | return []ArgType(nil) 1689 | case "tuxcall": 1690 | return []ArgType(nil) 1691 | case "security": 1692 | return []ArgType(nil) 1693 | case "gettid": 1694 | return []ArgType(nil) 1695 | case "readahead": 1696 | return []ArgType(nil) 1697 | case "setxattr": 1698 | return []ArgType{ARG_STR, ARG_STR, ARG_PTR, ARG_INT} 1699 | case "lsetxattr": 1700 | return []ArgType(nil) 1701 | case "fsetxattr": 1702 | return []ArgType(nil) 1703 | case "getxattr": 1704 | return []ArgType{ARG_STR, ARG_STR, ARG_PTR} 1705 | case "lgetxattr": 1706 | return []ArgType(nil) 1707 | case "fgetxattr": 1708 | return []ArgType(nil) 1709 | case "listxattr": 1710 | return []ArgType{ARG_STR, ARG_PTR} 1711 | case "llistxattr": 1712 | return []ArgType(nil) 1713 | case "flistxattr": 1714 | return []ArgType(nil) 1715 | case "removexattr": 1716 | return []ArgType{ARG_STR, ARG_STR} 1717 | case "lremovexattr": 1718 | return []ArgType(nil) 1719 | case "fremovexattr": 1720 | return []ArgType(nil) 1721 | case "tkill": 1722 | return []ArgType(nil) 1723 | case "time": 1724 | return []ArgType(nil) 1725 | case "futex": 1726 | return []ArgType(nil) 1727 | case "sched_setaffinity": 1728 | return []ArgType(nil) 1729 | case "sched_getaffinity": 1730 | return []ArgType(nil) 1731 | case "set_thread_area": 1732 | return []ArgType(nil) 1733 | case "io_setup": 1734 | return []ArgType(nil) 1735 | case "io_destroy": 1736 | return []ArgType(nil) 1737 | case "io_getevents": 1738 | return []ArgType(nil) 1739 | case "io_submit": 1740 | return []ArgType(nil) 1741 | case "io_cancel": 1742 | return []ArgType(nil) 1743 | case "get_thread_area": 1744 | return []ArgType(nil) 1745 | case "lookup_dcookie": 1746 | return []ArgType(nil) 1747 | case "epoll_create": 1748 | return []ArgType(nil) 1749 | case "epoll_ctl_old": 1750 | return []ArgType(nil) 1751 | case "epoll_wait_old": 1752 | return []ArgType(nil) 1753 | case "remap_file_pages": 1754 | return []ArgType(nil) 1755 | case "getdents64": 1756 | return []ArgType(nil) 1757 | case "set_tid_address": 1758 | return []ArgType(nil) 1759 | case "restart_syscall": 1760 | return []ArgType(nil) 1761 | case "semtimedop": 1762 | return []ArgType(nil) 1763 | case "fadvise64": 1764 | return []ArgType(nil) 1765 | case "timer_create": 1766 | return []ArgType(nil) 1767 | case "timer_settime": 1768 | return []ArgType(nil) 1769 | case "timer_gettime": 1770 | return []ArgType(nil) 1771 | case "timer_getoverrun": 1772 | return []ArgType(nil) 1773 | case "timer_delete": 1774 | return []ArgType(nil) 1775 | case "clock_settime": 1776 | return []ArgType(nil) 1777 | case "clock_gettime": 1778 | return []ArgType(nil) 1779 | case "clock_getres": 1780 | return []ArgType(nil) 1781 | case "clock_nanosleep": 1782 | return []ArgType(nil) 1783 | case "exit_group": 1784 | return []ArgType(nil) 1785 | case "epoll_wait": 1786 | return []ArgType(nil) 1787 | case "epoll_ctl": 1788 | return []ArgType(nil) 1789 | case "tgkill": 1790 | return []ArgType{ARG_INT, ARG_INT, ARG_PTR} 1791 | case "utimes": 1792 | return []ArgType{ARG_STR, ARG_PTR} 1793 | case "vserver": 1794 | return []ArgType(nil) 1795 | case "mbind": 1796 | return []ArgType(nil) 1797 | case "set_mempolicy": 1798 | return []ArgType(nil) 1799 | case "get_mempolicy": 1800 | return []ArgType(nil) 1801 | case "mq_open": 1802 | return []ArgType(nil) 1803 | case "mq_unlink": 1804 | return []ArgType(nil) 1805 | case "mq_timedsend": 1806 | return []ArgType(nil) 1807 | case "mq_timedreceive": 1808 | return []ArgType(nil) 1809 | case "mq_notify": 1810 | return []ArgType(nil) 1811 | case "mq_getsetattr": 1812 | return []ArgType(nil) 1813 | case "kexec_load": 1814 | return []ArgType(nil) 1815 | case "waitid": 1816 | return []ArgType(nil) 1817 | case "add_key": 1818 | return []ArgType(nil) 1819 | case "request_key": 1820 | return []ArgType(nil) 1821 | case "keyctl": 1822 | return []ArgType(nil) 1823 | case "ioprio_set": 1824 | return []ArgType(nil) 1825 | case "ioprio_get": 1826 | return []ArgType(nil) 1827 | case "inotify_init": 1828 | return []ArgType(nil) 1829 | case "inotify_add_watch": 1830 | return []ArgType(nil) 1831 | case "inotify_rm_watch": 1832 | return []ArgType(nil) 1833 | case "migrate_pages": 1834 | return []ArgType(nil) 1835 | case "openat": 1836 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT} 1837 | case "mkdirat": 1838 | return []ArgType{ARG_INT, ARG_STR, ARG_INT} 1839 | case "mknodat": 1840 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT} 1841 | case "fchownat": 1842 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT, ARG_INT} 1843 | case "futimesat": 1844 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR} 1845 | case "newfstatat": 1846 | return []ArgType(nil) 1847 | case "unlinkat": 1848 | return []ArgType{ARG_INT, ARG_STR, ARG_INT} 1849 | case "renameat": 1850 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_STR} 1851 | case "linkat": 1852 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_STR, ARG_INT} 1853 | case "symlinkat": 1854 | return []ArgType{ARG_STR, ARG_INT, ARG_STR} 1855 | case "readlinkat": 1856 | return []ArgType{ARG_INT, ARG_STR, ARG_PTR} 1857 | case "fchmodat": 1858 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT} 1859 | case "faccessat": 1860 | return []ArgType{ARG_INT, ARG_STR, ARG_INT, ARG_INT} 1861 | case "pselect6": 1862 | return []ArgType(nil) 1863 | case "ppoll": 1864 | return []ArgType(nil) 1865 | case "unshare": 1866 | return []ArgType{ARG_INT} 1867 | case "set_robust_list": 1868 | return []ArgType(nil) 1869 | case "get_robust_list": 1870 | return []ArgType(nil) 1871 | case "splice": 1872 | return []ArgType{ARG_INT, ARG_PTR, ARG_INT, ARG_PTR, ARG_INT, ARG_INT} 1873 | case "tee": 1874 | return []ArgType{ARG_INT, ARG_INT, ARG_INT, ARG_INT} 1875 | case "sync_file_range": 1876 | return []ArgType(nil) 1877 | case "vmsplice": 1878 | return []ArgType(nil) 1879 | case "move_pages": 1880 | return []ArgType(nil) 1881 | case "utimensat": 1882 | return []ArgType{ARG_INT, ARG_STR, ARG_PTR} 1883 | case "epoll_pwait": 1884 | return []ArgType(nil) 1885 | case "signalfd": 1886 | return []ArgType(nil) 1887 | case "timerfd_create": 1888 | return []ArgType(nil) 1889 | case "eventfd": 1890 | return []ArgType(nil) 1891 | case "fallocate": 1892 | return []ArgType{ARG_INT, ARG_INT, ARG_PTR, ARG_PTR} 1893 | case "timerfd_settime": 1894 | return []ArgType(nil) 1895 | case "timerfd_gettime": 1896 | return []ArgType(nil) 1897 | case "accept4": 1898 | return []ArgType{ARG_INT, ARG_PTR, ARG_PTR, ARG_INT} 1899 | case "signalfd4": 1900 | return []ArgType(nil) 1901 | case "eventfd2": 1902 | return []ArgType(nil) 1903 | case "epoll_create1": 1904 | return []ArgType(nil) 1905 | case "dup3": 1906 | return []ArgType{ARG_INT, ARG_INT, ARG_INT} 1907 | case "pipe2": 1908 | return []ArgType{ARG_PTR, ARG_INT} 1909 | case "inotify_init1": 1910 | return []ArgType(nil) 1911 | case "preadv": 1912 | return []ArgType(nil) 1913 | case "pwritev": 1914 | return []ArgType(nil) 1915 | case "rt_tgsigqueueinfo": 1916 | return []ArgType(nil) 1917 | case "perf_event_open": 1918 | return []ArgType(nil) 1919 | case "recvmmsg": 1920 | return []ArgType(nil) 1921 | case "fanotify_init": 1922 | return []ArgType(nil) 1923 | case "fanotify_mark": 1924 | return []ArgType(nil) 1925 | case "prlimit64": 1926 | return []ArgType(nil) 1927 | case "name_to_handle_at": 1928 | return []ArgType(nil) 1929 | case "open_by_handle_at": 1930 | return []ArgType(nil) 1931 | case "clock_adjtime": 1932 | return []ArgType(nil) 1933 | case "syncfs": 1934 | return []ArgType(nil) 1935 | case "sendmmsg": 1936 | return []ArgType(nil) 1937 | case "setns": 1938 | return []ArgType(nil) 1939 | case "getcpu": 1940 | return []ArgType(nil) 1941 | case "process_vm_readv": 1942 | return []ArgType(nil) 1943 | case "process_vm_writev": 1944 | return []ArgType(nil) 1945 | case "kcmp": 1946 | return []ArgType(nil) 1947 | case "finit_module": 1948 | return []ArgType(nil) 1949 | case "sched_setattr": 1950 | return []ArgType(nil) 1951 | case "sched_getattr": 1952 | return []ArgType(nil) 1953 | case "renameat2": 1954 | return []ArgType(nil) 1955 | case "seccomp": 1956 | return []ArgType(nil) 1957 | case "getrandom": 1958 | return []ArgType(nil) 1959 | case "memfd_create": 1960 | return []ArgType(nil) 1961 | case "kexec_file_load": 1962 | return []ArgType(nil) 1963 | case "bpf": 1964 | return []ArgType(nil) 1965 | case "execveat": 1966 | return []ArgType(nil) 1967 | case "userfaultfd": 1968 | return []ArgType(nil) 1969 | case "membarrier": 1970 | return []ArgType(nil) 1971 | } 1972 | return nil 1973 | } 1974 | --------------------------------------------------------------------------------