func readSyscalls()

in arch/mk_syscalls_linux.go [334:363]


func readSyscalls(path string, dir string, parse func(line string) (*Syscall, error)) ([]*Syscall, error) {
	url := baseURL + linuxVersion + path

	src, err := downloadFile(url, dir)
	if err != nil {
		return nil, err
	}

	f, err := os.Open(src)
	if err != nil {
		return nil, err
	}
	defer f.Close()

	var syscalls []*Syscall
	s := bufio.NewScanner(bufio.NewReader(f))
	for s.Scan() {
		line := strings.TrimSpace(s.Text())

		syscall, err := parse(line)
		if err != nil {
			return nil, err
		}
		if syscall != nil {
			syscalls = append(syscalls, syscall)
		}
	}

	return syscalls, s.Err()
}