aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--executor/syscalls_test.h14
-rw-r--r--prog/analysis.go6
-rw-r--r--prog/clone.go2
-rw-r--r--prog/encoding.go40
-rw-r--r--prog/encoding_test.go8
-rw-r--r--prog/encodingexec.go12
-rw-r--r--prog/hints.go20
-rw-r--r--prog/hints_test.go36
-rw-r--r--prog/mutation.go26
-rw-r--r--prog/prog.go40
-rw-r--r--prog/rand.go28
-rw-r--r--prog/validation.go16
-rw-r--r--sys/test/32.go144
-rw-r--r--sys/test/64.go144
-rw-r--r--sys/test/test.txt5
15 files changed, 307 insertions, 234 deletions
diff --git a/executor/syscalls_test.h b/executor/syscalls_test.h
index 8b1e9a814..eb4bf6d76 100644
--- a/executor/syscalls_test.h
+++ b/executor/syscalls_test.h
@@ -2,10 +2,10 @@
#if 0
#define GOARCH "32"
-#define SYZ_REVISION "ab5b2b746192f26c994482e664534cbf487e3dbe"
+#define SYZ_REVISION "79ae2d829892c1b024cfea6076725a13e0ada442"
#define __NR_syz_test 1000000
-unsigned syscall_count = 75;
+unsigned syscall_count = 76;
call_t syscalls[] = {
{"mmap", 0, (syscall_t)mmap},
{"mutate0", 0, (syscall_t)mutate0},
@@ -15,7 +15,8 @@ call_t syscalls[] = {
{"mutate4", 0, (syscall_t)mutate4},
{"mutate5", 0, (syscall_t)mutate5},
{"mutate6", 0, (syscall_t)mutate6},
- {"serialize", 0, (syscall_t)serialize},
+ {"serialize0", 0, (syscall_t)serialize0},
+ {"serialize1", 0, (syscall_t)serialize1},
{"syz_test", 1000000, (syscall_t)syz_test},
{"syz_test$align0", 1000000, (syscall_t)syz_test},
{"syz_test$align1", 1000000, (syscall_t)syz_test},
@@ -88,10 +89,10 @@ call_t syscalls[] = {
#if 0
#define GOARCH "64"
-#define SYZ_REVISION "1dd179fe95626e284e24e4e636195924bced24ef"
+#define SYZ_REVISION "b1c83c04183eb27b5158df59d58c510efb35257d"
#define __NR_syz_test 1000000
-unsigned syscall_count = 75;
+unsigned syscall_count = 76;
call_t syscalls[] = {
{"mmap", 0, (syscall_t)mmap},
{"mutate0", 0, (syscall_t)mutate0},
@@ -101,7 +102,8 @@ call_t syscalls[] = {
{"mutate4", 0, (syscall_t)mutate4},
{"mutate5", 0, (syscall_t)mutate5},
{"mutate6", 0, (syscall_t)mutate6},
- {"serialize", 0, (syscall_t)serialize},
+ {"serialize0", 0, (syscall_t)serialize0},
+ {"serialize1", 0, (syscall_t)serialize1},
{"syz_test", 1000000, (syscall_t)syz_test},
{"syz_test$align0", 1000000, (syscall_t)syz_test},
{"syz_test$align1", 1000000, (syscall_t)syz_test},
diff --git a/prog/analysis.go b/prog/analysis.go
index 80a127108..fcb00350b 100644
--- a/prog/analysis.go
+++ b/prog/analysis.go
@@ -58,12 +58,12 @@ func (s *state) analyze(c *Call) {
}
case *BufferType:
a := arg.(*DataArg)
- if typ.Dir() != DirOut && len(a.Data) != 0 {
+ if typ.Dir() != DirOut && len(a.Data()) != 0 {
switch typ.Kind {
case BufferString:
- s.strings[string(a.Data)] = true
+ s.strings[string(a.Data())] = true
case BufferFilename:
- s.files[string(a.Data)] = true
+ s.files[string(a.Data())] = true
}
}
}
diff --git a/prog/clone.go b/prog/clone.go
index 1ff42f60f..bdb9b5074 100644
--- a/prog/clone.go
+++ b/prog/clone.go
@@ -44,7 +44,7 @@ func clone(arg Arg, newargs map[Arg]Arg) Arg {
case *DataArg:
a1 := new(DataArg)
*a1 = *a
- a1.Data = append([]byte{}, a.Data...)
+ a1.data = append([]byte{}, a.data...)
arg1 = a1
case *GroupArg:
a1 := new(GroupArg)
diff --git a/prog/encoding.go b/prog/encoding.go
index 4d8150959..2b7999efc 100644
--- a/prog/encoding.go
+++ b/prog/encoding.go
@@ -74,15 +74,19 @@ func serialize(arg Arg, buf *bytes.Buffer, vars map[Arg]int, varSeq *int) {
fmt.Fprintf(buf, "&%v=", serializeAddr(arg))
serialize(a.Res, buf, vars, varSeq)
case *DataArg:
- data := a.Data
- if !arg.Type().Varlen() {
- // Statically typed data will be padded with 0s during
- // deserialization, so we can strip them here for readability.
- for len(data) >= 2 && data[len(data)-1] == 0 && data[len(data)-2] == 0 {
- data = data[:len(data)-1]
+ if a.Type().Dir() == DirOut {
+ fmt.Fprintf(buf, "\"\"/%v", a.Size())
+ } else {
+ data := a.Data()
+ if !arg.Type().Varlen() {
+ // Statically typed data will be padded with 0s during
+ // deserialization, so we can strip them here for readability.
+ for len(data) >= 2 && data[len(data)-1] == 0 && data[len(data)-2] == 0 {
+ data = data[:len(data)-1]
+ }
}
+ serializeData(buf, data)
}
- serializeData(buf, data)
case *GroupArg:
var delims []byte
switch arg.Type().(type) {
@@ -287,13 +291,29 @@ func (target *Target) parseArg(typ Type, p *parser, vars map[string]Arg) (Arg, e
if err != nil {
return nil, err
}
+ size := ^uint64(0)
+ if p.Char() == '/' {
+ p.Parse('/')
+ sizeStr := p.Ident()
+ size, err = strconv.ParseUint(sizeStr, 0, 64)
+ if err != nil {
+ return nil, fmt.Errorf("failed to parse buffer size: %q", sizeStr)
+ }
+ }
if !typ.Varlen() {
- if diff := int(typ.Size()) - len(data); diff > 0 {
+ size = typ.Size()
+ } else if size == ^uint64(0) {
+ size = uint64(len(data))
+ }
+ if typ.Dir() == DirOut {
+ arg = MakeOutDataArg(typ, size)
+ } else {
+ if diff := int(size) - len(data); diff > 0 {
data = append(data, make([]byte, diff)...)
}
- data = data[:typ.Size()]
+ data = data[:size]
+ arg = MakeDataArg(typ, data)
}
- arg = MakeDataArg(typ, data)
case '{':
t1, ok := typ.(*StructType)
if !ok {
diff --git a/prog/encoding_test.go b/prog/encoding_test.go
index 39063a055..5fce30142 100644
--- a/prog/encoding_test.go
+++ b/prog/encoding_test.go
@@ -168,8 +168,12 @@ func TestSerializeDeserialize(t *testing.T) {
target := initTargetTest(t, "test", "64")
tests := [][2]string{
{
- `serialize(&(0x7f0000408000)={"6861736800000000000000000000", "4849000000"})`,
- `serialize(&(0x7f0000408000)={'hash\x00', 'HI\x00'})`,
+ `serialize0(&(0x7f0000408000)={"6861736800000000000000000000", "4849000000"})`,
+ `serialize0(&(0x7f0000408000)={'hash\x00', 'HI\x00'})`,
+ },
+ {
+ `serialize1(&(0x7f0000000000)="0000000000000000", 0x8)`,
+ `serialize1(&(0x7f0000000000)=""/8, 0x8)`,
},
}
for _, test := range tests {
diff --git a/prog/encodingexec.go b/prog/encodingexec.go
index e45ba1192..937f3c322 100644
--- a/prog/encodingexec.go
+++ b/prog/encodingexec.go
@@ -104,7 +104,8 @@ func (p *Prog) SerializeForExec(buffer []byte, pid int) (int, error) {
if _, ok := arg1.(*UnionArg); ok {
return
}
- if a1, ok := arg1.(*DataArg); ok && len(a1.Data) == 0 {
+ if a1, ok := arg1.(*DataArg); ok &&
+ (a1.Type().Dir() == DirOut || len(a1.Data()) == 0) {
return
}
if !IsPad(arg1.Type()) && arg1.Type().Dir() != DirOut {
@@ -270,16 +271,17 @@ func (w *execContext) writeArg(arg Arg, pid int, csumMap map[Arg]CsumInfo) {
w.write(0) // bit field offset
w.write(0) // bit field length
case *DataArg:
+ data := a.Data()
w.write(ExecArgData)
- w.write(uint64(len(a.Data)))
- padded := len(a.Data)
- if pad := 8 - len(a.Data)%8; pad != 8 {
+ w.write(uint64(len(data)))
+ padded := len(data)
+ if pad := 8 - len(data)%8; pad != 8 {
padded += pad
}
if len(w.buf) < padded {
w.eof = true
} else {
- copy(w.buf, a.Data)
+ copy(w.buf, data)
w.buf = w.buf[padded:]
}
default:
diff --git a/prog/hints.go b/prog/hints.go
index e9f6f8a62..fb3100c3f 100644
--- a/prog/hints.go
+++ b/prog/hints.go
@@ -120,16 +120,21 @@ func checkConstArg(arg *ConstArg, compMap CompMap, exec func()) {
func checkDataArg(arg *DataArg, compMap CompMap, exec func()) {
bytes := make([]byte, 8)
- for i := 0; i < min(len(arg.Data), maxDataLength); i++ {
+ data := arg.Data()
+ size := len(data)
+ if size > maxDataLength {
+ size = maxDataLength
+ }
+ for i := 0; i < size; i++ {
original := make([]byte, 8)
- copy(original, arg.Data[i:])
+ copy(original, data[i:])
val := binary.LittleEndian.Uint64(original)
for replacer := range shrinkExpand(val, compMap) {
binary.LittleEndian.PutUint64(bytes, replacer)
- copy(arg.Data[i:], bytes)
+ copy(data[i:], bytes)
exec()
}
- copy(arg.Data[i:], original)
+ copy(data[i:], original)
}
}
@@ -205,10 +210,3 @@ func init() {
specialIntsSet[v] = true
}
}
-
-func min(a, b int) int {
- if a <= b {
- return a
- }
- return b
-}
diff --git a/prog/hints_test.go b/prog/hints_test.go
index 904d36500..eef2758b6 100644
--- a/prog/hints_test.go
+++ b/prog/hints_test.go
@@ -161,10 +161,10 @@ func TestHintsCheckDataArg(t *testing.T) {
res := make(map[string]bool)
// Whatever type here. It's just needed to pass the
// dataArg.Type().Dir() == DirIn check.
- typ := ArrayType{TypeCommon{"", "", 0, DirIn, false}, nil, 0, 0, 0}
- dataArg := &DataArg{ArgCommon{&typ}, []byte(test.in)}
+ typ := &ArrayType{TypeCommon{"", "", 0, DirIn, false}, nil, 0, 0, 0}
+ dataArg := MakeDataArg(typ, []byte(test.in)).(*DataArg)
checkDataArg(dataArg, test.comps, func() {
- res[string(dataArg.Data)] = true
+ res[string(dataArg.Data())] = true
})
if !reflect.DeepEqual(res, test.res) {
s := "\ngot: ["
@@ -365,26 +365,30 @@ func TestHintsRandom(t *testing.T) {
func extractValues(c *Call) map[uint64]bool {
vals := make(map[uint64]bool)
foreachArg(c, func(arg, _ Arg, _ *[]Arg) {
+ if arg.Type().Dir() == DirOut {
+ return
+ }
switch a := arg.(type) {
case *ConstArg:
vals[a.Val] = true
case *DataArg:
- for i := range a.Data {
- vals[uint64(a.Data[i])] = true
- if i < len(a.Data)-1 {
- v := uint64(a.Data[i]) | uint64(a.Data[i+1])<<8
+ data := a.Data()
+ for i := range data {
+ vals[uint64(data[i])] = true
+ if i < len(data)-1 {
+ v := uint64(data[i]) | uint64(data[i+1])<<8
vals[v] = true
}
- if i < len(a.Data)-3 {
- v := uint64(a.Data[i]) | uint64(a.Data[i+1])<<8 |
- uint64(a.Data[i+2])<<16 | uint64(a.Data[i+3])<<24
+ if i < len(data)-3 {
+ v := uint64(data[i]) | uint64(data[i+1])<<8 |
+ uint64(data[i+2])<<16 | uint64(data[i+3])<<24
vals[v] = true
}
- if i < len(a.Data)-7 {
- v := uint64(a.Data[i]) | uint64(a.Data[i+1])<<8 |
- uint64(a.Data[i+2])<<16 | uint64(a.Data[i+3])<<24 |
- uint64(a.Data[i+4])<<32 | uint64(a.Data[i+5])<<40 |
- uint64(a.Data[i+6])<<48 | uint64(a.Data[i+7])<<56
+ if i < len(data)-7 {
+ v := uint64(data[i]) | uint64(data[i+1])<<8 |
+ uint64(data[i+2])<<16 | uint64(data[i+3])<<24 |
+ uint64(data[i+4])<<32 | uint64(data[i+5])<<40 |
+ uint64(data[i+6])<<48 | uint64(data[i+7])<<56
vals[v] = true
}
}
@@ -428,7 +432,7 @@ func TestHintsData(t *testing.T) {
var got []string
p.MutateWithHints(0, test.comps, func(newP *Prog) {
got = append(got, hex.EncodeToString(
- newP.Calls[0].Args[0].(*PointerArg).Res.(*DataArg).Data))
+ newP.Calls[0].Args[0].(*PointerArg).Res.(*DataArg).Data()))
})
sort.Strings(test.out)
sort.Strings(got)
diff --git a/prog/mutation.go b/prog/mutation.go
index 63c58ad7f..1aeef4fa4 100644
--- a/prog/mutation.go
+++ b/prog/mutation.go
@@ -101,27 +101,28 @@ func (p *Prog) Mutate(rs rand.Source, ncalls int, ct *ChoiceTable, corpus []*Pro
a := arg.(*DataArg)
switch t.Kind {
case BufferBlobRand, BufferBlobRange:
- var data []byte
- data = append([]byte{}, a.Data...)
+ data := append([]byte{}, a.Data()...)
minLen, maxLen := uint64(0), maxBlobLen
if t.Kind == BufferBlobRange {
minLen, maxLen = t.RangeBegin, t.RangeEnd
}
- a.Data = mutateData(r, data, minLen, maxLen)
+ a.data = mutateData(r, data, minLen, maxLen)
case BufferString:
+ data := append([]byte{}, a.Data()...)
if r.bin() {
minLen, maxLen := uint64(0), maxBlobLen
if t.TypeSize != 0 {
minLen, maxLen = t.TypeSize, t.TypeSize
}
- a.Data = mutateData(r, append([]byte{}, a.Data...), minLen, maxLen)
+ a.data = mutateData(r, data, minLen, maxLen)
} else {
- a.Data = r.randString(s, t.Values, t.Dir())
+ a.data = r.randString(s, t.Values, t.Dir())
}
case BufferFilename:
- a.Data = []byte(r.filename(s))
+ a.data = []byte(r.filename(s))
case BufferText:
- a.Data = r.mutateText(t.Text, a.Data)
+ data := append([]byte{}, a.Data()...)
+ a.data = r.mutateText(t.Text, data)
default:
panic("unknown buffer kind")
}
@@ -430,19 +431,20 @@ func Minimize(p0 *Prog, callIndex0 int, pred0 func(*Prog, int) bool, crash bool)
return false
}
triedPaths[path] = true
- if typ.Kind != BufferBlobRand && typ.Kind != BufferBlobRange {
+ if typ.Kind != BufferBlobRand && typ.Kind != BufferBlobRange ||
+ typ.Dir() == DirOut {
return false
}
a := arg.(*DataArg)
minLen := int(typ.RangeBegin)
- for step := len(a.Data) - minLen; len(a.Data) > minLen && step > 0; {
- if len(a.Data)-step >= minLen {
- a.Data = a.Data[:len(a.Data)-step]
+ for step := len(a.Data()) - minLen; len(a.Data()) > minLen && step > 0; {
+ if len(a.Data())-step >= minLen {
+ a.data = a.Data()[:len(a.Data())-step]
p.Target.assignSizesCall(call)
if pred(p, callIndex0) {
continue
}
- a.Data = a.Data[:len(a.Data)+step]
+ a.data = a.Data()[:len(a.Data())+step]
p.Target.assignSizesCall(call)
}
step /= 2
diff --git a/prog/prog.go b/prog/prog.go
index 0fcf6b66e..66de938b3 100644
--- a/prog/prog.go
+++ b/prog/prog.go
@@ -86,11 +86,36 @@ func (arg *PointerArg) Size() uint64 {
// Used for BufferType.
type DataArg struct {
ArgCommon
- Data []byte
+ data []byte // for in/inout args
+ size uint64 // for out Args
+}
+
+func MakeDataArg(t Type, data []byte) Arg {
+ if t.Dir() == DirOut {
+ panic("non-empty output data arg")
+ }
+ return &DataArg{ArgCommon: ArgCommon{typ: t}, data: append([]byte{}, data...)}
+}
+
+func MakeOutDataArg(t Type, size uint64) Arg {
+ if t.Dir() != DirOut {
+ panic("empty input data arg")
+ }
+ return &DataArg{ArgCommon: ArgCommon{typ: t}, size: size}
}
func (arg *DataArg) Size() uint64 {
- return uint64(len(arg.Data))
+ if len(arg.data) != 0 {
+ return uint64(len(arg.data))
+ }
+ return arg.size
+}
+
+func (arg *DataArg) Data() []byte {
+ if arg.Type().Dir() == DirOut {
+ panic("getting data of output data arg")
+ }
+ return arg.data
}
// Used for StructType and ArrayType.
@@ -240,10 +265,6 @@ func MakeResultArg(t Type, r Arg, v uint64) Arg {
return arg
}
-func MakeDataArg(t Type, data []byte) Arg {
- return &DataArg{ArgCommon: ArgCommon{typ: t}, Data: append([]byte{}, data...)}
-}
-
func MakePointerArg(t Type, page uint64, off int, npages uint64, obj Arg) Arg {
return &PointerArg{ArgCommon: ArgCommon{typ: t}, PageIndex: page, PageOffset: off, PagesNum: npages, Res: obj}
}
@@ -267,6 +288,13 @@ func defaultArg(t Type) Arg {
case *ResourceType:
return MakeResultArg(t, nil, typ.Desc.Type.Default())
case *BufferType:
+ if t.Dir() == DirOut {
+ var sz uint64
+ if !typ.Varlen() {
+ sz = typ.Size()
+ }
+ return MakeOutDataArg(t, sz)
+ }
var data []byte
if !typ.Varlen() {
data = make([]byte, typ.Size())
diff --git a/prog/rand.go b/prog/rand.go
index b99399c9d..173248599 100644
--- a/prog/rand.go
+++ b/prog/rand.go
@@ -593,32 +593,38 @@ func (r *randGen) generateArg(s *state, typ Type) (arg Arg, calls []*Call) {
if a.Kind == BufferBlobRange {
sz = r.randRange(a.RangeBegin, a.RangeEnd)
}
+ if a.Dir() == DirOut {
+ return MakeOutDataArg(a, sz), nil
+ }
data := make([]byte, sz)
- if a.Dir() != DirOut {
- for i := range data {
- data[i] = byte(r.Intn(256))
- }
+ for i := range data {
+ data[i] = byte(r.Intn(256))
}
return MakeDataArg(a, data), nil
case BufferString:
data := r.randString(s, a.Values, a.Dir())
+ if a.Dir() == DirOut {
+ return MakeOutDataArg(a, uint64(len(data))), nil
+ }
return MakeDataArg(a, data), nil
case BufferFilename:
- var data []byte
if a.Dir() == DirOut {
+ sz := 0
switch {
case r.nOutOf(1, 3):
- data = make([]byte, r.Intn(100))
+ sz = r.Intn(100)
case r.nOutOf(1, 2):
- data = make([]byte, 108) // UNIX_PATH_MAX
+ sz = 108 // UNIX_PATH_MAX
default:
- data = make([]byte, 4096) // PATH_MAX
+ sz = 4096 // PATH_MAX
}
- } else {
- data = []byte(r.filename(s))
+ return MakeOutDataArg(a, uint64(sz)), nil
}
- return MakeDataArg(a, data), nil
+ return MakeDataArg(a, []byte(r.filename(s))), nil
case BufferText:
+ if a.Dir() == DirOut {
+ return MakeOutDataArg(a, uint64(r.Intn(100))), nil
+ }
return MakeDataArg(a, r.generateText(a.Text)), nil
default:
panic("unknown buffer kind")
diff --git a/prog/validation.go b/prog/validation.go
index e1f083b2a..d0f6d0bd2 100644
--- a/prog/validation.go
+++ b/prog/validation.go
@@ -68,10 +68,9 @@ func (c *Call) validate(ctx *validCtx) error {
return fmt.Errorf("syscall %v: output arg '%v'/'%v' has non default value '%+v'", c.Meta.Name, a.Type().FieldName(), a.Type().Name(), a)
}
case *DataArg:
- for _, v := range a.Data {
- if v != 0 {
- return fmt.Errorf("syscall %v: output arg '%v' has data", c.Meta.Name, a.Type().Name())
- }
+ if len(a.data) != 0 {
+ return fmt.Errorf("syscall %v: output arg '%v' has data",
+ c.Meta.Name, a.Type().Name())
}
}
}
@@ -123,9 +122,9 @@ func (c *Call) validate(ctx *validCtx) error {
case *DataArg:
switch typ1.Kind {
case BufferString:
- if typ1.TypeSize != 0 && uint64(len(a.Data)) != typ1.TypeSize {
+ if typ1.TypeSize != 0 && a.Size() != typ1.TypeSize {
return fmt.Errorf("syscall %v: string arg '%v' has size %v, which should be %v",
- c.Meta.Name, a.Type().Name(), len(a.Data), typ1.TypeSize)
+ c.Meta.Name, a.Type().Name(), a.Size(), typ1.TypeSize)
}
}
default:
@@ -178,10 +177,9 @@ func (c *Call) validate(ctx *validCtx) error {
}
case *DataArg:
typ1 := a.Type()
- if !typ1.Varlen() && typ1.Size() != uint64(len(a.Data)) {
+ if !typ1.Varlen() && typ1.Size() != a.Size() {
return fmt.Errorf("syscall %v: data arg %v has wrong size %v, want %v",
- c.Meta.Name, arg.Type().Name(),
- len(a.Data), typ1.Size())
+ c.Meta.Name, arg.Type().Name(), a.Size(), typ1.Size())
}
switch typ1 := a.Type().(type) {
case *ArrayType:
diff --git a/sys/test/32.go b/sys/test/32.go
index 3431929d0..9b27e6e73 100644
--- a/sys/test/32.go
+++ b/sys/test/32.go
@@ -14,7 +14,7 @@ var resources_32 = []*ResourceDesc{
}
var structDescs_32 = []*KeyedStruct{
- {Key: StructKey{Name: "serialize_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize_struct", TypeSize: 15}, Fields: []Type{
+ {Key: StructKey{Name: "serialize0_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize0_struct", TypeSize: 15}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "a", TypeSize: 10}, Kind: 2, SubKind: "serialize_strings", Values: []string{"aaa\x00\x00\x00\x00\x00\x00\x00", "bbb\x00\x00\x00\x00\x00\x00\x00"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "b", TypeSize: 5}, Kind: 2, SubKind: "serialize_strings", Values: []string{"aaa\x00\x00", "bbb\x00\x00"}},
}}},
@@ -404,216 +404,220 @@ var syscalls_32 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "size", TypeSize: 4}}, ByteSize: 1, Buf: "data"},
}},
- {ID: 8, Name: "serialize", CallName: "serialize", Args: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "serialize_struct"}}},
+ {ID: 8, Name: "serialize0", CallName: "serialize0", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "serialize0_struct"}}},
}},
- {ID: 9, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
- {ID: 10, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
+ {ID: 9, Name: "serialize1", CallName: "serialize1", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "b", TypeSize: 4}}, Buf: "a"},
+ }},
+ {ID: 10, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
+ {ID: 11, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align0"}}},
}},
- {ID: 11, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
+ {ID: 12, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align1"}}},
}},
- {ID: 12, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
+ {ID: 13, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align2"}}},
}},
- {ID: 13, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
+ {ID: 14, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align3"}}},
}},
- {ID: 14, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
+ {ID: 15, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align4"}}},
}},
- {ID: 15, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
+ {ID: 16, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align5"}}},
}},
- {ID: 16, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
+ {ID: 17, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_align6"}}},
}},
- {ID: 17, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
+ {ID: 18, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_array_struct"}}},
}},
- {ID: 18, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
+ {ID: 19, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_array_trailing"}}},
}},
- {ID: 19, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
+ {ID: 20, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_array_blob"}}},
}},
- {ID: 20, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
+ {ID: 21, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_bf_struct0"}}},
}},
- {ID: 21, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
+ {ID: 22, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_bf_struct1"}}},
}},
- {ID: 22, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
+ {ID: 23, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_encode"}}},
}},
- {ID: 23, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
+ {ID: 24, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_header"}}},
}},
- {ID: 24, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
+ {ID: 25, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_tcp_packet"}}},
}},
- {ID: 25, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
+ {ID: 26, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_udp_packet"}}},
}},
- {ID: 26, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
+ {ID: 27, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_icmp_packet"}}},
}},
- {ID: 27, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
+ {ID: 28, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_tcp_packet"}}},
}},
- {ID: 28, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
+ {ID: 29, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_udp_packet"}}},
}},
- {ID: 29, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
+ {ID: 30, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_end_int_struct"}}},
}},
- {ID: 30, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
+ {ID: 31, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_end_var_struct"}}},
}},
- {ID: 31, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
+ {ID: 32, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}},
}},
- {ID: 32, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
+ {ID: 33, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "a1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "a2", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "a3", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "a4", TypeSize: 8}}},
}},
- {ID: 33, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
+ {ID: 34, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_int_struct"}}},
}},
- {ID: 34, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
+ {ID: 35, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_const_struct"}}},
}},
- {ID: 35, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
+ {ID: 36, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 4}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "a2", TypeSize: 4}}, ByteSize: 1, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize2", FldName: "a3", TypeSize: 4}}, ByteSize: 2, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "a4", TypeSize: 4}}, ByteSize: 4, Buf: "a0"},
}},
- {ID: 36, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
+ {ID: 37, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
- {ID: 37, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
+ {ID: 38, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
- {ID: 38, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
+ {ID: 39, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct", Dir: 2}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 8, ArgDir: 2}}, Buf: "a0"}},
}},
- {ID: 39, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
+ {ID: 40, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct", Dir: 2}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4, IsOptional: true}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 8, ArgDir: 2}}, Buf: "a0"}},
}},
- {ID: 40, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
+ {ID: 41, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "a0", TypeSize: 2}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
- {ID: 41, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
+ {ID: 42, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize_struct"}}},
}},
- {ID: 42, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
+ {ID: 43, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize2_struct"}}},
}},
- {ID: 43, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
+ {ID: 44, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize3_struct"}}},
}},
- {ID: 44, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
+ {ID: 45, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_bf_struct"}}},
}},
- {ID: 45, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
+ {ID: 46, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_flags_struct"}}},
}},
- {ID: 46, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
+ {ID: 47, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_parent2_struct"}}},
}},
- {ID: 47, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
+ {ID: 48, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_len_struct"}}},
}},
- {ID: 48, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
+ {ID: 49, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_len2_struct"}}},
}},
- {ID: 49, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
+ {ID: 50, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_parent_struct"}}},
}},
- {ID: 50, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
+ {ID: 51, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_array_struct"}}},
}},
- {ID: 51, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
+ {ID: 52, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_array2_struct"}}},
}},
- {ID: 52, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
+ {ID: 53, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_complex_struct"}}},
}},
- {ID: 53, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
+ {ID: 54, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_vma_struct"}}},
}},
- {ID: 54, NR: 1000000, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
- {ID: 55, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
+ {ID: 55, NR: 1000000, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 56, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 4, IsOptional: true}}},
}},
- {ID: 56, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
+ {ID: 57, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 4}}}},
}},
- {ID: 57, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
+ {ID: 58, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 4, IsOptional: true}},
}},
- {ID: 58, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
+ {ID: 59, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_recur_0", Dir: 2}}},
}},
- {ID: 59, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
+ {ID: 60, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_recur_1", Dir: 2}}},
}},
- {ID: 60, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
+ {ID: 61, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_recur_2", Dir: 2}}},
}},
- {ID: 61, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
+ {ID: 62, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_regression0_struct", Dir: 2}}},
}},
- {ID: 62, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
+ {ID: 63, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "syz_regression1_struct"}}}},
}},
- {ID: 63, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
+ {ID: 64, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 16}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: 1, RangeBegin: 4, RangeEnd: 4}},
}},
- {ID: 64, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
- {ID: 65, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
+ {ID: 65, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 66, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "a0", TypeSize: 4}},
}},
- {ID: 66, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
+ {ID: 67, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_struct0"}}},
}},
- {ID: 67, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
+ {ID: 68, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 1}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
- {ID: 68, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
+ {ID: 69, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 2}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
- {ID: 69, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
+ {ID: 70, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 3}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
- {ID: 70, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
+ {ID: 71, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 4}}, Buf: "a0"},
}},
- {ID: 71, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
+ {ID: 72, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_union0_struct"}}},
}},
- {ID: 72, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
+ {ID: 73, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_union1_struct"}}},
}},
- {ID: 73, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
+ {ID: 74, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_union2_struct"}}},
}},
- {ID: 74, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
+ {ID: 75, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "v0", TypeSize: 4}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "l0", TypeSize: 4}}, Buf: "v0"},
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "v1", TypeSize: 4}, RangeBegin: 5, RangeEnd: 5},
@@ -630,4 +634,4 @@ var consts_32 = []ConstValue{
{Name: "ONLY_32BITS_CONST", Value: 1},
}
-const revision_32 = "ab5b2b746192f26c994482e664534cbf487e3dbe"
+const revision_32 = "79ae2d829892c1b024cfea6076725a13e0ada442"
diff --git a/sys/test/64.go b/sys/test/64.go
index 8618c6b91..75069346e 100644
--- a/sys/test/64.go
+++ b/sys/test/64.go
@@ -14,7 +14,7 @@ var resources_64 = []*ResourceDesc{
}
var structDescs_64 = []*KeyedStruct{
- {Key: StructKey{Name: "serialize_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize_struct", TypeSize: 15}, Fields: []Type{
+ {Key: StructKey{Name: "serialize0_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "serialize0_struct", TypeSize: 15}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "a", TypeSize: 10}, Kind: 2, SubKind: "serialize_strings", Values: []string{"aaa\x00\x00\x00\x00\x00\x00\x00", "bbb\x00\x00\x00\x00\x00\x00\x00"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "b", TypeSize: 5}, Kind: 2, SubKind: "serialize_strings", Values: []string{"aaa\x00\x00", "bbb\x00\x00"}},
}}},
@@ -403,216 +403,220 @@ var syscalls_64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "size", TypeSize: 8}}, ByteSize: 1, Buf: "data"},
}},
- {ID: 8, Name: "serialize", CallName: "serialize", Args: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "serialize_struct"}}},
+ {ID: 8, Name: "serialize0", CallName: "serialize0", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "serialize0_struct"}}},
}},
- {ID: 9, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
- {ID: 10, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
+ {ID: 9, Name: "serialize1", CallName: "serialize1", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "b", TypeSize: 8}}, Buf: "a"},
+ }},
+ {ID: 10, NR: 1000000, Name: "syz_test", CallName: "syz_test"},
+ {ID: 11, NR: 1000000, Name: "syz_test$align0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align0"}}},
}},
- {ID: 11, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
+ {ID: 12, NR: 1000000, Name: "syz_test$align1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align1"}}},
}},
- {ID: 12, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
+ {ID: 13, NR: 1000000, Name: "syz_test$align2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align2"}}},
}},
- {ID: 13, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
+ {ID: 14, NR: 1000000, Name: "syz_test$align3", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align3"}}},
}},
- {ID: 14, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
+ {ID: 15, NR: 1000000, Name: "syz_test$align4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align4"}}},
}},
- {ID: 15, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
+ {ID: 16, NR: 1000000, Name: "syz_test$align5", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align5"}}},
}},
- {ID: 16, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
+ {ID: 17, NR: 1000000, Name: "syz_test$align6", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_align6"}}},
}},
- {ID: 17, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
+ {ID: 18, NR: 1000000, Name: "syz_test$array0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_array_struct"}}},
}},
- {ID: 18, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
+ {ID: 19, NR: 1000000, Name: "syz_test$array1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_array_trailing"}}},
}},
- {ID: 19, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
+ {ID: 20, NR: 1000000, Name: "syz_test$array2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_array_blob"}}},
}},
- {ID: 20, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
+ {ID: 21, NR: 1000000, Name: "syz_test$bf0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_bf_struct0"}}},
}},
- {ID: 21, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
+ {ID: 22, NR: 1000000, Name: "syz_test$bf1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_bf_struct1"}}},
}},
- {ID: 22, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
+ {ID: 23, NR: 1000000, Name: "syz_test$csum_encode", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_encode"}}},
}},
- {ID: 23, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
+ {ID: 24, NR: 1000000, Name: "syz_test$csum_ipv4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_header"}}},
}},
- {ID: 24, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
+ {ID: 25, NR: 1000000, Name: "syz_test$csum_ipv4_tcp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_tcp_packet"}}},
}},
- {ID: 25, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
+ {ID: 26, NR: 1000000, Name: "syz_test$csum_ipv4_udp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv4_udp_packet"}}},
}},
- {ID: 26, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
+ {ID: 27, NR: 1000000, Name: "syz_test$csum_ipv6_icmp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_icmp_packet"}}},
}},
- {ID: 27, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
+ {ID: 28, NR: 1000000, Name: "syz_test$csum_ipv6_tcp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_tcp_packet"}}},
}},
- {ID: 28, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
+ {ID: 29, NR: 1000000, Name: "syz_test$csum_ipv6_udp", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_csum_ipv6_udp_packet"}}},
}},
- {ID: 29, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
+ {ID: 30, NR: 1000000, Name: "syz_test$end0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_end_int_struct"}}},
}},
- {ID: 30, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
+ {ID: 31, NR: 1000000, Name: "syz_test$end1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_end_var_struct"}}},
}},
- {ID: 31, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
+ {ID: 32, NR: 1000000, Name: "syz_test$hint_data", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}},
}},
- {ID: 32, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
+ {ID: 33, NR: 1000000, Name: "syz_test$int", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 8}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "a1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "a2", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "a3", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "a4", TypeSize: 8}}},
}},
- {ID: 33, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
+ {ID: 34, NR: 1000000, Name: "syz_test$length0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_int_struct"}}},
}},
- {ID: 34, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
+ {ID: 35, NR: 1000000, Name: "syz_test$length1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_const_struct"}}},
}},
- {ID: 35, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
+ {ID: 36, NR: 1000000, Name: "syz_test$length10", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "a2", TypeSize: 8}}, ByteSize: 1, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize2", FldName: "a3", TypeSize: 8}}, ByteSize: 2, Buf: "a0"},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "a4", TypeSize: 8}}, ByteSize: 4, Buf: "a0"},
}},
- {ID: 36, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
+ {ID: 37, NR: 1000000, Name: "syz_test$length11", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
- {ID: 37, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
+ {ID: 38, NR: 1000000, Name: "syz_test$length12", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
- {ID: 38, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
+ {ID: 39, NR: 1000000, Name: "syz_test$length13", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct", Dir: 2}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 8, ArgDir: 2}}, Buf: "a0"}},
}},
- {ID: 39, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
+ {ID: 40, NR: 1000000, Name: "syz_test$length14", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_large_struct", Dir: 2}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8, IsOptional: true}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 8, ArgDir: 2}}, Buf: "a0"}},
}},
- {ID: 40, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
+ {ID: 41, NR: 1000000, Name: "syz_test$length15", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "a0", TypeSize: 2}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
- {ID: 41, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
+ {ID: 42, NR: 1000000, Name: "syz_test$length16", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize_struct"}}},
}},
- {ID: 42, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
+ {ID: 43, NR: 1000000, Name: "syz_test$length17", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize2_struct"}}},
}},
- {ID: 43, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
+ {ID: 44, NR: 1000000, Name: "syz_test$length18", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_bytesize3_struct"}}},
}},
- {ID: 44, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
+ {ID: 45, NR: 1000000, Name: "syz_test$length19", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_bf_struct"}}},
}},
- {ID: 45, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
+ {ID: 46, NR: 1000000, Name: "syz_test$length2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_flags_struct"}}},
}},
- {ID: 46, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
+ {ID: 47, NR: 1000000, Name: "syz_test$length20", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_parent2_struct"}}},
}},
- {ID: 47, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
+ {ID: 48, NR: 1000000, Name: "syz_test$length3", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_len_struct"}}},
}},
- {ID: 48, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
+ {ID: 49, NR: 1000000, Name: "syz_test$length4", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_len2_struct"}}},
}},
- {ID: 49, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
+ {ID: 50, NR: 1000000, Name: "syz_test$length5", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_parent_struct"}}},
}},
- {ID: 50, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
+ {ID: 51, NR: 1000000, Name: "syz_test$length6", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_array_struct"}}},
}},
- {ID: 51, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
+ {ID: 52, NR: 1000000, Name: "syz_test$length7", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_array2_struct"}}},
}},
- {ID: 52, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
+ {ID: 53, NR: 1000000, Name: "syz_test$length8", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_complex_struct"}}},
}},
- {ID: 53, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
+ {ID: 54, NR: 1000000, Name: "syz_test$length9", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_vma_struct"}}},
}},
- {ID: 54, NR: 1000000, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
- {ID: 55, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
+ {ID: 55, NR: 1000000, Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 56, NR: 1000000, Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 8, IsOptional: true}}},
}},
- {ID: 56, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
+ {ID: 57, NR: 1000000, Name: "syz_test$opt1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8}}}},
}},
- {ID: 57, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
+ {ID: 58, NR: 1000000, Name: "syz_test$opt2", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "a0", TypeSize: 8, IsOptional: true}},
}},
- {ID: 58, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
+ {ID: 59, NR: 1000000, Name: "syz_test$recur0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_recur_0", Dir: 2}}},
}},
- {ID: 59, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
+ {ID: 60, NR: 1000000, Name: "syz_test$recur1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_recur_1", Dir: 2}}},
}},
- {ID: 60, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
+ {ID: 61, NR: 1000000, Name: "syz_test$recur2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_recur_2", Dir: 2}}},
}},
- {ID: 61, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
+ {ID: 62, NR: 1000000, Name: "syz_test$regression0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_regression0_struct", Dir: 2}}},
}},
- {ID: 62, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
+ {ID: 63, NR: 1000000, Name: "syz_test$regression1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &StructType{Key: StructKey{Name: "syz_regression1_struct"}}}},
}},
- {ID: 63, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
+ {ID: 64, NR: 1000000, Name: "syz_test$regression2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a1", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 16}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: 1, RangeBegin: 4, RangeEnd: 4}},
}},
- {ID: 64, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
- {ID: 65, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
+ {ID: 65, NR: 1000000, Name: "syz_test$res0", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {ID: 66, NR: 1000000, Name: "syz_test$res1", CallName: "syz_test", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "syz_res", FldName: "a0", TypeSize: 4}},
}},
- {ID: 66, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
+ {ID: 67, NR: 1000000, Name: "syz_test$struct", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_struct0"}}},
}},
- {ID: 67, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
+ {ID: 68, NR: 1000000, Name: "syz_test$text_x86_16", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 1}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
- {ID: 68, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
+ {ID: 69, NR: 1000000, Name: "syz_test$text_x86_32", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 2}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
- {ID: 69, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
+ {ID: 70, NR: 1000000, Name: "syz_test$text_x86_64", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4, Text: 3}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
- {ID: 70, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
+ {ID: 71, NR: 1000000, Name: "syz_test$text_x86_real", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "text"}, Kind: 4}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "a1", TypeSize: 8}}, Buf: "a0"},
}},
- {ID: 71, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
+ {ID: 72, NR: 1000000, Name: "syz_test$union0", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_union0_struct"}}},
}},
- {ID: 72, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
+ {ID: 73, NR: 1000000, Name: "syz_test$union1", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_union1_struct"}}},
}},
- {ID: 73, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
+ {ID: 74, NR: 1000000, Name: "syz_test$union2", CallName: "syz_test", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_union2_struct"}}},
}},
- {ID: 74, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
+ {ID: 75, NR: 1000000, Name: "syz_test$vma0", CallName: "syz_test", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "v0", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "l0", TypeSize: 8}}, Buf: "v0"},
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "v1", TypeSize: 8}, RangeBegin: 5, RangeEnd: 5},
@@ -628,4 +632,4 @@ var consts_64 = []ConstValue{
{Name: "IPPROTO_UDP", Value: 17},
}
-const revision_64 = "1dd179fe95626e284e24e4e636195924bced24ef"
+const revision_64 = "b1c83c04183eb27b5158df59d58c510efb35257d"
diff --git a/sys/test/test.txt b/sys/test/test.txt
index 69f987a16..3254cee18 100644
--- a/sys/test/test.txt
+++ b/sys/test/test.txt
@@ -558,9 +558,10 @@ open_flags = 0xabababababababab, 0xcdcdcdcdcdcdcdcd
# Serialization tests.
-serialize(a ptr[in, serialize_struct])
+serialize0(a ptr[in, serialize0_struct])
+serialize1(a ptr[out, array[int8]], b len[a])
-serialize_struct {
+serialize0_struct {
a string[serialize_strings, 10]
b string[serialize_strings, 5]
}