blob: 424789e0f92d9167fa9a5adef85d46411bfec5d6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
// Copyright 2017 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
// I heard you like shell...
//go:generate bash -c "echo -e '// AUTOGENERATED FROM executor/common_linux.h\n\npackage csource\nvar commonHeaderLinux = `' > linux_common.go; cat ../../executor/common_linux.h | sed -e '/#include \"common.h\"/ {' -e 'r ../../executor/common.h' -e 'd' -e '}' | sed -e '/#include \"common_kvm_amd64.h\"/ {' -e 'r ../../executor/common_kvm_amd64.h' -e 'd' -e '}' | sed -e '/#include \"common_kvm_arm64.h\"/ {' -e 'r ../../executor/common_kvm_arm64.h' -e 'd' -e '}' | sed -e '/#include \"kvm.h\"/ {' -e 'r ../../executor/kvm.h' -e 'd' -e '}' | sed -e '/#include \"kvm.S.h\"/ {' -e 'r ../../executor/kvm.S.h' -e 'd' -e '}' | egrep -v '^[ ]*//' | sed '/^[ ]*\\/\\/.*/d' | sed 's#[ ]*//.*##g' >> linux_common.go; echo '`' >> linux_common.go"
//go:generate go fmt linux_common.go
//go:generate bash -c "echo -e '// AUTOGENERATED FROM executor/common_akaros.h\n\npackage csource\nvar commonHeaderAkaros = `' > akaros_common.go; cat ../../executor/common_akaros.h | sed -e '/#include \"common.h\"/ {' -e 'r ../../executor/common.h' -e 'd' -e '}' | egrep -v '^[ ]*//' | sed '/^[ ]*\\/\\/.*/d' | sed 's#[ ]*//.*##g' >> akaros_common.go; echo '`' >> akaros_common.go"
//go:generate go fmt akaros_common.go
//go:generate bash -c "echo -e '// AUTOGENERATED FROM executor/common_bsd.h\n\npackage csource\nvar commonHeaderFreebsd = `' > freebsd_common.go; cat ../../executor/common_bsd.h | sed -e '/#include \"common.h\"/ {' -e 'r ../../executor/common.h' -e 'd' -e '}' | egrep -v '^[ ]*//' | sed '/^[ ]*\\/\\/.*/d' | sed 's#[ ]*//.*##g' >> freebsd_common.go; echo '`' >> freebsd_common.go"
//go:generate go fmt freebsd_common.go
//go:generate bash -c "echo -e '// AUTOGENERATED FROM executor/common_bsd.h\n\npackage csource\nvar commonHeaderNetbsd = `' > netbsd_common.go; cat ../../executor/common_bsd.h | sed -e '/#include \"common.h\"/ {' -e 'r ../../executor/common.h' -e 'd' -e '}' | egrep -v '^[ ]*//' | sed '/^[ ]*\\/\\/.*/d' | sed 's#[ ]*//.*##g' >> netbsd_common.go; echo '`' >> netbsd_common.go"
//go:generate go fmt netbsd_common.go
//go:generate bash -c "echo -e '// AUTOGENERATED FROM executor/common_fuchsia.h\n\npackage csource\nvar commonHeaderFuchsia = `' > fuchsia_common.go; cat ../../executor/common_fuchsia.h | sed -e '/#include \"common.h\"/ {' -e 'r ../../executor/common.h' -e 'd' -e '}' | egrep -v '^[ ]*//' | sed '/^[ ]*\\/\\/.*/d' | sed 's#[ ]*//.*##g' >> fuchsia_common.go; echo '`' >> fuchsia_common.go"
//go:generate go fmt fuchsia_common.go
package csource
import (
"fmt"
)
const (
linux = "linux"
akaros = "akaros"
freebsd = "freebsd"
netbsd = "netbsd"
fuchsia = "fuchsia"
)
func getCommonHeader(os string) (string, error) {
switch os {
case linux:
return commonHeaderLinux, nil
case akaros:
return commonHeaderAkaros, nil
case freebsd:
return commonHeaderFreebsd, nil
case netbsd:
return commonHeaderNetbsd, nil
case fuchsia:
return commonHeaderFuchsia, nil
default:
return "", fmt.Errorf("unsupported OS: %v", os)
}
}
|